mirror of
https://github.com/zoriya/vim.git
synced 2025-12-27 17:38:18 +00:00
Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
034b115568 | ||
|
|
5dc6252d33 | ||
|
|
61c3519b78 | ||
|
|
a64ba220f0 | ||
|
|
60542ac9fd | ||
|
|
bbc98db7c4 | ||
|
|
efcb54b78c | ||
|
|
be74734429 | ||
|
|
a61d5fbf7a | ||
|
|
28f2908d95 | ||
|
|
68ba0dd633 | ||
|
|
c047b9a49f | ||
|
|
3fe37d62d1 | ||
|
|
b3a6bbc7b6 | ||
|
|
8d462f9666 |
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 7.3. Last change: 2012 Jan 20
|
||||
*autocmd.txt* For Vim version 7.3. Last change: 2012 Feb 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1053,7 +1053,7 @@ Note that the 'eventignore' option applies here too. Events listed in this
|
||||
option will not cause any commands to be executed.
|
||||
|
||||
*:do* *:doau* *:doautocmd* *E217*
|
||||
:do[autocmd] [group] {event} [fname]
|
||||
:do[autocmd] [<nomodeline>] [group] {event} [fname]
|
||||
Apply the autocommands matching [fname] (default:
|
||||
current file name) for {event} to the current buffer.
|
||||
You can use this when the current file name does not
|
||||
@@ -1072,14 +1072,17 @@ option will not cause any commands to be executed.
|
||||
argument is included, Vim executes only the matching
|
||||
autocommands for that group. Note: if you use an
|
||||
undefined group name, Vim gives you an error message.
|
||||
|
||||
*<nomodeline>*
|
||||
After applying the autocommands the modelines are
|
||||
processed, so that their settings overrule the
|
||||
settings from autocommands, like what happens when
|
||||
editing a file.
|
||||
editing a file. This is skipped when the <nomodeline>
|
||||
argument is present. You probably want to use
|
||||
<nomodeline> for events that are not used when loading
|
||||
a buffer, such as |User|.
|
||||
|
||||
*:doautoa* *:doautoall*
|
||||
:doautoa[ll] [group] {event} [fname]
|
||||
:doautoa[ll] [<nomodeline>] [group] {event} [fname]
|
||||
Like ":doautocmd", but apply the autocommands to each
|
||||
loaded buffer. Note that [fname] is used to select
|
||||
the autocommands, not the buffers to which they are
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 7.3. Last change: 2011 Mar 27
|
||||
*cmdline.txt* For Vim version 7.3. Last change: 2012 Feb 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -426,6 +426,8 @@ a previous version <Esc> was used). In the pattern standard wildcards '*' and
|
||||
'?' are accepted when matching file names. '*' matches any string, '?'
|
||||
matches exactly one character.
|
||||
|
||||
The 'wildignorecase' option can be set to ignore case in filenames.
|
||||
|
||||
If you like tcsh's autolist completion, you can use this mapping:
|
||||
:cnoremap X <C-L><C-D>
|
||||
(Where X is the command key to use, <C-L> is CTRL-L and <C-D> is CTRL-D)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*debug.txt* For Vim version 7.3. Last change: 2010 Dec 22
|
||||
*debug.txt* For Vim version 7.3. Last change: 2012 Feb 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -15,7 +15,7 @@ For debugging Vim scripts, functions, etc. see |debug-scripts|
|
||||
|
||||
==============================================================================
|
||||
|
||||
1. Location of a crash, using gcc and gdb *debug-gcc*
|
||||
1. Location of a crash, using gcc and gdb *debug-gcc* *gdb*
|
||||
|
||||
When Vim crashes in one of the test files, and you are using gcc for
|
||||
compilation, here is what you can do to find out exactly where Vim crashes.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 7.3. Last change: 2012 Jan 13
|
||||
*options.txt* For Vim version 7.3. Last change: 2012 Feb 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -5899,8 +5899,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
security reasons.
|
||||
|
||||
*'shellcmdflag'* *'shcf'*
|
||||
'shellcmdflag' 'shcf' string (default: "-c", MS-DOS and Win32, when 'shell'
|
||||
does not contain "sh" somewhere: "/c")
|
||||
'shellcmdflag' 'shcf' string (default: "-c";
|
||||
Win32, when 'shell' is cmd.exe: "/s /c";
|
||||
MS-DOS and Win32, when 'shell' neither is
|
||||
cmd.exe nor contains "sh" somewhere: "/c")
|
||||
global
|
||||
{not in Vi}
|
||||
Flag passed to the shell to execute "!" and ":!" commands; e.g.,
|
||||
@@ -6041,8 +6043,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'shellxquote'* *'sxq'*
|
||||
'shellxquote' 'sxq' string (default: "";
|
||||
for Win32, when 'shell' contains "sh"
|
||||
somewhere: "\""
|
||||
for Win32, when 'shell' is cmd.exe or
|
||||
contains "sh" somewhere: "\""
|
||||
for Unix, when using system(): "\"")
|
||||
global
|
||||
{not in Vi}
|
||||
@@ -6050,11 +6052,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
the "!" and ":!" commands. Includes the redirection. See
|
||||
'shellquote' to exclude the redirection. It's probably not useful
|
||||
to set both options.
|
||||
This is an empty string by default. Known to be useful for
|
||||
third-party shells when using the Win32 version, such as the MKS Korn
|
||||
Shell or bash, where it should be "\"". The default is adjusted
|
||||
according the value of 'shell', to reduce the need to set this option
|
||||
by the user. See |dos-shell|.
|
||||
This is an empty string by default on most systems, but is known to be
|
||||
useful for on Win32 version, either for cmd.exe which automatically
|
||||
strips off the first and last quote on a command, or 3rd-party shells
|
||||
such as the MKS Korn Shell or bash, where it should be "\"". The
|
||||
default is adjusted according the value of 'shell', to reduce the need
|
||||
to set this option by the user. See |dos-shell|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 7.3. Last change: 2012 Jan 20
|
||||
*syntax.txt* For Vim version 7.3. Last change: 2012 Feb 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -986,9 +986,9 @@ Example: >
|
||||
or >
|
||||
// vim:syntax=c.doxygen
|
||||
|
||||
It can also be done automatically for C, C++, C# and IDL files by setting the
|
||||
global or buffer-local variable load_doxygen_syntax. This is done by adding
|
||||
the following to your .vimrc. >
|
||||
It can also be done automatically for C, C++, C#, IDL and PHP files by setting
|
||||
the global or buffer-local variable load_doxygen_syntax. This is done by
|
||||
adding the following to your .vimrc. >
|
||||
:let g:load_doxygen_syntax=1
|
||||
|
||||
There are a couple of variables that have an effect on syntax highlighting, and
|
||||
@@ -1742,19 +1742,10 @@ instead, and the name of your source file should be *.pike
|
||||
|
||||
LUA *lua.vim* *ft-lua-syntax*
|
||||
|
||||
This syntax file may be used for Lua 4.0, Lua 5.0 or Lua 5.1 (the latter is
|
||||
The Lua syntax file can be used for versions 4.0, 5.0, 5.1 and 5.2 (5.2 is
|
||||
the default). You can select one of these versions using the global variables
|
||||
lua_version and lua_subversion. For example, to activate Lua
|
||||
4.0 syntax highlighting, use this command: >
|
||||
|
||||
:let lua_version = 4
|
||||
|
||||
If you are using Lua 5.0, use these commands: >
|
||||
|
||||
:let lua_version = 5
|
||||
:let lua_subversion = 0
|
||||
|
||||
To restore highlighting for Lua 5.1: >
|
||||
5.1 syntax highlighting, set the variables like this:
|
||||
|
||||
:let lua_version = 5
|
||||
:let lua_subversion = 1
|
||||
|
||||
@@ -3206,6 +3206,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
|
||||
<line1> map.txt /*<line1>*
|
||||
<line2> map.txt /*<line2>*
|
||||
<lt> intro.txt /*<lt>*
|
||||
<nomodeline> autocmd.txt /*<nomodeline>*
|
||||
<q-args> map.txt /*<q-args>*
|
||||
<reg> map.txt /*<reg>*
|
||||
<register> map.txt /*<register>*
|
||||
@@ -5948,6 +5949,7 @@ g`a motion.txt /*g`a*
|
||||
ga various.txt /*ga*
|
||||
garbagecollect() eval.txt /*garbagecollect()*
|
||||
gd pattern.txt /*gd*
|
||||
gdb debug.txt /*gdb*
|
||||
ge motion.txt /*ge*
|
||||
get() eval.txt /*get()*
|
||||
get-ms-debuggers debug.txt /*get-ms-debuggers*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 7.3. Last change: 2012 Feb 04
|
||||
*todo.txt* For Vim version 7.3. Last change: 2012 Feb 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -41,61 +41,13 @@ Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
|
||||
Once syntax and other runtime files have been fixed: add "set cp" to
|
||||
check.vim. Use a function to run both with 'cp' and 'nocp'.
|
||||
|
||||
Repeating search history entries. (Edwin Steiner, 2012 Jan 17)
|
||||
Jan 18: Caused by patch 7.3.265?
|
||||
|
||||
Patch for '$' not being displayed for a change when 'cpoptions' contains "$".
|
||||
(Yasuhiro Matsumoto, 2012 Jan 28, patch by Hideki EIRAKU and Hirohito Higashi)
|
||||
|
||||
Patch to speed up readfile(). (John Little, 2012 Feb 1)
|
||||
Adjustment by Charles Peacech, Feb 3.
|
||||
8 When editing a file with extremely long lines (e.g., an executable), the
|
||||
"linerest" in readfile() is allocated twice to be able to copy what was
|
||||
read so far. Use realloc() instead? Or split the line when allocating
|
||||
memory fails and "linerest" is big (> 100000)?
|
||||
|
||||
Patch to fix a crash when an xpm file is invalid. (Dave Bodenstab, 2012 Jan
|
||||
27)
|
||||
|
||||
Hang in using VimEnter. (Alex Efros, 2012 Jan 14)
|
||||
|
||||
Patch for behavior of "." in compatible mode. (Yasuhiro Matsumoto, patch by
|
||||
Hideki EIRAKU, 2012 Jan 28)
|
||||
|
||||
":cd" doesn't work when current directory path contains wildcards.
|
||||
finddir() has the same problem. (Yukihiro Nakadaira, 2012 Jan 10)
|
||||
GTK: problem with 'L' in 'guioptions' changing the window width.
|
||||
(Aaron Cornelius, 2012 Feb 6)
|
||||
|
||||
Win32: When a directory name contains an exclamation mark, completion doesn't
|
||||
complete the contents of the directory. No escaping for the "!"? (Jan
|
||||
Stocker, 2012 Jan 5)
|
||||
|
||||
Patch to add support for Solaris ZFS ACLs. (Danek Duvall, 2012 Jan 13)
|
||||
|
||||
Patch to make continued lines work faster. (Yasuhiro Matsumoto, 2012 Jan 11)
|
||||
|
||||
Also an idea to make join() faster. (Yasuhiro Matsumoto, 2012 Jan 11)
|
||||
Another one from Taro Muraoka, 2012 Jan 12.
|
||||
|
||||
":doau" says it triggers modeline. Should this only happen for events used
|
||||
when loading a buffer? (Kana Natsuno, 2011 Nov 7)
|
||||
|
||||
Patch for compiler warnings in if_perl. (James McCoy, 2011 Jan 30)
|
||||
|
||||
Patch for X selection conversion. (Alex Efros, 2012 Jan 24)
|
||||
|
||||
Patch to make 'shcf' default work better. (Benjamin Fritz, 2011 Nov 18)
|
||||
Win32: When 'shell' is cmd.exe this command fails:
|
||||
echo system('"c:/path/echo.exe" "foo bar"')
|
||||
Should we set the default for 'shellxquote' to a double quote, when 'shell'
|
||||
contains "cmd" in the tail? (Benjamin Fritz, 2008 Oct 13)
|
||||
Also set 'shellcmdflag' to include /s.
|
||||
|
||||
Other way to start Mzscheme. Tim Brown, 2011 Oct 5: change main call.
|
||||
Later patch by Sergey Khorev, 2011 Oct 9.
|
||||
|
||||
Patch to allow ! for :all and :sall, as documented. (Hirohito Higashi, 2012
|
||||
Jan 30)
|
||||
|
||||
Patch for "tab drop hoge" moving current window. (Higashi, 2012 Jan 31)
|
||||
":tab drop buffer.c" always opens a new tab, also if buffer.c is already in an
|
||||
open window. (Herb Sitz, 2011 Nov 17)
|
||||
@@ -153,6 +105,8 @@ Patch for using objcpp file type for headers files. Issue 44.
|
||||
Docs fix for v:register. (Ingo Karkat, 2011 Sep 26, 27)
|
||||
v:register doesn't work exactly as expected. (David Fishburn, 2011 Sep 20)
|
||||
|
||||
Patch for: vimgrep fails when 'autochdir' is set. (Ben Fritz, 2012 Feb 4)
|
||||
|
||||
Patch for: (Christian Brabandt, 2011 Aug 22)
|
||||
- Make it possible to enter "r<C-E>" and "r<C-Y>" (get character from line
|
||||
below/above).
|
||||
@@ -177,6 +131,10 @@ Patch Sep 18.
|
||||
Patch for has('unnamedplus') docs. (Tony Mechelynck, 2011 Sep 27)
|
||||
And one for gui_x11.txt.
|
||||
|
||||
":cd" doesn't work when current directory path contains "**".
|
||||
finddir() has the same problem. (Yukihiro Nakadaira, 2012 Jan 10)
|
||||
Requires a rewrite of the file_file_in_path code.
|
||||
|
||||
Problem with l: dictionary being locked in a function. (ZyX, 2011 Jul 21)
|
||||
|
||||
Issue 48: foldopen error can't be caught by try/catch
|
||||
@@ -184,6 +142,8 @@ Issue 48: foldopen error can't be caught by try/catch
|
||||
Patch to sort functions starting with '<' after others. Omit dict functions,
|
||||
they can't be called. (Yasuhiro Matsumoto, 2011 Oct 11)
|
||||
|
||||
Patch to pass list to or(), and() and xor(). (Yasuhiro Matsumoto, 2012 Feb 8)
|
||||
|
||||
Patch to improve "it" and "at" text object matching. (Christian Brabandt, 2011
|
||||
Nov 20)
|
||||
|
||||
@@ -628,6 +588,8 @@ Win32: Expanding 'path' runs into a maximum size limit. (bgold12, 2009 Nov 15)
|
||||
Win32: Patch for enabling quick edit mode in console. (Craig Barkhouse, 2010
|
||||
Sep 1)
|
||||
|
||||
Win32: Patch for using .png files for icons. (Charles Peacech, 2012 Feb 5)
|
||||
|
||||
Putting a Visual block while 'visualedit' is "all" does not leave the cursor
|
||||
on the first character. (John Beckett, 2010 Aug 7)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2012 Feb 03
|
||||
" Last Change: 2012 Feb 05
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -2546,7 +2546,7 @@ au BufNewFile,BufRead *.txt,*.text setf text
|
||||
runtime! ftdetect/*.vim
|
||||
|
||||
" NOTE: The above command could have ended the filetypedetect autocmd group
|
||||
" and started another one. Let's make sure it has ended to get to a consistant
|
||||
" and started another one. Let's make sure it has ended to get to a consistent
|
||||
" state.
|
||||
augroup END
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
" Vim ftplugin file
|
||||
" Language: Erlang
|
||||
" Author: Oscar Hellström <oscar@oscarh.net>
|
||||
" Contributors: Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
|
||||
" Author: Oscar Hellstr<EFBFBD>m <oscar@oscarh.net>
|
||||
" Contributors: Ricardo Catalinas Jim<EFBFBD>nez <jimenezrick@gmail.com>
|
||||
" Eduardo Lopez (http://github.com/tapichu)
|
||||
" License: Vim license
|
||||
" Version: 2011/11/21
|
||||
" Version: 2012/01/25
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
@@ -27,13 +27,10 @@ if !exists('g:erlang_folding')
|
||||
let g:erlang_folding = 0
|
||||
endif
|
||||
|
||||
" Local settings
|
||||
function s:SetErlangOptions()
|
||||
compiler erlang
|
||||
if version >= 700
|
||||
setlocal omnifunc=erlang_complete#Complete
|
||||
endif
|
||||
let s:erlang_fun_begin = '^\a\w*(.*$'
|
||||
let s:erlang_fun_end = '^[^%]*\.\s*\(%.*\)\?$'
|
||||
|
||||
function s:SetErlangOptions()
|
||||
if g:erlang_folding
|
||||
setlocal foldmethod=expr
|
||||
setlocal foldexpr=GetErlangFold(v:lnum)
|
||||
@@ -47,104 +44,35 @@ function s:SetErlangOptions()
|
||||
let &l:keywordprg = g:erlang_keywordprg
|
||||
endfunction
|
||||
|
||||
" Define folding functions
|
||||
if !exists('*GetErlangFold')
|
||||
" Folding params
|
||||
let s:erlang_fun_begin = '^\a\w*(.*$'
|
||||
let s:erlang_fun_end = '^[^%]*\.\s*\(%.*\)\?$'
|
||||
let s:erlang_blank_line = '^\s*\(%.*\)\?$'
|
||||
function GetErlangFold(lnum)
|
||||
let lnum = a:lnum
|
||||
let line = getline(lnum)
|
||||
|
||||
" Auxiliary fold functions
|
||||
function s:GetNextNonBlank(lnum)
|
||||
let lnum = nextnonblank(a:lnum + 1)
|
||||
let line = getline(lnum)
|
||||
while line =~ s:erlang_blank_line && 0 != lnum
|
||||
let lnum = nextnonblank(lnum + 1)
|
||||
let line = getline(lnum)
|
||||
endwhile
|
||||
return lnum
|
||||
endfunction
|
||||
if line =~ s:erlang_fun_end
|
||||
return '<1'
|
||||
endif
|
||||
|
||||
function s:GetFunName(str)
|
||||
return matchstr(a:str, '^\a\w*(\@=')
|
||||
endfunction
|
||||
if line =~ s:erlang_fun_begin && foldlevel(lnum - 1) == 1
|
||||
return '1'
|
||||
endif
|
||||
|
||||
function s:GetFunArgs(str, lnum)
|
||||
let str = a:str
|
||||
let lnum = a:lnum
|
||||
while str !~ '->\s*\(%.*\)\?$'
|
||||
let lnum = s:GetNextNonBlank(lnum)
|
||||
if 0 == lnum " EOF
|
||||
return ''
|
||||
endif
|
||||
let str .= getline(lnum)
|
||||
endwhile
|
||||
return matchstr(str,
|
||||
\ '\(^(\s*\)\@<=.*\(\s*)\(\s\+when\s\+.*\)\?\s\+->\s*\(%.*\)\?$\)\@=')
|
||||
endfunction
|
||||
if line =~ s:erlang_fun_begin
|
||||
return '>1'
|
||||
endif
|
||||
|
||||
function s:CountFunArgs(arguments)
|
||||
let pos = 0
|
||||
let ac = 0 " arg count
|
||||
let arguments = a:arguments
|
||||
|
||||
" Change list / tuples into just one A(rgument)
|
||||
let erlang_tuple = '{\([A-Za-z_,|=\-\[\]]\|\s\)*}'
|
||||
let erlang_list = '\[\([A-Za-z_,|=\-{}]\|\s\)*\]'
|
||||
return '='
|
||||
endfunction
|
||||
|
||||
" FIXME: Use searchpair?
|
||||
while arguments =~ erlang_tuple
|
||||
let arguments = substitute(arguments, erlang_tuple, 'A', 'g')
|
||||
endwhile
|
||||
" FIXME: Use searchpair?
|
||||
while arguments =~ erlang_list
|
||||
let arguments = substitute(arguments, erlang_list, 'A', 'g')
|
||||
endwhile
|
||||
|
||||
let len = strlen(arguments)
|
||||
while pos < len && pos > -1
|
||||
let ac += 1
|
||||
let pos = matchend(arguments, ',\s*', pos)
|
||||
endwhile
|
||||
return ac
|
||||
endfunction
|
||||
function ErlangFoldText()
|
||||
let line = getline(v:foldstart)
|
||||
let foldlen = v:foldend - v:foldstart + 1
|
||||
let lines = ' ' . foldlen . ' lines: ' . substitute(line, "[\ \t]*", '', '')
|
||||
if foldlen < 10
|
||||
let lines = ' ' . lines
|
||||
endif
|
||||
let retval = '+' . v:folddashes . lines
|
||||
|
||||
" Main fold function
|
||||
function GetErlangFold(lnum)
|
||||
let lnum = a:lnum
|
||||
let line = getline(lnum)
|
||||
|
||||
if line =~ s:erlang_fun_end
|
||||
return '<1'
|
||||
endif
|
||||
|
||||
if line =~ s:erlang_fun_begin && foldlevel(lnum - 1) == 1
|
||||
return '1'
|
||||
endif
|
||||
|
||||
if line =~ s:erlang_fun_begin
|
||||
return '>1'
|
||||
endif
|
||||
|
||||
return '='
|
||||
endfunction
|
||||
|
||||
" Erlang fold description (foldtext function)
|
||||
function ErlangFoldText()
|
||||
let foldlen = v:foldend - v:foldstart
|
||||
if 1 < foldlen
|
||||
let lines = 'lines'
|
||||
else
|
||||
let lines = 'line'
|
||||
endif
|
||||
let line = getline(v:foldstart)
|
||||
let name = s:GetFunName(line)
|
||||
let arguments = s:GetFunArgs(strpart(line, strlen(name)), v:foldstart)
|
||||
let argcount = s:CountFunArgs(arguments)
|
||||
let retval = '+' . v:folddashes . ' ' . name . '/' . argcount
|
||||
let retval .= ' (' . foldlen . ' ' . lines . ')'
|
||||
return retval
|
||||
endfunction
|
||||
endif
|
||||
return retval
|
||||
endfunction
|
||||
|
||||
call s:SetErlangOptions()
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
" Vim syntax file
|
||||
" Language: Bazaar (bzr) commit file
|
||||
" Maintainer: Dmitry Vasiliev <dima at hlabs dot spb dot ru>
|
||||
" URL: http://www.hlabs.spb.ru/vim/bzr.vim
|
||||
" Last Change: 2009-01-27
|
||||
" Maintainer: Dmitry Vasiliev <dima at hlabs dot org>
|
||||
" URL: https://github.com/hdima/vim-scripts/blob/master/syntax/bzr.vim
|
||||
" Last Change: 2012-02-11
|
||||
" Filenames: bzr_log.*
|
||||
" Version: 1.2.1
|
||||
" Version: 1.2.2
|
||||
"
|
||||
" Thanks:
|
||||
"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Lua 4.0, Lua 5.0, Lua 5.1 and Lua 5.2
|
||||
" Maintainer: Marcus Aurelius Farias <masserahguard-lua 'at' yahoo com>
|
||||
" First Author: Carlos Augusto Teixeira Mendes <cmendes 'at' inf puc-rio br>
|
||||
" Last Change: 2011 Dec 20
|
||||
" Last Change: 2012 Feb 07
|
||||
" Options: lua_version = 4 or 5
|
||||
" lua_subversion = 0 (4.0, 5.0) or 1 (5.1) or 2 (5.2)
|
||||
" default 5.2
|
||||
@@ -15,6 +15,9 @@ elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
if !exists("lua_version")
|
||||
" Default is lua 5.2
|
||||
let lua_version = 5
|
||||
@@ -358,4 +361,6 @@ endif
|
||||
|
||||
let b:current_syntax = "lua"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
" vim: et ts=8 sw=2
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: MS IDL (Microsoft dialect of Interface Description Language)
|
||||
" Maintainer: Vadim Zeitlin <vadim@wxwindows.org>
|
||||
" Last Change: 2003 May 11
|
||||
" Last Change: 2012 Feb 12 by Thilo Six
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
@@ -11,6 +11,9 @@ elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Misc basic
|
||||
syn match msidlId "[a-zA-Z][a-zA-Z0-9_]*"
|
||||
syn match msidlUUID "{\?[[:xdigit:]]\{8}-\([[:xdigit:]]\{4}-\)\{3}[[:xdigit:]]\{12}}\?"
|
||||
@@ -89,4 +92,6 @@ endif
|
||||
|
||||
let b:current_syntax = "msidl"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
" vi: set ts=8 sw=4:
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Andriy Sokolov <andriy145@gmail.com>
|
||||
" Original Author: Manuel M.H. Stol <Manuel.Stol@allieddata.nl>
|
||||
" Former Maintainer: Manuel M.H. Stol <Manuel.Stol@allieddata.nl>
|
||||
" Last Change: 2010 Sep 24
|
||||
" Last Change: 2012 Feb 7
|
||||
" NASM Home: http://www.nasm.us/
|
||||
|
||||
|
||||
@@ -48,14 +48,14 @@ syn cluster nasmGrpComments contains=@nasmGrpInComments,nasmComment,nasmSpecialC
|
||||
" in NASM: 'Everything is a Label'
|
||||
" Definition Label = label defined by %[i]define or %[i]assign
|
||||
" Identifier Label = label defined as first non-keyword on a line or %[i]macro
|
||||
syn match nasmLabelError "$\=\(\d\+\K\|[#\.@]\|\$\$\k\)\k*\>"
|
||||
syn match nasmLabelError "$\=\(\d\+\K\|[#.@]\|\$\$\k\)\k*\>"
|
||||
syn match nasmLabel "\<\(\h\|[?@]\)\k*\>"
|
||||
syn match nasmLabel "[\$\~]\(\h\|[?@]\)\k*\>"lc=1
|
||||
" Labels starting with one or two '.' are special
|
||||
syn match nasmLocalLabel "\<\.\(\w\|[#$?@~]\)\k*\>"
|
||||
syn match nasmLocalLabel "\<\$\.\(\w\|[#$?@~]\)\k*\>"ms=s+1
|
||||
if !exists("nasm_no_warn")
|
||||
syn match nasmLabelWarn "\<\~\=\$\=[_\.][_\.\~]*\>"
|
||||
syn match nasmLabelWarn "\<\~\=\$\=[_.][_.\~]*\>"
|
||||
endif
|
||||
if exists("nasm_loose_syntax")
|
||||
syn match nasmSpecialLabel "\<\.\.@\k\+\>"
|
||||
@@ -92,7 +92,6 @@ syn keyword nasmFltNumber Inf Infinity Indefinite NaN SNaN QNaN
|
||||
syn match nasmNumberError "\<\~\s*\d\+\.\d*\(e[+-]\=\d\+\)\=\>"
|
||||
|
||||
|
||||
|
||||
" Netwide Assembler Storage Directives:
|
||||
" Storage types
|
||||
syn keyword nasmTypeError DF EXTRN FWORD RESF TBYTE
|
||||
@@ -181,7 +180,7 @@ if exists("nasm_ctx_outside_macro")
|
||||
syn region nasmPreConditDef transparent matchgroup=nasmCtxPreCondit start="^\s*%ifnctx\>"hs=e-6 start="^\s*%ifctx\>"hs=e-5 end="%endif\>" contains=@nasmGrpCntnPreCon
|
||||
syn match nasmCtxPreProc "^\s*%pop\>"hs=e-3
|
||||
if exists("nasm_loose_syntax")
|
||||
syn match nasmCtxLocLabel "%$\+\(\w\|[#\.?@~]\)\k*\>"
|
||||
syn match nasmCtxLocLabel "%$\+\(\w\|[#.?@~]\)\k*\>"
|
||||
else
|
||||
syn match nasmCtxLocLabel "%$\+\(\h\|[?@]\)\k*\>"
|
||||
endif
|
||||
@@ -249,10 +248,10 @@ syn match nasmRegisterError "\<X\=MM[8-9]\>"
|
||||
syn match nasmRegisterError "\<ST\((\d)\|[8-9]\>\)"
|
||||
syn match nasmRegisterError "\<E\([A-D][HL]\|[C-GS]S\)\>"
|
||||
" Memory reference operand (address):
|
||||
syn match nasmMemRefError "[\[\]]"
|
||||
syn match nasmMemRefError "[[\]]"
|
||||
syn cluster nasmGrpCntnMemRef contains=ALLBUT,@nasmGrpComments,@nasmGrpPreProcs,@nasmGrpInStrucs,nasmMemReference,nasmMemRefError
|
||||
syn match nasmInMacMemRef contained "\[[^;\[\]]\{-}\]" contains=@nasmGrpCntnMemRef,nasmPreProcError,nasmInMacLabel,nasmInMacLblWarn,nasmInMacParam
|
||||
syn match nasmMemReference "\[[^;\[\]]\{-}\]" contains=@nasmGrpCntnMemRef,nasmPreProcError,nasmCtxLocLabel
|
||||
syn match nasmInMacMemRef contained "\[[^;[\]]\{-}\]" contains=@nasmGrpCntnMemRef,nasmPreProcError,nasmInMacLabel,nasmInMacLblWarn,nasmInMacParam
|
||||
syn match nasmMemReference "\[[^;[\]]\{-}\]" contains=@nasmGrpCntnMemRef,nasmPreProcError,nasmCtxLocLabel
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
" Vim syntax file
|
||||
"
|
||||
" Language: NATURAL
|
||||
" Version: 2.1.0.3
|
||||
" Version: 2.1.0.5
|
||||
" Maintainer: Marko von Oppen <marko@von-oppen.com>
|
||||
" Last Changed: 2008-07-29 01:40:52
|
||||
" Last Changed: 2012-02-05 18:50:43
|
||||
" Support: http://www.von-oppen.com/
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
@@ -17,6 +17,9 @@ else
|
||||
setlocal iskeyword+=-,*,#,+,_,/
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" NATURAL is case insensitive
|
||||
syntax case ignore
|
||||
|
||||
@@ -206,4 +209,7 @@ endif
|
||||
|
||||
let b:current_syntax = "natural"
|
||||
|
||||
" vim:set ts=8 sw=8 noet ft=vim:
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim:set ts=8 sw=8 noet ft=vim list:
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
" Vim syntax file
|
||||
" Language: RCS file
|
||||
" Maintainer: Dmitry Vasiliev <dima at hlabs dot spb dot ru>
|
||||
" URL: http://www.hlabs.spb.ru/vim/rcs.vim
|
||||
" Revision: $Id: rcs.vim,v 1.2 2006/03/27 16:41:00 vimboss Exp $
|
||||
" Maintainer: Dmitry Vasiliev <dima at hlabs dot org>
|
||||
" URL: https://github.com/hdima/vim-scripts/blob/master/syntax/rcs.vim
|
||||
" Last Change: 2012-02-11
|
||||
" Filenames: *,v
|
||||
" Version: 1.11
|
||||
" Version: 1.12
|
||||
|
||||
" Options:
|
||||
" rcs_folding = 1 For folding strings
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
" Vim syntax file
|
||||
" Language: Scheme (R5RS + some R6RS extras)
|
||||
" Last Change: 2009 Nov 27
|
||||
" Last Change: 2012 Feb 04
|
||||
" Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
||||
" Original author: Dirk van Deun <dirk@igwe.vub.ac.be>
|
||||
|
||||
" This script incorrectly recognizes some junk input as numerals:
|
||||
" parsing the complete system of Scheme numerals using the pattern
|
||||
" language is practically impossible: I did a lax approximation.
|
||||
|
||||
|
||||
" MzScheme extensions can be activated with setting is_mzscheme variable
|
||||
|
||||
" Suggestions and bug reports are solicited by the author.
|
||||
@@ -22,6 +22,9 @@ elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn case ignore
|
||||
|
||||
" Fascist highlighting: everything that doesn't fit the rules is an error...
|
||||
@@ -117,7 +120,7 @@ syn keyword schemeFunc hashtable? hashtable-size hashtable-ref hashtable-set!
|
||||
syn keyword schemeFunc hashtable-delete! hashtable-contains? hashtable-update!
|
||||
syn keyword schemeFunc hashtable-copy hashtable-clear! hashtable-keys
|
||||
syn keyword schemeFunc hashtable-entries hashtable-equivalence-function hashtable-hash-function
|
||||
syn keyword schemeFunc hashtable-mutable? equal-hash string-hash string-ci-hash symbol-hash
|
||||
syn keyword schemeFunc hashtable-mutable? equal-hash string-hash string-ci-hash symbol-hash
|
||||
syn keyword schemeFunc find for-all exists filter partition fold-left fold-right
|
||||
syn keyword schemeFunc remp remove remv remq memp assp cons*
|
||||
|
||||
@@ -207,7 +210,7 @@ if exists("b:is_mzscheme") || exists("is_mzscheme")
|
||||
syn keyword schemeExtSyntax free-identifier=? bound-identifier=? module-identifier=? syntax-object->datum
|
||||
syn keyword schemeExtSyntax datum->syntax-object
|
||||
syn keyword schemeExtSyntax let-values let*-values letrec-values set!-values fluid-let parameterize begin0
|
||||
syn keyword schemeExtSyntax error raise opt-lambda define-values unit unit/sig define-signature
|
||||
syn keyword schemeExtSyntax error raise opt-lambda define-values unit unit/sig define-signature
|
||||
syn keyword schemeExtSyntax invoke-unit/sig define-values/invoke-unit/sig compound-unit/sig import export
|
||||
syn keyword schemeExtSyntax link syntax quasisyntax unsyntax with-syntax
|
||||
|
||||
@@ -231,7 +234,7 @@ if exists("b:is_mzscheme") || exists("is_mzscheme")
|
||||
syn keyword schemeExtFunc exn:i/o:tcp? exn:i/o:udp? exn:misc? exn:misc:application? exn:misc:unsupported? exn:module? exn:read? exn:read:non-char?
|
||||
syn keyword schemeExtFunc exn:special-comment? exn:syntax? exn:thread? exn:user? exn:variable? exn:application:mismatch?
|
||||
" Command-line parsing
|
||||
syn keyword schemeExtFunc command-line current-command-line-arguments once-any help-labels multi once-each
|
||||
syn keyword schemeExtFunc command-line current-command-line-arguments once-any help-labels multi once-each
|
||||
|
||||
" syntax quoting, unquoting and quasiquotation
|
||||
syn region schemeUnquote matchgroup=Delimiter start="#," end=![ \t\[\]()";]!me=e-1 contains=ALL
|
||||
@@ -263,7 +266,7 @@ if exists("b:is_chicken") || exists("is_chicken")
|
||||
|
||||
" here-string
|
||||
syn region schemeString start=+#<<\s*\z(.*\)+ end=+^\z1$+
|
||||
|
||||
|
||||
if filereadable(expand("<sfile>:p:h")."/cpp.vim")
|
||||
unlet! b:current_syntax
|
||||
syn include @ChickenC <sfile>:p:h/cpp.vim
|
||||
@@ -282,7 +285,7 @@ if exists("b:is_chicken") || exists("is_chicken")
|
||||
|
||||
" suggested by Alex Queiroz
|
||||
syn match schemeExtSyntax "#![-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
|
||||
syn region schemeString start=+#<#\s*\z(.*\)+ end=+^\z1$+
|
||||
syn region schemeString start=+#<#\s*\z(.*\)+ end=+^\z1$+
|
||||
endif
|
||||
|
||||
" Synchronization and the wrapping up...
|
||||
@@ -322,3 +325,6 @@ if version >= 508 || !exists("did_scheme_syntax_inits")
|
||||
endif
|
||||
|
||||
let b:current_syntax = "scheme"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
"SiSU Vim syntax file
|
||||
"SiSU Maintainer: Ralph Amissah <ralph@amissah.com>
|
||||
"SiSU Markup: SiSU (sisu-2.0.1, 2010-03-17)
|
||||
" SiSU Vim syntax file
|
||||
" SiSU Maintainer: Ralph Amissah <ralph@amissah.com>
|
||||
" SiSU Markup: SiSU (sisu-3.1.0)
|
||||
" Last Change: 2011-10-03
|
||||
" URL: <http://git.sisudoc.org/?p=code/sisu.git;a=blob;f=data/sisu/v3/conf/editor-syntax-etc/vim/syntax/sisu.vim;hb=HEAD>
|
||||
"(originally looked at Ruby Vim by Mirko Nasato)
|
||||
|
||||
if version < 600
|
||||
@@ -9,15 +11,23 @@ elseif exists("b:current_syntax")
|
||||
finish
|
||||
else
|
||||
endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Errors:
|
||||
"% "Errors:
|
||||
syn match sisu_error contains=sisu_link,sisu_error_wspace "<![^ei]\S\+!>"
|
||||
|
||||
" Markers Identifiers:
|
||||
"% "Markers Identifiers:
|
||||
if !exists("sisu_no_identifiers")
|
||||
syn match sisu_mark_endnote "\~^"
|
||||
syn match sisu_break contains=@NoSpell " \\\\\( \|$\)"
|
||||
syn match sisu_break contains=@NoSpell "<br>\|<br />"
|
||||
syn match sisu_control contains=@NoSpell "<:p[bn]>"
|
||||
syn match sisu_control contains=@NoSpell "^<:p[bn]>\s*$"
|
||||
"syn match sisu_control contains=@NoSpell "^<\(br\)\?:\(pg\|pgn\|pn\)>\s*$"
|
||||
"syn match sisu_control contains=@NoSpell "^\[\(br\)\?:\(pg\|pgn\|pn\)\]\s*$"
|
||||
syn match sisu_control contains=@NoSpell "^<:\(bo\|---\)>\s*$"
|
||||
"syn match sisu_control contains=@NoSpell "^<\(br\)\?:\(pr\|o\)>\s*$"
|
||||
"syn match sisu_control contains=@NoSpell "^\[\(br\)\?:\(pr\|o\)\]\s*$"
|
||||
syn match sisu_marktail "[~-]#"
|
||||
syn match sisu_control "\""
|
||||
syn match sisu_underline "\(^\| \)_[a-zA-Z0-9]\+_\([ .,]\|$\)"
|
||||
@@ -28,14 +38,18 @@ if !exists("sisu_no_identifiers")
|
||||
syn match sisu_require contains=@NoSpell "^<<\s*[a-zA-Z0-9^._-]\+\.ss[it]$"
|
||||
syn match sisu_require contains=@NoSpell "^<<{[a-zA-Z0-9^._-]\+\.ss[it]}$"
|
||||
syn match sisu_structure "^:A\~$"
|
||||
syn match sisu_sub_header_title "^\s\+:\(subtitle\|short\|edition\|language\|note\):\s" "group=sisu_header_content
|
||||
syn match sisu_sub_header_creator "^\s\+:\(author\|translator\|illustrator\|photographer\|audio\|digitized_by\|prepared_by\):\s"
|
||||
syn match sisu_sub_header_rights "^\s\+:\(copyright\|text\|translation\|illustrations\|photographs\|audio\|digitization\|license\|all\):\s" "access_rights license
|
||||
syn match sisu_sub_header_classify "^\s\+:\(type\|subject\|topic_register\|keywords\|coverage\|relation\|format\|identifier\|isbn\|dewey\|loc\|pg\):\s"
|
||||
syn match sisu_sub_header_dates "^\s\+:\(published\|available\|created\|issued\|valid\|modified\|added_to_site\|translated\|original_publication\):\s"
|
||||
syn match sisu_sub_header_original "^\s\+:\(publisher\|date\|language\|institution\|nationality\|source\):\s"
|
||||
syn match sisu_sub_header_make "^\s\+:\(headings\|num_top\|breaks\|italics\|bold\|skin\|stamp\|promo\|ad\|manpage\):\s"
|
||||
syn match sisu_sub_header_notes "^\s\+:\(comment\|abstract\|description\|history\|prefix\|prefix_[ab]\):\s"
|
||||
|
||||
"% "Document Sub Headers:
|
||||
syn match sisu_sub_header_title "^\s\+:\(subtitle\|short\|edition\|language\|lang_char\|note\):\s" "group=sisu_header_content
|
||||
syn match sisu_sub_header_creator "^\s\+:\(author\|editor\|contributor\|illustrator\|photographer\|translator\|digitized_by\|prepared_by\|audio\|video\):\s" " &hon &institution
|
||||
syn match sisu_sub_header_rights "^\s\+:\(copyright\|text\|translation\|illustrations\|photographs\|preparation\|digitization\|audio\|video\|license\|all\):\s" " access_rights license
|
||||
syn match sisu_sub_header_classify "^\s\+:\(topic_register\|coverage\|format\|identifier\|keywords\|relation\|subject\|type\|dewey\|loc\|oclc\|pg\|isbn\):\s"
|
||||
syn match sisu_sub_header_date "^\s\+:\(added_to_site\|available\|created\|issued\|modified\|published\|valid\|translated\|original_publication\):\s"
|
||||
syn match sisu_sub_header_original "^\s\+:\(publisher\|date\|language\|lang_char\|institution\|nationality\|source\):\s"
|
||||
syn match sisu_sub_header_make "^\s\+:\(headings\|num_top\|breaks\|language\|italics\|bold\|emphasis\|plaintext_wrap\|texpdf_font_mono\|texpdf_font\|skin\|stamp\|promo\|ad\|manpage\):\s"
|
||||
syn match sisu_sub_header_notes "^\s\+:\(abstract\|comment\|description\|history\|prefix\|prefix_[ab]\|suffix\):\s"
|
||||
|
||||
"% "semantic markers: (ignore)
|
||||
syn match sisu_sem_marker ";{\|};[a-z._]*[a-z]"
|
||||
syn match sisu_sem_marker_block "\([a-z][a-z._]*\|\):{\|}:[a-z._]*[a-z]"
|
||||
syn match sisu_sem_ex_marker ";\[\|\];[a-z._]*[a-z]"
|
||||
@@ -46,80 +60,126 @@ if !exists("sisu_no_identifiers")
|
||||
syn match sisu_sem_ex_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker ";\[[^}].\{-}\];[a-z]\+"
|
||||
endif
|
||||
|
||||
"URLs Numbers And ASCII Codes:
|
||||
"% "URLs Numbers And ASCII Codes:
|
||||
syn match sisu_number "\<\(0x\x\+\|0b[01]\+\|0\o\+\|0\.\d\+\|0\|[1-9][\.0-9_]*\)\>"
|
||||
syn match sisu_number "?\(\\M-\\C-\|\\c\|\\C-\|\\M-\)\=\(\\\o\{3}\|\\x\x\{2}\|\\\=\w\)"
|
||||
|
||||
"Tuned Error: (is error if not already matched)
|
||||
"% "Tuned Error: (is error if not already matched)
|
||||
syn match sisu_error contains=sisu_error "[\~/\*!_]{\|}[\~/\*!_]"
|
||||
syn match sisu_error contains=sisu_error "<a href\|</a>]"
|
||||
|
||||
"Simple Paired Enclosed Markup:
|
||||
"% "Simple Paired Enclosed Markup:
|
||||
"url/link
|
||||
syn region sisu_link contains=sisu_error,sisu_error_wspace matchgroup=sisu_action start="^<<\s*|[a-zA-Z0-9^._-]\+|@|[a-zA-Z0-9^._-]\+|"rs=s+2 end="$"
|
||||
"header
|
||||
|
||||
"% "Document Header:
|
||||
" title
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_title matchgroup=sisu_header start="^[@]title:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
" creator
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_creator matchgroup=sisu_header start="^[@]creator:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_rights matchgroup=sisu_header start="^[@]rights:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_classify matchgroup=sisu_header start="^[@]classify:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_dates matchgroup=sisu_header start="^[@]date:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_make matchgroup=sisu_header start="^[@]make:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
" dates
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_date matchgroup=sisu_header start="^[@]date:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
" publisher
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_publisher matchgroup=sisu_header start="^[@]publisher:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_notes matchgroup=sisu_header start="^[@]notes:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
" rights
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_rights matchgroup=sisu_header start="^[@]rights:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
" classify document
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_classify matchgroup=sisu_header start="^[@]classify:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
" original language (depreciated)
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_original matchgroup=sisu_header start="^[@]original:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_source matchgroup=sisu_header start="^[@]source:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
" notes
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_notes matchgroup=sisu_header start="^[@]notes:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
" links of interest
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_linked,sisu_sub_header_links matchgroup=sisu_header start="^[@]links:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
"headings
|
||||
syn region sisu_heading contains=sisu_mark_endnote,sisu_content_endnote,sisu_marktail,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_ocn,sisu_error,sisu_error_wspace matchgroup=sisu_structure start="^\([1-8]\|:\?[A-C]\)\~\(\S\+\|[^-]\)" end="$"
|
||||
"grouped text
|
||||
syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^table{.\+" end="}table"
|
||||
syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^{\(t\|table\)\(\~h\)\?\(\sc[0-9]\+;\)\?[0-9; ]*}" end="\n$"
|
||||
syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^\(alt\|group\|poem\){" end="^}\(alt\|group\|poem\)"
|
||||
" make, processing instructions
|
||||
syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_make matchgroup=sisu_header start="^[@]make:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$"
|
||||
|
||||
"% "Headings:
|
||||
syn region sisu_heading contains=sisu_mark_endnote,sisu_content_endnote,sisu_marktail,sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_ocn,sisu_error,sisu_error_wspace matchgroup=sisu_structure start="^\([1-8]\|:\?[A-C]\)\~\(\S\+\|[^-]\)" end="$"
|
||||
|
||||
"% "Block Group Text:
|
||||
" table
|
||||
syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^table{.\+" end="}table"
|
||||
" table
|
||||
syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^{\(t\|table\)\(\~h\)\?\(\sc[0-9]\+;\)\?[0-9; ]*}" end="\n$"
|
||||
" block, group, poem, alt
|
||||
syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^\(block\|group\|poem\|alt\){" end="^}\(block\|group\|poem\|alt\)"
|
||||
" code
|
||||
syn region sisu_content_alt contains=sisu_error matchgroup=sisu_contain start="^code{" end="^}code"
|
||||
"endnotes
|
||||
syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker matchgroup=sisu_mark_endnote start="\~{[*+]*" end="}\~" skip="\n"
|
||||
syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker matchgroup=sisu_mark_endnote start="\~\[[*+]*" end="\]\~" skip="\n"
|
||||
syn region sisu_content_endnote contains=sisu_strikeout,sisu_number,sisu_control,sisu_link,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\^\~" end="\n$"
|
||||
"links and images
|
||||
syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_sem_block,sisu_error matchgroup=sisu_link start="{\(\~^\s\)\?" end="}\(https\?:/\/\|\.\./\)\S\+" oneline
|
||||
syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_sem_block,sisu_error matchgroup=sisu_link start="{\(\~^\s\)\?" end="\[[1-5][sS]*\]}\S\+\.ss[tm]" oneline
|
||||
syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_link start="{" end="}image" oneline
|
||||
"some line operations
|
||||
syn region sisu_control contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_error,sisu_error_wspace matchgroup=sisu_control start="\(\(^\| \)!_ \|<:b>\)" end="$"
|
||||
syn region sisu_normal contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_\([1-9*]\|[1-9]\*\) " end="$"
|
||||
|
||||
"% "Endnotes:
|
||||
" regular endnote or asterisk or plus sign endnote
|
||||
syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker matchgroup=sisu_mark_endnote start="\~{[*+]*" end="}\~" skip="\n"
|
||||
" numbered asterisk or plus sign endnote
|
||||
syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker matchgroup=sisu_mark_endnote start="\~\[[*+]*" end="\]\~" skip="\n"
|
||||
" endnote content marker (for binary content marking)
|
||||
syn region sisu_content_endnote contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_link,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\^\~" end="\n$"
|
||||
|
||||
"% "Links And Images:
|
||||
" image with url link (and possibly footnote of url)
|
||||
syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_sem_block,sisu_error matchgroup=sisu_link start="{\(\~^\s\)\?" end="}\(https\?:/\/\|:\|\.\.\/\|#\)\S\+" oneline
|
||||
" sisu outputs, short notation
|
||||
syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_sem_block,sisu_error matchgroup=sisu_link start="{\(\~^\s\)\?" end="\[[1-5][sS]*\]}\S\+\.ss[tm]" oneline
|
||||
" image
|
||||
syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_link start="{" end="}image" oneline
|
||||
|
||||
"% "Some Line Operations:
|
||||
" bold line
|
||||
syn region sisu_bold contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^!_ " end=" \\\\\|$"
|
||||
" indent and bullet paragraph
|
||||
syn region sisu_normal contains=sisu_fontface,sisu_bold,sisu_control,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_\([1-9*]\|[1-9]\*\) " end="$"
|
||||
" indent and bullet (bold start) paragraph
|
||||
syn region sisu_bold contains=sisu_fontface,sisu_bold,sisu_control,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_\([1-9*]\|[1-9]\*\)!_\? " end=" \\\\\|$"
|
||||
" hanging indent paragraph [proposed]
|
||||
syn region sisu_normal contains=sisu_fontface,sisu_bold,sisu_control,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_[0-9]\?_[0-9] " end="$"
|
||||
" hanging indent (bold start/ definition) paragraph [proposed]
|
||||
syn region sisu_bold contains=sisu_fontface,sisu_bold,sisu_control,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_[0-9]\?_[0-9]!_\? " end=" \\\\\|$"
|
||||
" list numbering
|
||||
syn region sisu_normal contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^\(#[ 1]\|_# \)" end="$"
|
||||
"font face curly brackets
|
||||
|
||||
"% "Font Face Curly Brackets:
|
||||
"syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_sem start="\S\+:{" end="}:[^<>,.!?:; ]\+" oneline
|
||||
" book index:
|
||||
syn region sisu_index matchgroup=sisu_index_block start="^={" end="}"
|
||||
syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="\*{" end="}\*"
|
||||
syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="!{" end="}!"
|
||||
syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="_{" end="}_"
|
||||
syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="/{" end="}/"
|
||||
syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="+{" end="}+"
|
||||
syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="\^{" end="}\^"
|
||||
syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start=",{" end="},"
|
||||
" emphasis:
|
||||
syn region sisu_bold contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="\*{" end="}\*"
|
||||
" bold:
|
||||
syn region sisu_bold contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="!{" end="}!"
|
||||
" underscore:
|
||||
syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="_{" end="}_"
|
||||
" italics:
|
||||
syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="/{" end="}/"
|
||||
" added:
|
||||
syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="+{" end="}+"
|
||||
" superscript:
|
||||
syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="\^{" end="}\^"
|
||||
" subscript:
|
||||
syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start=",{" end="},"
|
||||
" monospace:
|
||||
syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="#{" end="}#"
|
||||
" strikethrough:
|
||||
syn region sisu_strikeout contains=sisu_error matchgroup=sisu_fontface start="-{" end="}-"
|
||||
syn region sisu_html contains=sisu_error contains=sisu_strikeout matchgroup=sisu_contain start="<a href=\".\{-}\">" end="</a>" oneline
|
||||
"single words bold italicise etc. "workon
|
||||
syn region sisu_control contains=sisu_error matchgroup=sisu_control start="\([ (]\|^\)\*[^\|{\n\~\\]"hs=e-1 end="\*"he=e-0 skip="[a-zA-Z0-9']" oneline
|
||||
|
||||
"% "Single Words Bold Italicise Etc: (depreciated)
|
||||
syn region sisu_bold contains=sisu_error matchgroup=sisu_bold start="\([ (]\|^\)\*[^\|{\n\~\\]"hs=e-1 end="\*"he=e-0 skip="[a-zA-Z0-9']" oneline
|
||||
syn region sisu_identifier contains=sisu_error matchgroup=sisu_content_alt start="\([ ]\|^\)/[^{ \|\n\\]"hs=e-1 end="/\[ \.\]" skip="[a-zA-Z0-9']" oneline
|
||||
"misc
|
||||
syn region sisu_identifier contains=sisu_error matchgroup=sisu_fontface start="\^[^ {\|\n\\]"rs=s+1 end="\^[ ,.;:'})\\\n]" skip="[a-zA-Z0-9']" oneline
|
||||
|
||||
"Expensive Mode:
|
||||
"% "Expensive Mode:
|
||||
if !exists("sisu_no_expensive")
|
||||
else " not Expensive
|
||||
syn region sisu_content_alt matchgroup=sisu_control start="^\s*def\s" matchgroup=NONE end="[?!]\|\>" skip="\.\|\(::\)" oneline
|
||||
endif " Expensive?
|
||||
|
||||
"Headers And Headings: (Document Instructions)
|
||||
"% "Headers And Headings: (Document Instructions)
|
||||
syn match sisu_control contains=sisu_error,sisu_error_wspace "4\~! \S\+"
|
||||
syn region sisu_markpara contains=sisu_error,sisu_error_wspace start="^=begin" end="^=end.*$"
|
||||
|
||||
"Errors:
|
||||
"% "Errors:
|
||||
syn match sisu_error_wspace contains=sisu_error_wspace "^\s\+[^:]"
|
||||
syn match sisu_error_wspace contains=sisu_error_wspace "\s\s\+"
|
||||
syn match sisu_error_wspace contains=sisu_error_wspace " \s*$"
|
||||
syn match sisu_error_wspace contains=sisu_error_wspace "\s\+$"
|
||||
syn match sisu_error contains=sisu_error_wspace "\t\+"
|
||||
syn match sisu_error contains=sisu_error,sisu_error_wspace "\([^ (][_\\]\||[^ (}]\)https\?:\S\+"
|
||||
syn match sisu_error contains=sisu_error "_\?https\?:\S\+[}><]"
|
||||
@@ -140,37 +200,37 @@ syn match sisu_error contains=sisu_error "<dir>"
|
||||
syn match sisu_error contains=sisu_error,sisu_match,sisu_strikeout,sisu_contain,sisu_content_alt,sisu_mark,sisu_break,sisu_number "<[a-zA-Z\/]\+>"
|
||||
syn match sisu_error "/\?<\([biu]\)>[^(</\1>)]\{-}\n$"
|
||||
|
||||
"Error Exceptions:
|
||||
"% "Error Exceptions:
|
||||
syn match sisu_control "\n$" "contains=ALL
|
||||
syn match sisu_control " //"
|
||||
"syn match sisu_control " //"
|
||||
syn match sisu_error "%{"
|
||||
syn match sisu_error "<br>_\?https\?:\S\+\|_\?https\?:\S\+<br>"
|
||||
syn match sisu_error "[><]_\?https\?:\S\+\|_\?https\?:\S\+[><]"
|
||||
syn match sisu_comment "^%\{1,2\}.\+"
|
||||
|
||||
"Definitions Default Highlighting:
|
||||
"% "Definitions Default Highlighting:
|
||||
hi def link sisu_normal Normal
|
||||
hi def link sisu_bold Statement
|
||||
hi def link sisu_header PreProc
|
||||
hi def link sisu_header_content Normal
|
||||
hi def link sisu_sub_header_title Statement
|
||||
hi def link sisu_sub_header_creator Statement
|
||||
hi def link sisu_sub_header_date Statement
|
||||
hi def link sisu_sub_header_publisher Statement
|
||||
hi def link sisu_sub_header_rights Statement
|
||||
hi def link sisu_sub_header_classify Statement
|
||||
hi def link sisu_sub_header_dates Statement
|
||||
hi def link sisu_sub_header_make Statement
|
||||
hi def link sisu_sub_header_links Statement
|
||||
hi def link sisu_sub_header_publisher Statement
|
||||
hi def link sisu_sub_header_notes Statement
|
||||
hi def link sisu_sub_header_original Statement
|
||||
hi def link sisu_sub_header_source Statement
|
||||
hi def link sisu_sub_header_links Statement
|
||||
hi def link sisu_sub_header_notes Statement
|
||||
hi def link sisu_sub_header_make Statement
|
||||
hi def link sisu_heading Title
|
||||
hi def link sisu_structure Operator
|
||||
hi def link sisu_contain Include
|
||||
hi def link sisu_mark_endnote Include
|
||||
hi def link sisu_mark_endnote Delimiter
|
||||
hi def link sisu_require NonText
|
||||
hi def link sisu_link NonText
|
||||
hi def link sisu_linked String
|
||||
hi def link sisu_fontface Include
|
||||
hi def link sisu_fontface Delimiter
|
||||
hi def link sisu_strikeout DiffDelete
|
||||
hi def link sisu_content_alt Special
|
||||
hi def link sisu_sem_content SpecialKey
|
||||
@@ -186,7 +246,7 @@ hi def link sisu_sem_ex_block Comment
|
||||
hi def link sisu_index SpecialKey
|
||||
hi def link sisu_index_block Visual
|
||||
hi def link sisu_content_endnote Special
|
||||
hi def link sisu_control Define
|
||||
hi def link sisu_control Delimiter
|
||||
hi def link sisu_ocn Include
|
||||
hi def link sisu_number Number
|
||||
hi def link sisu_identifier Function
|
||||
@@ -202,3 +262,5 @@ hi def link sisu_error_sem_marker Error
|
||||
hi def link sisu_error_wspace Error
|
||||
hi def link sisu_error Error
|
||||
let b:current_syntax = "sisu"
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Smalltalk
|
||||
" Maintainer: Arndt Hesse <hesse@self.de>
|
||||
" Last Change: 2001 May 09
|
||||
" Last Change: 2012 Feb 12 by Thilo Six
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
@@ -11,6 +11,9 @@ elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" some Smalltalk keywords and standard methods
|
||||
syn keyword stKeyword super self class true false new not
|
||||
syn keyword stKeyword notNil isNil inspect out nil
|
||||
@@ -100,3 +103,6 @@ if version >= 508 || !exists("did_st_syntax_inits")
|
||||
endif
|
||||
|
||||
let b:current_syntax = "st"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
" Vim syntax file
|
||||
" Language: Subversion (svn) commit file
|
||||
" Maintainer: Dmitry Vasiliev <dima at hlabs dot spb dot ru>
|
||||
" URL: http://www.hlabs.spb.ru/vim/svn.vim
|
||||
" Revision: $Id: svn.vim 683 2008-07-30 11:52:38Z hdima $
|
||||
" Maintainer: Dmitry Vasiliev <dima at hlabs dot org>
|
||||
" URL: https://github.com/hdima/vim-scripts/blob/master/syntax/svn.vim
|
||||
" Last Change: 2012-02-11
|
||||
" Filenames: svn-commit*.tmp
|
||||
" Version: 1.6
|
||||
" Version: 1.7
|
||||
|
||||
" Contributors:
|
||||
" Stefano Zacchiroli
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Vim syntax support file
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2010 Aug 08
|
||||
" Last Change: 2012 Feb 11
|
||||
|
||||
" This file sets up for syntax highlighting.
|
||||
" It is loaded from "syntax.vim" and "manual.vim".
|
||||
@@ -59,7 +59,7 @@ endfun
|
||||
|
||||
|
||||
" Handle adding doxygen to other languages (C, C++, C#, IDL)
|
||||
au Syntax c,cpp,cs,idl
|
||||
au Syntax c,cpp,cs,idl,php
|
||||
\ if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax)
|
||||
\ || (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax)
|
||||
\ | runtime! syntax/doxygen.vim
|
||||
|
||||
@@ -740,6 +740,8 @@ MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib \
|
||||
!endif
|
||||
!endif
|
||||
MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj
|
||||
# increase stack size
|
||||
MZSCHEME_LIB = $(MZSCHEME_LIB) /STACK:8388608
|
||||
!endif
|
||||
|
||||
# Perl interface
|
||||
|
||||
44
src/auto/configure
vendored
44
src/auto/configure
vendored
@@ -11328,7 +11328,47 @@ fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris ACL support" >&5
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for acl_get in -lsec" >&5
|
||||
$as_echo_n "checking for acl_get in -lsec... " >&6; }
|
||||
if test "${ac_cv_lib_sec_acl_get+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lsec $LIBS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char acl_get ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return acl_get ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_lib_sec_acl_get=yes
|
||||
else
|
||||
ac_cv_lib_sec_acl_get=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS=$ac_check_lib_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sec_acl_get" >&5
|
||||
$as_echo "$ac_cv_lib_sec_acl_get" >&6; }
|
||||
if test "x$ac_cv_lib_sec_acl_get" = x""yes; then :
|
||||
LIBS="$LIBS -lsec"; $as_echo "#define HAVE_SOLARIS_ZFS_ACL 1" >>confdefs.h
|
||||
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris ACL support" >&5
|
||||
$as_echo_n "checking for Solaris ACL support... " >&6; }
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
@@ -11355,6 +11395,8 @@ $as_echo "no" >&6; }
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
fi
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AIX ACL support" >&5
|
||||
$as_echo_n "checking for AIX ACL support... " >&6; }
|
||||
|
||||
@@ -363,6 +363,7 @@
|
||||
|
||||
/* Define if you want to add support for ACL */
|
||||
#undef HAVE_POSIX_ACL
|
||||
#undef HAVE_SOLARIS_ZFS_ACL
|
||||
#undef HAVE_SOLARIS_ACL
|
||||
#undef HAVE_AIX_ACL
|
||||
|
||||
|
||||
@@ -3106,6 +3106,7 @@ AC_TRY_LINK([
|
||||
|
||||
dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
|
||||
dnl when -lacl works, also try to use -lattr (required for Debian).
|
||||
dnl On Solaris, use the acl_get/set functions in libsec, if present.
|
||||
AC_MSG_CHECKING(--disable-acl argument)
|
||||
AC_ARG_ENABLE(acl,
|
||||
[ --disable-acl Don't check for ACL support.],
|
||||
@@ -3128,6 +3129,7 @@ acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
|
||||
AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
|
||||
AC_MSG_RESULT(no))
|
||||
|
||||
AC_CHECK_LIB(sec, acl_get, [LIBS="$LIBS -lsec"; AC_DEFINE(HAVE_SOLARIS_ZFS_ACL)],
|
||||
AC_MSG_CHECKING(for Solaris ACL support)
|
||||
AC_TRY_LINK([
|
||||
#ifdef HAVE_SYS_ACL_H
|
||||
@@ -3135,7 +3137,7 @@ AC_TRY_LINK([
|
||||
#endif], [acl("foo", GETACLCNT, 0, NULL);
|
||||
],
|
||||
AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
|
||||
AC_MSG_RESULT(no))
|
||||
AC_MSG_RESULT(no)))
|
||||
|
||||
AC_MSG_CHECKING(for AIX ACL support)
|
||||
AC_TRY_LINK([
|
||||
|
||||
129
src/eval.c
129
src/eval.c
@@ -442,6 +442,7 @@ static int list_concat __ARGS((list_T *l1, list_T *l2, typval_T *tv));
|
||||
static list_T *list_copy __ARGS((list_T *orig, int deep, int copyID));
|
||||
static void list_remove __ARGS((list_T *l, listitem_T *item, listitem_T *item2));
|
||||
static char_u *list2string __ARGS((typval_T *tv, int copyID));
|
||||
static int list_join_inner __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo_style, int copyID, garray_T *join_gap));
|
||||
static int list_join __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo, int copyID));
|
||||
static int free_unref_items __ARGS((int copyID));
|
||||
static void set_ref_in_ht __ARGS((hashtab_T *ht, int copyID));
|
||||
@@ -6571,6 +6572,82 @@ list2string(tv, copyID)
|
||||
return (char_u *)ga.ga_data;
|
||||
}
|
||||
|
||||
typedef struct join_S {
|
||||
char_u *s;
|
||||
char_u *tofree;
|
||||
} join_T;
|
||||
|
||||
static int
|
||||
list_join_inner(gap, l, sep, echo_style, copyID, join_gap)
|
||||
garray_T *gap; /* to store the result in */
|
||||
list_T *l;
|
||||
char_u *sep;
|
||||
int echo_style;
|
||||
int copyID;
|
||||
garray_T *join_gap; /* to keep each list item string */
|
||||
{
|
||||
int i;
|
||||
join_T *p;
|
||||
int len;
|
||||
int sumlen = 0;
|
||||
int first = TRUE;
|
||||
char_u *tofree;
|
||||
char_u numbuf[NUMBUFLEN];
|
||||
listitem_T *item;
|
||||
char_u *s;
|
||||
|
||||
/* Stringify each item in the list. */
|
||||
for (item = l->lv_first; item != NULL && !got_int; item = item->li_next)
|
||||
{
|
||||
if (echo_style)
|
||||
s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
|
||||
else
|
||||
s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
|
||||
if (s == NULL)
|
||||
return FAIL;
|
||||
|
||||
len = (int)STRLEN(s);
|
||||
sumlen += len;
|
||||
|
||||
ga_grow(join_gap, 1);
|
||||
p = ((join_T *)join_gap->ga_data) + (join_gap->ga_len++);
|
||||
if (tofree != NULL || s != numbuf)
|
||||
{
|
||||
p->s = s;
|
||||
p->tofree = tofree;
|
||||
}
|
||||
else
|
||||
{
|
||||
p->s = vim_strnsave(s, len);
|
||||
p->tofree = p->s;
|
||||
}
|
||||
|
||||
line_breakcheck();
|
||||
}
|
||||
|
||||
/* Allocate result buffer with its total size, avoid re-allocation and
|
||||
* multiple copy operations. Add 2 for a tailing ']' and NUL. */
|
||||
if (join_gap->ga_len >= 2)
|
||||
sumlen += (int)STRLEN(sep) * (join_gap->ga_len - 1);
|
||||
if (ga_grow(gap, sumlen + 2) == FAIL)
|
||||
return FAIL;
|
||||
|
||||
for (i = 0; i < join_gap->ga_len && !got_int; ++i)
|
||||
{
|
||||
if (first)
|
||||
first = FALSE;
|
||||
else
|
||||
ga_concat(gap, sep);
|
||||
p = ((join_T *)join_gap->ga_data) + i;
|
||||
|
||||
if (p->s != NULL)
|
||||
ga_concat(gap, p->s);
|
||||
line_breakcheck();
|
||||
}
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* Join list "l" into a string in "*gap", using separator "sep".
|
||||
* When "echo_style" is TRUE use String as echoed, otherwise as inside a List.
|
||||
@@ -6584,31 +6661,27 @@ list_join(gap, l, sep, echo_style, copyID)
|
||||
int echo_style;
|
||||
int copyID;
|
||||
{
|
||||
int first = TRUE;
|
||||
char_u *tofree;
|
||||
char_u numbuf[NUMBUFLEN];
|
||||
listitem_T *item;
|
||||
char_u *s;
|
||||
garray_T join_ga;
|
||||
int retval;
|
||||
join_T *p;
|
||||
int i;
|
||||
|
||||
for (item = l->lv_first; item != NULL && !got_int; item = item->li_next)
|
||||
ga_init2(&join_ga, (int)sizeof(join_T), l->lv_len);
|
||||
retval = list_join_inner(gap, l, sep, echo_style, copyID, &join_ga);
|
||||
|
||||
/* Dispose each item in join_ga. */
|
||||
if (join_ga.ga_data != NULL)
|
||||
{
|
||||
if (first)
|
||||
first = FALSE;
|
||||
else
|
||||
ga_concat(gap, sep);
|
||||
|
||||
if (echo_style)
|
||||
s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
|
||||
else
|
||||
s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
|
||||
if (s != NULL)
|
||||
ga_concat(gap, s);
|
||||
vim_free(tofree);
|
||||
if (s == NULL)
|
||||
return FAIL;
|
||||
line_breakcheck();
|
||||
p = (join_T *)join_ga.ga_data;
|
||||
for (i = 0; i < join_ga.ga_len; ++i)
|
||||
{
|
||||
vim_free(p->tofree);
|
||||
++p;
|
||||
}
|
||||
ga_clear(&join_ga);
|
||||
}
|
||||
return OK;
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -13406,7 +13479,7 @@ get_maparg(argvars, rettv, exact)
|
||||
char_u *rhs;
|
||||
int mode;
|
||||
int abbr = FALSE;
|
||||
int get_dict = FALSE;
|
||||
int get_dict = FALSE;
|
||||
mapblock_T *mp;
|
||||
int buffer_local;
|
||||
|
||||
@@ -14389,7 +14462,7 @@ f_readfile(argvars, rettv)
|
||||
--prevlen;
|
||||
}
|
||||
if (prevlen == 0)
|
||||
s = vim_strnsave(start, len);
|
||||
s = vim_strnsave(start, (int)len);
|
||||
else
|
||||
{
|
||||
/* Change "prev" buffer to be the right size. This way
|
||||
@@ -14456,7 +14529,7 @@ f_readfile(argvars, rettv)
|
||||
|
||||
if (dest < buf)
|
||||
{
|
||||
adjust_prevlen = buf - dest; /* must be 1 or 2 */
|
||||
adjust_prevlen = (int)(buf - dest); /* must be 1 or 2 */
|
||||
dest = buf;
|
||||
}
|
||||
if (readlen > p - buf + 1)
|
||||
@@ -14485,11 +14558,11 @@ f_readfile(argvars, rettv)
|
||||
* small, to avoid repeatedly 'allocing' large and
|
||||
* 'reallocing' small. */
|
||||
if (prevsize == 0)
|
||||
prevsize = p - start;
|
||||
prevsize = (long)(p - start);
|
||||
else
|
||||
{
|
||||
long grow50pc = (prevsize * 3) / 2;
|
||||
long growmin = (p - start) * 2 + prevlen;
|
||||
long growmin = (long)((p - start) * 2 + prevlen);
|
||||
prevsize = grow50pc > growmin ? grow50pc : growmin;
|
||||
}
|
||||
if ((newprev = vim_realloc(prev, prevsize)) == NULL)
|
||||
@@ -14502,7 +14575,7 @@ f_readfile(argvars, rettv)
|
||||
}
|
||||
/* Add the line part to end of "prev". */
|
||||
mch_memmove(prev + prevlen, start, p - start);
|
||||
prevlen += p - start;
|
||||
prevlen += (long)(p - start);
|
||||
}
|
||||
} /* while */
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@ EX(CMD_abclear, "abclear", ex_abclear,
|
||||
EX(CMD_aboveleft, "aboveleft", ex_wrongmodifier,
|
||||
NEEDARG|EXTRA|NOTRLCOM),
|
||||
EX(CMD_all, "all", ex_all,
|
||||
RANGE|NOTADR|COUNT|TRLBAR),
|
||||
BANG|RANGE|NOTADR|COUNT|TRLBAR),
|
||||
EX(CMD_amenu, "amenu", ex_menu,
|
||||
RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
|
||||
EX(CMD_anoremenu, "anoremenu", ex_menu,
|
||||
@@ -798,7 +798,7 @@ EX(CMD_sNext, "sNext", ex_previous,
|
||||
EX(CMD_sargument, "sargument", ex_argument,
|
||||
BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR),
|
||||
EX(CMD_sall, "sall", ex_all,
|
||||
RANGE|NOTADR|COUNT|TRLBAR),
|
||||
BANG|RANGE|NOTADR|COUNT|TRLBAR),
|
||||
EX(CMD_sandbox, "sandbox", ex_wrongmodifier,
|
||||
NEEDARG|EXTRA|NOTRLCOM),
|
||||
EX(CMD_saveas, "saveas", ex_write,
|
||||
|
||||
@@ -3400,7 +3400,7 @@ getsourceline(c, cookie, indent)
|
||||
{
|
||||
struct source_cookie *sp = (struct source_cookie *)cookie;
|
||||
char_u *line;
|
||||
char_u *p, *s;
|
||||
char_u *p;
|
||||
|
||||
#ifdef FEAT_EVAL
|
||||
/* If breakpoints have been added/deleted need to check for it. */
|
||||
@@ -3439,28 +3439,40 @@ getsourceline(c, cookie, indent)
|
||||
{
|
||||
/* compensate for the one line read-ahead */
|
||||
--sourcing_lnum;
|
||||
for (;;)
|
||||
|
||||
/* Get the next line and concatenate it when it starts with a
|
||||
* backslash. We always need to read the next line, keep it in
|
||||
* sp->nextline. */
|
||||
sp->nextline = get_one_sourceline(sp);
|
||||
if (sp->nextline != NULL && *(p = skipwhite(sp->nextline)) == '\\')
|
||||
{
|
||||
sp->nextline = get_one_sourceline(sp);
|
||||
if (sp->nextline == NULL)
|
||||
break;
|
||||
p = skipwhite(sp->nextline);
|
||||
if (*p != '\\')
|
||||
break;
|
||||
s = alloc((unsigned)(STRLEN(line) + STRLEN(p)));
|
||||
if (s == NULL) /* out of memory */
|
||||
break;
|
||||
STRCPY(s, line);
|
||||
STRCAT(s, p + 1);
|
||||
garray_T ga;
|
||||
|
||||
ga_init2(&ga, (int)sizeof(char_u), 200);
|
||||
ga_concat(&ga, line);
|
||||
ga_concat(&ga, p + 1);
|
||||
for (;;)
|
||||
{
|
||||
vim_free(sp->nextline);
|
||||
sp->nextline = get_one_sourceline(sp);
|
||||
if (sp->nextline == NULL)
|
||||
break;
|
||||
p = skipwhite(sp->nextline);
|
||||
if (*p != '\\')
|
||||
break;
|
||||
ga_concat(&ga, p + 1);
|
||||
}
|
||||
ga_append(&ga, NUL);
|
||||
vim_free(line);
|
||||
line = s;
|
||||
vim_free(sp->nextline);
|
||||
line = ga.ga_data;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (line != NULL && sp->conv.vc_type != CONV_NONE)
|
||||
{
|
||||
char_u *s;
|
||||
|
||||
/* Convert the encoding of the script line. */
|
||||
s = string_convert(&sp->conv, line, NULL);
|
||||
if (s != NULL)
|
||||
|
||||
@@ -4955,7 +4955,7 @@ ex_abclear(eap)
|
||||
map_clear(eap->cmd, eap->arg, TRUE, TRUE);
|
||||
}
|
||||
|
||||
#ifdef FEAT_AUTOCMD
|
||||
#if defined(FEAT_AUTOCMD) || defined(PROTO)
|
||||
static void
|
||||
ex_autocmd(eap)
|
||||
exarg_T *eap;
|
||||
@@ -4982,8 +4982,12 @@ ex_autocmd(eap)
|
||||
ex_doautocmd(eap)
|
||||
exarg_T *eap;
|
||||
{
|
||||
(void)do_doautocmd(eap->arg, TRUE);
|
||||
do_modelines(0);
|
||||
char_u *arg = eap->arg;
|
||||
int call_do_modelines = check_nomodeline(&arg);
|
||||
|
||||
(void)do_doautocmd(arg, TRUE);
|
||||
if (call_do_modelines) /* Only when there is no <nomodeline>. */
|
||||
do_modelines(0);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
34
src/fileio.c
34
src/fileio.c
@@ -8739,6 +8739,8 @@ ex_doautoall(eap)
|
||||
int retval;
|
||||
aco_save_T aco;
|
||||
buf_T *buf;
|
||||
char_u *arg = eap->arg;
|
||||
int call_do_modelines = check_nomodeline(&arg);
|
||||
|
||||
/*
|
||||
* This is a bit tricky: For some commands curwin->w_buffer needs to be
|
||||
@@ -8755,11 +8757,15 @@ ex_doautoall(eap)
|
||||
aucmd_prepbuf(&aco, buf);
|
||||
|
||||
/* execute the autocommands for this buffer */
|
||||
retval = do_doautocmd(eap->arg, FALSE);
|
||||
retval = do_doautocmd(arg, FALSE);
|
||||
|
||||
/* Execute the modeline settings, but don't set window-local
|
||||
* options if we are using the current window for another buffer. */
|
||||
do_modelines(curwin == aucmd_win ? OPT_NOWIN : 0);
|
||||
if (call_do_modelines)
|
||||
{
|
||||
/* Execute the modeline settings, but don't set window-local
|
||||
* options if we are using the current window for another
|
||||
* buffer. */
|
||||
do_modelines(curwin == aucmd_win ? OPT_NOWIN : 0);
|
||||
}
|
||||
|
||||
/* restore the current window */
|
||||
aucmd_restbuf(&aco);
|
||||
@@ -8773,6 +8779,23 @@ ex_doautoall(eap)
|
||||
check_cursor(); /* just in case lines got deleted */
|
||||
}
|
||||
|
||||
/*
|
||||
* Check *argp for <nomodeline>. When it is present return FALSE, otherwise
|
||||
* return TRUE and advance *argp to after it.
|
||||
* Thus return TRUE when do_modelines() should be called.
|
||||
*/
|
||||
int
|
||||
check_nomodeline(argp)
|
||||
char_u **argp;
|
||||
{
|
||||
if (STRNCMP(*argp, "<nomodeline>", 12) == 0)
|
||||
{
|
||||
*argp = skipwhite(*argp + 12);
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Prepare for executing autocommands for (hidden) buffer "buf".
|
||||
* Search for a visible window containing the current buffer. If there isn't
|
||||
@@ -8898,10 +8921,11 @@ aucmd_restbuf(aco)
|
||||
if (tp != curtab)
|
||||
goto_tabpage_tp(tp);
|
||||
win_goto(aucmd_win);
|
||||
break;
|
||||
goto win_found;
|
||||
}
|
||||
}
|
||||
}
|
||||
win_found:
|
||||
|
||||
/* Remove the window and frame from the tree of frames. */
|
||||
(void)winframe_remove(curwin, &dummy, NULL);
|
||||
|
||||
@@ -535,6 +535,10 @@ EXTERN win_T *lastwin; /* last window */
|
||||
EXTERN win_T *prevwin INIT(= NULL); /* previous window */
|
||||
# define W_NEXT(wp) ((wp)->w_next)
|
||||
# define FOR_ALL_WINDOWS(wp) for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
/*
|
||||
* When using this macro "break" only breaks out of the inner loop. Use "goto"
|
||||
* to break out of the tabpage loop.
|
||||
*/
|
||||
# define FOR_ALL_TAB_WINDOWS(tp, wp) \
|
||||
for ((tp) = first_tabpage; (tp) != NULL; (tp) = (tp)->tp_next) \
|
||||
for ((wp) = ((tp) == curtab) \
|
||||
|
||||
@@ -31,8 +31,6 @@
|
||||
* depend". */
|
||||
#if defined(FEAT_MZSCHEME) || defined(PROTO)
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
/* Base data structures */
|
||||
#define SCHEME_VIMBUFFERP(obj) SAME_TYPE(SCHEME_TYPE(obj), mz_buffer_type)
|
||||
#define SCHEME_VIMWINDOWP(obj) SAME_TYPE(SCHEME_TYPE(obj), mz_window_type)
|
||||
@@ -559,13 +557,6 @@ mzscheme_runtime_link_init(char *sch_dll, char *gc_dll, int verbose)
|
||||
hMzSch = vimLoadLib(sch_dll);
|
||||
hMzGC = vimLoadLib(gc_dll);
|
||||
|
||||
if (!hMzSch)
|
||||
{
|
||||
if (verbose)
|
||||
EMSG2(_(e_loadlib), sch_dll);
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
if (!hMzGC)
|
||||
{
|
||||
if (verbose)
|
||||
@@ -573,6 +564,13 @@ mzscheme_runtime_link_init(char *sch_dll, char *gc_dll, int verbose)
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
if (!hMzSch)
|
||||
{
|
||||
if (verbose)
|
||||
EMSG2(_(e_loadlib), sch_dll);
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
for (thunk = mzsch_imports; thunk->name; thunk++)
|
||||
{
|
||||
if ((*thunk->ptr =
|
||||
@@ -798,65 +796,68 @@ mzscheme_end(void)
|
||||
static __declspec(thread) void *tls_space;
|
||||
#endif
|
||||
|
||||
void
|
||||
mzscheme_main(void)
|
||||
/*
|
||||
* Since version 4.x precise GC requires trampolined startup.
|
||||
* Futures and places in version 5.x need it too.
|
||||
*/
|
||||
#if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR >= 400 \
|
||||
|| MZSCHEME_VERSION_MAJOR >= 500 && (defined(MZ_USE_FUTURES) || defined(MZ_USE_PLACES))
|
||||
# ifdef DYNAMIC_MZSCHEME
|
||||
# error Precise GC v.4+ or Racket with futures/places do not support dynamic MzScheme
|
||||
# endif
|
||||
# define TRAMPOLINED_MZVIM_STARTUP
|
||||
#endif
|
||||
|
||||
int
|
||||
mzscheme_main(int argc, char** argv)
|
||||
{
|
||||
#if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL)
|
||||
scheme_register_tls_space(&tls_space, 0);
|
||||
#endif
|
||||
#if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR >= 400
|
||||
/* use trampoline for precise GC in MzScheme >= 4.x */
|
||||
scheme_main_setup(TRUE, mzscheme_env_main, 0, NULL);
|
||||
#ifdef TRAMPOLINED_MZVIM_STARTUP
|
||||
return scheme_main_setup(TRUE, mzscheme_env_main, argc, argv);
|
||||
#else
|
||||
mzscheme_env_main(NULL, 0, NULL);
|
||||
return mzscheme_env_main(NULL, argc, argv);
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
mzscheme_env_main(Scheme_Env *env, int argc UNUSED, char **argv UNUSED)
|
||||
mzscheme_env_main(Scheme_Env *env, int argc, char **argv)
|
||||
{
|
||||
/* neither argument nor return values are used */
|
||||
#ifdef MZ_PRECISE_GC
|
||||
# if MZSCHEME_VERSION_MAJOR < 400
|
||||
/*
|
||||
* Starting from version 4.x, embedding applications must use
|
||||
* scheme_main_setup/scheme_main_stack_setup trampolines
|
||||
* rather than setting stack base directly with scheme_set_stack_base
|
||||
*/
|
||||
int vim_main_result;
|
||||
#ifdef TRAMPOLINED_MZVIM_STARTUP
|
||||
/* Scheme has created the environment for us */
|
||||
environment = env;
|
||||
#else
|
||||
# ifdef MZ_PRECISE_GC
|
||||
Scheme_Object *dummy = NULL;
|
||||
MZ_GC_DECL_REG(1);
|
||||
MZ_GC_VAR_IN_REG(0, dummy);
|
||||
|
||||
stack_base = &__gc_var_stack__;
|
||||
# else
|
||||
/* environment has been created by us by Scheme */
|
||||
environment = env;
|
||||
# endif
|
||||
/*
|
||||
* In 4.x, all activities must be performed inside trampoline
|
||||
* so we are forced to initialise GC immediately
|
||||
* This can be postponed in 3.x but I see no point in implementing
|
||||
* a feature which will work in older versions only.
|
||||
* One would better use conservative GC if he needs dynamic MzScheme
|
||||
*/
|
||||
mzscheme_init();
|
||||
#else
|
||||
int dummy = 0;
|
||||
stack_base = (void *)&dummy;
|
||||
# endif
|
||||
#endif
|
||||
main_loop(FALSE, FALSE);
|
||||
#if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR < 400
|
||||
|
||||
/* mzscheme_main is called as a trampoline from main.
|
||||
* We trampoline into vim_main2
|
||||
* Passing argc, argv through from mzscheme_main
|
||||
*/
|
||||
vim_main_result = vim_main2(argc, argv);
|
||||
#if !defined(TRAMPOLINED_MZVIM_STARTUP) && defined(MZ_PRECISE_GC)
|
||||
/* releasing dummy */
|
||||
MZ_GC_REG();
|
||||
MZ_GC_UNREG();
|
||||
#endif
|
||||
return 0;
|
||||
return vim_main_result;
|
||||
}
|
||||
|
||||
static void
|
||||
startup_mzscheme(void)
|
||||
{
|
||||
#if !defined(MZ_PRECISE_GC) || MZSCHEME_VERSION_MAJOR < 400
|
||||
#ifndef TRAMPOLINED_MZVIM_STARTUP
|
||||
scheme_set_stack_base(stack_base, 1);
|
||||
#endif
|
||||
|
||||
@@ -868,7 +869,7 @@ startup_mzscheme(void)
|
||||
MZ_REGISTER_STATIC(exn_message);
|
||||
MZ_REGISTER_STATIC(vim_exn);
|
||||
|
||||
#if !defined(MZ_PRECISE_GC) || MZSCHEME_VERSION_MAJOR < 400
|
||||
#ifndef TRAMPOLINED_MZVIM_STARTUP
|
||||
/* in newer versions of precise GC the initial env has been created */
|
||||
environment = scheme_basic_env();
|
||||
#endif
|
||||
@@ -3013,7 +3014,6 @@ register_vim_exn(void)
|
||||
MZ_GC_REG();
|
||||
|
||||
tmp = scheme_make_struct_names(exn_name, scheme_null, 0, &nc);
|
||||
assert(nc <= 5);
|
||||
mch_memmove(exn_names, tmp, nc * sizeof(Scheme_Object *));
|
||||
MZ_GC_CHECK();
|
||||
|
||||
|
||||
@@ -611,7 +611,7 @@ newWINrv(rv, ptr)
|
||||
if (ptr->w_perl_private == NULL)
|
||||
{
|
||||
ptr->w_perl_private = newSV(0);
|
||||
sv_setiv(ptr->w_perl_private, (IV)ptr);
|
||||
sv_setiv(ptr->w_perl_private, PTR2IV(ptr));
|
||||
}
|
||||
else
|
||||
SvREFCNT_inc(ptr->w_perl_private);
|
||||
@@ -629,7 +629,7 @@ newBUFrv(rv, ptr)
|
||||
if (ptr->b_perl_private == NULL)
|
||||
{
|
||||
ptr->b_perl_private = newSV(0);
|
||||
sv_setiv(ptr->b_perl_private, (IV)ptr);
|
||||
sv_setiv(ptr->b_perl_private, PTR2IV(ptr));
|
||||
}
|
||||
else
|
||||
SvREFCNT_inc(ptr->b_perl_private);
|
||||
|
||||
33
src/main.c
33
src/main.c
@@ -554,6 +554,31 @@ main
|
||||
debug_break_level = params.use_debug_break_level;
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_MZSCHEME
|
||||
/*
|
||||
* Newer version of MzScheme (Racket) require earlier (trampolined)
|
||||
* initialisation via scheme_main_setup.
|
||||
* Implement this by initialising it as early as possible
|
||||
* and splitting off remaining Vim main into vim_main2
|
||||
*/
|
||||
{
|
||||
/* Pack up preprocessed command line arguments.
|
||||
* It is safe because Scheme does not access argc/argv. */
|
||||
char *args[2];
|
||||
args[0] = (char *)fname;
|
||||
args[1] = (char *)¶ms;
|
||||
return mzscheme_main(2, args);
|
||||
}
|
||||
}
|
||||
|
||||
int vim_main2(int argc, char **argv)
|
||||
{
|
||||
char_u *fname = (char_u *)argv[0];
|
||||
mparm_T params;
|
||||
|
||||
memcpy(¶ms, argv[1], sizeof(params));
|
||||
#endif
|
||||
|
||||
/* Execute --cmd arguments. */
|
||||
exe_pre_commands(¶ms);
|
||||
|
||||
@@ -957,14 +982,8 @@ main
|
||||
|
||||
/*
|
||||
* Call the main command loop. This never returns.
|
||||
* For embedded MzScheme the main_loop will be called by Scheme
|
||||
* for proper stack tracking
|
||||
*/
|
||||
#ifndef FEAT_MZSCHEME
|
||||
*/
|
||||
main_loop(FALSE, FALSE);
|
||||
#else
|
||||
mzscheme_main();
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3230,7 +3230,11 @@ call_shell(cmd, opt)
|
||||
{
|
||||
STRCPY(ncmd, p_sxq);
|
||||
STRCAT(ncmd, cmd);
|
||||
STRCAT(ncmd, p_sxq);
|
||||
/* When 'shellxquote' is ( append ).
|
||||
* When 'shellxquote' is "( append )". */
|
||||
STRCAT(ncmd, STRCMP(p_sxq, "(") == 0 ? (char_u *)")"
|
||||
: STRCMP(p_sxq, "\"(") == 0 ? (char_u *)")\""
|
||||
: p_sxq);
|
||||
retval = mch_call_shell(ncmd, opt);
|
||||
vim_free(ncmd);
|
||||
}
|
||||
|
||||
34
src/option.c
34
src/option.c
@@ -3883,7 +3883,8 @@ set_init_3()
|
||||
|
||||
#if defined(MSDOS) || defined(WIN3264) || defined(OS2)
|
||||
/*
|
||||
* Set 'shellcmdflag and 'shellquote' depending on the 'shell' option.
|
||||
* Set 'shellcmdflag', 'shellxquote', and 'shellquote' depending on the
|
||||
* 'shell' option.
|
||||
* This is done after other initializations, where 'shell' might have been
|
||||
* set, but only if they have not been set before. Default for p_shcf is
|
||||
* "/c", for p_shq is "". For "sh" like shells it is changed here to
|
||||
@@ -3920,6 +3921,37 @@ set_init_3()
|
||||
# endif
|
||||
# endif
|
||||
}
|
||||
else if (strstr((char *)gettail(p_sh), "cmd.exe") != NULL)
|
||||
{
|
||||
int idx3;
|
||||
|
||||
/*
|
||||
* cmd.exe on Windows will strip the first and last double quote given
|
||||
* on the command line, e.g. most of the time things like:
|
||||
* cmd /c "my path/to/echo" "my args to echo"
|
||||
* become:
|
||||
* my path/to/echo" "my args to echo
|
||||
* when executed.
|
||||
*
|
||||
* To avoid this, set shellxquote to surround the command in
|
||||
* parenthesis. This appears to make most commands work, without
|
||||
* breaking commands that worked previously, such as
|
||||
* '"path with spaces/cmd" "a&b"'.
|
||||
*/
|
||||
idx3 = findoption((char_u *)"sxq");
|
||||
if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
|
||||
{
|
||||
p_sxq = (char_u *)"(";
|
||||
options[idx3].def_val[VI_DEFAULT] = p_sxq;
|
||||
}
|
||||
|
||||
idx3 = findoption((char_u *)"shcf");
|
||||
if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
|
||||
{
|
||||
p_shcf = (char_u *)"/c";
|
||||
options[idx3].def_val[VI_DEFAULT] = p_shcf;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_TITLE
|
||||
|
||||
@@ -2746,6 +2746,13 @@ mch_get_acl(fname)
|
||||
#ifdef HAVE_POSIX_ACL
|
||||
ret = (vim_acl_T)acl_get_file((char *)fname, ACL_TYPE_ACCESS);
|
||||
#else
|
||||
#ifdef HAVE_SOLARIS_ZFS_ACL
|
||||
acl_t *aclent;
|
||||
|
||||
if (acl_get((char *)fname, 0, &aclent) < 0)
|
||||
return NULL;
|
||||
ret = (vim_acl_T)aclent;
|
||||
#else
|
||||
#ifdef HAVE_SOLARIS_ACL
|
||||
vim_acl_solaris_T *aclent;
|
||||
|
||||
@@ -2791,6 +2798,7 @@ mch_get_acl(fname)
|
||||
ret = (vim_acl_T)aclent;
|
||||
#endif /* HAVE_AIX_ACL */
|
||||
#endif /* HAVE_SOLARIS_ACL */
|
||||
#endif /* HAVE_SOLARIS_ZFS_ACL */
|
||||
#endif /* HAVE_POSIX_ACL */
|
||||
return ret;
|
||||
}
|
||||
@@ -2808,6 +2816,9 @@ mch_set_acl(fname, aclent)
|
||||
#ifdef HAVE_POSIX_ACL
|
||||
acl_set_file((char *)fname, ACL_TYPE_ACCESS, (acl_t)aclent);
|
||||
#else
|
||||
#ifdef HAVE_SOLARIS_ZFS_ACL
|
||||
acl_set((char *)fname, (acl_t *)aclent);
|
||||
#else
|
||||
#ifdef HAVE_SOLARIS_ACL
|
||||
acl((char *)fname, SETACL, ((vim_acl_solaris_T *)aclent)->acl_cnt,
|
||||
((vim_acl_solaris_T *)aclent)->acl_entry);
|
||||
@@ -2816,6 +2827,7 @@ mch_set_acl(fname, aclent)
|
||||
chacl((char *)fname, aclent, ((struct acl *)aclent)->acl_len);
|
||||
#endif /* HAVE_AIX_ACL */
|
||||
#endif /* HAVE_SOLARIS_ACL */
|
||||
#endif /* HAVE_SOLARIS_ZFS_ACL */
|
||||
#endif /* HAVE_POSIX_ACL */
|
||||
}
|
||||
|
||||
@@ -2828,6 +2840,9 @@ mch_free_acl(aclent)
|
||||
#ifdef HAVE_POSIX_ACL
|
||||
acl_free((acl_t)aclent);
|
||||
#else
|
||||
#ifdef HAVE_SOLARIS_ZFS_ACL
|
||||
acl_free((acl_t *)aclent);
|
||||
#else
|
||||
#ifdef HAVE_SOLARIS_ACL
|
||||
free(((vim_acl_solaris_T *)aclent)->acl_entry);
|
||||
free(aclent);
|
||||
@@ -2836,6 +2851,7 @@ mch_free_acl(aclent)
|
||||
free(aclent);
|
||||
#endif /* HAVE_AIX_ACL */
|
||||
#endif /* HAVE_SOLARIS_ACL */
|
||||
#endif /* HAVE_SOLARIS_ZFS_ACL */
|
||||
#endif /* HAVE_POSIX_ACL */
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -3908,8 +3908,13 @@ mch_call_shell(
|
||||
newcmd = lalloc(cmdlen, TRUE);
|
||||
if (newcmd != NULL)
|
||||
{
|
||||
char_u *cmdbase = (*cmd == '"' ? cmd + 1 : cmd);
|
||||
char_u *cmdbase = cmd;
|
||||
|
||||
/* Skip a leading ", ( and "(. */
|
||||
if (*cmdbase == '"' )
|
||||
++cmdbase;
|
||||
if (*cmdbase == '(')
|
||||
++cmdbase;
|
||||
if ((STRNICMP(cmdbase, "start", 5) == 0) && vim_iswhite(cmdbase[5]))
|
||||
{
|
||||
STARTUPINFO si;
|
||||
@@ -3953,16 +3958,26 @@ mch_call_shell(
|
||||
* empty, keep the double quotes around the command.
|
||||
* Otherwise remove the double quotes, they aren't needed
|
||||
* here, because we don't use a shell to run the command. */
|
||||
if (*cmd == '"' && *p_sxq == NUL)
|
||||
if (cmdbase > cmd)
|
||||
{
|
||||
newcmd[0] = '"';
|
||||
STRCPY(newcmd + 1, cmdbase);
|
||||
}
|
||||
else
|
||||
{
|
||||
STRCPY(newcmd, cmdbase);
|
||||
if (*cmd == '"' && *newcmd != NUL)
|
||||
newcmd[STRLEN(newcmd) - 1] = NUL;
|
||||
if (STRNCMP(cmd, p_sxq, cmd - cmdbase) != 0)
|
||||
{
|
||||
STRCPY(newcmd, cmd);
|
||||
}
|
||||
else
|
||||
{
|
||||
char_u *p;
|
||||
|
||||
STRCPY(newcmd, cmdbase);
|
||||
/* Remove a trailing ", ) and )" if they have a match
|
||||
* at the start of the command. */
|
||||
p = newcmd + STRLEN(newcmd);
|
||||
if (p > newcmd && p[-1] == '"' && *cmd == '"')
|
||||
*--p = NUL;
|
||||
if (p > newcmd && p[-1] == ')'
|
||||
&& (*cmd =='(' || cmd[1] == '('))
|
||||
*--p = NUL;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3970,7 +3985,7 @@ mch_call_shell(
|
||||
* inherit our handles which causes unpleasant dangling swap
|
||||
* files if we exit before the spawned process
|
||||
*/
|
||||
if (CreateProcess (NULL, // Executable name
|
||||
if (CreateProcess(NULL, // Executable name
|
||||
newcmd, // Command to execute
|
||||
NULL, // Process security attributes
|
||||
NULL, // Thread security attributes
|
||||
|
||||
@@ -35,6 +35,7 @@ void au_event_restore __ARGS((char_u *old_ei));
|
||||
void do_autocmd __ARGS((char_u *arg, int forceit));
|
||||
int do_doautocmd __ARGS((char_u *arg, int do_msg));
|
||||
void ex_doautoall __ARGS((exarg_T *eap));
|
||||
int check_nomodeline __ARGS((char_u **argp));
|
||||
void aucmd_prepbuf __ARGS((aco_save_T *aco, buf_T *buf));
|
||||
void aucmd_restbuf __ARGS((aco_save_T *aco));
|
||||
int apply_autocmds __ARGS((event_T event, char_u *fname, char_u *fname_io, int force, buf_T *buf));
|
||||
|
||||
@@ -14,6 +14,7 @@ void mzvim_check_threads __ARGS((void));
|
||||
void mzvim_reset_timer __ARGS((void));
|
||||
void *mzvim_eval_string __ARGS((char_u *str));
|
||||
int mzthreads_allowed __ARGS((void));
|
||||
void mzscheme_main __ARGS((void));
|
||||
int mzscheme_main __ARGS((int argc, char **argv));
|
||||
void do_mzeval __ARGS((char_u *str, typval_T *rettv));
|
||||
int vim_main2 __ARGS((int argc, char **argv));
|
||||
/* vim: set ft=c : */
|
||||
|
||||
@@ -63,6 +63,12 @@ A 3:close
|
||||
:" write "testtext 1"
|
||||
A 3:close!
|
||||
:w >>test.out
|
||||
:set nohidden
|
||||
:" test ":all!" hides changed buffer; write "testtext 2 2 2"
|
||||
:sp Xtest4
|
||||
GA 4:all!
|
||||
:1wincmd w
|
||||
:w >>test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
|
||||
@@ -9,3 +9,4 @@ testtext 3 3
|
||||
testtext 1
|
||||
testtext 3 3 3
|
||||
testtext 1
|
||||
testtext 2 2 2
|
||||
|
||||
@@ -6,7 +6,7 @@ INPUT
|
||||
T_VIOBJNOMUNGE
|
||||
if (sv_isa($arg, \"${ntype}\")) {
|
||||
IV tmp = SvIV((SV*)SvRV($arg));
|
||||
$var = ($type) tmp;
|
||||
$var = INT2PTR($type, tmp);
|
||||
if (!tmp)
|
||||
croak(\"$ntype no longer exists\");
|
||||
}
|
||||
|
||||
43
src/ui.c
43
src/ui.c
@@ -1917,6 +1917,7 @@ open_app_context()
|
||||
static Atom vim_atom; /* Vim's own special selection format */
|
||||
#ifdef FEAT_MBYTE
|
||||
static Atom vimenc_atom; /* Vim's extended selection format */
|
||||
static Atom utf8_atom;
|
||||
#endif
|
||||
static Atom compound_text_atom;
|
||||
static Atom text_atom;
|
||||
@@ -1930,6 +1931,7 @@ x11_setup_atoms(dpy)
|
||||
vim_atom = XInternAtom(dpy, VIM_ATOM_NAME, False);
|
||||
#ifdef FEAT_MBYTE
|
||||
vimenc_atom = XInternAtom(dpy, VIMENC_ATOM_NAME,False);
|
||||
utf8_atom = XInternAtom(dpy, "UTF8_STRING", False);
|
||||
#endif
|
||||
compound_text_atom = XInternAtom(dpy, "COMPOUND_TEXT", False);
|
||||
text_atom = XInternAtom(dpy, "TEXT", False);
|
||||
@@ -2074,7 +2076,11 @@ clip_x11_request_selection_cb(w, success, sel_atom, type, value, length,
|
||||
}
|
||||
#endif
|
||||
|
||||
else if (*type == compound_text_atom || (
|
||||
else if (*type == compound_text_atom
|
||||
#ifdef FEAT_MBYTE
|
||||
|| *type == utf8_atom
|
||||
#endif
|
||||
|| (
|
||||
#ifdef FEAT_MBYTE
|
||||
enc_dbcs != 0 &&
|
||||
#endif
|
||||
@@ -2128,7 +2134,7 @@ clip_x11_request_selection(myShell, dpy, cbd)
|
||||
#else
|
||||
1
|
||||
#endif
|
||||
; i < 5; i++)
|
||||
; i < 6; i++)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
@@ -2136,10 +2142,18 @@ clip_x11_request_selection(myShell, dpy, cbd)
|
||||
case 0: type = vimenc_atom; break;
|
||||
#endif
|
||||
case 1: type = vim_atom; break;
|
||||
case 2: type = compound_text_atom; break;
|
||||
case 3: type = text_atom; break;
|
||||
#ifdef FEAT_MBYTE
|
||||
case 2: type = utf8_atom; break;
|
||||
#endif
|
||||
case 3: type = compound_text_atom; break;
|
||||
case 4: type = text_atom; break;
|
||||
default: type = XA_STRING;
|
||||
}
|
||||
#ifdef FEAT_MBYTE
|
||||
if (type == utf8_atom && !enc_utf8)
|
||||
/* Only request utf-8 when 'encoding' is utf8. */
|
||||
continue;
|
||||
#endif
|
||||
success = MAYBE;
|
||||
XtGetSelectionValue(myShell, cbd->sel_atom, type,
|
||||
clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime);
|
||||
@@ -2230,18 +2244,23 @@ clip_x11_convert_selection_cb(w, sel_atom, target, type, value, length, format)
|
||||
{
|
||||
Atom *array;
|
||||
|
||||
if ((array = (Atom *)XtMalloc((unsigned)(sizeof(Atom) * 6))) == NULL)
|
||||
if ((array = (Atom *)XtMalloc((unsigned)(sizeof(Atom) * 7))) == NULL)
|
||||
return False;
|
||||
*value = (XtPointer)array;
|
||||
i = 0;
|
||||
array[i++] = XA_STRING;
|
||||
array[i++] = targets_atom;
|
||||
#ifdef FEAT_MBYTE
|
||||
array[i++] = vimenc_atom;
|
||||
#endif
|
||||
array[i++] = vim_atom;
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_utf8)
|
||||
array[i++] = utf8_atom;
|
||||
#endif
|
||||
array[i++] = XA_STRING;
|
||||
array[i++] = text_atom;
|
||||
array[i++] = compound_text_atom;
|
||||
|
||||
*type = XA_ATOM;
|
||||
/* This used to be: *format = sizeof(Atom) * 8; but that caused
|
||||
* crashes on 64 bit machines. (Peter Derr) */
|
||||
@@ -2253,6 +2272,7 @@ clip_x11_convert_selection_cb(w, sel_atom, target, type, value, length, format)
|
||||
if ( *target != XA_STRING
|
||||
#ifdef FEAT_MBYTE
|
||||
&& *target != vimenc_atom
|
||||
&& *target != utf8_atom
|
||||
#endif
|
||||
&& *target != vim_atom
|
||||
&& *target != text_atom
|
||||
@@ -2282,13 +2302,16 @@ clip_x11_convert_selection_cb(w, sel_atom, target, type, value, length, format)
|
||||
return False;
|
||||
}
|
||||
|
||||
if (*target == XA_STRING)
|
||||
if (*target == XA_STRING
|
||||
#ifdef FEAT_MBYTE
|
||||
|| (*target == utf8_atom && enc_utf8)
|
||||
#endif
|
||||
)
|
||||
{
|
||||
mch_memmove(result, string, (size_t)(*length));
|
||||
*type = XA_STRING;
|
||||
*type = *target;
|
||||
}
|
||||
else if (*target == compound_text_atom
|
||||
|| *target == text_atom)
|
||||
else if (*target == compound_text_atom || *target == text_atom)
|
||||
{
|
||||
XTextProperty text_prop;
|
||||
char *string_nt = (char *)alloc((unsigned)*length + 1);
|
||||
|
||||
@@ -714,6 +714,34 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
445,
|
||||
/**/
|
||||
444,
|
||||
/**/
|
||||
443,
|
||||
/**/
|
||||
442,
|
||||
/**/
|
||||
441,
|
||||
/**/
|
||||
440,
|
||||
/**/
|
||||
439,
|
||||
/**/
|
||||
438,
|
||||
/**/
|
||||
437,
|
||||
/**/
|
||||
436,
|
||||
/**/
|
||||
435,
|
||||
/**/
|
||||
434,
|
||||
/**/
|
||||
433,
|
||||
/**/
|
||||
432,
|
||||
/**/
|
||||
431,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user