Compare commits

...

13 Commits

Author SHA1 Message Date
Bram Moolenaar
034b115568 updated for version 7.3.445
Problem:    Can't properly escape commands for cmd.exe.
Solution:   Default 'shellxquote' to '('.  Append ')' to make '(command)'.
            No need to use "/s" for 'shellcmdflag'.
2012-02-19 18:19:30 +01:00
Bram Moolenaar
5dc6252d33 Update runtime files. 2012-02-13 00:05:22 +01:00
Bram Moolenaar
61c3519b78 updated for version 7.3.444
Problem:    ":all!" and ":sall!" give error E477, even though the
            documentation says these are valid commands.
Solution:   Support the exclamation mark. (Hirohito Higashi)
2012-02-13 00:01:43 +01:00
Bram Moolenaar
a64ba220f0 updated for version 7.3.443
Problem:    MS-Windows: 'shcf' and 'shellxquote' defaults are not very good.
Solution:   Make a better guess when 'shell' is set to "cmd.exe". (Ben Fritz)
2012-02-12 23:23:31 +01:00
Bram Moolenaar
60542ac9fd updated for version 7.3.442
Problem:    Still read modelines for ":doautocmd".
Solution:   Move check for <nomodeline> to separate function.
2012-02-12 20:14:01 +01:00
Bram Moolenaar
bbc98db7c4 updated for version 7.3.441
Problem:    Newer versions of MzScheme (Racket) require earlier (trampolined)
            initialisation.
Solution:   Call mzscheme_main() early in main(). (Sergey Khorev)
2012-02-12 01:55:55 +01:00
Bram Moolenaar
efcb54b78c updated for version 7.3.440
Problem:    Vim does not support UTF8_STRING for the X selection.
Solution:   Add UTF8_STRING atom support. (Alex Efros) Use it only when
            'encoding' is set to Unicode.
2012-02-12 01:35:10 +01:00
Bram Moolenaar
be74734429 updated for version 7.3.439
Problem:    Compiler warnings to size casts in Perl interface.
Solution:   Use XS macros. (James McCoy)
2012-02-12 00:31:52 +01:00
Bram Moolenaar
a61d5fbf7a updated for version 7.3.438
Problem:    There is no way to avoid ":doautoall" reading modelines.
Solution:   Add the <nomodeline> argument. Adjust documentation.
2012-02-12 00:18:58 +01:00
Bram Moolenaar
28f2908d95 updated for version 7.3.437
Problem:    Continue looping inside FOR_ALL_TAB_WINDOWS even when already done.
Solution:   Use goto instead of break. (Hirohito Higashi)
2012-02-11 23:45:37 +01:00
Bram Moolenaar
68ba0dd633 updated for version 7.3.436
Problem:    Compiler warnings for types on Windows.
Solution:   Add type casts. (Mike Williams)
2012-02-11 20:44:10 +01:00
Bram Moolenaar
c047b9a49f updated for version 7.3.435
Problem:    Compiler warning for unused variable.
Solution:   Move the variable inside #ifdef.
2012-02-11 20:40:55 +01:00
Bram Moolenaar
3fe37d62d1 updated for version 7.3.434
Problem:    Using join() can be slow.
Solution:   Compute the size of the result before allocation to avoid a lot of
            allocations and copies. (Taro Muraoka)
2012-02-06 00:13:22 +01:00
40 changed files with 621 additions and 406 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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.

View File

@@ -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.

View File

@@ -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

View File

@@ -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*

View File

@@ -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)

View File

@@ -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

View File

@@ -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()

View File

@@ -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:
"

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 */

View File

@@ -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,

View File

@@ -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. */
@@ -3471,6 +3471,8 @@ getsourceline(c, cookie, indent)
#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)

View File

@@ -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

View File

@@ -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);

View File

@@ -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) \

View File

@@ -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();

View File

@@ -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);

View File

@@ -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 *)&params;
return mzscheme_main(2, args);
}
}
int vim_main2(int argc, char **argv)
{
char_u *fname = (char_u *)argv[0];
mparm_T params;
memcpy(&params, argv[1], sizeof(params));
#endif
/* Execute --cmd arguments. */
exe_pre_commands(&params);
@@ -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;
}

View File

@@ -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);
}

View File

@@ -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

View File

@@ -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

View File

@@ -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));

View File

@@ -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 : */

View File

@@ -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

View File

@@ -9,3 +9,4 @@ testtext 3 3
testtext 1
testtext 3 3 3
testtext 1
testtext 2 2 2

View File

@@ -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\");
}

View File

@@ -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);

View File

@@ -714,6 +714,30 @@ 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,
/**/