summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2005-06-29 22:40:58 +0000
committerBram Moolenaar <Bram@vim.org>2005-06-29 22:40:58 +0000
commit42eeac3552c5a5ea10f24373f76b93633b6c8604 (patch)
tree902f3158470a3e9c53850708cf982c85c6338796
parent24bbcfe8fe62ea43b1cea86243be4fdc8794140b (diff)
downloadvim-git-42eeac3552c5a5ea10f24373f76b93633b6c8604.tar.gz
updated for version 7.0097v7.0097
-rw-r--r--runtime/compiler/bdf.vim12
-rw-r--r--runtime/compiler/gcc.vim30
-rw-r--r--runtime/compiler/rst.vim12
-rw-r--r--runtime/doc/eval.txt10
-rw-r--r--runtime/doc/spell.txt33
-rw-r--r--runtime/doc/tags8
-rw-r--r--runtime/doc/todo.txt14
-rw-r--r--runtime/doc/version7.txt15
-rw-r--r--runtime/filetype.vim58
-rw-r--r--runtime/ftplugin/alsaconf.vim13
-rw-r--r--runtime/ftplugin/arch.vim13
-rw-r--r--runtime/ftplugin/automake.vim15
-rw-r--r--runtime/ftplugin/bdf.vim13
-rw-r--r--runtime/ftplugin/calendar.vim13
-rw-r--r--runtime/ftplugin/changelog.vim132
-rw-r--r--runtime/ftplugin/conf.vim13
-rw-r--r--runtime/ftplugin/context.vim36
-rw-r--r--runtime/ftplugin/crm.vim13
-rw-r--r--runtime/ftplugin/css.vim17
-rw-r--r--runtime/ftplugin/cvsrc.vim13
-rw-r--r--runtime/ftplugin/dircolors.vim13
-rw-r--r--runtime/ftplugin/elinks.vim13
-rw-r--r--runtime/ftplugin/eterm.vim13
-rw-r--r--runtime/ftplugin/fetchmail.vim13
-rw-r--r--runtime/ftplugin/gpg.vim13
-rw-r--r--runtime/ftplugin/grub.vim13
-rw-r--r--runtime/ftplugin/haskell.vim13
-rw-r--r--runtime/ftplugin/help.vim13
-rw-r--r--runtime/ftplugin/indent.vim13
-rw-r--r--runtime/ftplugin/ld.vim13
-rw-r--r--runtime/ftplugin/lftp.vim13
-rw-r--r--runtime/ftplugin/libao.vim13
-rw-r--r--runtime/ftplugin/limits.vim13
-rw-r--r--runtime/ftplugin/loginaccess.vim13
-rw-r--r--runtime/ftplugin/logindefs.vim13
-rw-r--r--runtime/ftplugin/m4.vim13
-rw-r--r--runtime/ftplugin/mailcap.vim13
-rw-r--r--runtime/ftplugin/modconf.vim13
-rw-r--r--runtime/ftplugin/mplayerconf.vim13
-rw-r--r--runtime/ftplugin/muttrc.vim15
-rw-r--r--runtime/ftplugin/netrc.vim13
-rw-r--r--runtime/ftplugin/pamconf.vim13
-rw-r--r--runtime/ftplugin/pinfo.vim13
-rw-r--r--runtime/ftplugin/procmail.vim15
-rw-r--r--runtime/ftplugin/prolog.vim13
-rw-r--r--runtime/ftplugin/quake.vim13
-rw-r--r--runtime/ftplugin/racc.vim13
-rw-r--r--runtime/ftplugin/readline.vim13
-rw-r--r--runtime/ftplugin/rnc.vim13
-rw-r--r--runtime/ftplugin/rst.vim20
-rw-r--r--runtime/ftplugin/screen.vim13
-rw-r--r--runtime/ftplugin/sieve.vim13
-rw-r--r--runtime/ftplugin/sshconfig.vim13
-rw-r--r--runtime/ftplugin/sudoers.vim13
-rw-r--r--runtime/ftplugin/sysctl.vim13
-rw-r--r--runtime/ftplugin/terminfo.vim13
-rw-r--r--runtime/ftplugin/updatedb.vim13
-rw-r--r--runtime/ftplugin/xdefaults.vim13
-rw-r--r--runtime/ftplugin/xf86conf.vim13
-rw-r--r--runtime/ftplugin/xinetd.vim13
-rw-r--r--runtime/ftplugin/xmodmap.vim13
-rw-r--r--runtime/ftplugin/yaml.vim13
-rw-r--r--runtime/ftplugin/zsh.vim13
-rw-r--r--runtime/indent/automake.vim16
-rw-r--r--runtime/indent/config.vim15
-rw-r--r--runtime/indent/css.vim73
-rw-r--r--runtime/indent/docbk.vim12
-rw-r--r--runtime/indent/eterm.vim24
-rw-r--r--runtime/indent/ld.vim2
-rw-r--r--runtime/indent/make.vim44
-rw-r--r--runtime/indent/readline.vim23
-rw-r--r--runtime/indent/rst.vim18
-rw-r--r--runtime/indent/sh.vim26
-rw-r--r--runtime/indent/tcl.vim129
-rw-r--r--runtime/indent/xf86conf.vim20
-rw-r--r--runtime/indent/xinetd.vim49
-rw-r--r--runtime/indent/yacc.vim10
-rw-r--r--runtime/indent/zsh.vim14
-rw-r--r--runtime/syntax/alsaconf.vim87
-rw-r--r--runtime/syntax/arch.vim81
-rw-r--r--runtime/syntax/bdf.vim137
-rw-r--r--runtime/syntax/calendar.vim177
-rw-r--r--runtime/syntax/context.vim104
-rw-r--r--runtime/syntax/crm.vim89
-rw-r--r--runtime/syntax/cvsrc.vim74
-rw-r--r--runtime/syntax/dircolors.vim812
-rw-r--r--runtime/syntax/elinks.vim293
-rw-r--r--runtime/syntax/eterm.vim528
-rw-r--r--runtime/syntax/fetchmail.vim148
-rw-r--r--runtime/syntax/gpg.vim143
-rw-r--r--runtime/syntax/grub.vim156
-rw-r--r--runtime/syntax/indent.vim251
-rw-r--r--runtime/syntax/ld.vim6
-rw-r--r--runtime/syntax/lftp.vim268
-rw-r--r--runtime/syntax/libao.vim59
-rw-r--r--runtime/syntax/limits.vim44
-rw-r--r--runtime/syntax/loginaccess.vim96
-rw-r--r--runtime/syntax/logindefs.vim94
-rw-r--r--runtime/syntax/modconf.vim78
-rw-r--r--runtime/syntax/mplayerconf.vim159
-rw-r--r--runtime/syntax/netrc.vim86
-rw-r--r--runtime/syntax/pamconf.vim118
-rw-r--r--runtime/syntax/pinfo.vim207
-rw-r--r--runtime/syntax/quake.vim242
-rw-r--r--runtime/syntax/racc.vim138
-rw-r--r--runtime/syntax/readline.vim274
-rw-r--r--runtime/syntax/rnc.vim148
-rw-r--r--runtime/syntax/rst.vim175
-rw-r--r--runtime/syntax/screen.vim138
-rw-r--r--runtime/syntax/sieve.vim84
-rw-r--r--runtime/syntax/sudoers.vim428
-rw-r--r--runtime/syntax/sysctl.vim39
-rw-r--r--runtime/syntax/terminfo.vim170
-rw-r--r--runtime/syntax/updatedb.vim39
-rw-r--r--runtime/syntax/xinetd.vim347
-rw-r--r--runtime/syntax/xmodmap.vim817
-rw-r--r--runtime/syntax/yaml.vim156
-rw-r--r--src/fileio.c6
-rw-r--r--src/misc1.c5
-rw-r--r--src/spell.c786
-rw-r--r--src/spell/he_IL.diff68
-rw-r--r--src/spell/nl_NL.diff131
-rw-r--r--src/version.h4
123 files changed, 6613 insertions, 3405 deletions
diff --git a/runtime/compiler/bdf.vim b/runtime/compiler/bdf.vim
index ae2da75e1..133e98040 100644
--- a/runtime/compiler/bdf.vim
+++ b/runtime/compiler/bdf.vim
@@ -1,16 +1,14 @@
" Vim compiler file
-" Compiler: BDF to PCF Conversion
-" Maintainer: Nikolai Weibull <sourc@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/compiler/pcp/bdf/
-" Latest Revision: 2004-05-22
-" arch-tag: 2e2f3a55-199b-468c-aa2e-d6b1a7b87806
+" Compiler: BDF to PCF Conversion
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
if exists("current_compiler")
finish
endif
let current_compiler = "bdf"
-if exists(":CompilerSet") != 2 " older Vim always used :setlocal
+if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
@@ -26,5 +24,3 @@ CompilerSet errorformat=%ABDF\ %trror\ on\ line\ %l:\ %m,
let &cpo = s:cpo_save
unlet s:cpo_save
-
-" vim: set sts=2 sw=2:
diff --git a/runtime/compiler/gcc.vim b/runtime/compiler/gcc.vim
new file mode 100644
index 000000000..1e64f3283
--- /dev/null
+++ b/runtime/compiler/gcc.vim
@@ -0,0 +1,30 @@
+" Vim compiler file
+" Compiler: GNU C Compiler
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("current_compiler")
+ finish
+endif
+let current_compiler = "gcc"
+
+if exists(":CompilerSet") != 2
+ command -nargs=* CompilerSet setlocal <args>
+endif
+
+let s:cpo_save = &cpo
+set cpo-=C
+
+CompilerSet errorformat=
+ \%*[^\"]\"%f\"%*\\D%l:\ %m,
+ \\"%f\"%*\\D%l:\ %m,
+ \%-G%f:%l:\ %trror:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once,
+ \%-G%f:%l:\ %trror:\ for\ each\ function\ it\ appears\ in.),
+ \%f:%l:\ %m,
+ \\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
+ \%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
+ \%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
+ \%DMaking\ %*\\a\ in\ %f
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/compiler/rst.vim b/runtime/compiler/rst.vim
index c9e5be186..f983fe721 100644
--- a/runtime/compiler/rst.vim
+++ b/runtime/compiler/rst.vim
@@ -1,16 +1,14 @@
" Vim compiler file
-" Compiler: reStructuredText Documentation Format
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/compiler/pcp/rst/
-" Latest Revision: 2004-05-22
-" arch-tag: ac64a95a-5d45-493d-a9f9-f96fc8568657
+" Compiler: reStructuredText Documentation Format
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
if exists("current_compiler")
finish
endif
let current_compiler = "rst"
-if exists(":CompilerSet") != 2 " older Vim always used :setlocal
+if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
@@ -29,5 +27,3 @@ CompilerSet errorformat=
let &cpo = s:cpo_save
unlet s:cpo_save
-
-" vim: set sts=2 sw=2:
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index b4f71d2de..9ee13e393 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 7.0aa. Last change: 2005 Jun 28
+*eval.txt* For Vim version 7.0aa. Last change: 2005 Jun 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -3781,8 +3781,8 @@ sort({list} [, {func}]) *sort()* *E702*
soundfold({word})
Return the sound-folded equivalent of {word}. Uses the first
language in 'spellang' for the current window that supports
- soundfolding. When no sound folding is possible the {word}
- is returned unmodified.
+ soundfolding. 'spell' must be set. When no sound folding is
+ possible the {word} is returned unmodified.
This can be used for making spelling suggestions. Note that
the method can be quite slow.
@@ -3808,8 +3808,8 @@ spellsuggest({word} [, {max}])
first entry, thus this can be used to check spelling.
The spelling information for the current window is used. The
- 'spell' option must be set and the value of 'spelllang' is
- used.
+ 'spell' option must be set and the values of 'spelllang' and
+ 'spellsuggest' are used.
split({expr} [, {pattern} [, {keepempty}]]) *split()*
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index 6accc114d..606a030dc 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -1,4 +1,4 @@
-*spell.txt* For Vim version 7.0aa. Last change: 2005 Jun 28
+*spell.txt* For Vim version 7.0aa. Last change: 2005 Jun 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -706,7 +706,8 @@ Example:
SAL C K ~
SAL K K ~
-TODO: explain how it works.
+An explantion how it works can be found in the Aspell manual:
+http://aspell.net/man-html/Phonetic-Code.html.
There are a few special items:
@@ -716,4 +717,32 @@ There are a few special items:
"1" has the same meaning as "true". Any other value means "false".
+
+SIMPLE SOUNDFOLDING *spell-affix-SOFOFROM* *spell-affix-SOFOTO*
+
+The SAL mechanism is complex and slow. A simpler mechanism is mapping all
+characters to another character, mapping similar sounding characters to the
+same character. At the same time this does case folding. You can not have
+SAL items at the same time.
+
+There are two items required: one to speficy the characters that are mapped
+and one that specifies the characters they are mapped to. They must have
+exactly the same number of characters. Example:
+
+ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ~
+ SOFOTO ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkes ~
+
+In the example all vowels are mapped to the same character 'e'. Another
+method is to leave out all vowels. Some characters that sound nearly the same
+and are often mixed up, such as 'm' and 'n', are mapped to the same character.
+Don't do this too much, all words will start looking alike.
+
+Characters that do not appear in SOFOFROM will be left out, except that all
+white space is replaced by one space. Sequences of the same character in
+SOFOFROM are replaced by one.
+
+You can use the |soundfold()| function to try out the results. Or set the
+'verbose' option to see the score in the output of the |z?| command.
+
+
vim:tw=78:sw=4:ts=8:ft=help:norl:
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 8d9d152fb..67930a2a8 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2415,6 +2415,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:spelld spell.txt /*:spelld*
:spelldump spell.txt /*:spelldump*
:spellgood spell.txt /*:spellgood*
+:spellr spell.txt /*:spellr*
+:spellrepall spell.txt /*:spellrepall*
:spellw spell.txt /*:spellw*
:spellwrong spell.txt /*:spellwrong*
:split windows.txt /*:split*
@@ -3710,6 +3712,8 @@ E749 eval.txt /*E749*
E75 vi_diff.txt /*E75*
E750 repeat.txt /*E750*
E751 spell.txt /*E751*
+E752 spell.txt /*E752*
+E753 spell.txt /*E753*
E754 spell.txt /*E754*
E756 spell.txt /*E756*
E758 spell.txt /*E758*
@@ -5141,6 +5145,7 @@ hebrew hebrew.txt /*hebrew*
hebrew.txt hebrew.txt /*hebrew.txt*
help various.txt /*help*
help-context help.txt /*help-context*
+help-tags tags 1
help-translated various.txt /*help-translated*
help-xterm-window various.txt /*help-xterm-window*
help.txt help.txt /*help.txt*
@@ -6253,6 +6258,7 @@ sniff-compiling if_sniff.txt /*sniff-compiling*
sniff-intro if_sniff.txt /*sniff-intro*
sort() eval.txt /*sort()*
sorting change.txt /*sorting*
+soundfold() eval.txt /*soundfold()*
space intro.txt /*space*
spec-customizing pi_spec.txt /*spec-customizing*
spec-how-to-use-it pi_spec.txt /*spec-how-to-use-it*
@@ -6275,6 +6281,8 @@ spell-affix-RAR spell.txt /*spell-affix-RAR*
spell-affix-REP spell.txt /*spell-affix-REP*
spell-affix-SAL spell.txt /*spell-affix-SAL*
spell-affix-SFX spell.txt /*spell-affix-SFX*
+spell-affix-SOFOFROM spell.txt /*spell-affix-SOFOFROM*
+spell-affix-SOFOTO spell.txt /*spell-affix-SOFOTO*
spell-affix-UPP spell.txt /*spell-affix-UPP*
spell-affix-chars spell.txt /*spell-affix-chars*
spell-affix-mbyte spell.txt /*spell-affix-mbyte*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 597337542..11b1c0402 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 7.0aa. Last change: 2005 Jun 28
+*todo.txt* For Vim version 7.0aa. Last change: 2005 Jun 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,8 +30,6 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
-send fixes for ccmalloc port to FreeBSD.
-
Add extra list of file locations. Can be used with:
:ltag list of matching tags, like :tselect
@@ -99,13 +97,9 @@ Awaiting response:
PLANNED FOR VERSION 7.0:
- Add SPELLCHECKER, with support for many languages.
- - Spell checking code todo's:
- - Code for making suggestions:
- - Hebrew: also use prefixes for suggestions. See message from
- Kaminsky (June 20) for ideas.
- - Simple and fast sound-a-like: mapping list for first char and rest
- vowel as first char: *
- remove other vowels
+ - Spell checking code todo's:
+ - Dutch: badword "voorjaarsconferentie"; "najaarsconferentie" gets zero
+ soundfold score.
- Proofread and cleanup spell help.
- Use "engspchk" from Charles Campbell for ideas (commands, rare words).
- Make "en-rare" spell file? Ask Charles Campbell.
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index f9a634c94..00209a162 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt* For Vim version 7.0aa. Last change: 2005 Jun 25
+*version7.txt* For Vim version 7.0aa. Last change: 2005 Jun 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -305,6 +305,7 @@ Options: ~
(idea by Hugo Haas)
'spell' switch spell checking on/off
'spelllang' languages to check spelling for
+'spellsuggest' methods for spell suggestions
'verbosefile' Log messages in a file.
@@ -377,7 +378,10 @@ New functions: ~
|reverse()| reverse the order of a List
|setqflist()| create a quickfix list (Yegappan Lakshmanan)
|sort()| sort a List
+|soundfold()| get the sound-a-like equivalent of a word
|split()| split a String into a List
+|spellbadword()| get a badly spelled word
+|spellsuggest()| get suggestions for correct spelling
|string()| String representation of a List or Dictionary
|system()| Filters {input} through a shell command.
|taglist()| Get list of matching tags. (Yegappan Lakshmanan)
@@ -435,6 +439,8 @@ Sive syntax file. (Nikolai Weibull)
Pascal indent file. (Neil Carter)
+Many filetype plugins and others from Nikolai Weibull.
+
Moved all the indent settings from the filetype plugin to the indent file.
Implemented b:undo_indent to undo indent settings when setting 'filetype' to a
different value.
@@ -1146,4 +1152,11 @@ It was possible to define a function with illegal name, e.t. ":func F{-1}()"
CTRL-W F and "gf" didn't use the same method to get the file name.
+When reporting a conversion error the line number of the last error could be
+given. Now report the first encountered error.
+
+When using ":e ++enc=name file" and iconv() was used for conversion an error
+caused a fallback to no conversion. Now replace a character with '?' and
+continue.
+
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 8dcc7182e..9b47dca67 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2005 Jun 17
+" Last Change: 2005 Jun 29
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -194,6 +194,9 @@ au BufNewFile,BufRead *.atl,*.as setf atlas
" Automake
au BufNewFile,BufRead [mM]akefile.am setf automake
+" Autotest .at files are actually m4
+au BufNewFile,BufRead *.at setf m4
+
" Avenue
au BufNewFile,BufRead *.ave setf ave
@@ -733,12 +736,18 @@ au BufNewFile,BufRead *.ace,*.ACE setf lace
" Latte
au BufNewFile,BufRead *.latte,*.lte setf latte
+" Limits
+au BufNewFile,BufRead /etc/limits setf limits
+
" LambdaProlog (*.mod too, see Modsim)
au BufNewFile,BufRead *.sig setf lprolog
" LDAP LDIF
au BufNewFile,BufRead *.ldif setf ldif
+" Ld loader
+au BufNewFile,BufRead *.ld setf ld
+
" Lex
au BufNewFile,BufRead *.lex,*.l setf lex
@@ -761,9 +770,18 @@ else
au BufNewFile,BufRead *.lsp,*.lisp,*.el,*.cl,*.jl,.emacs,.sawfishrc setf lisp
endif
+" SBCL implementation of Common Lisp
+au BufNewFile,BufRead sbclrc,.sbclrc setf lisp
+
" Lite
au BufNewFile,BufRead *.lite,*.lt setf lite
+" Login access
+au BufNewFile,BufRead /etc/login.access setf loginaccess
+
+" Login defs
+au BufNewFile,BufRead /etc/login.defs setf logindefs
+
" Logtalk
au BufNewFile,BufRead *.lgt setf logtalk
@@ -990,6 +1008,9 @@ au BufNewFile,BufRead *.ora setf ora
" Packet filter conf
au BufNewFile,BufRead pf.conf setf pf
+" Pam conf
+au BufNewFile,BufRead /etc/pam.conf setf pamconf
+
" PApp
au BufNewFile,BufRead *.papp,*.pxml,*.pxsl setf papp
@@ -1535,6 +1556,9 @@ au BufNewFile,BufRead *.stp setf stp
" Standard ML
au BufNewFile,BufRead *.sml setf sml
+" Sysctl
+au BufNewFile,BufRead /etc/sysctl.conf setf sysctl
+
" Sudoers
au BufNewFile,BufRead /etc/sudoers,sudoers.tmp setf sudoers
@@ -1593,12 +1617,15 @@ au BufNewFile,BufRead *.uit,*.uil setf uil
" UnrealScript
au BufNewFile,BufRead *.uc setf uc
+" Updatedb
+au BufNewFile,BufRead /etc/updatedb.conf setf updatedb
+
" Verilog HDL
au BufNewFile,BufRead *.v setf verilog
" VHDL
au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst setf vhdl
-au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl')
+au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl')
" Vim script
au BufNewFile,BufRead *.vim,.exrc,_exrc setf vim
@@ -1673,6 +1700,9 @@ au BufNewFile,BufRead XF86Config
" Xorg config
au BufNewFile,BufRead xorg.conf,xorg.conf-4 let b:xf86c_xfree86_version = 4 | setf xf86conf
+" Xinetd conf
+au BufNewFile,BufRead /etc/xinetd.conf setf xinetd
+
" XS Perl extension interface language
au BufNewFile,BufRead *.xs setf xs
@@ -1709,7 +1739,23 @@ au BufNewFile,BufRead *.xsd setf xsd
au BufNewFile,BufRead *.xsl,*.xslt setf xslt
" Yacc
-au BufNewFile,BufRead *.y,*.yy setf yacc
+au BufNewFile,BufRead *.yy setf yacc
+
+" Yacc or racc
+au BufNewFile,BufRead *.y call s:FTy()
+
+fun! s:FTy()
+ let n = 1
+ while n < 10
+ if getline(n) =~ '^\s*\(#\|class\>\)'
+ setf racc
+ return
+ endif
+ let n = n + 1
+ endwhile
+ setf yacc
+endfun
+
" Yaml
au BufNewFile,BufRead *.yaml,*.yml setf yaml
@@ -1794,6 +1840,9 @@ au BufNewFile,BufRead muttrc*,Muttrc* call s:StarSetf('muttrc')
" Nroff macros
au BufNewFile,BufRead tmac.* call s:StarSetf('nroff')
+" Pam conf
+au BufNewFile,BufRead /etc/pam.d/* call s:StarSetf('pamconf')
+
" Printcap and Termcap
au BufNewFile,BufRead *printcap*
\ if !did_filetype()
@@ -1825,6 +1874,9 @@ au BufNewFile,BufRead XF86Config*
" X11 xmodmap
au BufNewFile,BufRead *xmodmap* call s:StarSetf('xmodmap')
+" Xinetd conf
+au BufNewFile,BufRead /etc/xinetd.d/* call s:StarSetf('xinetd')
+
" Z-Shell script
au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh')
diff --git a/runtime/ftplugin/alsaconf.vim b/runtime/ftplugin/alsaconf.vim
new file mode 100644
index 000000000..fd96e82f9
--- /dev/null
+++ b/runtime/ftplugin/alsaconf.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: alsaconf(8) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/arch.vim b/runtime/ftplugin/arch.vim
new file mode 100644
index 000000000..0102e9a5d
--- /dev/null
+++ b/runtime/ftplugin/arch.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: GNU Arch inventory file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/automake.vim b/runtime/ftplugin/automake.vim
index f25770c34..1ef28d1ec 100644
--- a/runtime/ftplugin/automake.vim
+++ b/runtime/ftplugin/automake.vim
@@ -1,11 +1,10 @@
" Vim filetype plugin file
-" Langugage: Automake
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/ftplugin/pcp/automake/
-" Latest Revision: 2004-05-22
-" arch-tag: 3a78b0cd-27b2-410a-8e7b-51a1717c2a5b
+" Language: Automake
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-22
-" Same as makefile filetype plugin for now.
-runtime! ftplugin/make.vim ftplugin/make_*.vim ftplugin/make/*.vim
+if exists("b:did_ftplugin")
+ finish
+endif
-" vim: set sts=2 sw=2:
+runtime! ftplugin/make.vim ftplugin/make_*.vim ftplugin/make/*.vim
diff --git a/runtime/ftplugin/bdf.vim b/runtime/ftplugin/bdf.vim
new file mode 100644
index 000000000..a303d85e3
--- /dev/null
+++ b/runtime/ftplugin/bdf.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: BDF font definition
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-22
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=b:COMMENT commentstring=COMMENT\ %s
diff --git a/runtime/ftplugin/calendar.vim b/runtime/ftplugin/calendar.vim
new file mode 100644
index 000000000..f71bfe4ee
--- /dev/null
+++ b/runtime/ftplugin/calendar.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: calendar(1) input file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< inc<"
+
+setlocal comments=s1:/*,mb:*,ex:*/ commentstring& include&
diff --git a/runtime/ftplugin/changelog.vim b/runtime/ftplugin/changelog.vim
index 847cca7e8..b229dbe84 100644
--- a/runtime/ftplugin/changelog.vim
+++ b/runtime/ftplugin/changelog.vim
@@ -1,24 +1,22 @@
" Vim filetype plugin file
-" Language: generic Changelog file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/ftplugin/pcp/changelog/
-" Latest Revision: 2004-04-25
-" arch-tag: b00e2974-c559-4477-b7b2-3ef3f4061bdb
+" Language: generic Changelog file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
" Variables:
" g:changelog_timeformat -
-" description: the timeformat used in ChangeLog entries.
-" default: "%Y-%m-%d".
+" description: the timeformat used in ChangeLog entries.
+" default: "%Y-%m-%d".
" g:changelog_username -
-" description: the username to use in ChangeLog entries
-" default: try to deduce it from environment variables and system files.
+" description: the username to use in ChangeLog entries
+" default: try to deduce it from environment variables and system files.
" Local Mappings:
" <Leader>o -
-" adds a new changelog entry for the current user for the current date.
+" adds a new changelog entry for the current user for the current date.
" Global Mappings:
" <Leader>o -
-" switches to the ChangeLog buffer opened for the current directory, or
-" opens it in a new buffer if it exists in the current directory. Then
-" it does the same as the local <Leader>o described above.
+" switches to the ChangeLog buffer opened for the current directory, or
+" opens it in a new buffer if it exists in the current directory. Then
+" it does the same as the local <Leader>o described above.
" Notes:
" run 'runtime ftplugin/changelog.vim' to enable the global mapping for
" changelog files.
@@ -28,16 +26,13 @@
" If 'filetype' isn't "changelog", we must have been to add ChangeLog opener
if &filetype == "changelog"
- " Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
-
- " Don't load another plugin for this buffer
let b:did_ftplugin = 1
- let cpo_save = &cpo
- set cpo-=C
+ let s:cpo_save = &cpo
+ set cpo&vim
" The format of the date-time field (should have been called dateformat)
if !exists("g:changelog_timeformat")
@@ -55,56 +50,56 @@ if &filetype == "changelog"
" Get the users login name
let login = system('whoami')
if v:shell_error
- let login = 'unknown'
+ let login = 'unknown'
else
- let newline = stridx(login, "\n")
- if newline != -1
- let login = strpart(login, 0, newline)
- endif
+ let newline = stridx(login, "\n")
+ if newline != -1
+ let login = strpart(login, 0, newline)
+ endif
endif
" Try to full name from gecos field in /etc/passwd
if filereadable('/etc/passwd')
- let name = substitute(
- \system('cat /etc/passwd | grep ^`whoami`'),
- \'^\%([^:]*:\)\{4}\([^:]*\):.*$', '\1', '')
+ let name = substitute(
+ \system('cat /etc/passwd | grep ^`whoami`'),
+ \'^\%([^:]*:\)\{4}\([^:]*\):.*$', '\1', '')
endif
" If there is no such file, or there was some other problem try
" others
if !filereadable('/etc/passwd') || v:shell_error
- " Maybe the environment has something of interest
- if exists("$NAME")
- let name = $NAME
- else
- " No? well, use the login name and capitalize first
- " character
- let name = toupper(login[0]) . strpart(login, 1)
- endif
+ " Maybe the environment has something of interest
+ if exists("$NAME")
+ let name = $NAME
+ else
+ " No? well, use the login name and capitalize first
+ " character
+ let name = toupper(login[0]) . strpart(login, 1)
+ endif
endif
" Only keep stuff before the first comma
let comma = stridx(name, ',')
if comma != -1
- let name = strpart(name, 0, comma)
+ let name = strpart(name, 0, comma)
endif
" And substitute & in the real name with the login of our user
let amp = stridx(name, '&')
if amp != -1
- let name = strpart(name, 0, amp) . toupper(login[0]) .
- \strpart(login, 1) . strpart(name, amp + 1)
+ let name = strpart(name, 0, amp) . toupper(login[0]) .
+ \strpart(login, 1) . strpart(name, amp + 1)
endif
" Get our hostname
let hostname = system("hostname")
if v:shell_error
- let hostname = 'unknownhost'
+ let hostname = 'unknownhost'
else
- let newline = stridx(hostname, "\n")
- if newline != -1
- let hostname = strpart(hostname, 0, newline)
- endif
+ let newline = stridx(hostname, "\n")
+ if newline != -1
+ let hostname = strpart(hostname, 0, newline)
+ endif
endif
" And finally set the username
@@ -134,15 +129,15 @@ if &filetype == "changelog"
while i != -1
let char = str[i + 1]
if char == '%'
- let middle = '%'
+ let middle = '%'
elseif char == 'd'
- let middle = a:date
+ let middle = a:date
elseif char == 'u'
- let middle = a:user
+ let middle = a:user
elseif char == 'c'
- let middle = '{cursor}'
+ let middle = '{cursor}'
else
- let middle = char
+ let middle = char
endif
let str = strpart(str, 0, i) . middle . strpart(str, i + 2)
let i = stridx(str, '%')
@@ -169,17 +164,17 @@ if &filetype == "changelog"
" Look for an entry for today by our user
let date = strftime(g:changelog_timeformat)
let search = s:substitute_items(g:changelog_date_entry_search, date,
- \g:changelog_username)
+ \g:changelog_username)
if search(search) > 0
" Ok, now we look for the end of the date-entry, and add an entry
let pos = nextnonblank(line('.') + 1)
let line = getline(pos)
while line =~ '^\s\+\S\+'
- let pos = pos + 1
- let line = getline(pos)
+ let pos = pos + 1
+ let line = getline(pos)
endwhile
let insert = s:substitute_items(g:changelog_new_entry_format,
- \'', '')
+ \'', '')
execute "normal! ".(pos - 1)."Go".insert
execute pos
else
@@ -188,18 +183,18 @@ if &filetype == "changelog"
" No entry today, so create a date-user header and insert an entry
let todays_entry = s:substitute_items(g:changelog_new_date_format,
- \date, g:changelog_username)
+ \date, g:changelog_username)
" Make sure we have a cursor positioning
if stridx(todays_entry, '{cursor}') == -1
- let todays_entry = todays_entry.'{cursor}'
+ let todays_entry = todays_entry.'{cursor}'
endif
" Now do the work
execute "normal! i".todays_entry
if remove_empty
- while getline('$') == ''
- $delete
- endwhile
+ while getline('$') == ''
+ $delete
+ endwhile
endif
1
@@ -216,7 +211,7 @@ if &filetype == "changelog"
command! -nargs=0 NewChangelogEntry call s:new_changelog_entry()
endif
- let b:undo_ftplugin = "setl com< tw< fo< et<"
+ let b:undo_ftplugin = "setl com< tw< fo< et< ai<"
if &textwidth == 0
setlocal textwidth=78
@@ -224,9 +219,10 @@ if &filetype == "changelog"
setlocal comments=
setlocal formatoptions+=t
setlocal noexpandtab
- " setlocal autoindent now in indent file
+ setlocal autoindent
- let &cpo = cpo_save
+ let &cpo = s:cpo_save
+ unlet s:cpo_save
else
" Add the Changelog opening mapping
nmap <silent> <Leader>o :call <SID>open_changelog()<CR>
@@ -234,23 +230,21 @@ else
function! s:open_changelog()
if filereadable('ChangeLog')
if bufloaded('ChangeLog')
- let buf = bufnr('ChangeLog')
- execute "normal! \<C-W>t"
- while winbufnr(winnr()) != buf
- execute "normal! \<C-W>w"
- endwhile
+ let buf = bufnr('ChangeLog')
+ execute "normal! \<C-W>t"
+ while winbufnr(winnr()) != buf
+ execute "normal! \<C-W>w"
+ endwhile
else
- split ChangeLog
+ split ChangeLog
endif
if exists("g:mapleader")
- execute "normal " . g:mapleader . "o"
+ execute "normal " . g:mapleader . "o"
else
- execute "normal \\o"
+ execute "normal \\o"
endif
startinsert!
endif
endfunction
endif
-
-" vim: set sts=2 sw=2:
diff --git a/runtime/ftplugin/conf.vim b/runtime/ftplugin/conf.vim
new file mode 100644
index 000000000..dce5e65b5
--- /dev/null
+++ b/runtime/ftplugin/conf.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: generic configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/context.vim b/runtime/ftplugin/context.vim
new file mode 100644
index 000000000..8868319d9
--- /dev/null
+++ b/runtime/ftplugin/context.vim
@@ -0,0 +1,36 @@
+" Vim filetype plugin file
+" Language: ConTeXt typesetting engine
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< def< inc< sua<"
+
+setlocal comments=:%,b:%D,b:%C,b:%M commentstring=%\ %s
+
+let &l:define='\\\%([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
+ \ . 'def\|\\font\|\\\%(future\)\=let'
+ \ . '\|\\new\%(count\|dimen\|skip\|muskip\|box\|toks\|read\|write'
+ \ . '\|fam\|insert\|if\)'
+
+let &l:include = '^\s*\%(input\|component\)'
+
+setlocal suffixesadd=.tex
+
+if exists("loaded_matchit")
+ let b:match_ignorecase = 0
+ let b:match_skip = 'r:\\\@<!\%(\\\\\)*%'
+ let b:match_words = '(:),\[:],{:},\\(:\\),\\\[:\\],' .
+ \ '\\start\(\a\+\):\\stop\1'
+endif " exists("loaded_matchit")
+
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/crm.vim b/runtime/ftplugin/crm.vim
new file mode 100644
index 000000000..12b41bf90
--- /dev/null
+++ b/runtime/ftplugin/crm.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: CRM114
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/css.vim b/runtime/ftplugin/css.vim
index 05eb9fff0..417590c45 100644
--- a/runtime/ftplugin/css.vim
+++ b/runtime/ftplugin/css.vim
@@ -1,20 +1,15 @@
" Vim filetype plugin file
-" Language: CSS
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/ftplugin/pcp/css/
-" Latest Revision: 2004-04-25
-" arch-tag: 5fa7c74f-bf1a-47c4-b06f-6efe8f48db3b
+" Language: CSS
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
-
-" Don't load another plugin for this buffer
let b:did_ftplugin = 1
-let b:undo_ftplugin = "setl com<"
+let b:undo_ftplugin = "setl com< cms< inc<"
-setlocal comments=s1:/*,mb:*,ex:*/
+setlocal comments=s1:/*,mb:*,ex:*/ commentstring&
-" vim: set sts=2 sw=2:
+let &l:include = '^\s*@import\s\+\%(url(\)\='
diff --git a/runtime/ftplugin/cvsrc.vim b/runtime/ftplugin/cvsrc.vim
new file mode 100644
index 000000000..686fddf0e
--- /dev/null
+++ b/runtime/ftplugin/cvsrc.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: cvs(1) RC file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments= commentstring=
diff --git a/runtime/ftplugin/dircolors.vim b/runtime/ftplugin/dircolors.vim
new file mode 100644
index 000000000..2062c38bf
--- /dev/null
+++ b/runtime/ftplugin/dircolors.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: dircolors(1) input file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/elinks.vim b/runtime/ftplugin/elinks.vim
new file mode 100644
index 000000000..ab81f1d4c
--- /dev/null
+++ b/runtime/ftplugin/elinks.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: elinks(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/eterm.vim b/runtime/ftplugin/eterm.vim
new file mode 100644
index 000000000..22725ef15
--- /dev/null
+++ b/runtime/ftplugin/eterm.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: eterm(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< inc<"
+
+setlocal comments=:# commentstring=#\ %s include=^\\s*include
diff --git a/runtime/ftplugin/fetchmail.vim b/runtime/ftplugin/fetchmail.vim
new file mode 100644
index 000000000..d8985c382
--- /dev/null
+++ b/runtime/ftplugin/fetchmail.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: fetchmail(1) RC File
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/gpg.vim b/runtime/ftplugin/gpg.vim
new file mode 100644
index 000000000..a3f7b2689
--- /dev/null
+++ b/runtime/ftplugin/gpg.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: gpg(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/grub.vim b/runtime/ftplugin/grub.vim
new file mode 100644
index 000000000..a29b7818a
--- /dev/null
+++ b/runtime/ftplugin/grub.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: grub(8) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/haskell.vim b/runtime/ftplugin/haskell.vim
new file mode 100644
index 000000000..242875b36
--- /dev/null
+++ b/runtime/ftplugin/haskell.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: Haskell
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_plugin = "setl com< cms<"
+
+setlocal comments=s1fl:{-,mb:-,ex:-},:-- commentstring=--\ %s
diff --git a/runtime/ftplugin/help.vim b/runtime/ftplugin/help.vim
new file mode 100644
index 000000000..e2439ba0e
--- /dev/null
+++ b/runtime/ftplugin/help.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: Vim help file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_plugin = "setl fo< tw<"
+
+setlocal formatoptions+=tcroql textwidth=78
diff --git a/runtime/ftplugin/indent.vim b/runtime/ftplugin/indent.vim
new file mode 100644
index 000000000..64f0fde6a
--- /dev/null
+++ b/runtime/ftplugin/indent.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: indent(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com<"
+
+setlocal comments=s1:/*,mb:*,ex:*/
diff --git a/runtime/ftplugin/ld.vim b/runtime/ftplugin/ld.vim
new file mode 100644
index 000000000..d4b6bbc14
--- /dev/null
+++ b/runtime/ftplugin/ld.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: ld(1) script
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< inc<"
+
+setlocal comments=s1:/*,mb:*,ex:*/ commentstring=/*%s*/ include=^\\s*INCLUDE
diff --git a/runtime/ftplugin/lftp.vim b/runtime/ftplugin/lftp.vim
new file mode 100644
index 000000000..e94ebc742
--- /dev/null
+++ b/runtime/ftplugin/lftp.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: lftp(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/libao.vim b/runtime/ftplugin/libao.vim
new file mode 100644
index 000000000..c38ac9562
--- /dev/null
+++ b/runtime/ftplugin/libao.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: libao.conf(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/limits.vim b/runtime/ftplugin/limits.vim
new file mode 100644
index 000000000..120753500
--- /dev/null
+++ b/runtime/ftplugin/limits.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: limits(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/loginaccess.vim b/runtime/ftplugin/loginaccess.vim
new file mode 100644
index 000000000..404a36dd0
--- /dev/null
+++ b/runtime/ftplugin/loginaccess.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: login.access(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/logindefs.vim b/runtime/ftplugin/logindefs.vim
new file mode 100644
index 000000000..26486bcd8
--- /dev/null
+++ b/runtime/ftplugin/logindefs.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: login.defs(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/m4.vim b/runtime/ftplugin/m4.vim
new file mode 100644
index 000000000..8f971e84c
--- /dev/null
+++ b/runtime/ftplugin/m4.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: m4
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:#,:dnl commentstring=dnl\ %s
diff --git a/runtime/ftplugin/mailcap.vim b/runtime/ftplugin/mailcap.vim
new file mode 100644
index 000000000..208c9f55a
--- /dev/null
+++ b/runtime/ftplugin/mailcap.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: Mailcap configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+set comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/modconf.vim b/runtime/ftplugin/modconf.vim
new file mode 100644
index 000000000..26ed0e7ac
--- /dev/null
+++ b/runtime/ftplugin/modconf.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: modules.conf(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< inc<"
+
+setlocal comments=:# commentstring=#\ %s include=^\\s*include
diff --git a/runtime/ftplugin/mplayerconf.vim b/runtime/ftplugin/mplayerconf.vim
new file mode 100644
index 000000000..631b9131b
--- /dev/null
+++ b/runtime/ftplugin/mplayerconf.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: mplayer(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< inc<"
+
+setlocal comments=:# commentstring=#\ %s include=^\\s*include
diff --git a/runtime/ftplugin/muttrc.vim b/runtime/ftplugin/muttrc.vim
new file mode 100644
index 000000000..62017e90f
--- /dev/null
+++ b/runtime/ftplugin/muttrc.vim
@@ -0,0 +1,15 @@
+" Vim filetype plugin file
+" Language: mutt RC File
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< inc<"
+
+setlocal comments=:# commentstring=#\ %s
+
+let &l:include = '^\s*source\>'
diff --git a/runtime/ftplugin/netrc.vim b/runtime/ftplugin/netrc.vim
new file mode 100644
index 000000000..d156ef802
--- /dev/null
+++ b/runtime/ftplugin/netrc.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: netrc(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments= commentstring=
diff --git a/runtime/ftplugin/pamconf.vim b/runtime/ftplugin/pamconf.vim
new file mode 100644
index 000000000..0332f7e09
--- /dev/null
+++ b/runtime/ftplugin/pamconf.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: pam(8) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/pinfo.vim b/runtime/ftplugin/pinfo.vim
new file mode 100644
index 000000000..117a2e2f3
--- /dev/null
+++ b/runtime/ftplugin/pinfo.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: pinfo(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/procmail.vim b/runtime/ftplugin/procmail.vim
new file mode 100644
index 000000000..95d806783
--- /dev/null
+++ b/runtime/ftplugin/procmail.vim
@@ -0,0 +1,15 @@
+" Vim filetype plugin file
+" Language: procmail(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< inc<"
+
+setlocal comments=:# commentstring=#\ %s
+
+let &l:include = '^\s*INCLUDERC\>'
diff --git a/runtime/ftplugin/prolog.vim b/runtime/ftplugin/prolog.vim
new file mode 100644
index 000000000..e5ab76d4e
--- /dev/null
+++ b/runtime/ftplugin/prolog.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: Prolog
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=s1:/*,mb:*,ex:*/,:% commentstring=%\ %s
diff --git a/runtime/ftplugin/quake.vim b/runtime/ftplugin/quake.vim
new file mode 100644
index 000000000..f750aef1a
--- /dev/null
+++ b/runtime/ftplugin/quake.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: Quake[1-3] configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:// commentstring=//\ %s
diff --git a/runtime/ftplugin/racc.vim b/runtime/ftplugin/racc.vim
new file mode 100644
index 000000000..461d3a4c5
--- /dev/null
+++ b/runtime/ftplugin/racc.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: Racc input file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=s1:/*,mb:*,ex:*/,:# commentstring=#\ %s
diff --git a/runtime/ftplugin/readline.vim b/runtime/ftplugin/readline.vim
new file mode 100644
index 000000000..29bbe39b1
--- /dev/null
+++ b/runtime/ftplugin/readline.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: readline(3) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/rnc.vim b/runtime/ftplugin/rnc.vim
new file mode 100644
index 000000000..713f387f3
--- /dev/null
+++ b/runtime/ftplugin/rnc.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: Relax NG compact syntax
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/rst.vim b/runtime/ftplugin/rst.vim
index 98dd5a07b..6414c84a8 100644
--- a/runtime/ftplugin/rst.vim
+++ b/runtime/ftplugin/rst.vim
@@ -1,23 +1,13 @@
" Vim filetype plugin file
-" Language: reStructuredText Documentation Format
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/ftplugin/pcp/rst/
-" Latest Revision: 2004-04-25
-" arch-tag: 618bf504-81ba-4518-bad2-43ba2b844a26
+" Language: reStructuredText documentation format
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
-
-" Don't load another plugin for this buffer
let b:did_ftplugin = 1
-let b:undo_ftplugin = "setl com< cms<"
-
-setlocal comments=fb:..
-setlocal commentstring=..\ %s
-setlocal expandtab
-setlocal sts=2 sw=2
+let b:undo_ftplugin = "setl com< cms< et<"
-" vim: set sts=2 sw=2:
+setlocal comments=fb:.. commentstring=..\ %s expandtab
diff --git a/runtime/ftplugin/screen.vim b/runtime/ftplugin/screen.vim
new file mode 100644
index 000000000..cd803fdb5
--- /dev/null
+++ b/runtime/ftplugin/screen.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: screen(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/sieve.vim b/runtime/ftplugin/sieve.vim
new file mode 100644
index 000000000..97d235bc4
--- /dev/null
+++ b/runtime/ftplugin/sieve.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: Sieve filtering language input file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=s1:/*,mb:*,ex:*/,:# commentstring=#\ %s
diff --git a/runtime/ftplugin/sshconfig.vim b/runtime/ftplugin/sshconfig.vim
new file mode 100644
index 000000000..456a09d35
--- /dev/null
+++ b/runtime/ftplugin/sshconfig.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: OpenSSH client configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/sudoers.vim b/runtime/ftplugin/sudoers.vim
new file mode 100644
index 000000000..c76bfa993
--- /dev/null
+++ b/runtime/ftplugin/sudoers.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: sudoers(5) configuration files
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/sysctl.vim b/runtime/ftplugin/sysctl.vim
new file mode 100644
index 000000000..50939d74d
--- /dev/null
+++ b/runtime/ftplugin/sysctl.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: sysctl.conf(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_plugin = "setl com< cms<"
+
+setlocal comments=:;,:# commentstring=#\ %s
diff --git a/runtime/ftplugin/terminfo.vim b/runtime/ftplugin/terminfo.vim
new file mode 100644
index 000000000..df4af34af
--- /dev/null
+++ b/runtime/ftplugin/terminfo.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: terminfo(5) definition
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/updatedb.vim b/runtime/ftplugin/updatedb.vim
new file mode 100644
index 000000000..ce818e811
--- /dev/null
+++ b/runtime/ftplugin/updatedb.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: updatedb.conf(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_plugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/xdefaults.vim b/runtime/ftplugin/xdefaults.vim
new file mode 100644
index 000000000..fc04c310d
--- /dev/null
+++ b/runtime/ftplugin/xdefaults.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: X resources files like ~/.Xdefaults (xrdb)
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< inc<"
+
+setlocal comments=s1:/*,mb:*,ex:*/,:! commentstring& inc&
diff --git a/runtime/ftplugin/xf86conf.vim b/runtime/ftplugin/xf86conf.vim
new file mode 100644
index 000000000..11eb5d914
--- /dev/null
+++ b/runtime/ftplugin/xf86conf.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: XFree86 Configuration File
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:# commentstring=#\ %s
diff --git a/runtime/ftplugin/xinetd.vim b/runtime/ftplugin/xinetd.vim
new file mode 100644
index 000000000..271b307d1
--- /dev/null
+++ b/runtime/ftplugin/xinetd.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: xinetd.conf(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< inc<"
+
+setlocal comments=:# commentstring=#\ %s include=^\\s*include
diff --git a/runtime/ftplugin/xmodmap.vim b/runtime/ftplugin/xmodmap.vim
new file mode 100644
index 000000000..37d002740
--- /dev/null
+++ b/runtime/ftplugin/xmodmap.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: xmodmap(1) definition file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=:! commentstring=!\ %s
diff --git a/runtime/ftplugin/yaml.vim b/runtime/ftplugin/yaml.vim
new file mode 100644
index 000000000..89c7e4ae0
--- /dev/null
+++ b/runtime/ftplugin/yaml.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: YAML (YAML Ain't Markup Language)
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< et<"
+
+setlocal comments=:# commentstring=#\ %s expandtab
diff --git a/runtime/ftplugin/zsh.vim b/runtime/ftplugin/zsh.vim
new file mode 100644
index 000000000..00dce3087
--- /dev/null
+++ b/runtime/ftplugin/zsh.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: Zsh shell script
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms<"
+
+setlocal comments=b:# commentstring=#\ %s
diff --git a/runtime/indent/automake.vim b/runtime/indent/automake.vim
index 60eff0750..0f8dbadf8 100644
--- a/runtime/indent/automake.vim
+++ b/runtime/indent/automake.vim
@@ -1,11 +1,11 @@
" Vim indent file
-" Language: automake
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/indent/pcp/automake/
-" Latest Revision: 2004-04-25
-" arch-tag: 9a2af48c-48d4-4bae-82c3-c801bc9d1976
+" Language: automake
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-" same as makefile indenting for now.
-source <sfile>:p:h/make.vim
+if exists("b:did_indent")
+ finish
+endif
-" vim: set sts=2 sw=2:
+" same as makefile indenting for now.
+runtime! indent/make.vim
diff --git a/runtime/indent/config.vim b/runtime/indent/config.vim
index 5a803ed8a..3789a507f 100644
--- a/runtime/indent/config.vim
+++ b/runtime/indent/config.vim
@@ -1,18 +1,17 @@
" Vim indent file
-" Language: Autoconf configure.{ac,in} file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/indent/pcp/config/
-" Latest Revision: 2004-04-25
-" arch-tag: 7779c341-796f-408e-80e4-a55c26b519a4
-" TODO: how about nested [()]'s in one line
-" what's wrong with '\\\@!'?
+" Language: Autoconf configure.{ac,in} file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" URL: http://www.pcppopper.org/vim/indent/pcp/config/
+" Latest Revision: 2005-06-29
+" TODO: how about nested [()]'s in one line
+" what's wrong with '\\\@!'?
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
-source <sfile>:p:h/sh.vim " will set b:did_indent
+runtime! indent/sh.vim " will set b:did_indent
setlocal indentexpr=GetConfigIndent()
setlocal indentkeys=!^F,o,O,=then,=do,=else,=elif,=esac,=fi,=fin,=fil,=done
diff --git a/runtime/indent/css.vim b/runtime/indent/css.vim
index 610c725c6..ee4288cf7 100644
--- a/runtime/indent/css.vim
+++ b/runtime/indent/css.vim
@@ -1,79 +1,54 @@
" Vim indent file
-" Language: CSS
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/indent/pcp/css/
-" Latest Revision: 2004-04-25
-" arch-tag: ccfd77a0-1c9a-43f7-a407-bbe704541442
+" Language: CSS
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
-
let b:did_indent = 1
setlocal indentexpr=GetCSSIndent()
-setlocal indentkeys-=:,0# indentkeys-=e
+setlocal indentkeys=0{,0},!^F,o,O
-" Only define the function once.
if exists("*GetCSSIndent")
finish
endif
-function! s:LookupLine(lnum)
- " find a non-blank line above the current line
+function s:LookupLine(lnum)
let lnum = prevnonblank(a:lnum - 1)
-
- if lnum == 0
- return 0
- endif
-
- let line = getline(lnum)
-
- " if the line has an end comment sequence we need to find a line
- " that isn't affected by the comment.
- if line =~ '\*/'
- while line !~ '/\*'
- let lnum = lnum - 1
- let line = getline(lnum)
- endwhile
- endif
-
- " if the line we found only contained the comment and whitespace
- " we need to find another line to use...
- if line =~ '^\s*/\*'
- return s:LookupLine(lnum)
- else
- return lnum
- endif
+ while lnum > 0
+ let line = getline(lnum)
+
+ if line =~ '\*/'
+ while lnum > 0 && line !~ '/\*'
+ let lnum -= 1
+ let line = getline(lnum)
+ endwhile
+ endif
+
+ if line !~ '^\s*/\*'
+ return lnum
+ end
+ endwhile
+ return lnum
endfunction
function GetCSSIndent()
- let lnum = s:LookupLine(v:lnum)
-
+ let lnum = prevnonblank(v:lnum - 1)
if lnum == 0
return 0
endif
- " remove commented stuff from line
- let line = substitute(getline(lnum), '/\*.\*/', '', 'eg')
-
let ind = indent(lnum)
- " check for opening brace on the previous line
- " skip if it also contains a closing brace...
- if line =~ '{\(.*}\)\@!'
+ if substitute(getline(lnum), '/\*.*', '', 'e') =~ '{\(.*}\)\@!'
let ind = ind + &sw
endif
- let line = getline(v:lnum)
-
- " check for closing brace first on current line
- if line =~ '^\s*}'
- let ind = ind - &sw
+ if getline(v:lnum) =~ '^\s*}'
+ let ind = ind - &sw
endif
return ind
endfunction
-
-" vim: set sts=2 sw=2:
diff --git a/runtime/indent/docbk.vim b/runtime/indent/docbk.vim
index 297ad04e6..575b91f00 100644
--- a/runtime/indent/docbk.vim
+++ b/runtime/indent/docbk.vim
@@ -1,12 +1,10 @@
" Vim indent file
-" Language: DocBook Documentation Format
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/indent/pcp/docbk/
-" Latest Revision: 2004-05-22
-" arch-tag: 3d073af7-1d69-42a2-99ad-9a49a21eb28f
+" Language: DocBook Documentation Format
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
if exists("b:did_indent")
- finish
+ finish
endif
" Same as XML indenting for now.
@@ -15,5 +13,3 @@ runtime! indent/xml.vim
if exists('*XmlIndentGet')
setlocal indentexpr=XmlIndentGet(v:lnum,0)
endif
-
-" vim: set sts=2 sw=2:
diff --git a/runtime/indent/eterm.vim b/runtime/indent/eterm.vim
index 2e7ba1858..938b94a72 100644
--- a/runtime/indent/eterm.vim
+++ b/runtime/indent/eterm.vim
@@ -1,49 +1,35 @@
" Vim indent file
-" Language: Eterm configuration file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/indent/pcp/eterm/
-" Latest Revision: 2004-04-25
-" arch-tag: a22a92b1-c59f-4f47-8207-b21db6549b21
+" Language: Eterm configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
-
let b:did_indent = 1
setlocal indentexpr=GetEtermIndent()
setlocal indentkeys=!^F,o,O,=end
-" Only define the function once.
if exists("*GetEtermIndent")
finish
endif
function GetEtermIndent()
- " Find a non-blank line above the current line.
let lnum = prevnonblank(v:lnum - 1)
-
- " Hit the start of the file, use zero indent.
if lnum == 0
return 0
endif
- let line = getline(lnum)
let ind = indent(lnum)
- if line =~ '^\s*begin\>'
+ if getline(lnum) =~ '^\s*begin\>'
let ind = ind + &sw
endif
- let line = getline(v:lnum)
-
- " Check for closing brace on current line
- if line =~ '^\s*end\>'
+ if getline(v:lnum) =~ '^\s*end\>'
let ind = ind - &sw
endif
return ind
endfunction
-
-" vim: set sts=2 sw=2:
diff --git a/runtime/indent/ld.vim b/runtime/indent/ld.vim
index 8c494ce6a..8b7c03fce 100644
--- a/runtime/indent/ld.vim
+++ b/runtime/indent/ld.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: ld(1) script
" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision: 2005-06-28
+" Latest Revision: 2005-06-29
if exists("b:did_indent")
finish
diff --git a/runtime/indent/make.vim b/runtime/indent/make.vim
index f376424ad..9db77f004 100644
--- a/runtime/indent/make.vim
+++ b/runtime/indent/make.vim
@@ -1,21 +1,16 @@
" Vim indent file
-" Language: Makefile
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/indent/pcp/make/
-" Latest Revision: 2004-04-25
-" arch-tag: b539e147-a05c-4860-98af-1d2436db2f4b
+" Language: Makefile
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
-
let b:did_indent = 1
setlocal indentexpr=GetMakeIndent()
setlocal indentkeys=!^F,o,O
-" Only define the function once.
if exists("*GetMakeIndent")
finish
endif
@@ -23,35 +18,28 @@ endif
function s:GetStringWidth(line, str)
let end = matchend(a:line, a:str)
let width = 0
- let i = 0
- while i < end
- if a:line[i] != "\t"
- let width = width + 1
+ for c in a:line
+ if c == "\t"
+ let width += &ts - (width % &ts)
else
- let width = width + &ts - (width % &ts)
+ let width += 1
endif
- let i = i + 1
- endwhile
+ endfor
return width
endfunction
function GetMakeIndent()
- if v:lnum == 1
+ let lnum = v:lnum - 1
+ if lnum == 0
return 0
endif
- let ind = indent(v:lnum - 1)
- let line = getline(v:lnum - 1)
-
+ let line = getline(lnum)
if line == ''
- let ind = 0
- elseif line =~ '^[^ \t#:][^#:]*:\{1,2}\([^=:]\|$\)'
- let ind = ind + &ts
- elseif line =~ '^\s*\h\w*\s*=\s*.\+\\$'
- let ind = s:GetStringWidth(line, '=\s*')
+ return 0
+ elseif line =~ '^[^ \t#:][^#:]*:\{1,2}\%([^=:]\|$\)'
+ return indent(lnum) + &ts
+ elseif line =~ '^\s*\h\w*\s*+\==\s*.\+\\$'
+ return s:GetStringWidth(line, '+\==\s*')
endif
-
- return ind
endfunction
-
-" vim: set sts=2 sw=2:
diff --git a/runtime/indent/readline.vim b/runtime/indent/readline.vim
index b2640f1f2..52d2a7131 100644
--- a/runtime/indent/readline.vim
+++ b/runtime/indent/readline.vim
@@ -1,48 +1,35 @@
" Vim indent file
-" Language: readline configuration file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/indent/pcp/readline/
-" Latest Revision: 2004-04-25
-" arch-tag: ee681235-3abf-4a42-8587-edabd409a980
+" Language: readline configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
-
let b:did_indent = 1
setlocal indentexpr=GetReadlineIndent()
setlocal indentkeys=!^F,o,O,=$else,=$endif
-" Only define the function once.
if exists("*GetReadlineIndent")
finish
endif
function GetReadlineIndent()
let lnum = prevnonblank(v:lnum - 1)
-
if lnum == 0
return 0
endif
- let line = getline(lnum)
let ind = indent(lnum)
- " increase indent if previous line started with $if or $else
- if line =~ '^\s*$\(if\|else\)\>'
+ if getline(lnum) =~ '^\s*$\(if\|else\)\>'
let ind = ind + &sw
endif
- let line = getline(v:lnum)
-
- " decrease indent if this line starts with $else or $endif
- if line =~ '^\s*$\(else\|endif\)\>'
+ if getline(v:lnum) =~ '^\s*$\(else\|endif\)\>'
let ind = ind - &sw
endif
return ind
endfunction
-
-" vim: set sts=2 sw=2:
diff --git a/runtime/indent/rst.vim b/runtime/indent/rst.vim
index c6269ec6a..f98e7556d 100644
--- a/runtime/indent/rst.vim
+++ b/runtime/indent/rst.vim
@@ -1,28 +1,22 @@
" Vim indent file
-" Language: reStructuredText Documentation Format
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/indent/pcp/rst/
-" Latest Revision: 2004-04-25
-" arch-tag: 3fe10f75-24d0-4d94-a924-0ce945958104
+" Language: reStructuredText Documentation Format
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
-
let b:did_indent = 1
setlocal indentexpr=GetRSTIndent()
-setlocal indentkeys-=:,0# indentkeys-=e
+setlocal indentkeys=!^F,o,O
-" Only define the function once.
if exists("*GetRSTIndent")
finish
endif
function GetRSTIndent()
let lnum = prevnonblank(v:lnum - 1)
-
if lnum == 0
return 0
endif
@@ -46,7 +40,7 @@ function GetRSTIndent()
let ind = ind - 2
elseif line =~ '^\s*\d\+\.\s'
let ind = ind - matchend(substitute(line, '^\s*', '', ''),
- \ '\d\+\.\s\+')
+ \ '\d\+\.\s\+')
elseif line =~ '^\s*\.\.'
let ind = ind - 3
else
@@ -56,5 +50,3 @@ function GetRSTIndent()
return ind
endfunction
-
-" vim: set sts=2 sw=2:
diff --git a/runtime/indent/sh.vim b/runtime/indent/sh.vim
index 880ad12ce..b6ce77459 100644
--- a/runtime/indent/sh.vim
+++ b/runtime/indent/sh.vim
@@ -1,33 +1,26 @@
" Vim indent file
-" Language: Shell Script
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/indent/pcp/sh/
-" Latest Revision: 2004-04-25
-" arch-tag: 431c7fc1-12a6-4d71-9636-1498ef56b038
+" Language: Shell Script
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
-
let b:did_indent = 1
setlocal indentexpr=GetShIndent()
setlocal indentkeys+==then,=do,=else,=elif,=esac,=fi,=fin,=fil,=done
setlocal indentkeys-=:,0#
-" Only define the function once.
if exists("*GetShIndent")
finish
endif
-set cpoptions-=C
+let s:cpo_save = &cpo
+set cpo&vim
function GetShIndent()
- " Find a non-blank line above the current line.
let lnum = prevnonblank(v:lnum - 1)
-
- " Hit the start of the file, use zero indent.
if lnum == 0
return 0
endif
@@ -37,8 +30,8 @@ function GetShIndent()
let ind = indent(lnum)
let line = getline(lnum)
if line =~ '^\s*\(if\|then\|do\|else\|elif\|case\|while\|until\|for\)\>'
- \ || line =~ '^\s*\<\h\w*\>\s*()\s*{'
- \ || line =~ '^\s*{'
+ \ || line =~ '^\s*\<\k\+\>\s*()\s*{'
+ \ || line =~ '^\s*{'
if line !~ '\(esac\|fi\|done\)\>\s*$' && line !~ '}\s*$'
let ind = ind + &sw
endif
@@ -48,11 +41,12 @@ function GetShIndent()
" Retain the indentation level if line matches fin (for find)
let line = getline(v:lnum)
if (line =~ '^\s*\(then\|do\|else\|elif\|esac\|fi\|done\)\>' || line =~ '^\s*}')
- \ && line !~ '^\s*fi[ln]\>'
+ \ && line !~ '^\s*fi[ln]\>'
let ind = ind - &sw
endif
return ind
endfunction
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/indent/tcl.vim b/runtime/indent/tcl.vim
index 326575e8f..83e7719cb 100644
--- a/runtime/indent/tcl.vim
+++ b/runtime/indent/tcl.vim
@@ -1,27 +1,21 @@
" Vim indent file
-" Language: Tcl
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/indent/pcp/tcl/
-" Latest Revision: 2004-05-21
-" arch-tag: 64fab1fa-d670-40ab-a191-55678f20ceb0
+" Language: Tcl
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-" only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
-
let b:did_indent = 1
setlocal indentexpr=GetTclIndent()
-setlocal indentkeys-=:,0#
-setlocal indentkeys+=0]
+setlocal indentkeys=0{,0},!^F,o,O,0]
-" only define the function once.
if exists("*GetTclIndent")
finish
endif
-function s:PrevNonBlankNonComment(lnum)
+function s:prevnonblanknoncomment(lnum)
let lnum = prevnonblank(a:lnum)
while lnum > 0
let line = getline(lnum)
@@ -33,91 +27,44 @@ function s:PrevNonBlankNonComment(lnum)
return lnum
endfunction
-function! GetTclIndent()
- let lnum = s:PrevNonBlankNonComment(v:lnum - 1)
-
- if lnum == 0
- return 0
- endif
-
- let line = getline(lnum)
- let ind = indent(lnum)
-
- " TODO: Possible improvement, check that 'begin' and 'end' aren't inside a
- " comment or string. This will mess it up. As I am pressed for time and
- " stuff like this is unlikely to happen I won't deal with it in this
- " version.
- let open = 0
- let begin = match(line, '{', 0)
- while begin > -1
- let end = match(line, '}', begin + 1)
- if end < 0
- let open = open + 1
- else
- let tmp = match(line, '{', begin + 1)
- if tmp != -1 && tmp < end
- let open = open + 1
+function s:count_braces(lnum, count_open)
+ let n_open = 0
+ let n_close = 0
+ let line = getline(a:lnum)
+ let pattern = '\\\@<![{}]'
+ let i = match(line, pattern)
+ while i != -1
+ if synIDattr(synID(a:lnum, i + 1, 1), 'name') !~ 'tcl\%(Comment\|String\)'
+ if line[i] == '{'
+ let n_open += 1
+ elseif line[i] == '}'
+ if n_open > 0
+ let n_open -= 1
+ else
+ let n_close += 1
+ endif
endif
endif
- let begin = match(line, '{', begin + 1)
- endwhile
-
- let begin = match(line, '[', 0)
- while begin > -1
- let end = match(line, ']', begin + 1)
- if end < 0
- let open = open + 1
- else
- let tmp = match(line, '{', begin + 1)
- if tmp != -1 && tmp < end
- let open = open + 1
- endif
- endif
- let begin = match(line, '{', begin + 1)
- endwhile
-
- let close = 0
- let prev = 0
- let end = matchend(line, '^\s*}.*}', prev)
- while end > -1
- let begin = match(line, '{', prev + 1)
- if begin < 0 || begin > prev
- let close = close + 1
- endif
- let prev = end
- let end = match(line, '}', prev + 1)
+ let i = match(line, pattern, i + 1)
endwhile
+ return a:count_open ? n_open : n_close
+endfunction
- let prev = 0
- let end = match(line, ']', prev)
- while end > -1
- let begin = match(line, '[', prev + 1)
- if begin < 0 || begin > prev
- let close = close + 1
- endif
- let prev = end
- let end = match(line, ']', prev + 1)
- endwhile
-
- let ind = ind + (open - close) * &sw
-
- let line = getline(v:lnum)
+function GetTclIndent()
+ let pnum = s:prevnonblanknoncomment(v:lnum - 1)
+ if pnum == 0
+ return 0
+ endif
- let close = 0
- let prev = 0
- let end = match(line, '}', prev)
- while end > -1
- let begin = match(line, '{', prev + 1)
- if begin < 0 || begin > prev
- let close = close + 1
- endif
- let prev = end
- let end = match(line, '}', prev + 1)
- endwhile
+ let ind = indent(pnum) + s:count_braces(pnum, 1) * &sw
+ if getline(pnum) =~ '\\$'
+ let ind += &sw
+ endif
- let ind = ind - close * &sw
+ let pnum = s:prevnonblanknoncomment(pnum - 1)
+ if pnum > 0 && getline(pnum) =~ '\\$'
+ let ind -= &sw
+ endif
- return ind >= 0 ? ind : 0
+ return ind - s:count_braces(v:lnum, 0) * &sw
endfunction
-
-" vim: set sts=2 sw=2:
diff --git a/runtime/indent/xf86conf.vim b/runtime/indent/xf86conf.vim
index f9db1ba96..f1f1c8ed5 100644
--- a/runtime/indent/xf86conf.vim
+++ b/runtime/indent/xf86conf.vim
@@ -1,21 +1,16 @@
" Vim indent file
-" Language: XFree86 Configuration File
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/indent/pcp/xf86conf/
-" Latest Revision: 2004-04-25
-" arch-tag: 8a42f7b6-5088-49cf-b15b-07696a91c015
+" Language: XFree86 Configuration File
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
-
let b:did_indent = 1
setlocal indentexpr=GetXF86ConfIndent()
setlocal indentkeys=!^F,o,O,=End
-" Only define the function once.
if exists("*GetXF86ConfIndent")
finish
endif
@@ -28,15 +23,14 @@ function GetXF86ConfIndent()
endif
let ind = indent(lnum)
- let line = getline(lnum)
- if line =~? '^\s*\(Sub\)\=Section'
+ if getline(lnum) =~? '^\s*\(Sub\)\=Section\>'
let ind = ind + &sw
- elseif getline(v:lnum) =~? '^\s*End'
+ endif
+
+ if getline(v:lnum) =~? '^\s*End\>'
let ind = ind - &sw
endif
return ind
endfunction
-
-" vim: set sts=2 sw=2:
diff --git a/runtime/indent/xinetd.vim b/runtime/indent/xinetd.vim
new file mode 100644
index 000000000..6838163bf
--- /dev/null
+++ b/runtime/indent/xinetd.vim
@@ -0,0 +1,49 @@
+" Vim indent file
+" Language: xinetd.conf(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-28
+
+if exists("b:did_indent")
+ finish
+endif
+let b:did_indent = 1
+
+setlocal indentexpr=GetXinetdIndent()
+setlocal indentkeys=0{,0},!^F,o,O
+
+if exists("*GetXinetdIndent")
+ finish
+endif
+
+function s:count_braces(lnum, count_open)
+ let n_open = 0
+ let n_close = 0
+ let line = getline(a:lnum)
+ let pattern = '[{}]'
+ let i = match(line, pattern)
+ while i != -1
+ if synIDattr(synID(a:lnum, i + 1, 0), 'name') !~ 'ld\%(Comment\|String\)'
+ if line[i] == '{'
+ let n_open += 1
+ elseif line[i] == '}'
+ if n_open > 0
+ let n_open -= 1
+ else
+ let n_close += 1
+ endif
+ endif
+ endif
+ let i = match(line, pattern, i + 1)
+ endwhile
+ return a:count_open ? n_open : n_close
+endfunction
+
+function GetXinetdIndent()
+ let pnum = prevnonblank(v:lnum - 1)
+ if pnum == 0
+ return 0
+ endif
+
+ return indent(pnum) + s:count_braces(pnum, 1) * &sw
+ \ - s:count_braces(v:lnum, 0) * &sw
+endfunction
diff --git a/runtime/indent/yacc.vim b/runtime/indent/yacc.vim
index 4ea8f6a2d..9d0798d49 100644
--- a/runtime/indent/yacc.vim
+++ b/runtime/indent/yacc.vim
@@ -1,9 +1,7 @@
" Vim indent file
-" Language: YACC input file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/indent/pcp/yacc/
-" Latest Revision: 2004-04-25
-" arch-tag: 629aa719-8fe4-4787-adb7-ae94ca801610
+" Language: YACC input file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -40,5 +38,3 @@ function GetYaccIndent()
return ind
endfunction
-
-" vim: set sts=2 sw=2:
diff --git a/runtime/indent/zsh.vim b/runtime/indent/zsh.vim
index ff28d99d7..72b00b8c7 100644
--- a/runtime/indent/zsh.vim
+++ b/runtime/indent/zsh.vim
@@ -1,11 +1,11 @@
" Vim indent file
-" Language: Zsh Shell Script
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/indent/pcp/zsh/
-" Latest Revision: 2004-05-22
-" arch-tag: e566f55f-d8c0-4c60-b4b3-60c0dbd6dea1
+" Language: Zsh Shell Script
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:did_indent")
+ finish
+endif
" Same as sh indenting for now.
runtime! indent/sh.vim
-
-" vim: set sts=2 sw=2:
diff --git a/runtime/syntax/alsaconf.vim b/runtime/syntax/alsaconf.vim
index 90d03605e..0e3362a1a 100644
--- a/runtime/syntax/alsaconf.vim
+++ b/runtime/syntax/alsaconf.vim
@@ -1,72 +1,51 @@
" Vim syntax file
-" Language: ALSA configuration file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/
-" Latest Revision: 2004-09-10
-" arch-tag: 3e06fe53-28d5-44a1-871d-279f22e7aed4
+" Language: alsaconf(8) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
-" todo
-syn keyword alsoconfTodo contained FIXME TODO XXX NOTE
+let s:cpo_save = &cpo
+set cpo&vim
-" comments
-syn region alsaconfComment matchgroup=alsaconfComment start="#" end="$"
- \ contains=alsaconfTodo
+syn keyword alsoconfTodo contained FIXME TODO XXX NOTE
-" special characters
-syn match alsaconfSpecialChar contained "\\[ntvbrf]"
-syn match alsaconfSpecialChar contained "\\\o\+"
+syn region alsaconfComment matchgroup=alsaconfComment
+ \ start='#' end='$'
+ \ contains=alsaconfTodo,@Spell
-" strings
-syn region alsaconfString matchgroup=alsaconfString start=+"+ skip=+\\$+
- \ end=+"+ end=+$+ contains=alsaconfSpecialChar
+syn match alsaconfSpecialChar contained display '\\[ntvbrf]'
+syn match alsaconfSpecialChar contained display '\\\o\+'
-" preprocessor special
-syn match alsaconfSpecial contained "confdir:"
+syn region alsaconfString matchgroup=alsaconfString
+ \ start=+"+ skip=+\\$+ end=+"+ end=+$+
+ \ contains=alsaconfSpecialChar
-" preprocessor
-syn region alsaconfPreProc matchgroup=alsaconfPreProc start="<" end=">"
- \ contains=alsaconfSpecial
+syn match alsaconfSpecial contained display 'confdir:'
-" modes
-syn match alsaconfMode "[+?!-]"
+syn region alsaconfPreProc matchgroup=alsaconfPreProc start='<' end='>'
+ \ contains=alsaconfSpecial
-" keywords
-syn keyword alsaconfKeyword card default device errors files func strings
-syn keyword alsaconfKeyword subdevice type vars
+syn match alsaconfMode display '[+?!-]'
-" variables
-syn match alsaconfVariables "@\(hooks\|func\|args\)"
+syn keyword alsaconfKeyword card default device errors files func strings
+syn keyword alsaconfKeyword subdevice type vars
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_alsaconf_syn_inits")
- if version < 508
- let did_dircolors_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+syn match alsaconfVariables display '@\(hooks\|func\|args\)'
- HiLink alsoconfTodo Todo
- HiLink alsaconfComment Comment
- HiLink alsaconfSpecialChar SpecialChar
- HiLink alsaconfString String
- HiLink alsaconfSpecial Special
- HiLink alsaconfPreProc PreProc
- HiLink alsaconfMode Special
- HiLink alsaconfKeyword Keyword
- HiLink alsaconfVariables Identifier
-
- delcommand HiLink
-endif
+hi def link alsoconfTodo Todo
+hi def link alsaconfComment Comment
+hi def link alsaconfSpecialChar SpecialChar
+hi def link alsaconfString String
+hi def link alsaconfSpecial Special
+hi def link alsaconfPreProc PreProc
+hi def link alsaconfMode Special
+hi def link alsaconfKeyword Keyword
+hi def link alsaconfVariables Identifier
let b:current_syntax = "alsaconf"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/arch.vim b/runtime/syntax/arch.vim
index d2593fd7e..663cca84c 100644
--- a/runtime/syntax/arch.vim
+++ b/runtime/syntax/arch.vim
@@ -1,60 +1,35 @@
" Vim syntax file
-" Language: GNU Arch inventory file.
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/arch/
-" Latest Revision: 2004-05-22
-" arch-tag: 529d60c4-53d8-4d3a-80d6-54ada86d9932
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: GNU Arch inventory file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:current_syntax")
finish
endif
-" Set iskeyword since we need `-' (and potentially others) in keywords.
-" For version 5.x: Set it globally
-" For version 6.x: Set it locally
-if version >= 600
- command -nargs=1 SetIsk setlocal iskeyword=<args>
-else
- command -nargs=1 SetIsk set iskeyword=<args>
-endif
-SetIsk @,48-57,_,-
-delcommand SetIsk
-
-" Todo
-syn keyword archTodo TODO FIXME XXX NOTE
-
-" Comment
-syn region archComment matchgroup=archComment start='^\%(#\|\s\)' end='$' contains=archTodo
-
-" Keywords
-syn keyword archKeyword implicit tagline explicit names
-syn keyword archKeyword untagged-source
-syn keyword archKeyword exclude junk backup precious unrecognized source skipwhite nextgroup=archRegex
-
-" Regexes
-syn match archRegex contained '\s*\zs.*'
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_arch_syn_inits")
- if version < 508
- let did_arch_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink archTodo Todo
- HiLink archComment Comment
- HiLink archKeyword Keyword
- HiLink archRegex String
-
- delcommand HiLink
-endif
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal iskeyword=@,48-57,_,-
+
+syn keyword archTodo TODO FIXME XXX NOTE
+
+syn region archComment display matchgroup=archComment
+ \ start='^\%(#\|\s\)' end='$' contains=archTodo,@Spell
+
+syn keyword archKeyword implicit tagline explicit names
+syn keyword archKeyword untagged-source
+syn keyword archKeyword exclude junk backup precious unrecognized source
+ \ skipwhite nextgroup=archRegex
+
+syn match archRegex contained '\s*\zs.*'
+
+hi def link archTodo Todo
+hi def link archComment Comment
+hi def link archKeyword Keyword
+hi def link archRegex String
let b:current_syntax = "arch"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/bdf.vim b/runtime/syntax/bdf.vim
index 3fc404a86..e79a6487b 100644
--- a/runtime/syntax/bdf.vim
+++ b/runtime/syntax/bdf.vim
@@ -1,86 +1,97 @@
" Vim syntax file
-" Language: BDF Font definition
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/bdf/
-" Latest Revision: 2004-05-06
-" arch-tag: b696b6ba-af24-41ba-b4eb-d248495eca68
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: BDF font definition
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-27
+
+if exists("b:current_syntax")
finish
endif
-" numbers
-syn match bdfNumber display "\<\(\x\+\|\d\+\.\d\+\)\>"
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn region bdfFontDefinition transparent matchgroup=bdfKeyword
+ \ start='^STARTFONT\>' end='^ENDFONT\>'
+ \ contains=bdfComment,bdfFont,bdfSize,
+ \ bdfBoundingBox,bdfProperties,bdfChars,bdfChar
+
+syn match bdfNumber contained display
+ \ '\<\%(\x\+\|[+-]\=\d\+\%(\.\d\+\)*\)'
+
+syn keyword bdfTodo contained FIXME TODO XXX NOTE
+
+syn region bdfComment contained start='^COMMENT\>' end='$'
+ \ contains=bdfTodo,@Spell
-" comments
-syn region bdfComment start="^COMMENT\>" end="$" contains=bdfTodo
+syn region bdfFont contained matchgroup=bdfKeyword
+ \ start='^FONT\>' end='$'
-" todo
-syn keyword bdfTodo contained TODO FIXME XXX NOTE
+syn region bdfSize contained transparent matchgroup=bdfKeyword
+ \ start='^SIZE\>' end='$' contains=bdfNumber
-" strings
-syn region bdfString start=+"+ skip=+""+ end=+"+
+syn region bdfBoundingBox contained transparent matchgroup=bdfKeyword
+ \ start='^FONTBOUNDINGBOX' end='$'
+ \ contains=bdfNumber
-" properties
-syn keyword bdfProperties contained FONT SIZE FONTBOUNDINGBOX CHARS
+syn region bdfProperties contained transparent matchgroup=bdfKeyword
+ \ start='^STARTPROPERTIES' end='^ENDPROPERTIES'
+ \ contains=bdfNumber,bdfString,bdfProperty,
+ \ bdfXProperty
-" X11 properties
-syn keyword bdfXProperties contained FONT_ASCENT FONT_DESCENT DEFAULT_CHAR
-syn keyword bdfXProperties contained FONTNAME_REGISTRY FOUNDRY FAMILY_NAME
-syn keyword bdfXProperties contained WEIGHT_NAME SLANT SETWIDTH_NAME PIXEL_SIZE
-syn keyword bdfXProperties contained POINT_SIZE RESOLUTION_X RESOLUTION_Y SPACING
-syn keyword bdfXProperties contained CHARSET_REGISTRY CHARSET_ENCODING COPYRIGHT
-syn keyword bdfXProperties contained ADD_STYLE_NAME WEIGHT RESOLUTION X_HEIGHT
-syn keyword bdfXProperties contained QUAD_WIDTH FONT AVERAGE_WIDTH
+syn keyword bdfProperty contained FONT_ASCENT FONT_DESCENT DEFAULT_CHAR
+syn match bdfProperty contained '^\S\+'
-syn region bdfDefinition transparent matchgroup=bdfDelim start="^STARTPROPERTIES\>" end="^ENDPROPERTIES\>" contains=bdfXProperties,bdfNumber,bdfString
+syn keyword bdfXProperty contained FONT_ASCENT FONT_DESCENT DEFAULT_CHAR
+ \ FONTNAME_REGISTRY FOUNDRY FAMILY_NAME
+ \ WEIGHT_NAME SLANT SETWIDTH_NAME PIXEL_SIZE
+ \ POINT_SIZE RESOLUTION_X RESOLUTION_Y SPACING
+ \ CHARSET_REGISTRY CHARSET_ENCODING COPYRIGHT
+ \ ADD_STYLE_NAME WEIGHT RESOLUTION X_HEIGHT
+ \ QUAD_WIDTH FONT AVERAGE_WIDTH
-" characters
-syn keyword bdfCharProperties contained ENCODING SWIDTH DWIDTH BBX ATTRIBUTES BITMAP
+syn region bdfString contained start=+"+ skip=+""+ end=+"+
-syn match bdfCharName contained display "\<[0-9a-zA-Z]\{1,14}\>"
-syn match bdfCharNameError contained display "\<[0-9a-zA-Z]\{15,}\>"
+syn region bdfChars contained display transparent
+ \ matchgroup=bdfKeyword start='^CHARS' end='$'
+ \ contains=bdfNumber
-syn region bdfStartChar transparent matchgroup=bdfDelim start="\<STARTCHAR\>" end="$" contains=bdfCharName,bdfCharNameError
+syn region bdfChar transparent matchgroup=bdfKeyword
+ \ start='^STARTCHAR' end='^ENDCHAR'
+ \ contains=bdfEncoding,bdfWidth,bdfAttributes,
+ \ bdfBitmap
-syn region bdfCharDefinition transparent start="^STARTCHAR\>" matchgroup=bdfDelim end="^ENDCHAR\>" contains=bdfCharProperties,bdfNumber,bdfStartChar
+syn region bdfEncoding contained transparent matchgroup=bdfKeyword
+ \ start='^ENCODING' end='$' contains=bdfNumber
-" font
-syn region bdfFontDefinition transparent matchgroup=bdfDelim start="^STARTFONT\>" end="^ENDFONT\>" contains=bdfProperties,bdfDefinition,bdfCharDefinition,bdfNumber,bdfComment
+syn region bdfWidth contained transparent matchgroup=bdfKeyword
+ \ start='^SWIDTH\|DWIDTH\|BBX' end='$'
+ \ contains=bdfNumber
+
+syn region bdfAttributes contained transparent matchgroup=bdfKeyword
+ \ start='^ATTRIBUTES' end='$'
+
+syn keyword bdfBitmap contained BITMAP
if exists("bdf_minlines")
let b:bdf_minlines = bdf_minlines
else
- let b:bdf_minlines = 50
-endif
-exec "syn sync minlines=" . b:bdf_minlines
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_bdf_syn_inits")
- if version < 508
- let did_bdf_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink bdfComment Comment
- HiLink bdfTodo Todo
- HiLink bdfNumber Number
- HiLink bdfString String
- HiLink bdfProperties Keyword
- HiLink bdfXProperties Keyword
- HiLink bdfCharProperties Structure
- HiLink bdfDelim Delimiter
- HiLink bdfCharName String
- HiLink bdfCharNameError Error
- delcommand HiLink
+ let b:bdf_minlines = 30
endif
+exec "syn sync ccomment bdfChar minlines=" . b:bdf_minlines
+
+
+hi def link bdfKeyword Keyword
+hi def link bdfNumber Number
+hi def link bdfTodo Todo
+hi def link bdfComment Comment
+hi def link bdfFont String
+hi def link bdfProperty Identifier
+hi def link bdfXProperty Identifier
+hi def link bdfString String
+hi def link bdfChars Keyword
+hi def link bdfBitmap Keyword
let b:current_syntax = "bdf"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/calendar.vim b/runtime/syntax/calendar.vim
index 9834267ae..502ac7051 100644
--- a/runtime/syntax/calendar.vim
+++ b/runtime/syntax/calendar.vim
@@ -1,104 +1,111 @@
" Vim syntax file
-" Language: calendar(1) file.
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/calendar/
-" Latest Revision: 2004-05-06
-" arch-tag: d714127d-469d-43bd-9c79-c2a46ec54535
+" Language: calendar(1) input file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
-" Todo
-syn keyword calendarTodo contained TODO FIXME XXX NOTE
-
-" Comments
-syn region calendarComment matchgroup=calendarComment start='/\*' end='\*/' contains=calendarTodo
-
-" Strings
-syn region calendarCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=calendarSpecial
-syn match calendarSpecial display contained '\\\%(x\x\+\|\o\{1,3}\|.\|$\)'
-syn match calendarSpecial display contained "\\\(u\x\{4}\|U\x\{8}\)"
-
-" cpp(1) Preprocessor directives (adapted from syntax/c.vim)
-
-syn region calendarPreCondit start='^\s*#\s*\%(if\|ifdef\|ifndef\|elif\)\>' skip='\\$' end='$' contains=calendarComment,calendarCppString
-syn match calendarPreCondit display '^\s*#\s*\%(else\|endif\)\>'
-syn region calendarCppOut start='^\s*#\s*if\s\+0\+' end='.\@=\|$' contains=calendarCppOut2
-syn region calendarCppOut2 contained start='0' end='^\s*#\s*\%(endif\|else\|elif\)\>' contains=calendarSpaceError,calendarCppSkip
-syn region calendarCppSkip contained start='^\s*#\s*\%(if\|ifdef\|ifndef\)\>' skip='\\$' end='^\s*#\s*endif\>' contains=calendarSpaceError,calendarCppSkip
-syn region calendarIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
-syn match calendarIncluded display contained '<[^>]*>'
-syn match calendarInclude display '^\s*#\s*include\>\s*["<]' contains=calendarIncluded
-syn cluster calendarPreProcGroup contains=calendarPreCondit,calendarIncluded,calendarInclude,calendarDefine,calendarCppOut,calendarCppOut2,calendarCppSkip,calendarString,calendarSpecial,calendarTodo
-syn region calendarDefine start='^\s*#\s*\%(define\|undef\)\>' skip='\\$' end='$' contains=ALLBUT,@calendarPreProcGroup
-syn region calendarPreProc start='^\s*#\s*\%(pragma\|line\|warning\|warn\|error\)\>' skip='\\$' end='$' keepend contains=ALLBUT,@calendarPreProcGroup
-
-" Keywords
-syn keyword calendarKeyword CHARSET BODUN LANG
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword calendarTodo contained TODO FIXME XXX NOTE
+
+syn region calendarComment matchgroup=calendarComment
+ \ start='/\*' end='\*/'
+ \ contains=calendarTodo,@Spell
+
+syn region calendarCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl
+ \ end=+"+ end='$' contains=calendarSpecial
+syn match calendarSpecial display contained '\\\%(x\x\+\|\o\{1,3}\|.\|$\)'
+syn match calendarSpecial display contained "\\\(u\x\{4}\|U\x\{8}\)"
+
+syn region calendarPreCondit start='^\s*#\s*\%(if\|ifdef\|ifndef\|elif\)\>'
+ \ skip='\\$' end='$'
+ \ contains=calendarComment,calendarCppString
+syn match calendarPreCondit display '^\s*#\s*\%(else\|endif\)\>'
+syn region calendarCppOut start='^\s*#\s*if\s\+0\+' end='.\@=\|$'
+ \ contains=calendarCppOut2
+syn region calendarCppOut2 contained start='0'
+ \ end='^\s*#\s*\%(endif\|else\|elif\)\>'
+ \ contains=calendarSpaceError,calendarCppSkip
+syn region calendarCppSkip contained
+ \ start='^\s*#\s*\%(if\|ifdef\|ifndef\)\>'
+ \ skip='\\$' end='^\s*#\s*endif\>'
+ \ contains=calendarSpaceError,calendarCppSkip
+syn region calendarIncluded display contained start=+"+ skip=+\\\\\|\\"+
+ \ end=+"+
+syn match calendarIncluded display contained '<[^>]*>'
+syn match calendarInclude display '^\s*#\s*include\>\s*["<]'
+ \ contains=calendarIncluded
+syn cluster calendarPreProcGroup contains=calendarPreCondit,calendarIncluded,
+ \ calendarInclude,calendarDefine,
+ \ calendarCppOut,calendarCppOut2,
+ \ calendarCppSkip,calendarString,
+ \ calendarSpecial,calendarTodo
+syn region calendarDefine start='^\s*#\s*\%(define\|undef\)\>'
+ \ skip='\\$' end='$'
+ \ contains=ALLBUT,@calendarPreProcGroup
+syn region calendarPreProc start='^\s*#\s*\%(pragma\|line\|warning\|warn\|error\)\>'
+ \ skip='\\$' end='$' keepend
+ \ contains=ALLBUT,@calendarPreProcGroup
+
+syn keyword calendarKeyword CHARSET BODUN LANG
syn case ignore
-syn keyword calendarKeyword Easter Pashka
+syn keyword calendarKeyword Easter Pashka
syn case match
-" Dates
syn case ignore
-syn match calendarNumber '\<\d\+\>'
-syn keyword calendarMonth Jan[uary] Feb[ruary] Mar[ch] Apr[il] May Jun[e]
-syn keyword calendarMonth Jul[y] Aug[ust] Sep[tember] Oct[ober]
-syn keyword calendarMonth Nov[ember] Dec[ember]
-syn match calendarMonth '\<\%(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\.'
-syn keyword calendarWeekday Mon[day] Tue[sday] Wed[nesday] Thu[rsday]
-syn keyword calendarWeekday Fri[day] Sat[urday] Sun[day]
-syn match calendarWeekday '\<\%(Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun\)\.' nextgroup=calendarWeekdayMod
-syn match calendarWeekdayMod '[+-]\d\+\>'
+syn match calendarNumber display '\<\d\+\>'
+syn keyword calendarMonth Jan[uary] Feb[ruary] Mar[ch] Apr[il] May
+ \ Jun[e] Jul[y] Aug[ust] Sep[tember]
+ \ Oct[ober] Nov[ember] Dec[ember]
+syn match calendarMonth display '\<\%(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\.'
+syn keyword calendarWeekday Mon[day] Tue[sday] Wed[nesday] Thu[rsday]
+syn keyword calendarWeekday Fri[day] Sat[urday] Sun[day]
+syn match calendarWeekday display '\<\%(Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun\)\.'
+ \ nextgroup=calendarWeekdayMod
+syn match calendarWeekdayMod display '[+-]\d\+\>'
syn case match
-" Times
-syn match calendarTime '\<\%([01]\=\d\|2[0-3]\):[0-5]\d\%(:[0-5]\d\)\='
-syn match calendarTime '\<\%(0\=[1-9]\|1[0-2]\):[0-5]\d\%(:[0-5]\d\)\=\s*[AaPp][Mm]'
+syn match calendarTime display '\<\%([01]\=\d\|2[0-3]\):[0-5]\d\%(:[0-5]\d\)\='
+syn match calendarTime display '\<\%(0\=[1-9]\|1[0-2]\):[0-5]\d\%(:[0-5]\d\)\=\s*[AaPp][Mm]'
-" Variables
-syn match calendarVariable '\*'
+syn match calendarVariable '\*'
-let b:c_minlines = 50 " #if 0 constructs can be long
-exec "syn sync ccomment calendarComment minlines=" . b:c_minlines
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_calendar_syn_inits")
- if version < 508
- let did_calendar_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
+if exists("c_minlines")
+ let b:c_minlines = c_minlines
+else
+ if !exists("c_no_if0")
+ let b:c_minlines = 50 " #if 0 constructs can be long
else
- command -nargs=+ HiLink hi def link <args>
+ let b:c_minlines = 15 " mostly for () constructs
endif
-
- HiLink calendarTodo Todo
- HiLink calendarComment Comment
- HiLink calendarCppString String
- HiLink calendarSpecial SpecialChar
- HiLink calendarPreCondit PreCondit
- HiLink calendarCppOut Comment
- HiLink calendarCppOut2 calendarCppOut
- HiLink calendarCppSkip calendarCppOut
- HiLink calendarIncluded String
- HiLink calendarInclude Include
- HiLink calendarDefine Macro
- HiLink calendarPreProc PreProc
- HiLink calendarKeyword Keyword
- HiLink calendarNumber Number
- HiLink calendarMonth String
- HiLink calendarWeekday String
- HiLink calendarWeekdayMod Special
- HiLink calendarTime Number
- HiLink calendarVariable Identifier
-
- delcommand HiLink
endif
+exec "syn sync ccomment calendarComment minlines=" . b:c_minlines
+
+hi def link calendarTodo Todo
+hi def link calendarComment Comment
+hi def link calendarCppString String
+hi def link calendarSpecial SpecialChar
+hi def link calendarPreCondit PreCondit
+hi def link calendarCppOut Comment
+hi def link calendarCppOut2 calendarCppOut
+hi def link calendarCppSkip calendarCppOut
+hi def link calendarIncluded String
+hi def link calendarInclude Include
+hi def link calendarDefine Macro
+hi def link calendarPreProc PreProc
+hi def link calendarKeyword Keyword
+hi def link calendarNumber Number
+hi def link calendarMonth String
+hi def link calendarWeekday String
+hi def link calendarWeekdayMod Special
+hi def link calendarTime Number
+hi def link calendarVariable Identifier
let b:current_syntax = "calendar"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/context.vim b/runtime/syntax/context.vim
new file mode 100644
index 000000000..4649b6c8f
--- /dev/null
+++ b/runtime/syntax/context.vim
@@ -0,0 +1,104 @@
+" Vim syntax file
+" Language: ConTeXt typesetting engine
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword contextTodo TODO FIXME XXX NOTE
+
+syn region contextComment display oneline matchgroup=contextComment
+ \ start='%' end='$' contains=contextTodo
+syn region contextComment display oneline matchgroup=contextComment
+ \ start='^\s*%[CDM]' end='$' contains=ALL
+
+syn match contextStatement display '\\[a-zA-Z@]\+' contains=@NoSpell
+
+syn match contextBlockDelim display '\\\%(start\|stop\)\a\+'
+ \ contains=@NoSpell
+
+syn match contextDelimiter '[][{}]'
+
+syn match contextEscaped display '\\\_[\{}|&%$ ]'
+syn region contextEscaped display matchgroup=contextPreProc
+ \ start='\\type\z(\A\)' end='\z1'
+syn region contextEscaped display matchgroup=contextPreProc
+ \ start='\\type\={' end='}'
+syn region contextEscaped display matchgroup=contextPreProc
+ \ start='\\type\=<<' end='>>'
+syn region contextEscaped matchgroup=contextPreProc
+ \ start='\\start\z(\a*\%(typing\|typen\)\)'
+ \ end='\\stop\z1'
+syn region contextEscaped display matchgroup=contextPreProc
+ \ start='\\\h\+Type{' end='}'
+syn region contextEscaped display matchgroup=contextPreProc
+ \ start='\\Typed\h\+{' end='}'
+
+"syn region contextMath matchgroup=contextMath start='\$' end='\$'
+" \ contains=contextStatement
+
+syn match contextBuiltin '\\\%(newif\|def\|gdef\|global\|let\|glet\|bgroup\)\>'
+ \ contains=@NoSpell
+syn match contextBuiltin '\\\%(begingroup\|egroup\|endgroup\|long\|catcode\)\>'
+ \ contains=@NoSpell
+syn match contextBuiltin '\\\%(unprotect\|unexpanded\|if\|else\|fi\|ifx\)\>'
+ \ contains=@NoSpell
+syn match contextBuiltin '\\\%(futurelet\|protect\)\>' contains=@NoSpell
+syn match contextBuiltin '\\\%([lr]q\)\>' contains=@NoSpell
+
+syn match contextPreProc '^\s*\\\%(start\|stop\)\=\%(component\|environment\|project\|product\).*$'
+ \ contains=@NoSpell
+syn match contextPreProc '^\s*\\input\s\+.*$' contains=@NoSpell
+
+syn match contextSectioning '\\chapter\>' contains=@NoSpell
+syn match contextSectioning '\\\%(sub\)*section\>' contains=@NoSpell
+
+syn match contextSpecial '\\crlf\>\|\\par\>\|-\{2,3}\||[<>/]\=|'
+ \ contains=@NoSpell
+syn match contextSpecial '\\[`'"]'
+syn match contextSpecial +\\char\%(\d\{1,3}\|'\o\{1,3}\|"\x\{1,2}\)\>+
+ \ contains=@NoSpell
+syn match contextSpecial '\^\^.'
+syn match contextSpecial '`\%(\\.\|\^\^.\|.\)'
+
+syn match contextStyle '\\\%(em\|tt\|rm\|ss\|hw\|cg\)\>'
+ \ contains=@NoSpell
+syn match contextFont '\\\%(CAP\|Cap\|cap\|Caps\|kap\|nocap\)\>'
+ \ contains=@NoSpell
+syn match contextFont '\\\%(Word\|WORD\|Words\|WORDS\)\>'
+ \ contains=@NoSpell
+syn match contextFont '\\\%(vi\{1,3}\|ix\|xi\{0,2}\)\>'
+ \ contains=@NoSpell
+syn match contextFont '\\\%(tf[abcdx]\|bfx\|[is]lx\)\>'
+ \ contains=@NoSpell
+syn match contextFont '\\\%(b[fsi]\|s[cl]\|it\|os\|mf\)\>'
+ \ contains=@NoSpell
+
+syn match contextDimension '[+-]\=\s*\%(\d\+\%([.,]\d*\)\=\|[.,]\d\+\)\s*\%(true\)\=\s*\%(p[tc]\|in\|bp\|c[mc]\|mm\|dd\|sp\|e[mx]\)\>'
+ \ contains=@NoSpell
+
+hi def link contextTodo Todo
+hi def link contextComment Comment
+hi def link contextEscaped Special
+hi def link contextStatement Identifier
+hi def link contextMath String
+hi def link contextBlockDelim Keyword
+hi def link contextBuiltin Keyword
+hi def link contextDelimiter Delimiter
+hi def link contextPreProc PreProc
+hi def link contextSectioning PreProc
+hi def link contextSpecial Special
+hi def link contextStyle contextType
+hi def link contextFont contextType
+hi def link contextType Type
+hi def link contextDimension Number
+
+let b:current_syntax = "context"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/crm.vim b/runtime/syntax/crm.vim
index 4a1e3bc41..fdb15046e 100644
--- a/runtime/syntax/crm.vim
+++ b/runtime/syntax/crm.vim
@@ -1,61 +1,42 @@
" Vim syntax file
-" Language: CRM114
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/crm/
-" Latest Revision: 2004-05-22
-" arch-tag: a3d3eaaf-4700-44ff-b332-f6c42c036883
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: CRM114
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-27
+
+if exists("b:current_syntax")
finish
endif
-" Todo
-syn keyword crmTodo contained TODO FIXME XXX NOTE
-
-" Comments
-syn region crmComment matchgroup=crmComment start='#' end='$' end='\\#' contains=crmTodo
-
-" Variables
-syn match crmVariable ':[*#@]:[^:]\{-1,}:'
-
-" Special Characters
-syn match crmSpecial '\\\%(x\x\x\|o\o\o\o\|[]nrtabvf0>)};/\\]\)'
-
-" Statements
-syn keyword crmStatement insert noop accept alius alter classify eval exit
-syn keyword crmStatement fail fault goto hash intersect isolate input learn
-syn keyword crmStatement liaf match output syscall trap union window
-
-" Regexes
-syn region crmRegex matchgroup=crmRegex start='/' skip='\\/' end='/' contains=crmVariable
-
-" Labels
-syn match crmLabel '^\s*:[[:graph:]]\+:'
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_crm_syn_inits")
- if version < 508
- let did_crm_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink crmTodo Todo
- HiLink crmComment Comment
- HiLink crmVariable Identifier
- HiLink crmSpecial SpecialChar
- HiLink crmStatement Statement
- HiLink crmRegex String
- HiLink crmLabel Label
-
- delcommand HiLink
-endif
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword crmTodo contained TODO FIXME XXX NOTE
+
+syn region crmComment matchgroup=crmComment start='#' end='$' end='\\#'
+ \ contains=crmTodo,@Spell
+
+syn match crmVariable display ':[*#@]:[^:]\{-1,}:'
+
+syn match crmSpecial display '\\\%(x\x\x\|o\o\o\o\|[]nrtabvf0>)};/\\]\)'
+
+syn keyword crmStatement insert noop accept alius alter classify eval exit
+syn keyword crmStatement fail fault goto hash intersect isolate input learn
+syn keyword crmStatement liaf match output syscall trap union window
+
+syn region crmRegex matchgroup=crmRegex start='/' skip='\\/' end='/'
+ \ contains=crmVariable
+
+syn match crmLabel display '^\s*:[[:graph:]]\+:'
+
+hi def link crmTodo Todo
+hi def link crmComment Comment
+hi def link crmVariable Identifier
+hi def link crmSpecial SpecialChar
+hi def link crmStatement Statement
+hi def link crmRegex String
+hi def link crmLabel Label
let b:current_syntax = "crm"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/cvsrc.vim b/runtime/syntax/cvsrc.vim
index d55197950..f93ca63a5 100644
--- a/runtime/syntax/cvsrc.vim
+++ b/runtime/syntax/cvsrc.vim
@@ -1,49 +1,39 @@
" Vim syntax file
-" Language: CVS RC File
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/syntax/pcp/cvsrc/
-" Latest Revision: 2004-05-06
-" arch-tag: 1910f2a8-66f4-4dde-9d1a-297566934535
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: cvs(1) RC file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:current_syntax")
finish
endif
-" strings
-syn region cvsrcString start=+"+ skip=+\\\\\|\\\\"+ end=+"\|$+
-syn region cvsrcString start=+'+ skip=+\\\\\|\\\\'+ end=+'\|$+
-
-" numbers
-syn match cvsrcNumber "\<\d\+\>"
-
-" commands
-syn match cvsrcBegin "^" nextgroup=cvsrcCommand skipwhite
-
-syn region cvsrcCommand contained transparent matchgroup=cvsrcCommand start="add\|admin\|checkout\|commit\|cvs\|diff\|export\|history\|import\|init\|log\|rdiff\|release\|remove\|rtag\|status\|tag\|update" end="$" contains=cvsrcOption,cvsrcString,cvsrcNumber keepend
-
-" options
-syn match cvsrcOption "-\a\+"
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_cvsrc_syn_inits")
- if version < 508
- let did_cvsrc_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink cvsrcString String
- HiLink cvsrcNumber Number
- HiLink cvsrcCommand Keyword
- HiLink cvsrcOption Identifier
- delcommand HiLink
-endif
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn region cvsrcString display start=+"+ skip=+\\\\\|\\\\"+ end=+"\|$+
+syn region cvsrcString display start=+'+ skip=+\\\\\|\\\\'+ end=+'\|$+
+
+syn match cvsrcNumber display '\<\d\+\>'
+
+syn match cvsrcBegin display '^' nextgroup=cvsrcCommand skipwhite
+
+syn region cvsrcCommand contained transparent matchgroup=cvsrcCommand
+ \ start='add\|admin\|checkout\|commit\|cvs\|diff'
+ \ start='export\|history\|import\|init\|log'
+ \ start='rdiff\|release\|remove\|rtag\|status\|tag'
+ \ start='update'
+ \ end='$'
+ \ contains=cvsrcOption,cvsrcString,cvsrcNumber
+ \ keepend
+
+syn match cvsrcOption contained display '-\a\+'
+
+hi def link cvsrcString String
+hi def link cvsrcNumber Number
+hi def link cvsrcCommand Keyword
+hi def link cvsrcOption Identifier
let b:current_syntax = "cvsrc"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/dircolors.vim b/runtime/syntax/dircolors.vim
index ade52fc6f..8a22b1d0f 100644
--- a/runtime/syntax/dircolors.vim
+++ b/runtime/syntax/dircolors.vim
@@ -1,106 +1,746 @@
" Vim syntax file
-" Language: dircolors(1) input file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/dircolors/
-" Latest Revision: 2004-05-22
-" arch-tag: 995e2983-2a7a-4f1e-b00d-3fdf8e076b40
-" Color definition coloring implemented my Mikolaj Machowski <mikmach@wp.pl>
+" Language: dircolors(1) input file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-27
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
-" todo
-syn keyword dircolorsTodo contained FIXME TODO XXX NOTE
+let s:cpo_save = &cpo
+set cpo&vim
-" comments
-syn region dircolorsComment start="#" end="$" contains=dircolorsTodo
+syn keyword dircolorsTodo contained FIXME TODO XXX NOTE
-" numbers
-syn match dircolorsNumber "\<\d\+\>"
+syn region dircolorsComment start='#' end='$' contains=dircolorsTodo,@Spell
+
+syn keyword dircolorsKeyword TERM LEFT LEFTCODE RIGHT RIGHTCODE END ENDCODE
+
+syn keyword dircolorsKeyword NORMAL NORM FILE DIR LNK LINK SYMLINK ORPHAN
+ \ MISSING FIFO PIPE SOCK BLK BLOCK CHR CHAR
+ \ DOOR EXEC
+ \ nextgroup=@dircolorsColors skipwhite
-" keywords
-syn keyword dircolorsKeyword TERM NORMAL NORM FILE DIR LNK LINK SYMLINK
-syn keyword dircolorsKeyword ORPHAN MISSING FIFO PIPE SOCK BLK BLOCK CHR
-syn keyword dircolorsKeyword CHAR DOOR EXEC LEFT LEFTCODE RIGHT RIGHTCODE
-syn keyword dircolorsKeyword END ENDCODE
if exists("dircolors_is_slackware")
- syn keyword dircolorsKeyword COLOR OPTIONS EIGHTBIT
+ syn keyword dircolorsKeyword COLOR OPTIONS EIGHTBIT
endif
-" extensions
-syn match dircolorsExtension "^\s*\zs[.*]\S\+"
+syn match dircolorsExtension '^\s*\zs[.*]\S\+'
+ \ nextgroup=@dircolorsColors skipwhite
-" colors
-syn match dircolors01 "\<01\>"
-syn match dircolors04 "\<04\>"
-syn match dircolors05 "\<05\>"
-syn match dircolors07 "\<07\>"
-syn match dircolors08 "\<08\>"
-syn match dircolors30 "\<30\>"
-syn match dircolors31 "\<31\>"
-syn match dircolors32 "\<32\>"
-syn match dircolors33 "\<33\>"
-syn match dircolors34 "\<34\>"
-syn match dircolors35 "\<35\>"
-syn match dircolors36 "\<36\>"
-syn match dircolors37 "\<37\>"
-syn match dircolors40 "\<40\>"
-syn match dircolors41 "\<41\>"
-syn match dircolors42 "\<42\>"
-syn match dircolors43 "\<43\>"
-syn match dircolors44 "\<44\>"
-syn match dircolors45 "\<45\>"
-syn match dircolors46 "\<46\>"
-syn match dircolors47 "\<47\>"
+if &t_Co == 8 || &t_Co == 16
+ syn cluster dircolorsColors contains=dircolorsBold,dircolorsUnderline,
+ \ dircolorsBlink,dircolorsReverse,
+ \ dircolorsInvisible,dircolorsBlack,
+ \ dircolorsRed,dircolorsGreen,dircolorsYellow,
+ \ dircolorsBlue,dircolorsMagenta,dircolorsCyan,
+ \ dircolorsWhite,dircolorsBGBlack,
+ \ dircolorsBGRed,dircolorsBGGreen,
+ \ dircolorsBGYellow,dircolorsBGBlue,
+ \ dircolorsBGMagenta,dircolorsBGCyan,
+ \ dircolorsBGWhite
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_dircolors_syn_inits")
- if version < 508
- let did_dircolors_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- command -nargs=+ HiDef hi <args>
- else
- command -nargs=+ HiLink hi def link <args>
- command -nargs=+ HiDef hi def <args>
- endif
+ syn match dircolorsBold contained '\<01\>'
+ syn match dircolorsUnderline contained '\<04\>'
+ syn match dircolorsBlink contained '\<05\>'
+ syn match dircolorsReverse contained '\<07\>'
+ syn match dircolorsInvisible contained '\<08\>'
+ syn match dircolorsBlack contained '\<30\>'
+ syn match dircolorsRed contained '\<31\>'
+ syn match dircolorsGreen contained '\<32\>'
+ syn match dircolorsYellow contained '\<33\>'
+ syn match dircolorsBlue contained '\<34\>'
+ syn match dircolorsMagenta contained '\<35\>'
+ syn match dircolorsCyan contained '\<36\>'
+ syn match dircolorsWhite contained '\<37\>'
+ syn match dircolorsBGBlack contained '\<40\>'
+ syn match dircolorsBGRed contained '\<41\>'
+ syn match dircolorsBGGreen contained '\<42\>'
+ syn match dircolorsBGYellow contained '\<43\>'
+ syn match dircolorsBGBlue contained '\<44\>'
+ syn match dircolorsBGMagenta contained '\<45\>'
+ syn match dircolorsBGCyan contained '\<46\>'
+ syn match dircolorsBGWhite contained '\<47\>'
+elseif &t_Co == 256
+ syn cluster dircolorsColors contains=dircolorsColor1,dircolorsColor2,
+ \ dircolorsColor3,dircolorsColor4,
+ \ dircolorsColor5,dircolorsColor6,
+ \ dircolorsColor7,dircolorsColor8,
+ \ dircolorsColor9,dircolorsColor10,
+ \ dircolorsColor11,dircolorsColor12,
+ \ dircolorsColor13,dircolorsColor14,
+ \ dircolorsColor15,dircolorsColor16,
+ \ dircolorsColor17,dircolorsColor18,
+ \ dircolorsColor19,dircolorsColor20,
+ \ dircolorsColor21,dircolorsColor22,
+ \ dircolorsColor23,dircolorsColor24,
+ \ dircolorsColor25,dircolorsColor26,
+ \ dircolorsColor27,dircolorsColor28,
+ \ dircolorsColor29,dircolorsColor30,
+ \ dircolorsColor31,dircolorsColor32,
+ \ dircolorsColor33,dircolorsColor34,
+ \ dircolorsColor35,dircolorsColor36,
+ \ dircolorsColor37,dircolorsColor38,
+ \ dircolorsColor39,dircolorsColor40,
+ \ dircolorsColor41,dircolorsColor42,
+ \ dircolorsColor43,dircolorsColor44,
+ \ dircolorsColor45,dircolorsColor46,
+ \ dircolorsColor47,dircolorsColor48,
+ \ dircolorsColor49,dircolorsColor50,
+ \ dircolorsColor51,dircolorsColor52,
+ \ dircolorsColor53,dircolorsColor54,
+ \ dircolorsColor55,dircolorsColor56,
+ \ dircolorsColor57,dircolorsColor58,
+ \ dircolorsColor59,dircolorsColor60,
+ \ dircolorsColor61,dircolorsColor62,
+ \ dircolorsColor63,dircolorsColor64,
+ \ dircolorsColor65,dircolorsColor66,
+ \ dircolorsColor67,dircolorsColor68,
+ \ dircolorsColor69,dircolorsColor70,
+ \ dircolorsColor71,dircolorsColor72,
+ \ dircolorsColor73,dircolorsColor74,
+ \ dircolorsColor75,dircolorsColor76,
+ \ dircolorsColor77,dircolorsColor78,
+ \ dircolorsColor79,dircolorsColor80,
+ \ dircolorsColor81,dircolorsColor82,
+ \ dircolorsColor83,dircolorsColor84,
+ \ dircolorsColor85,dircolorsColor86,
+ \ dircolorsColor87,dircolorsColor88,
+ \ dircolorsColor89,dircolorsColor90,
+ \ dircolorsColor91,dircolorsColor92,
+ \ dircolorsColor93,dircolorsColor94,
+ \ dircolorsColor95,dircolorsColor96,
+ \ dircolorsColor97,dircolorsColor98,
+ \ dircolorsColor99,dircolorsColor100,
+ \ dircolorsColor101,dircolorsColor102,
+ \ dircolorsColor103,dircolorsColor104,
+ \ dircolorsColor105,dircolorsColor106,
+ \ dircolorsColor107,dircolorsColor108,
+ \ dircolorsColor109,dircolorsColor110,
+ \ dircolorsColor111,dircolorsColor112,
+ \ dircolorsColor113,dircolorsColor114,
+ \ dircolorsColor115,dircolorsColor116,
+ \ dircolorsColor117,dircolorsColor118,
+ \ dircolorsColor119,dircolorsColor120,
+ \ dircolorsColor121,dircolorsColor122,
+ \ dircolorsColor123,dircolorsColor124,
+ \ dircolorsColor125,dircolorsColor126,
+ \ dircolorsColor127,dircolorsColor128,
+ \ dircolorsColor129,dircolorsColor130,
+ \ dircolorsColor131,dircolorsColor132,
+ \ dircolorsColor133,dircolorsColor134,
+ \ dircolorsColor135,dircolorsColor136,
+ \ dircolorsColor137,dircolorsColor138,
+ \ dircolorsColor139,dircolorsColor140,
+ \ dircolorsColor141,dircolorsColor142,
+ \ dircolorsColor143,dircolorsColor144,
+ \ dircolorsColor145,dircolorsColor146,
+ \ dircolorsColor147,dircolorsColor148,
+ \ dircolorsColor149,dircolorsColor150,
+ \ dircolorsColor151,dircolorsColor152,
+ \ dircolorsColor153,dircolorsColor154,
+ \ dircolorsColor155,dircolorsColor156,
+ \ dircolorsColor157,dircolorsColor158,
+ \ dircolorsColor159,dircolorsColor160,
+ \ dircolorsColor161,dircolorsColor162,
+ \ dircolorsColor163,dircolorsColor164,
+ \ dircolorsColor165,dircolorsColor166,
+ \ dircolorsColor167,dircolorsColor168,
+ \ dircolorsColor169,dircolorsColor170,
+ \ dircolorsColor171,dircolorsColor172,
+ \ dircolorsColor173,dircolorsColor174,
+ \ dircolorsColor175,dircolorsColor176,
+ \ dircolorsColor177,dircolorsColor178,
+ \ dircolorsColor179,dircolorsColor180,
+ \ dircolorsColor181,dircolorsColor182,
+ \ dircolorsColor183,dircolorsColor184,
+ \ dircolorsColor185,dircolorsColor186,
+ \ dircolorsColor187,dircolorsColor188,
+ \ dircolorsColor189,dircolorsColor190,
+ \ dircolorsColor191,dircolorsColor192,
+ \ dircolorsColor193,dircolorsColor194,
+ \ dircolorsColor195,dircolorsColor196,
+ \ dircolorsColor197,dircolorsColor198,
+ \ dircolorsColor199,dircolorsColor200,
+ \ dircolorsColor201,dircolorsColor202,
+ \ dircolorsColor203,dircolorsColor204,
+ \ dircolorsColor205,dircolorsColor206,
+ \ dircolorsColor207,dircolorsColor208,
+ \ dircolorsColor209,dircolorsColor210,
+ \ dircolorsColor211,dircolorsColor212,
+ \ dircolorsColor213,dircolorsColor214,
+ \ dircolorsColor215,dircolorsColor216,
+ \ dircolorsColor217,dircolorsColor218,
+ \ dircolorsColor219,dircolorsColor220,
+ \ dircolorsColor221,dircolorsColor222,
+ \ dircolorsColor223,dircolorsColor224,
+ \ dircolorsColor225,dircolorsColor226,
+ \ dircolorsColor227,dircolorsColor228,
+ \ dircolorsColor229,dircolorsColor230,
+ \ dircolorsColor231,dircolorsColor232,
+ \ dircolorsColor233,dircolorsColor234,
+ \ dircolorsColor235,dircolorsColor236,
+ \ dircolorsColor237,dircolorsColor238,
+ \ dircolorsColor239,dircolorsColor240,
+ \ dircolorsColor241,dircolorsColor242,
+ \ dircolorsColor243,dircolorsColor244,
+ \ dircolorsColor245,dircolorsColor246,
+ \ dircolorsColor247,dircolorsColor248,
+ \ dircolorsColor249,dircolorsColor250,
+ \ dircolorsColor251,dircolorsColor252,
+ \ dircolorsColor253,dircolorsColor254,
+ \ dircolorsColor255
- HiLink dircolorsTodo Todo
- HiLink dircolorsComment Comment
- HiLink dircolorsNumber Number
- HiLink dircolorsKeyword Keyword
- HiLink dircolorsExtension Keyword
+ syn match dircolorsColor1 contained '\<1\>'
+ syn match dircolorsColor2 contained '\<2\>'
+ syn match dircolorsColor3 contained '\<3\>'
+ syn match dircolorsColor4 contained '\<4\>'
+ syn match dircolorsColor5 contained '\<5\>'
+ syn match dircolorsColor6 contained '\<6\>'
+ syn match dircolorsColor7 contained '\<7\>'
+ syn match dircolorsColor8 contained '\<8\>'
+ syn match dircolorsColor9 contained '\<9\>'
+ syn match dircolorsColor10 contained '\<10\>'
+ syn match dircolorsColor11 contained '\<11\>'
+ syn match dircolorsColor12 contained '\<12\>'
+ syn match dircolorsColor13 contained '\<13\>'
+ syn match dircolorsColor14 contained '\<14\>'
+ syn match dircolorsColor15 contained '\<15\>'
+ syn match dircolorsColor16 contained '\<16\>'
+ syn match dircolorsColor17 contained '\<17\>'
+ syn match dircolorsColor18 contained '\<18\>'
+ syn match dircolorsColor19 contained '\<19\>'
+ syn match dircolorsColor20 contained '\<20\>'
+ syn match dircolorsColor21 contained '\<21\>'
+ syn match dircolorsColor22 contained '\<22\>'
+ syn match dircolorsColor23 contained '\<23\>'
+ syn match dircolorsColor24 contained '\<24\>'
+ syn match dircolorsColor25 contained '\<25\>'
+ syn match dircolorsColor26 contained '\<26\>'
+ syn match dircolorsColor27 contained '\<27\>'
+ syn match dircolorsColor28 contained '\<28\>'
+ syn match dircolorsColor29 contained '\<29\>'
+ syn match dircolorsColor30 contained '\<30\>'
+ syn match dircolorsColor31 contained '\<31\>'
+ syn match dircolorsColor32 contained '\<32\>'
+ syn match dircolorsColor33 contained '\<33\>'
+ syn match dircolorsColor34 contained '\<34\>'
+ syn match dircolorsColor35 contained '\<35\>'
+ syn match dircolorsColor36 contained '\<36\>'
+ syn match dircolorsColor37 contained '\<37\>'
+ syn match dircolorsColor38 contained '\<38\>'
+ syn match dircolorsColor39 contained '\<39\>'
+ syn match dircolorsColor40 contained '\<40\>'
+ syn match dircolorsColor41 contained '\<41\>'
+ syn match dircolorsColor42 contained '\<42\>'
+ syn match dircolorsColor43 contained '\<43\>'
+ syn match dircolorsColor44 contained '\<44\>'
+ syn match dircolorsColor45 contained '\<45\>'
+ syn match dircolorsColor46 contained '\<46\>'
+ syn match dircolorsColor47 contained '\<47\>'
+ syn match dircolorsColor48 contained '\<48\>'
+ syn match dircolorsColor49 contained '\<49\>'
+ syn match dircolorsColor50 contained '\<50\>'
+ syn match dircolorsColor51 contained '\<51\>'
+ syn match dircolorsColor52 contained '\<52\>'
+ syn match dircolorsColor53 contained '\<53\>'
+ syn match dircolorsColor54 contained '\<54\>'
+ syn match dircolorsColor55 contained '\<55\>'
+ syn match dircolorsColor56 contained '\<56\>'
+ syn match dircolorsColor57 contained '\<57\>'
+ syn match dircolorsColor58 contained '\<58\>'
+ syn match dircolorsColor59 contained '\<59\>'
+ syn match dircolorsColor60 contained '\<60\>'
+ syn match dircolorsColor61 contained '\<61\>'
+ syn match dircolorsColor62 contained '\<62\>'
+ syn match dircolorsColor63 contained '\<63\>'
+ syn match dircolorsColor64 contained '\<64\>'
+ syn match dircolorsColor65 contained '\<65\>'
+ syn match dircolorsColor66 contained '\<66\>'
+ syn match dircolorsColor67 contained '\<67\>'
+ syn match dircolorsColor68 contained '\<68\>'
+ syn match dircolorsColor69 contained '\<69\>'
+ syn match dircolorsColor70 contained '\<70\>'
+ syn match dircolorsColor71 contained '\<71\>'
+ syn match dircolorsColor72 contained '\<72\>'
+ syn match dircolorsColor73 contained '\<73\>'
+ syn match dircolorsColor74 contained '\<74\>'
+ syn match dircolorsColor75 contained '\<75\>'
+ syn match dircolorsColor76 contained '\<76\>'
+ syn match dircolorsColor77 contained '\<77\>'
+ syn match dircolorsColor78 contained '\<78\>'
+ syn match dircolorsColor79 contained '\<79\>'
+ syn match dircolorsColor80 contained '\<80\>'
+ syn match dircolorsColor81 contained '\<81\>'
+ syn match dircolorsColor82 contained '\<82\>'
+ syn match dircolorsColor83 contained '\<83\>'
+ syn match dircolorsColor84 contained '\<84\>'
+ syn match dircolorsColor85 contained '\<85\>'
+ syn match dircolorsColor86 contained '\<86\>'
+ syn match dircolorsColor87 contained '\<87\>'
+ syn match dircolorsColor88 contained '\<88\>'
+ syn match dircolorsColor89 contained '\<89\>'
+ syn match dircolorsColor90 contained '\<90\>'
+ syn match dircolorsColor91 contained '\<91\>'
+ syn match dircolorsColor92 contained '\<92\>'
+ syn match dircolorsColor93 contained '\<93\>'
+ syn match dircolorsColor94 contained '\<94\>'
+ syn match dircolorsColor95 contained '\<95\>'
+ syn match dircolorsColor96 contained '\<96\>'
+ syn match dircolorsColor97 contained '\<97\>'
+ syn match dircolorsColor98 contained '\<98\>'
+ syn match dircolorsColor99 contained '\<99\>'
+ syn match dircolorsColor100 contained '\<100\>'
+ syn match dircolorsColor101 contained '\<101\>'
+ syn match dircolorsColor102 contained '\<102\>'
+ syn match dircolorsColor103 contained '\<103\>'
+ syn match dircolorsColor104 contained '\<104\>'
+ syn match dircolorsColor105 contained '\<105\>'
+ syn match dircolorsColor106 contained '\<106\>'
+ syn match dircolorsColor107 contained '\<107\>'
+ syn match dircolorsColor108 contained '\<108\>'
+ syn match dircolorsColor109 contained '\<109\>'
+ syn match dircolorsColor110 contained '\<110\>'
+ syn match dircolorsColor111 contained '\<111\>'
+ syn match dircolorsColor112 contained '\<112\>'
+ syn match dircolorsColor113 contained '\<113\>'
+ syn match dircolorsColor114 contained '\<114\>'
+ syn match dircolorsColor115 contained '\<115\>'
+ syn match dircolorsColor116 contained '\<116\>'
+ syn match dircolorsColor117 contained '\<117\>'
+ syn match dircolorsColor118 contained '\<118\>'
+ syn match dircolorsColor119 contained '\<119\>'
+ syn match dircolorsColor120 contained '\<120\>'
+ syn match dircolorsColor121 contained '\<121\>'
+ syn match dircolorsColor122 contained '\<122\>'
+ syn match dircolorsColor123 contained '\<123\>'
+ syn match dircolorsColor124 contained '\<124\>'
+ syn match dircolorsColor125 contained '\<125\>'
+ syn match dircolorsColor126 contained '\<126\>'
+ syn match dircolorsColor127 contained '\<127\>'
+ syn match dircolorsColor128 contained '\<128\>'
+ syn match dircolorsColor129 contained '\<129\>'
+ syn match dircolorsColor130 contained '\<130\>'
+ syn match dircolorsColor131 contained '\<131\>'
+ syn match dircolorsColor132 contained '\<132\>'
+ syn match dircolorsColor133 contained '\<133\>'
+ syn match dircolorsColor134 contained '\<134\>'
+ syn match dircolorsColor135 contained '\<135\>'
+ syn match dircolorsColor136 contained '\<136\>'
+ syn match dircolorsColor137 contained '\<137\>'
+ syn match dircolorsColor138 contained '\<138\>'
+ syn match dircolorsColor139 contained '\<139\>'
+ syn match dircolorsColor140 contained '\<140\>'
+ syn match dircolorsColor141 contained '\<141\>'
+ syn match dircolorsColor142 contained '\<142\>'
+ syn match dircolorsColor143 contained '\<143\>'
+ syn match dircolorsColor144 contained '\<144\>'
+ syn match dircolorsColor145 contained '\<145\>'
+ syn match dircolorsColor146 contained '\<146\>'
+ syn match dircolorsColor147 contained '\<147\>'
+ syn match dircolorsColor148 contained '\<148\>'
+ syn match dircolorsColor149 contained '\<149\>'
+ syn match dircolorsColor150 contained '\<150\>'
+ syn match dircolorsColor151 contained '\<151\>'
+ syn match dircolorsColor152 contained '\<152\>'
+ syn match dircolorsColor153 contained '\<153\>'
+ syn match dircolorsColor154 contained '\<154\>'
+ syn match dircolorsColor155 contained '\<155\>'
+ syn match dircolorsColor156 contained '\<156\>'
+ syn match dircolorsColor157 contained '\<157\>'
+ syn match dircolorsColor158 contained '\<158\>'
+ syn match dircolorsColor159 contained '\<159\>'
+ syn match dircolorsColor160 contained '\<160\>'
+ syn match dircolorsColor161 contained '\<161\>'
+ syn match dircolorsColor162 contained '\<162\>'
+ syn match dircolorsColor163 contained '\<163\>'
+ syn match dircolorsColor164 contained '\<164\>'
+ syn match dircolorsColor165 contained '\<165\>'
+ syn match dircolorsColor166 contained '\<166\>'
+ syn match dircolorsColor167 contained '\<167\>'
+ syn match dircolorsColor168 contained '\<168\>'
+ syn match dircolorsColor169 contained '\<169\>'
+ syn match dircolorsColor170 contained '\<170\>'
+ syn match dircolorsColor171 contained '\<171\>'
+ syn match dircolorsColor172 contained '\<172\>'
+ syn match dircolorsColor173 contained '\<173\>'
+ syn match dircolorsColor174 contained '\<174\>'
+ syn match dircolorsColor175 contained '\<175\>'
+ syn match dircolorsColor176 contained '\<176\>'
+ syn match dircolorsColor177 contained '\<177\>'
+ syn match dircolorsColor178 contained '\<178\>'
+ syn match dircolorsColor179 contained '\<179\>'
+ syn match dircolorsColor180 contained '\<180\>'
+ syn match dircolorsColor181 contained '\<181\>'
+ syn match dircolorsColor182 contained '\<182\>'
+ syn match dircolorsColor183 contained '\<183\>'
+ syn match dircolorsColor184 contained '\<184\>'
+ syn match dircolorsColor185 contained '\<185\>'
+ syn match dircolorsColor186 contained '\<186\>'
+ syn match dircolorsColor187 contained '\<187\>'
+ syn match dircolorsColor188 contained '\<188\>'
+ syn match dircolorsColor189 contained '\<189\>'
+ syn match dircolorsColor190 contained '\<190\>'
+ syn match dircolorsColor191 contained '\<191\>'
+ syn match dircolorsColor192 contained '\<192\>'
+ syn match dircolorsColor193 contained '\<193\>'
+ syn match dircolorsColor194 contained '\<194\>'
+ syn match dircolorsColor195 contained '\<195\>'
+ syn match dircolorsColor196 contained '\<196\>'
+ syn match dircolorsColor197 contained '\<197\>'
+ syn match dircolorsColor198 contained '\<198\>'
+ syn match dircolorsColor199 contained '\<199\>'
+ syn match dircolorsColor200 contained '\<200\>'
+ syn match dircolorsColor201 contained '\<201\>'
+ syn match dircolorsColor202 contained '\<202\>'
+ syn match dircolorsColor203 contained '\<203\>'
+ syn match dircolorsColor204 contained '\<204\>'
+ syn match dircolorsColor205 contained '\<205\>'
+ syn match dircolorsColor206 contained '\<206\>'
+ syn match dircolorsColor207 contained '\<207\>'
+ syn match dircolorsColor208 contained '\<208\>'
+ syn match dircolorsColor209 contained '\<209\>'
+ syn match dircolorsColor210 contained '\<210\>'
+ syn match dircolorsColor211 contained '\<211\>'
+ syn match dircolorsColor212 contained '\<212\>'
+ syn match dircolorsColor213 contained '\<213\>'
+ syn match dircolorsColor214 contained '\<214\>'
+ syn match dircolorsColor215 contained '\<215\>'
+ syn match dircolorsColor216 contained '\<216\>'
+ syn match dircolorsColor217 contained '\<217\>'
+ syn match dircolorsColor218 contained '\<218\>'
+ syn match dircolorsColor219 contained '\<219\>'
+ syn match dircolorsColor220 contained '\<220\>'
+ syn match dircolorsColor221 contained '\<221\>'
+ syn match dircolorsColor222 contained '\<222\>'
+ syn match dircolorsColor223 contained '\<223\>'
+ syn match dircolorsColor224 contained '\<224\>'
+ syn match dircolorsColor225 contained '\<225\>'
+ syn match dircolorsColor226 contained '\<226\>'
+ syn match dircolorsColor227 contained '\<227\>'
+ syn match dircolorsColor228 contained '\<228\>'
+ syn match dircolorsColor229 contained '\<229\>'
+ syn match dircolorsColor230 contained '\<230\>'
+ syn match dircolorsColor231 contained '\<231\>'
+ syn match dircolorsColor232 contained '\<232\>'
+ syn match dircolorsColor233 contained '\<233\>'
+ syn match dircolorsColor234 contained '\<234\>'
+ syn match dircolorsColor235 contained '\<235\>'
+ syn match dircolorsColor236 contained '\<236\>'
+ syn match dircolorsColor237 contained '\<237\>'
+ syn match dircolorsColor238 contained '\<238\>'
+ syn match dircolorsColor239 contained '\<239\>'
+ syn match dircolorsColor240 contained '\<240\>'
+ syn match dircolorsColor241 contained '\<241\>'
+ syn match dircolorsColor242 contained '\<242\>'
+ syn match dircolorsColor243 contained '\<243\>'
+ syn match dircolorsColor244 contained '\<244\>'
+ syn match dircolorsColor245 contained '\<245\>'
+ syn match dircolorsColor246 contained '\<246\>'
+ syn match dircolorsColor247 contained '\<247\>'
+ syn match dircolorsColor248 contained '\<248\>'
+ syn match dircolorsColor249 contained '\<249\>'
+ syn match dircolorsColor250 contained '\<250\>'
+ syn match dircolorsColor251 contained '\<251\>'
+ syn match dircolorsColor252 contained '\<252\>'
+ syn match dircolorsColor253 contained '\<253\>'
+ syn match dircolorsColor254 contained '\<254\>'
+ syn match dircolorsColor255 contained '\<255\>'
+else
+ syn cluster dircolorsColors contains=dircolorsNumber
+ syn match dircolorsNumber '\<\d\+\>'
+endif
- HiDef dircolors01 term=bold cterm=bold gui=bold
- HiDef dircolors04 term=underline cterm=underline gui=underline
- " HiDef dircolors05
- HiDef dircolors07 term=reverse cterm=reverse gui=reverse
- HiLink dircolors08 Ignore
- HiDef dircolors30 ctermfg=Black guifg=Black
- HiDef dircolors31 ctermfg=Red guifg=Red
- HiDef dircolors32 ctermfg=Green guifg=Green
- HiDef dircolors33 ctermfg=Yellow guifg=Yellow
- HiDef dircolors34 ctermfg=Blue guifg=Blue
- HiDef dircolors35 ctermfg=Magenta guifg=Magenta
- HiDef dircolors36 ctermfg=Cyan guifg=Cyan
- HiDef dircolors37 ctermfg=White guifg=White
- HiDef dircolors40 ctermbg=Black ctermfg=White guibg=Black guifg=White
- HiDef dircolors41 ctermbg=DarkRed guibg=DarkRed
- HiDef dircolors42 ctermbg=DarkGreen guibg=DarkGreen
- HiDef dircolors43 ctermbg=DarkYellow guibg=DarkYellow
- HiDef dircolors44 ctermbg=DarkBlue guibg=DarkBlue
- HiDef dircolors45 ctermbg=DarkMagenta guibg=DarkMagenta
- HiDef dircolors46 ctermbg=DarkCyan guibg=DarkCyan
- HiDef dircolors47 ctermbg=White ctermfg=Black guibg=White guifg=Black
+hi def link dircolorsTodo Todo
+hi def link dircolorsComment Comment
+hi def link dircolorsKeyword Keyword
+hi def link dircolorsExtension Keyword
- delcommand HiLink
- delcommand HiDef
+if &t_Co == 8 || &t_Co == 16
+ hi def dircolorsBold term=bold cterm=bold gui=bold
+ hi def dircolorsUnderline term=underline cterm=underline gui=underline
+ hi def link dircolorsBlink Normal
+ hi def dircolorsReverse term=reverse cterm=reverse gui=reverse
+ hi def link dircolorsInvisible Ignore
+ hi def dircolorsBlack ctermfg=Black guifg=Black
+ hi def dircolorsRed ctermfg=Red guifg=Red
+ hi def dircolorsGreen ctermfg=Green guifg=Green
+ hi def dircolorsYellow ctermfg=Yellow guifg=Yellow
+ hi def dircolorsBlue ctermfg=Blue guifg=Blue
+ hi def dircolorsMagenta ctermfg=Magenta guifg=Magenta
+ hi def dircolorsCyan ctermfg=Cyan guifg=Cyan
+ hi def dircolorsWhite ctermfg=White guifg=White
+ hi def dircolorsBGBlack ctermbg=Black ctermfg=White
+ \ guibg=Black guifg=White
+ hi def dircolorsBGRed ctermbg=DarkRed guibg=DarkRed
+ hi def dircolorsBGGreen ctermbg=DarkGreen guibg=DarkGreen
+ hi def dircolorsBGYellow ctermbg=DarkYellow guibg=DarkYellow
+ hi def dircolorsBGBlue ctermbg=DarkBlue guibg=DarkBlue
+ hi def dircolorsBGMagenta ctermbg=DarkMagenta guibg=DarkMagenta
+ hi def dircolorsBGCyan ctermbg=DarkCyan guibg=DarkCyan
+ hi def dircolorsBGWhite ctermbg=White ctermfg=Black
+ \ guibg=White guifg=Black
+elseif &t_Co == 256
+ hi def dircolorsColor1 ctermfg=1 guifg=1
+ hi def dircolorsColor2 ctermfg=2 guifg=2
+ hi def dircolorsColor3 ctermfg=3 guifg=3
+ hi def dircolorsColor4 ctermfg=4 guifg=4
+ hi def dircolorsColor5 ctermfg=5 guifg=5
+ hi def dircolorsColor6 ctermfg=6 guifg=6
+ hi def dircolorsColor7 ctermfg=7 guifg=7
+ hi def dircolorsColor8 ctermfg=8 guifg=8
+ hi def dircolorsColor9 ctermfg=9 guifg=9
+ hi def dircolorsColor10 ctermfg=10 guifg=10
+ hi def dircolorsColor11 ctermfg=11 guifg=11
+ hi def dircolorsColor12 ctermfg=12 guifg=12
+ hi def dircolorsColor13 ctermfg=13 guifg=13
+ hi def dircolorsColor14 ctermfg=14 guifg=14
+ hi def dircolorsColor15 ctermfg=15 guifg=15
+ hi def dircolorsColor16 ctermfg=16 guifg=16
+ hi def dircolorsColor17 ctermfg=17 guifg=17
+ hi def dircolorsColor18 ctermfg=18 guifg=18
+ hi def dircolorsColor19 ctermfg=19 guifg=19
+ hi def dircolorsColor20 ctermfg=20 guifg=20
+ hi def dircolorsColor21 ctermfg=21 guifg=21
+ hi def dircolorsColor22 ctermfg=22 guifg=22
+ hi def dircolorsColor23 ctermfg=23 guifg=23
+ hi def dircolorsColor24 ctermfg=24 guifg=24
+ hi def dircolorsColor25 ctermfg=25 guifg=25
+ hi def dircolorsColor26 ctermfg=26 guifg=26
+ hi def dircolorsColor27 ctermfg=27 guifg=27
+ hi def dircolorsColor28 ctermfg=28 guifg=28
+ hi def dircolorsColor29 ctermfg=29 guifg=29
+ hi def dircolorsColor30 ctermfg=30 guifg=30
+ hi def dircolorsColor31 ctermfg=31 guifg=31
+ hi def dircolorsColor32 ctermfg=32 guifg=32
+ hi def dircolorsColor33 ctermfg=33 guifg=33
+ hi def dircolorsColor34 ctermfg=34 guifg=34
+ hi def dircolorsColor35 ctermfg=35 guifg=35
+ hi def dircolorsColor36 ctermfg=36 guifg=36
+ hi def dircolorsColor37 ctermfg=37 guifg=37
+ hi def dircolorsColor38 ctermfg=38 guifg=38
+ hi def dircolorsColor39 ctermfg=39 guifg=39
+ hi def dircolorsColor40 ctermfg=40 guifg=40
+ hi def dircolorsColor41 ctermfg=41 guifg=41
+ hi def dircolorsColor42 ctermfg=42 guifg=42
+ hi def dircolorsColor43 ctermfg=43 guifg=43
+ hi def dircolorsColor44 ctermfg=44 guifg=44
+ hi def dircolorsColor45 ctermfg=45 guifg=45
+ hi def dircolorsColor46 ctermfg=46 guifg=46
+ hi def dircolorsColor47 ctermfg=47 guifg=47
+ hi def dircolorsColor48 ctermfg=48 guifg=48
+ hi def dircolorsColor49 ctermfg=49 guifg=49
+ hi def dircolorsColor50 ctermfg=50 guifg=50
+ hi def dircolorsColor51 ctermfg=51 guifg=51
+ hi def dircolorsColor52 ctermfg=52 guifg=52
+ hi def dircolorsColor53 ctermfg=53 guifg=53
+ hi def dircolorsColor54 ctermfg=54 guifg=54
+ hi def dircolorsColor55 ctermfg=55 guifg=55
+ hi def dircolorsColor56 ctermfg=56 guifg=56
+ hi def dircolorsColor57 ctermfg=57 guifg=57
+ hi def dircolorsColor58 ctermfg=58 guifg=58
+ hi def dircolorsColor59 ctermfg=59 guifg=59
+ hi def dircolorsColor60 ctermfg=60 guifg=60
+ hi def dircolorsColor61 ctermfg=61 guifg=61
+ hi def dircolorsColor62 ctermfg=62 guifg=62
+ hi def dircolorsColor63 ctermfg=63 guifg=63
+ hi def dircolorsColor64 ctermfg=64 guifg=64
+ hi def dircolorsColor65 ctermfg=65 guifg=65
+ hi def dircolorsColor66 ctermfg=66 guifg=66
+ hi def dircolorsColor67 ctermfg=67 guifg=67
+ hi def dircolorsColor68 ctermfg=68 guifg=68
+ hi def dircolorsColor69 ctermfg=69 guifg=69
+ hi def dircolorsColor70 ctermfg=70 guifg=70
+ hi def dircolorsColor71 ctermfg=71 guifg=71
+ hi def dircolorsColor72 ctermfg=72 guifg=72
+ hi def dircolorsColor73 ctermfg=73 guifg=73
+ hi def dircolorsColor74 ctermfg=74 guifg=74
+ hi def dircolorsColor75 ctermfg=75 guifg=75
+ hi def dircolorsColor76 ctermfg=76 guifg=76
+ hi def dircolorsColor77 ctermfg=77 guifg=77
+ hi def dircolorsColor78 ctermfg=78 guifg=78
+ hi def dircolorsColor79 ctermfg=79 guifg=79
+ hi def dircolorsColor80 ctermfg=80 guifg=80
+ hi def dircolorsColor81 ctermfg=81 guifg=81
+ hi def dircolorsColor82 ctermfg=82 guifg=82
+ hi def dircolorsColor83 ctermfg=83 guifg=83
+ hi def dircolorsColor84 ctermfg=84 guifg=84
+ hi def dircolorsColor85 ctermfg=85 guifg=85
+ hi def dircolorsColor86 ctermfg=86 guifg=86
+ hi def dircolorsColor87 ctermfg=87 guifg=87
+ hi def dircolorsColor88 ctermfg=88 guifg=88
+ hi def dircolorsColor89 ctermfg=89 guifg=89
+ hi def dircolorsColor90 ctermfg=90 guifg=90
+ hi def dircolorsColor91 ctermfg=91 guifg=91
+ hi def dircolorsColor92 ctermfg=92 guifg=92
+ hi def dircolorsColor93 ctermfg=93 guifg=93
+ hi def dircolorsColor94 ctermfg=94 guifg=94
+ hi def dircolorsColor95 ctermfg=95 guifg=95
+ hi def dircolorsColor96 ctermfg=96 guifg=96
+ hi def dircolorsColor97 ctermfg=97 guifg=97
+ hi def dircolorsColor98 ctermfg=98 guifg=98
+ hi def dircolorsColor99 ctermfg=99 guifg=99
+ hi def dircolorsColor100 ctermfg=100 guifg=100
+ hi def dircolorsColor101 ctermfg=101 guifg=101
+ hi def dircolorsColor102 ctermfg=102 guifg=102
+ hi def dircolorsColor103 ctermfg=103 guifg=103
+ hi def dircolorsColor104 ctermfg=104 guifg=104
+ hi def dircolorsColor105 ctermfg=105 guifg=105
+ hi def dircolorsColor106 ctermfg=106 guifg=106
+ hi def dircolorsColor107 ctermfg=107 guifg=107
+ hi def dircolorsColor108 ctermfg=108 guifg=108
+ hi def dircolorsColor109 ctermfg=109 guifg=109
+ hi def dircolorsColor110 ctermfg=110 guifg=110
+ hi def dircolorsColor111 ctermfg=111 guifg=111
+ hi def dircolorsColor112 ctermfg=112 guifg=112
+ hi def dircolorsColor113 ctermfg=113 guifg=113
+ hi def dircolorsColor114 ctermfg=114 guifg=114
+ hi def dircolorsColor115 ctermfg=115 guifg=115
+ hi def dircolorsColor116 ctermfg=116 guifg=116
+ hi def dircolorsColor117 ctermfg=117 guifg=117
+ hi def dircolorsColor118 ctermfg=118 guifg=118
+ hi def dircolorsColor119 ctermfg=119 guifg=119
+ hi def dircolorsColor120 ctermfg=120 guifg=120
+ hi def dircolorsColor121 ctermfg=121 guifg=121
+ hi def dircolorsColor122 ctermfg=122 guifg=122
+ hi def dircolorsColor123 ctermfg=123 guifg=123
+ hi def dircolorsColor124 ctermfg=124 guifg=124
+ hi def dircolorsColor125 ctermfg=125 guifg=125
+ hi def dircolorsColor126 ctermfg=126 guifg=126
+ hi def dircolorsColor127 ctermfg=127 guifg=127
+ hi def dircolorsColor128 ctermfg=128 guifg=128
+ hi def dircolorsColor129 ctermfg=129 guifg=129
+ hi def dircolorsColor130 ctermfg=130 guifg=130
+ hi def dircolorsColor131 ctermfg=131 guifg=131
+ hi def dircolorsColor132 ctermfg=132 guifg=132
+ hi def dircolorsColor133 ctermfg=133 guifg=133
+ hi def dircolorsColor134 ctermfg=134 guifg=134
+ hi def dircolorsColor135 ctermfg=135 guifg=135
+ hi def dircolorsColor136 ctermfg=136 guifg=136
+ hi def dircolorsColor137 ctermfg=137 guifg=137
+ hi def dircolorsColor138 ctermfg=138 guifg=138
+ hi def dircolorsColor139 ctermfg=139 guifg=139
+ hi def dircolorsColor140 ctermfg=140 guifg=140
+ hi def dircolorsColor141 ctermfg=141 guifg=141
+ hi def dircolorsColor142 ctermfg=142 guifg=142
+ hi def dircolorsColor143 ctermfg=143 guifg=143
+ hi def dircolorsColor144 ctermfg=144 guifg=144
+ hi def dircolorsColor145 ctermfg=145 guifg=145
+ hi def dircolorsColor146 ctermfg=146 guifg=146
+ hi def dircolorsColor147 ctermfg=147 guifg=147
+ hi def dircolorsColor148 ctermfg=148 guifg=148
+ hi def dircolorsColor149 ctermfg=149 guifg=149
+ hi def dircolorsColor150 ctermfg=150 guifg=150
+ hi def dircolorsColor151 ctermfg=151 guifg=151
+ hi def dircolorsColor152 ctermfg=152 guifg=152
+ hi def dircolorsColor153 ctermfg=153 guifg=153
+ hi def dircolorsColor154 ctermfg=154 guifg=154
+ hi def dircolorsColor155 ctermfg=155 guifg=155
+ hi def dircolorsColor156 ctermfg=156 guifg=156
+ hi def dircolorsColor157 ctermfg=157 guifg=157
+ hi def dircolorsColor158 ctermfg=158 guifg=158
+ hi def dircolorsColor159 ctermfg=159 guifg=159
+ hi def dircolorsColor160 ctermfg=160 guifg=160
+ hi def dircolorsColor161 ctermfg=161 guifg=161
+ hi def dircolorsColor162 ctermfg=162 guifg=162
+ hi def dircolorsColor163 ctermfg=163 guifg=163
+ hi def dircolorsColor164 ctermfg=164 guifg=164
+ hi def dircolorsColor165 ctermfg=165 guifg=165
+ hi def dircolorsColor166 ctermfg=166 guifg=166
+ hi def dircolorsColor167 ctermfg=167 guifg=167
+ hi def dircolorsColor168 ctermfg=168 guifg=168
+ hi def dircolorsColor169 ctermfg=169 guifg=169
+ hi def dircolorsColor170 ctermfg=170 guifg=170
+ hi def dircolorsColor171 ctermfg=171 guifg=171
+ hi def dircolorsColor172 ctermfg=172 guifg=172
+ hi def dircolorsColor173 ctermfg=173 guifg=173
+ hi def dircolorsColor174 ctermfg=174 guifg=174
+ hi def dircolorsColor175 ctermfg=175 guifg=175
+ hi def dircolorsColor176 ctermfg=176 guifg=176
+ hi def dircolorsColor177 ctermfg=177 guifg=177
+ hi def dircolorsColor178 ctermfg=178 guifg=178
+ hi def dircolorsColor179 ctermfg=179 guifg=179
+ hi def dircolorsColor180 ctermfg=180 guifg=180
+ hi def dircolorsColor181 ctermfg=181 guifg=181
+ hi def dircolorsColor182 ctermfg=182 guifg=182
+ hi def dircolorsColor183 ctermfg=183 guifg=183
+ hi def dircolorsColor184 ctermfg=184 guifg=184
+ hi def dircolorsColor185 ctermfg=185 guifg=185
+ hi def dircolorsColor186 ctermfg=186 guifg=186
+ hi def dircolorsColor187 ctermfg=187 guifg=187
+ hi def dircolorsColor188 ctermfg=188 guifg=188
+ hi def dircolorsColor189 ctermfg=189 guifg=189
+ hi def dircolorsColor190 ctermfg=190 guifg=190
+ hi def dircolorsColor191 ctermfg=191 guifg=191
+ hi def dircolorsColor192 ctermfg=192 guifg=192
+ hi def dircolorsColor193 ctermfg=193 guifg=193
+ hi def dircolorsColor194 ctermfg=194 guifg=194
+ hi def dircolorsColor195 ctermfg=195 guifg=195
+ hi def dircolorsColor196 ctermfg=196 guifg=196
+ hi def dircolorsColor197 ctermfg=197 guifg=197
+ hi def dircolorsColor198 ctermfg=198 guifg=198
+ hi def dircolorsColor199 ctermfg=199 guifg=199
+ hi def dircolorsColor200 ctermfg=200 guifg=200
+ hi def dircolorsColor201 ctermfg=201 guifg=201
+ hi def dircolorsColor202 ctermfg=202 guifg=202
+ hi def dircolorsColor203 ctermfg=203 guifg=203
+ hi def dircolorsColor204 ctermfg=204 guifg=204
+ hi def dircolorsColor205 ctermfg=205 guifg=205
+ hi def dircolorsColor206 ctermfg=206 guifg=206
+ hi def dircolorsColor207 ctermfg=207 guifg=207
+ hi def dircolorsColor208 ctermfg=208 guifg=208
+ hi def dircolorsColor209 ctermfg=209 guifg=209
+ hi def dircolorsColor210 ctermfg=210 guifg=210
+ hi def dircolorsColor211 ctermfg=211 guifg=211
+ hi def dircolorsColor212 ctermfg=212 guifg=212
+ hi def dircolorsColor213 ctermfg=213 guifg=213
+ hi def dircolorsColor214 ctermfg=214 guifg=214
+ hi def dircolorsColor215 ctermfg=215 guifg=215
+ hi def dircolorsColor216 ctermfg=216 guifg=216
+ hi def dircolorsColor217 ctermfg=217 guifg=217
+ hi def dircolorsColor218 ctermfg=218 guifg=218
+ hi def dircolorsColor219 ctermfg=219 guifg=219
+ hi def dircolorsColor220 ctermfg=220 guifg=220
+ hi def dircolorsColor221 ctermfg=221 guifg=221
+ hi def dircolorsColor222 ctermfg=222 guifg=222
+ hi def dircolorsColor223 ctermfg=223 guifg=223
+ hi def dircolorsColor224 ctermfg=224 guifg=224
+ hi def dircolorsColor225 ctermfg=225 guifg=225
+ hi def dircolorsColor226 ctermfg=226 guifg=226
+ hi def dircolorsColor227 ctermfg=227 guifg=227
+ hi def dircolorsColor228 ctermfg=228 guifg=228
+ hi def dircolorsColor229 ctermfg=229 guifg=229
+ hi def dircolorsColor230 ctermfg=230 guifg=230
+ hi def dircolorsColor231 ctermfg=231 guifg=231
+ hi def dircolorsColor232 ctermfg=232 guifg=232
+ hi def dircolorsColor233 ctermfg=233 guifg=233
+ hi def dircolorsColor234 ctermfg=234 guifg=234
+ hi def dircolorsColor235 ctermfg=235 guifg=235
+ hi def dircolorsColor236 ctermfg=236 guifg=236
+ hi def dircolorsColor237 ctermfg=237 guifg=237
+ hi def dircolorsColor238 ctermfg=238 guifg=238
+ hi def dircolorsColor239 ctermfg=239 guifg=239
+ hi def dircolorsColor240 ctermfg=240 guifg=240
+ hi def dircolorsColor241 ctermfg=241 guifg=241
+ hi def dircolorsColor242 ctermfg=242 guifg=242
+ hi def dircolorsColor243 ctermfg=243 guifg=243
+ hi def dircolorsColor244 ctermfg=244 guifg=244
+ hi def dircolorsColor245 ctermfg=245 guifg=245
+ hi def dircolorsColor246 ctermfg=246 guifg=246
+ hi def dircolorsColor247 ctermfg=247 guifg=247
+ hi def dircolorsColor248 ctermfg=248 guifg=248
+ hi def dircolorsColor249 ctermfg=249 guifg=249
+ hi def dircolorsColor250 ctermfg=250 guifg=250
+ hi def dircolorsColor251 ctermfg=251 guifg=251
+ hi def dircolorsColor252 ctermfg=252 guifg=252
+ hi def dircolorsColor253 ctermfg=253 guifg=253
+ hi def dircolorsColor254 ctermfg=254 guifg=254
+ hi def dircolorsColor255 ctermfg=255 guifg=255
+else
+ hi def link dircolorsNumber Number
endif
let b:current_syntax = "dircolors"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/elinks.vim b/runtime/syntax/elinks.vim
index 0392c0858..20dff8323 100644
--- a/runtime/syntax/elinks.vim
+++ b/runtime/syntax/elinks.vim
@@ -1,54 +1,40 @@
" Vim syntax file
-" Language: elinks(1) configuration file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/
-" Latest Revision: 2004-05-22
-" arch-tag: 74eaff55-cdb5-4d31-805b-9627eb6535f1
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: elinks(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-27
+
+if exists("b:current_syntax")
finish
endif
-" Set iskeyword since we need `-' (and potentially others) in keywords.
-" For version 5.x: Set it globally
-" For version 6.x: Set it locally
-if version >= 600
- command -nargs=1 SetIsk setlocal iskeyword=<args>
-else
- command -nargs=1 SetIsk set iskeyword=<args>
-endif
-SetIsk @,48-57,_,-
-delcommand SetIsk
+let s:cpo_save = &cpo
+set cpo&vim
-" Todo
-syn keyword elinksTodo contained TODO FIXME XXX NOTE
+setlocal iskeyword=@,48-57,_,-
-" Comments
-syn region elinksComment matchgroup=elinksComment start='#' end='$' contains=elinksTodo
+syn keyword elinksTodo contained TODO FIXME XXX NOTE
+
+syn region elinksComment matchgroup=elinksComment start='#' end='$'
+ \ contains=elinksTodo
-" Numbers
syn match elinksNumber '\<\d\+\>'
-" Strings
-syn region elinksString matchgroup=elinksString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@elinksColor
+syn region elinksString matchgroup=elinksString start=+"+
+ \ skip=+\\\\\|\\"+ end=+"+ contains=@elinksColor
-" Keywords
syn keyword elinksKeyword set bind
-" Options
syn keyword elinksPrefix bookmarks
syn keyword elinksOptions file_format
syn keyword elinksPrefix config
syn keyword elinksOptions comments indentation saving_style i18n
-syn keyword elinksOptions saving_style_w show_template
+ \ saving_style_w show_template
syn keyword elinksPrefix connection ssl client_cert
syn keyword elinksOptions enable file cert_verify async_dns max_connections
-syn keyword elinksOptions max_connections_to_host receive_timeout retries
-syn keyword elinksOptions unrestartable_receive_timeout
+ \ max_connections_to_host receive_timeout retries
+ \ unrestartable_receive_timeout
syn keyword elinksPrefix cookies
syn keyword elinksOptions accept_policy max_age paranoid_security save resave
@@ -58,150 +44,145 @@ syn keyword elinksPrefix active_link colors search cache codepage colors
syn keyword elinksPrefix format memory download dump history global html
syn keyword elinksPrefix plain
syn keyword elinksOptions auto_follow priority auto_submit confirm_submit
-syn keyword elinksOptions input_size show_formhist file_tags
-syn keyword elinksOptions image_link_tagging image_link_prefix
-syn keyword elinksOptions image_link_suffix show_as_links show_any_as_links
-syn keyword elinksOptions background text enable_color bold invert underline
-syn keyword elinksOptions color_dirs numbering use_tabindex
-syn keyword elinksOptions number_keys_select_link wraparound case regex
-syn keyword elinksOptions show_hit_top_bottom wraparound show_not_found
-syn keyword elinksOptions margin_width refresh minimum_refresh_time
-syn keyword elinksOptions scroll_margin scroll_step table_move_order size
-syn keyword elinksOptions size cache_redirects ignore_cache_control assume
-syn keyword elinksOptions force_assumed text background link vlink dirs
-syn keyword elinksOptions allow_dark_on_black ensure_contrast
-syn keyword elinksOptions use_document_colors directory set_original_time
-syn keyword elinksOptions overwrite notify_bell codepage width enable
-syn keyword elinksOptions max_items display_type write_interval
-syn keyword elinksOptions keep_unhistory display_frames display_tables
-syn keyword elinksOptions expand_table_columns display_subs display_sups
-syn keyword elinksOptions link_display underline_links wrap_nbsp
-syn keyword elinksOptions display_links compress_empty_lines
+ \ input_size show_formhist file_tags
+ \ image_link_tagging image_link_prefix
+ \ image_link_suffix show_as_links
+ \ show_any_as_links background text enable_color
+ \ bold invert underline color_dirs numbering
+ \ use_tabindex number_keys_select_link
+ \ wraparound case regex show_hit_top_bottom
+ \ wraparound show_not_found margin_width refresh
+ \ minimum_refresh_time scroll_margin scroll_step
+ \ table_move_order size size cache_redirects
+ \ ignore_cache_control assume force_assumed text
+ \ background link vlink dirs allow_dark_on_black
+ \ ensure_contrast use_document_colors directory
+ \ set_original_time overwrite notify_bell
+ \ codepage width enable max_items display_type
+ \ write_interval keep_unhistory display_frames
+ \ display_tables expand_table_columns display_subs
+ \ display_sups link_display underline_links
+ \ wrap_nbsp display_links compress_empty_lines
syn keyword elinksPrefix mime extension handler mailcap mimetypes type
syn keyword elinksOptions ask block program enable path ask description
-syn keyword elinksOptions prioritize enable path default_type
+ \ prioritize enable path default_type
syn keyword elinksPrefix protocol file cgi ftp proxy http bugs proxy
syn keyword elinksPrefix referer https proxy rewrite dumb smart
syn keyword elinksOptions path policy allow_special_files show_hidden_files
-syn keyword elinksOptions try_encoding_extensions host anon_passwd use_pasv
-syn keyword elinksOptions use_epsv accept_charset allow_blacklist
-syn keyword elinksOptions broken_302_redirect post_no_keepalive http10 host
-syn keyword elinksOptions user passwd policy fake accept_language
-syn keyword elinksOptions accept_ui_language trace user_agent host
-syn keyword elinksOptions enable-dumb enable-smart
+ \ try_encoding_extensions host anon_passwd
+ \ use_pasv use_epsv accept_charset allow_blacklist
+ \ broken_302_redirect post_no_keepalive http10
+ \ host user passwd policy fake accept_language
+ \ accept_ui_language trace user_agent host
+ \ enable-dumb enable-smart
syn keyword elinksPrefix terminal
syn keyword elinksOptions type m11_hack utf_8_io restrict_852 block_cursor
-syn keyword elinksOptions colors transparency underline charset
+ \ colors transparency underline charset
syn keyword elinksPrefix ui colors color mainmenu normal selected hotkey
-syn keyword elinksPrefix menu marked hotkey frame dialog generic frame
-syn keyword elinksPrefix scrollbar scrollbar-selected title text checkbox
-syn keyword elinksPrefix checkbox-label button button-selected field
-syn keyword elinksPrefix field-text meter shadow title title-bar title-text
-syn keyword elinksPrefix status status-bar status-text tabs unvisited normal
-syn keyword elinksPrefix loading separator searched mono
+ \ menu marked hotkey frame dialog generic
+ \ frame scrollbar scrollbar-selected title text
+ \ checkbox checkbox-label button button-selected
+ \ field field-text meter shadow title title-bar
+ \ title-text status status-bar status-text tabs
+ \ unvisited normal loading separator searched mono
syn keyword elinksOptions text background
syn keyword elinksPrefix ui dialogs leds sessions tabs timer
syn keyword elinksOptions listbox_min_height shadows underline_hotkeys enable
-syn keyword elinksOptions auto_save auto_restore auto_save_foldername
-syn keyword elinksOptions homepage show_bar wraparound confirm_close enable
-syn keyword elinksOptions duration action language show_status_bar
-syn keyword elinksOptions show_title_bar startup_goto_dialog success_msgbox
-syn keyword elinksOptions window_title
+ \ auto_save auto_restore auto_save_foldername
+ \ homepage show_bar wraparound confirm_close
+ \ enable duration action language show_status_bar
+ \ show_title_bar startup_goto_dialog
+ \ success_msgbox window_title
syn keyword elinksOptions secure_file_saving
-" Colors
-syn cluster elinksColor contains=elinksColorBlack,elinksColorDarkRed,elinksColorDarkGreen,elinksColorDarkYellow,elinksColorDarkBlue,elinksColorDarkMagenta,elinksColorDarkCyan,elinksColorGray,elinksColorDarkGray,elinksColorRed,elinksColorGreen,elinksColorYellow,elinksColorBlue,elinksColorMagenta,elinksColorCyan,elinksColorWhite
-
-syn keyword elinksColorBlack black contained
-syn keyword elinksColorDarkRed darkred sandybrown maroon crimson firebrick contained
-syn keyword elinksColorDarkGreen darkgreen darkolivegreen darkseagreen contained
-syn keyword elinksColorDarkGreen forestgreen mediumspringgreen seagreen contained
-syn keyword elinksColorDarkYellow brown blanchedalmond chocolate darkorange contained
-syn keyword elinksColorDarkYellow darkgoldenrod orange rosybrown saddlebrown contained
-syn keyword elinksColorDarkYellow peru olive olivedrab sienna contained
-syn keyword elinksColorDarkBlue darkblue cadetblue cornflowerblue contained
-syn keyword elinksColorDarkBlue darkslateblue deepskyblue midnightblue contained
-syn keyword elinksColorDarkBlue royalblue steelblue navy contained
-syn keyword elinksColorDarkMagenta darkmagenta mediumorchid mediumpurple contained
-syn keyword elinksColorDarkMagenta mediumslateblue slateblue deeppink hotpink contained
-syn keyword elinksColorDarkMagenta darkorchid orchid purple indigo contained
-syn keyword elinksColorDarkCyan darkcyan mediumaquamarine mediumturquoise contained
-syn keyword elinksColorDarkCyan darkturquoise teal contained
-syn keyword elinksColorGray silver dimgray lightslategray slategray contained
-syn keyword elinksColorGray lightgrey burlywood plum tan thistle contained
-
-syn keyword elinksColorDarkGray gray darkgray darkslategray darksalmon contained
-syn keyword elinksColorRed red indianred orangered tomato lightsalmon contained
-syn keyword elinksColorRed salmon coral lightcoral contained
-syn keyword elinksColorGreen green greenyellow lawngreen lightgreen contained
-syn keyword elinksColorGreen lightseagreen limegreen mediumseagreen contained
-syn keyword elinksColorGreen springgreen yellowgreen palegreen lime contained
-syn keyword elinksColorGreen chartreuse contained
-syn keyword elinksColorYellow yellow beige darkkhaki lightgoldenrodyellow contained
-syn keyword elinksColorYellow palegoldenrod gold goldenrod khaki contained
-syn keyword elinksColorYellow lightyellow contained
-syn keyword elinksColorBlue blue aliceblue aqua aquamarine azure contained
-syn keyword elinksColorBlue dodgerblue lightblue lightskyblue contained
-syn keyword elinksColorBlue lightsteelblue mediumblue contained
-syn keyword elinksColorMagenta magenta darkviolet blueviolet lightpink contained
-syn keyword elinksColorMagenta mediumvioletred palevioletred violet pink contained
-syn keyword elinksColorMagenta fuchsia contained
-syn keyword elinksColorCyan cyan lightcyan powderblue skyblue turquoise contained
-syn keyword elinksColorCyan paleturquoise contained
-syn keyword elinksColorWhite white antiquewhite floralwhite ghostwhite contained
-syn keyword elinksColorWhite navajowhite whitesmoke linen lemonchiffon contained
-syn keyword elinksColorWhite cornsilk lavender lavenderblush seashell contained
-syn keyword elinksColorWhite mistyrose ivory papayawhip bisque gainsboro contained
-syn keyword elinksColorWhite honeydew mintcream moccasin oldlace contained
-syn keyword elinksColorWhite peachpuff snow wheat contained
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_elinks_syn_inits")
- if version < 508
- let did_elinks_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- command -nargs=+ HiDef hi <args>
- else
- command -nargs=+ HiLink hi def link <args>
- command -nargs=+ HiDef hi def <args>
- endif
-
- HiLink elinksTodo Todo
- HiLink elinksComment Comment
- HiLink elinksNumber Number
- HiLink elinksString String
- HiLink elinksKeyword Keyword
- HiLink elinksPrefix Identifier
- HiLink elinksOptions Identifier
- HiDef elinksColorBlack ctermfg=Black guifg=Black
- HiDef elinksColorDarkRed ctermfg=DarkRed guifg=DarkRed
- HiDef elinksColorDarkGreen ctermfg=DarkGreen guifg=DarkGreen
- HiDef elinksColorDarkYellow ctermfg=DarkYellow guifg=DarkYellow
- HiDef elinksColorDarkBlue ctermfg=DarkBlue guifg=DarkBlue
- HiDef elinksColorDarkMagenta ctermfg=DarkMagenta guifg=DarkMagenta
- HiDef elinksColorDarkCyan ctermfg=DarkCyan guifg=DarkCyan
- HiDef elinksColorGray ctermfg=Gray guifg=Gray
- HiDef elinksColorDarkGray ctermfg=DarkGray guifg=DarkGray
- HiDef elinksColorRed ctermfg=Red guifg=Red
- HiDef elinksColorGreen ctermfg=Green guifg=Green
- HiDef elinksColorYellow ctermfg=Yellow guifg=Yellow
- HiDef elinksColorBlue ctermfg=Blue guifg=Blue
- HiDef elinksColorMagenta ctermfg=Magenta guifg=Magenta
- HiDef elinksColorCyan ctermfg=Cyan guifg=Cyan
- HiDef elinksColorWhite ctermfg=White guifg=White
-
- delcommand HiLink
- delcommand HiDef
-endif
+syn cluster elinksColor contains=elinksColorBlack,elinksColorDarkRed,
+ \ elinksColorDarkGreen,elinksColorDarkYellow,
+ \ elinksColorDarkBlue,elinksColorDarkMagenta,
+ \ elinksColorDarkCyan,elinksColorGray,
+ \ elinksColorDarkGray,elinksColorRed,
+ \ elinksColorGreen,elinksColorYellow,
+ \ elinksColorBlue,elinksColorMagenta,
+ \ elinksColorCyan,elinksColorWhite
+
+syn keyword elinksColorBlack contained black
+syn keyword elinksColorDarkRed contained darkred sandybrown maroon crimson
+ \ firebrick
+syn keyword elinksColorDarkGreen contained darkgreen darkolivegreen
+ \ darkseagreen forestgreen
+ \ mediumspringgreen seagreen
+syn keyword elinksColorDarkYellow contained brown blanchedalmond chocolate
+ \ darkorange darkgoldenrod orange rosybrown
+ \ saddlebrown peru olive olivedrab sienna
+syn keyword elinksColorDarkBlue contained darkblue cadetblue cornflowerblue
+ \ darkslateblue deepskyblue midnightblue
+ \ royalblue steelblue navy
+syn keyword elinksColorDarkMagenta contained darkmagenta mediumorchid
+ \ mediumpurple mediumslateblue slateblue
+ \ deeppink hotpink darkorchid orchid purple
+ \ indigo
+syn keyword elinksColorDarkCyan contained darkcyan mediumaquamarine
+ \ mediumturquoise darkturquoise teal
+syn keyword elinksColorGray contained silver dimgray lightslategray
+ \ slategray lightgrey burlywood plum tan
+ \ thistle
+syn keyword elinksColorDarkGray contained gray darkgray darkslategray
+ \ darksalmon
+syn keyword elinksColorRed contained red indianred orangered tomato
+ \ lightsalmon salmon coral lightcoral
+syn keyword elinksColorGreen contained green greenyellow lawngreen
+ \ lightgreen lightseagreen limegreen
+ \ mediumseagreen springgreen yellowgreen
+ \ palegreen lime chartreuse
+syn keyword elinksColorYellow contained yellow beige darkkhaki
+ \ lightgoldenrodyellow palegoldenrod gold
+ \ goldenrod khaki lightyellow
+syn keyword elinksColorBlue contained blue aliceblue aqua aquamarine
+ \ azure dodgerblue lightblue lightskyblue
+ \ lightsteelblue mediumblue
+syn keyword elinksColorMagenta contained magenta darkviolet blueviolet
+ \ lightpink mediumvioletred palevioletred
+ \ violet pink fuchsia
+syn keyword elinksColorCyan contained cyan lightcyan powderblue skyblue
+ \ turquoise paleturquoise
+syn keyword elinksColorWhite contained white antiquewhite floralwhite
+ \ ghostwhite navajowhite whitesmoke linen
+ \ lemonchiffon cornsilk lavender
+ \ lavenderblush seashell mistyrose ivory
+ \ papayawhip bisque gainsboro honeydew
+ \ mintcream moccasin oldlace peachpuff snow
+ \ wheat
+
+hi def link elinksTodo Todo
+hi def link elinksComment Comment
+hi def link elinksNumber Number
+hi def link elinksString String
+hi def link elinksKeyword Keyword
+hi def link elinksPrefix Identifier
+hi def link elinksOptions Identifier
+hi def elinksColorBlack ctermfg=Black guifg=Black
+hi def elinksColorDarkRed ctermfg=DarkRed guifg=DarkRed
+hi def elinksColorDarkGreen ctermfg=DarkGreen guifg=DarkGreen
+hi def elinksColorDarkYellow ctermfg=DarkYellow guifg=DarkYellow
+hi def elinksColorDarkBlue ctermfg=DarkBlue guifg=DarkBlue
+hi def elinksColorDarkMagenta ctermfg=DarkMagenta guifg=DarkMagenta
+hi def elinksColorDarkCyan ctermfg=DarkCyan guifg=DarkCyan
+hi def elinksColorGray ctermfg=Gray guifg=Gray
+hi def elinksColorDarkGray ctermfg=DarkGray guifg=DarkGray
+hi def elinksColorRed ctermfg=Red guifg=Red
+hi def elinksColorGreen ctermfg=Green guifg=Green
+hi def elinksColorYellow ctermfg=Yellow guifg=Yellow
+hi def elinksColorBlue ctermfg=Blue guifg=Blue
+hi def elinksColorMagenta ctermfg=Magenta guifg=Magenta
+hi def elinksColorCyan ctermfg=Cyan guifg=Cyan
+hi def elinksColorWhite ctermfg=White guifg=White
let b:current_syntax = "elinks"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/eterm.vim b/runtime/syntax/eterm.vim
index 9cf38fe14..d24e08a2a 100644
--- a/runtime/syntax/eterm.vim
+++ b/runtime/syntax/eterm.vim
@@ -1,200 +1,428 @@
" Vim syntax file
-" Language: Eterm configuration file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/eterm/
-" Latest Revision: 2004-05-06
-" arch-tag: f4c58caf-2b91-4fc4-96af-e3cad7c70e6b
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: eterm(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:current_syntax")
finish
endif
-" magic number
-syn match etermMagic display "^<Eterm-[0-9.]\+>$"
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword etermTodo contained TODO FIXME XXX NOTE
+
+syn region etermComment matchgroup=etermComment start='^#' end='$'
+ \ contains=etermTodo,@Spell
+
+syn match etermMagic display display '^<Eterm-[0-9.]\+>$'
+
+syn match etermNumber contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
+
+syn region etermString contained display oneline start=+"+
+ \ skip=+\\"+ end=+"+
+
+syn keyword etermBoolean contained on off true false yes no
+
+syn keyword etermPreProc contained appname exec get put random version
+ \ include preproc
+
+syn keyword etermFunctions contained copy exit kill nop paste save
+ \ scroll search spawn
+
+syn cluster etermGeneral contains=etermComment,etermFunction,
+ \ etermPreProc
+
+syn keyword etermKeyMod contained ctrl shift lock mod1 mod2 mod3 mod4
+ \ mod5 alt meta anymod
+syn keyword etermKeyMod contained button1 button2 button3 button4
+ \ button5
+
+syn keyword etermColorOptions contained video nextgroup=etermVideoOptions
+ \ skipwhite
+
+syn keyword etermVideoType contained normal reverse
+
+syn keyword etermColorOptions contained foreground background cursor
+ \ cursor_text pointer
+ \ nextgroup=etermColorType skipwhite
+
+syn keyword etermColorType contained bd ul
+syn match etermColorType contained display '\<\%(\d\|1[0-5]\)'
+
+syn keyword etermColorOptions contained color
+ \ nextgroup=etermColorNumber skipwhite
+
+syn keyword etermColorNumber contained bd ul nextgroup=etermColorSpec
+ \ skipwhite
+syn match etermColorNumber contained display '\<\%(\d\|1[0-5]\)'
+ \ nextgroup=etermColorSpec skipwhite
+
+syn match etermColorSpec contained display '\S\+'
+
+syn region etermColorContext fold transparent matchgroup=etermContext
+ \ start='^\s*begin\s\+color'
+ \ end='^\s*end\>'
+ \ contains=@etermGeneral,etermColorOptions
+
+syn keyword etermAttrOptions contained geometry nextgroup=etermGeometry
+ \ skipwhite
+
+syn match etermGeometry contained display '\d\+x\d++\d\++\d\+'
+
+syn keyword etermAttrOptions contained scrollbar_type
+ \ nextgroup=etermScrollbarType skipwhite
+
+syn keyword etermScrollbarType contained motif xterm next
+
+syn keyword etermAttrOptions contained font nextgroup=etermFontType
+ \ skipwhite
+
+syn keyword etermFontType contained bold nextgroup=etermFont skipwhite
+syn match etermFontType contained display '[0-5]' nextgroup=etermFont
+ \ skipwhite
+
+syn match etermFont contained display '\S\+'
+
+syn keyword etermFontType contained default nextgroup=etermNumber
+ \ skipwhite
+
+syn keyword etermFontType contained proportional nextgroup=etermBoolean
+ \ skipwhite
+
+syn keyword etermFontType contained fx nextgroup=etermString skipwhite
+
+syn keyword etermAttrOptions contained title name iconname
+ \ nextgroup=etermString skipwhite
+
+syn keyword etermAttrOptions contained scrollbar_width desktop
+ \ nextgroup=etermNumber skipwhite
+
+syn region etermAttrContext fold transparent matchgroup=etermContext
+ \ start='^\s*begin\s\+attributes\'
+ \ end='^\s*end\>'
+ \ contains=@etermGeneral,etermAttrOptions
+
+syn keyword etermIClassOptions contained icon path nextgroup=etermString
+ \ skipwhite
+syn keyword etermIClassOptions contained cache nextgroup=etermNumber
+ \ skipwhite
+syn keyword etermIClassOptions contained anim nextgroup=etermNumber
+ \ skipwhite
+
+syn region etermIClassContext fold transparent matchgroup=etermContext
+ \ start='^\s*begin\s\+imageclasses'
+ \ end='^\s*end\>'
+ \ contains=@etermGeneral,etermImageContext,
+ \ etermIClassOptions
-" comments
-syn region etermComment matchgroup=etermComment start="^#" end="$" contains=etermTodo
+syn keyword etermImageOptions contained type nextgroup=etermImageType
+ \ skipwhite
-" todo
-syn keyword etermTodo contained TODO FIXME XXX NOTE
+syn keyword etermImageTypes contained background trough anchor up_arrow
+ \ left_arrow right_arrow menu menuitem
+ \ submenu button buttonbar down_arrow
-" numbers
-syn match etermNumber contained display "\<\(\d\+\|0x\x\{1,2}\)\>"
+syn keyword etermImageOptions contained mode nextgroup=etermImageModes
+ \ skipwhite
-" strings
-syn region etermString contained display oneline start=+"+ skip=+\\"+ end=+"+
+syn keyword etermImageModes contained image trans viewport auto solid
+ \ nextgroup=etermImageModesAllow skipwhite
+syn keyword etermImageModesAllow contained allow nextgroup=etermImageModesR
+ \ skipwhite
+syn keyword etermImageModesR contained image trans viewport auto solid
-" booleans
-syn keyword etermBoolean contained on off true false yes no
+syn keyword etermImageOptions contained state nextgroup=etermImageState
+ \ skipwhite
-" colors (not pretty, but can't figure out better way...)
-syn match etermColor contained display "\s\+#\x\{6}\>"
-syn keyword etermColor contained white black
+syn keyword etermImageState contained normal selected clicked disabled
-" preproc
-syn match etermPreProc contained "%\(appname\|exec\|get\|put\|random\|version\|include\|preproc\)("he=e-1
+syn keyword etermImageOptions contained color nextgroup=etermImageColorFG
+ \ skipwhite
-" functions
-syn match etermFunctions contained "\<\(copy\|exit\|kill\|nop\|paste\|save\|scroll\|search\|spawn\)("
+syn keyword etermImageColorFG contained '\S\+' nextgroup=etermImageColorBG
+ \ skipwhite
-" and make it easy to refer to the above...
-syn cluster etermGeneral contains=etermComment,etermNumber,etermString,etermBoolean,etermColor,etermFunction,etermPreProc
+syn keyword etermImageColorBG contained '\S\+'
-" key modifiers
-syn keyword etermKeyMod contained ctrl shift lock mod1 mod2 mod3 mod4 mod5 alt meta anymod
-syn keyword etermKeyMod contained button1 button2 button3 button4 button5
+syn keyword etermImageOptions contained file nextgroup=etermString
+ \ skipwhite
-" color context
-syn region etermColorOptions contained oneline matchgroup=etermOption start="^\s*video\>" matchgroup=etermType end="\<\(normal\|reverse\)\>"
-syn region etermColorOptions contained oneline matchgroup=etermOption start="^\s*color\>" matchgroup=etermType end="\<\(bd\|ul\|[0-9]\|1[0-5]\)\>"
-syn keyword etermColorOptions contained foreground background cursor cursor_text pointer
+syn keyword etermImageOptions contained geom nextgroup=etermImageGeom
+ \ skipwhite
-syn region etermColorContext fold transparent matchgroup=etermContext start="^\s*begin\s\+color\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermColorOptions
+syn match etermImageGeom contained display
+ \ '\s\+\%(\d\+x\d\++\d\++\d\+\)\=:\%(\%(tie\|scale\|hscale\|vscale\|propscale\)d\=\)\='
-" attributes context
-syn region etermAttrOptions contained oneline matchgroup=etermOption start="^\s*geometry\>" matchgroup=etermType end="\<\d\+x\d\++\d\++\d\+\>"
-syn region etermAttrOptions contained oneline matchgroup=etermOption start="^\s*scrollbar_type\>" matchgroup=etermType end="\<\(motif\|xterm\|next\)\>"
-syn region etermAttrOptions contained oneline matchgroup=etermOption start="^\s*font\>" matchgroup=etermType end="\<\(bold\|default\|proportional\|fx\|[0-5]\)\>"
-syn keyword etermAttrOptions contained title name iconname desktop scrollbar_width
+syn keyword etermImageOptions contained cmod colormod
+ \ nextgroup=etermImageCmod skipwhite
-syn region etermAttrContext fold transparent matchgroup=etermContext start="^\s*begin\s\+attributes\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermAttrOptions
+syn keyword etermImageCmod contained image red green blue
+ \ nextgroup=etermImageBrightness skipwhite
-" image context
-" image types
-syn keyword etermImageTypes contained background trough anchor up_arrow
-syn keyword etermImageTypes contained left_arrow right_arrow menu menuitem
-syn keyword etermImageTypes contained submenu button buttonbar down_arrow
-syn region etermImageOptions contained transparent oneline matchgroup=etermOption start="^\s*type\>" end="$" contains=etermImageTypes
-" image modes
-syn keyword etermImageModes contained image trans viewport auto solid
-syn keyword etermImageModesAllow contained allow
-syn region etermImageOptions contained transparent oneline matchgroup=etermOption start="^\s*mode\>" end="$" contains=etermImageModes,etermImageModesAllow
-" image states
-syn region etermImageOptions contained transparent oneline matchgroup=etermOption start="^\s*state\>" matchgroup=etermType end="\<\(normal\|selected\|clicked\|disabled\)\>"
-" image geometry
-syn region etermImageOptions contained transparent oneline matchgroup=etermOption start="^\s*geom\>" matchgroup=etermType end="\s\+\(\d\+x\d\++\d\++\d\+\)\=:\(\(tile\|scale\|hscale\|vscale\|propscale\)d\=\)\="
-" image color modification
-syn region etermImageOptions contained transparent oneline matchgroup=etermOption start="^\s*\(cmod\|colormod\)\>" matchgroup=etermType end="\<\(image\|red\|green\|blue\)\>"
-" other keywords
-syn keyword etermImageOptions contained file padding border bevel color
+syn match etermImageBrightness contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
+ \ nextgroup=etermImageContrast skipwhite
-syn region etermImageContext contained transparent fold matchgroup=etermContext start="^\s*begin\s\+image\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermImageOptions
+syn match etermImageContrast contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
+ \ nextgroup=etermImageGamma skipwhite
-" imageclasses context
-syn keyword etermIClassOptions contained icon cache path anim
+syn match etermImageGamma contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
+ \ nextgroup=etermImageGamma skipwhite
-syn region etermIClassContext fold transparent matchgroup=etermContext start="^\s*begin\s\+imageclasses\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermImageContext,etermIClassOptions
+syn region etermImageOptions contained matchgroup=etermImageOptions
+ \ start='border\|bevel\%(\s\+\%(up\|down\)\)\|padding'
+ \ end='$' contains=etermNumber
-" menuitem context
-syn region etermMenuItemOptions contained transparent oneline matchgroup=etermOption start="^\s*action\>" matchgroup=etermType end="\<string\|echo\|submenu\|script\|separator\>"
-syn keyword etermMenuItemOptions contained text rtext
+syn region etermImageContext contained fold transparent
+ \ matchgroup=etermContext
+ \ start='^\s*begin\s\+image'
+ \ end='^\s*end\>'
+ \ contains=@etermGeneral,etermImageOptions
-syn region etermMenuItemContext fold transparent matchgroup=etermContext start="^\s*begin\s\+menuitem\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermMenuItemOptions
+syn keyword etermMenuItemOptions contained action
+ \ nextgroup=etermMenuItemAction skipwhite
-" menu context (should contain - as well, but no...)
-syn keyword etermMenuOptions contained title font_name sep
+syn keyword etermMenuItemAction contained string echo submenu script
+ \ nextgroup=etermString skipwhite
-syn region etermMenuContext fold transparent matchgroup=etermContext start="^\s*begin\s\+menu\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermMenuOptions,etermMenuItemContext
+syn keyword etermMenuItemAction contained separator
-" action context
-syn match etermActionDef contained "\<\(to\|string\|echo\|menu\|script\)\>"
-syn region etermActionsOptions contained transparent oneline matchgroup=etermOption start="^\s*bind\>" end="$" contains=etermActionDef,etermKeyMod
+syn keyword etermMenuItemOptions contained text rtext nextgroup=etermString
+ \ skipwhite
-syn region etermActionsContext fold transparent matchgroup=etermContext start="^\s*begin\s\+actions\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermActionsOptions
+syn region etermMenuItemContext contained fold transparent
+ \ matchgroup=etermContext
+ \ start='^\s*begin\s\+menuitem'
+ \ end='^\s*end\>'
+ \ contains=@etermGeneral,etermMenuItemOptions
-" button bar context
-syn match etermButtonDef contained "\<\(action\|string\|echo\|menu\|scrupt\)\>"
-syn region etermButtonOptions contained transparent oneline matchgroup=etermOption start="^\s*button\>" end="$" contains=etermButtonDef
-syn keyword etermButtonOptions contained font visible dock
+syn keyword etermMenuOptions contained title nextgroup=etermString
+ \ skipwhite
-syn region etermButtonContext fold transparent matchgroup=etermContext start="^\s*begin\s\+button_bar\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermButtonOptions
+syn keyword etermMenuOptions contained font_name nextgroup=etermFont
+ \ skipwhite
-" multichar context
-syn keyword etermMultiOptions contained encoding font
+syn match etermMenuOptions contained display '\<sep\>\|-'
-syn region etermMultiContext fold transparent matchgroup=etermContext start="^\s*begin\s\+multichar\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermMultiOptions
+syn region etermMenuContext fold transparent matchgroup=etermContext
+ \ start='^\s*begin\s\+menu'
+ \ end='^\s*end\>'
+ \ contains=@etermGeneral,etermMenuOptions,
+ \ etermMenuItemContext
-" xim context
-syn keyword etermXimOptions contained input_method preedit_type
+syn keyword etermBind contained bind nextgroup=etermBindMods
+ \ skipwhite
-syn region etermXimContext fold transparent matchgroup=etermContext start="^\s*begin\s\+xim\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermXimOptions
+syn keyword etermBindMods contained ctrl shift lock mod1 mod2 mod3 mod4
+ \ mod5 alt meta anymod
+ \ nextgroup=etermBindMods skipwhite
-" toggles context
-syn keyword etermTogOptions contained map_alert visual_bell login_shell scrollbar utmp_logging meta8 iconic no_input
-syn keyword etermTogOptions contained home_on_output home_on_input scrollbar_floating scrollbar_right scrollbar_popup
-syn keyword etermTogOptions contained borderless double_buffer no_cursor pause xterm_select select_line
-syn keyword etermTogOptions contained select_trailing_spaces report_as_keysyms itrans immotile_trans buttonbar
-syn keyword etermTogOptions contained resize_gravity
+syn keyword etermBindTo contained to nextgroup=etermBindType
+ \ skipwhite
-syn region etermTogContext fold transparent matchgroup=etermContext start="^\s*begin\s\+toggles\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermTogOptions
+syn keyword etermBindType contained string echo menu script
+ \ nextgroup=etermBindParam skipwhite
-" keyboard context
-syn keyword etermKeyboardOptions contained smallfont_key bigfont_key keysym meta_mod alt_mod
-syn keyword etermKeyboardOptions contained greek numlock_mod app_keypad app_cursor
+syn match etermBindParam contained display '\S\+'
-syn region etermKeyboardContext fold transparent matchgroup=etermContext start="^\s*begin\s\+keyboard\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermKeyboardOptions
+syn region etermActionsContext fold transparent matchgroup=etermContext
+ \ start='^\s*begin\s\+actions'
+ \ end='^\s*end\>'
+ \ contains=@etermGeneral,etermActionsOptions
-" misc context
-syn keyword etermMiscOptions contained print_pipe save_lines cut_chars min_anchor_size
-syn keyword etermMiscOptions contained border_width line_space finished_title term_name
-syn keyword etermMiscOptions contained finished_text exec
+syn keyword etermButtonOptions contained font nextgroup=etermFont skipwhite
+syn keyword etermButtonOptions contained visible nextgroup=etermBoolean
+ \ skipwhite
+syn keyword etermButtonOptions contained dock nextgroup=etermDockOption
+ \ skipwhite
-syn region etermMiscContext fold transparent matchgroup=etermContext start="^\s*begin\s\+misc\s*$" end="^\s*end\>\(\s\+.\{-0,}\)\=$" contains=@etermGeneral,etermMiscOptions
+syn keyword etermDockOption contained top bottom no
+
+syn keyword etermButton contained button nextgroup=etermButtonText
+ \ skipwhite
+
+syn region etermButtonText contained display oneline start=+"+
+ \ skip=+\\"+ end=+"+
+ \ nextgroup=etermButtonIcon skipwhite
+
+syn keyword etermButtonIcon contained icon nextgroup=etermButtonIconFile
+ \ skipwhite
+
+syn keyword etermButtonIconFile contained '\S\+' nextgroup=etermButtonAction
+ \ skipwhite
+
+syn keyword etermButtonAction contained action nextgroup=etermBindType
+ \ skipwhite
+
+syn region etermButtonContext fold transparent matchgroup=etermContext
+ \ start='^\s*begin\s\+button_bar'
+ \ end='^\s*end\>'
+ \ contains=@etermGeneral,etermButtonOptions
+
+syn keyword etermMultiOptions contained encoding nextgroup=etermEncoding
+ \ skipwhite
+
+syn keyword etermEncoding eucj sjis euckr big5 gb
+syn match etermEncoding display 'iso-10646'
+
+syn keyword etermMultiOptions contained font nextgroup=etermFontType
+ \ skipwhite
+
+syn region etermMultiContext fold transparent matchgroup=etermContext
+ \ start='^\s*begin\s\+multichar'
+ \ end="^\s*end\>'
+ \ contains=@etermGeneral,etermMultiOptions
+
+syn keyword etermXimOptions contained input_method
+ \ nextgroup=etermInputMethod skipwhite
+
+syn match etermInputMethod contained display '\S+'
+
+syn keyword etermXimOptions contained preedit_type
+ \ nextgroup=etermPreeditType skipwhite
+
+syn keyword etermPreeditType contained OverTheSpot OffTheSpot Root
+
+syn region etermXimContext fold transparent matchgroup=etermContext
+ \ start='^\s*begin\s\+xim'
+ \ end="^\s*end\>'
+ \ contains=@etermGeneral,etermXimOptions
+
+syn keyword etermTogOptions contained map_alert visual_bell login_shell
+ \ scrollbar utmp_logging meta8 iconic
+ \ no_input home_on_output home_on_input
+ \ scrollbar_floating scrollbar_right
+ \ scrollbar_popup borderless double_buffer
+ \ no_cursor pause xterm_select select_line
+ \ select_trailing_spaces report_as_keysyms
+ \ itrans immotile_trans buttonbar
+ \ resize_gravity nextgroup=etermBoolean
+ \ skipwhite
+
+syn region etermTogContext fold transparent matchgroup=etermContext
+ \ start='^\s*begin\s\+toggles'
+ \ end='^\s*end\>'
+ \ contains=@etermGeneral,etermTogOptions
+
+syn keyword etermKeyboardOptions contained smallfont_key bigfont_key keysym
+ \ nextgroup=etermKeysym skipwhite
+
+syn keyword etermKeysym contained '\S\+' nextgroup=etermString
+ \ skipwhite
+
+syn keyword etermKeyboardOptions contained meta_mod alt_mod numlock_mod
+ \ nextgroup=etermNumber skipwhite
+
+syn keyword etermKeyboardOptions contained greek app_keypad app_cursor
+ \ nextgroup=etermBoolean skipwhite
+
+syn region etermKeyboardContext fold transparent matchgroup=etermContext
+ \ start='^\s*begin\s\+keyboard'
+ \ end='^\s*end\>'
+ \ contains=@etermGeneral,etermKeyboardOptions
+
+syn keyword etermMiscOptions contained print_pipe cut_chars finished_title
+ \ finished_text term_name exec
+ \ nextgroup=etermString skipwhite
+
+syn keyword etermMiscOptions contained save_lines min_anchor_size
+ \ border_width line_space
+
+syn region etermMiscContext fold transparent matchgroup=etermContext
+ \ start='^\s*begin\s\+misc'
+ \ end='^\s*end\>'
+ \ contains=@etermGeneral,etermMiscOptions
+
+syn keyword etermEScreenOptions contained url nextgroup=etermURL skipwhite
+
+syn match etermURL contained display
+ \ '\<\%(screen\|twin\)://\%([^@:/]\+\%(@[^:/]\+\%(:[^/]\+\)\=\)\=\)\=/\S\+'
+
+syn keyword etermEScreenOptions contained firewall
+
+syn keyword etermEScreenOptions contained delay nextgroup=etermNumber
+ \ skipwhite
+
+syn keyword etermEScreenOptions contained bbar_font nextgroup=etermFont
+ \ skipwhite
+
+syn keyword etermEScreenOptions contained bbar_dock nextgroup=etermDockOption
+ \ skipwhite
+
+syn region etermEScreenContext fold transparent matchgroup=etermContext
+ \ start='^\s*begin\s\+escreen'
+ \ end='^\s*end\>'
+ \ contains=@etermGeneral,etermEScreenOptions
if exists("eterm_minlines")
let b:eterm_minlines = eterm_minlines
else
- let b:eterm_minlines = 30
+ let b:eterm_minlines = 50
endif
exec "syn sync minlines=" . b:eterm_minlines
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_eterm_syn_inits")
- if version < 508
- let did_eterm_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink etermMagic Special
- HiLink etermComment Comment
- HiLink etermTodo Todo
- HiLink etermNumber Number
- HiLink etermString String
- HiLink etermBoolean Boolean
- HiLink etermColor Number
- HiLink etermPreProc PreProc
- HiLink etermFunctions Function
- HiLink etermKeyMod Special
- HiLink etermContext Keyword
- HiLink etermOption Keyword
- HiLink etermType Type
- HiLink etermColorOptions Keyword
- HiLink etermAttrOptions Keyword
- HiLink etermIClassOptions Keyword
- HiLink etermImageTypes Type
- HiLink etermImageModes Type
- HiLink etermImageModesAllow Keyword
- HiLink etermImageOptions Keyword
- HiLink etermMenuOptions Keyword
- HiLink etermMenuItemOptions Keyword
- HiLink etermActionDef Type
- HiLink etermActionsOptions Keyword
- HiLink etermButtonDef Type
- HiLink etermButtonOptions Keyword
- HiLink etermMultiOptions Keyword
- HiLink etermXimOptions Keyword
- HiLink etermTogOptions Keyword
- HiLink etermKeyboardOptions Keyword
- HiLink etermMiscOptions Keyword
- delcommand HiLink
-endif
+hi def link etermTodo Todo
+hi def link etermComment Comment
+hi def link etermMagic PreProc
+hi def link etermNumber Number
+hi def link etermString String
+hi def link etermBoolean Boolean
+hi def link etermPreProc PreProc
+hi def link etermFunctions Function
+hi def link etermKeyMod Constant
+hi def link etermOption Keyword
+hi def link etermColorOptions etermOption
+hi def link etermColor String
+hi def link etermVideoType Type
+hi def link etermColorType Type
+hi def link etermColorNumber Number
+hi def link etermColorSpec etermColor
+hi def link etermContext Keyword
+hi def link etermAttrOptions etermOption
+hi def link etermGeometry String
+hi def link etermScrollbarType Type
+hi def link etermFontType Type
+hi def link etermIClassOptions etermOption
+hi def link etermImageOptions etermOption
+hi def link etermImageTypes Type
+hi def link etermImageModes Type
+hi def link etermImageModesAllow Keyword
+hi def link etermImageModesR Type
+hi def link etermImageState Keyword
+hi def link etermImageColorFG etermColor
+hi def link etermImageColorBG etermColor
+hi def link etermImageGeom String
+hi def link etermImageCmod etermOption
+hi def link etermImageBrightness Number
+hi def link etermImageContrast Number
+hi def link etermImageGamma Number
+hi def link etermMenuItemOptions etermOption
+hi def link etermMenuItemAction Keyword
+hi def link etermMenuOptions etermOption
+hi def link etermBind Keyword
+hi def link etermBindMods Identifier
+hi def link etermBindTo Keyword
+hi def link etermBindType Type
+hi def link etermBindParam String
+hi def link etermButtonOptions etermOption
+hi def link etermDockOption etermOption
+hi def link etermButtonText String
+hi def link etermButtonIcon String
+hi def link etermButtonIconFile String
+hi def link etermButtonAction Keyword
+hi def link etermMultiOptions etermOption
+hi def link etermEncoding Identifier
+hi def link etermXimOptions etermOption
+hi def link etermInputMethod Identifier
+hi def link etermPreeditType Type
+hi def link etermTogOptions etermOption
+hi def link etermKeyboardOptions etermOption
+hi def link etermKeysym Constant
+hi def link etermMiscOptions etermOption
+hi def link etermEScreenOptions etermOption
+hi def link etermURL Identifier
let b:current_syntax = "eterm"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/fetchmail.vim b/runtime/syntax/fetchmail.vim
index c586ee7c5..198a3143c 100644
--- a/runtime/syntax/fetchmail.vim
+++ b/runtime/syntax/fetchmail.vim
@@ -1,88 +1,74 @@
" Vim syntax file
-" Language: fetchmail(1) RC File
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/fetchmail/
-" Latest Revision: 2004-05-06
-" arch-tag: 59d8adac-6e59-45f6-88cb-f9ba1e009c1f
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: fetchmail(1) RC File
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-27
+
+if exists("b:current_syntax")
finish
endif
-" todo
-syn keyword fetchmailTodo contained FIXME TODO XXX NOTE
-
-" comments
-syn region fetchmailComment start="#" end="$" contains=fetchmailTodo
-
-" numbers
-syn match fetchmailNumber "\<\d\+\>"
-
-" strings
-syn region fetchmailString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=fetchmailStringEsc
-syn region fetchmailString start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=fetchmailStringEsc
-
-" escape characters in strings
-syn match fetchmailStringEsc "\\\([ntb]\|0\d*\|x\x\+\)"
-
-" server entries
-syn region fetchmailKeyword transparent matchgroup=fetchmailKeyword start="\<poll\|skip\|defaults\>" end="\<poll\|skip\|defaults\>" contains=ALLBUT,fetchmailOptions,fetchmailSet
-
-" server options
-syn keyword fetchmailServerOpts contained via proto[col] local[domains] port auth[enticate]
-syn keyword fetchmailServerOpts contained timeout envelope qvirtual aka interface monitor
-syn keyword fetchmailServerOpts contained plugin plugout dns checkalias uidl interval netsec
-syn keyword fetchmailServerOpts contained principal esmtpname esmtppassword
-syn match fetchmailServerOpts contained "\<no\_s\+\(envelope\|dns\|checkalias\|uidl\)"
-
-" user options
-syn keyword fetchmailUserOpts contained user[name] is to pass[word] ssl sslcert sslkey sslproto folder
-syn keyword fetchmailUserOpts contained smtphost fetchdomains smtpaddress smtpname antispam mda bsmtp
-syn keyword fetchmailUserOpts contained preconnect postconnect keep flush fetchall rewrite stripcr
-syn keyword fetchmailUserOpts contained forcecr pass8bits dropstatus dropdelivered mimedecode idle
-syn keyword fetchmailUserOpts contained limit warnings batchlimit fetchlimit expunge tracepolls properties
-syn match fetchmailUserOpts contained "\<no\_s\+\(keep\|flush\|fetchall\|rewrite\|stripcr\|forcecr\|pass8bits\|dropstatus\|dropdelivered\|mimedecode\|noidle\)"
-
-syn keyword fetchmailSpecial contained here there
-
-
-" noise keywords
-syn keyword fetchmailNoise and with has wants options
-syn match fetchmailNoise "[:;,]"
-
-" options
-syn keyword fetchmailSet nextgroup=fetchmailOptions skipwhite skipnl set
-
-syn keyword fetchmailOptions daemon postmaster bouncemail spambounce logfile idfile syslog nosyslog properties
-syn match fetchmailOptions "\<no\_s\+\(bouncemail\|spambounce\)"
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_fetchmail_syn_inits")
- if version < 508
- let did_fetchmail_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink fetchmailComment Comment
- HiLink fetchmailTodo Todo
- HiLink fetchmailNumber Number
- HiLink fetchmailString String
- HiLink fetchmailStringEsc SpecialChar
- HiLink fetchmailKeyword Keyword
- HiLink fetchmailServerOpts Identifier
- HiLink fetchmailUserOpts Identifier
- HiLink fetchmailSpecial Special
- HiLink fetchmailSet Keyword
- HiLink fetchmailOptions Identifier
- delcommand HiLink
-endif
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword fetchmailTodo contained FIXME TODO XXX NOTE
+
+syn region fetchmailComment start='#' end='$' contains=fetchmailTodo,@Spell
+
+syn match fetchmailNumber display '\<\d\+\>'
+
+syn region fetchmailString start=+"+ skip=+\\\\\|\\"+ end=+"+
+ \ contains=fetchmailStringEsc
+syn region fetchmailString start=+'+ skip=+\\\\\|\\'+ end=+'+
+ \ contains=fetchmailStringEsc
+
+syn match fetchmailStringEsc contained '\\\([ntb]\|0\d*\|x\x\+\)'
+
+syn region fetchmailKeyword transparent matchgroup=fetchmailKeyword
+ \ start='\<poll\|skip\|defaults\>'
+ \ end='\<poll\|skip\|defaults\>'
+ \ contains=ALLBUT,fetchmailOptions,fetchmailSet
+
+syn keyword fetchmailServerOpts contained via proto[col] local[domains] port
+ \ auth[enticate] timeout envelope qvirtual aka
+ \ interface monitor plugin plugout dns
+ \ checkalias uidl interval netsec principal
+ \ esmtpname esmtppassword
+syn match fetchmailServerOpts contained '\<no\_s\+\(envelope\|dns\|checkalias\|uidl\)'
+
+syn keyword fetchmailUserOpts contained user[name] is to pass[word] ssl
+ \ sslcert sslkey sslproto folder smtphost
+ \ fetchdomains smtpaddress smtpname antispam
+ \ mda bsmtp preconnect postconnect keep flush
+ \ fetchall rewrite stripcr forcecr pass8bits
+ \ dropstatus dropdelivered mimedecode idle
+ \ limit warnings batchlimit fetchlimit expunge
+ \ tracepolls properties
+syn match fetchmailUserOpts contained '\<no\_s\+\(keep\|flush\|fetchall\|rewrite\|stripcr\|forcecr\|pass8bits\|dropstatus\|dropdelivered\|mimedecode\|noidle\)'
+
+syn keyword fetchmailSpecial contained here there
+
+syn keyword fetchmailNoise and with has wants options
+syn match fetchmailNoise display '[:;,]'
+
+syn keyword fetchmailSet nextgroup=fetchmailOptions skipwhite skipnl set
+
+syn keyword fetchmailOptions daemon postmaster bouncemail spambounce logfile
+ \ idfile syslog nosyslog properties
+syn match fetchmailOptions '\<no\_s\+\(bouncemail\|spambounce\)'
+
+hi def link fetchmailComment Comment
+hi def link fetchmailTodo Todo
+hi def link fetchmailNumber Number
+hi def link fetchmailString String
+hi def link fetchmailStringEsc SpecialChar
+hi def link fetchmailKeyword Keyword
+hi def link fetchmailServerOpts Identifier
+hi def link fetchmailUserOpts Identifier
+hi def link fetchmailSpecial Special
+hi def link fetchmailSet Keyword
+hi def link fetchmailOptions Identifier
let b:current_syntax = "fetchmail"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/gpg.vim b/runtime/syntax/gpg.vim
index 23401969a..b84c30213 100644
--- a/runtime/syntax/gpg.vim
+++ b/runtime/syntax/gpg.vim
@@ -1,72 +1,105 @@
" Vim syntax file
-" Language: GnuPG Configuration File.
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/gpg/
-" Latest Revision: 2004-05-06
-" arch-tag: 602305f7-d8ae-48ef-a68f-4d54f12af70a
+" Language: gpg(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
-" Set iskeyword since we need `-' (and potentially others) in keywords.
-" For version 5.x: Set it globally
-" For version 6.x: Set it locally
-if version >= 600
- command -nargs=1 SetIsk setlocal iskeyword=<args>
-else
- command -nargs=1 SetIsk set iskeyword=<args>
-endif
-SetIsk 48-57,65-90,97-122,-
-delcommand SetIsk
+let s:cpo_save = &cpo
+set cpo&vim
-" comments
-syn region gpgComment contained display oneline start="#" end="$" contains=gpgTodo,gpgID
+setlocal iskeyword=@,48-57,-
-" todo
-syn keyword gpgTodo contained FIXME TODO XXX NOTE
+syn keyword gpgTodo contained FIXME TODO XXX NOTE
-" ids
-syn match gpgID contained display "\<\(0x\)\=\x\{8,}\>"
+syn region gpgComment contained display oneline start='#' end='$'
+ \ contains=gpgTodo,gpgID,@Spell
-syn match gpgBegin "^" skipwhite nextgroup=gpgComment,gpgOption,gpgCommand
+syn match gpgID contained display '\<\(0x\)\=\x\{8,}\>'
-" commands that take args
-syn keyword gpgCommand contained skipwhite nextgroup=gpgArg check-sigs decrypt decrypt-files delete-key delete-secret-and-public-key delete-secret-key edit-key encrypt-files export export-all export-ownertrust export-secret-keys export-secret-subkeys fast-import fingerprint gen-prime gen-random import import-ownertrust list-keys list-public-keys list-secret-keys list-sigs lsign-key nrsign-key print-md print-mds recv-keys search-keys send-keys sign-key verify verify-files
-" commands that take no args
-syn keyword gpgCommand contained skipwhite nextgroup=gpgArgError check-trustdb clearsign desig-revoke detach-sign encrypt gen-key gen-revoke help list-packets rebuild-keydb-caches sign store symmetric update-trustdb version warranty
+syn match gpgBegin display '^' skipwhite nextgroup=gpgComment,gpgOption,gpgCommand
-" options that take args
-syn keyword gpgOption contained skipwhite nextgroup=gpgArg attribute-fd cert-digest-algo charset cipher-algo command-fd comment completes-needed compress compress-algo debug default-cert-check-level default-key default-preference-list default-recipient digest-algo disable-cipher-algo disable-pubkey-algo encrypt-to exec-path export-options group homedir import-options keyring keyserver keyserver-options load-extension local-user logger-fd marginals-needed max-cert-depth notation-data options output override-session-key passphrase-fd personal-cipher-preferences personal-compress-preferences personal-digest-preferences photo-viewer recipient s2k-cipher-algo s2k-digest-algo s2k-mode secret-keyring set-filename set-policy-url status-fd trusted-key
-" options that take no args
-syn keyword gpgOption contained skipwhite nextgroup=gpgArgError allow-freeform-uid allow-non-selfsigned-uid allow-secret-key-import always-trust armor ask-cert-expire ask-sig-expire auto-check-trustdb batch debug-all default-comment default-recipient-self dry-run emit-version emulate-md-encode-bug enable-special-filenames escape-from-lines expert fast-list-mode fixed-list-mode for-your-eyes-only force-mdc force-v3-sigs force-v4-certs gpg-agent-info ignore-crc-error ignore-mdc-error ignore-time-conflict ignore-valid-from interactive list-only lock-multiple lock-never lock-once merge-only no no-allow-non-selfsigned-uid no-armor no-ask-cert-expire no-ask-sig-expire no-auto-check-trustdb no-batch no-comment no-default-keyring no-default-recipient no-encrypt-to no-expensive-trust-checks no-expert no-for-your-eyes-only no-force-v3-sigs no-force-v4-certs no-greeting no-literal no-mdc-warning no-options no-permission-warning no-pgp2 no-pgp6 no-pgp7 no-random-seed-file no-secmem-warning no-show-notation no-show-photos no-show-policy-url no-sig-cache no-sig-create-check no-sk-comments no-tty no-utf8-strings no-verbose no-version not-dash-escaped openpgp pgp2 pgp6 pgp7 preserve-permissions quiet rfc1991 set-filesize show-keyring show-notation show-photos show-policy-url show-session-key simple-sk-checksum sk-comments skip-verify textmode throw-keyid try-all-secrets use-agent use-embedded-filename utf8-strings verbose with-colons with-fingerprint with-key-data yes
+syn keyword gpgCommand contained skipwhite nextgroup=gpgArg
+ \ check-sigs decrypt decrypt-files delete-key
+ \ delete-secret-and-public-key delete-secret-key
+ \ edit-key encrypt-files export export-all
+ \ export-ownertrust export-secret-keys
+ \ export-secret-subkeys fast-import fingerprint
+ \ gen-prime gen-random import import-ownertrust
+ \ list-keys list-public-keys list-secret-keys
+ \ list-sigs lsign-key nrsign-key print-md print-mds
+ \ recv-keys search-keys send-keys sign-key verify
+ \ verify-files
+syn keyword gpgCommand contained skipwhite nextgroup=gpgArgError
+ \ check-trustdb clearsign desig-revoke detach-sign
+ \ encrypt gen-key gen-revoke help list-packets
+ \ rebuild-keydb-caches sign store symmetric
+ \ update-trustdb version warranty
-" arguments to commands and options
-syn match gpgArg contained display "\S\+\(\s\+\S\+\)*" contains=gpgID
-syn match gpgArgError contained display "\S\+\(\s\+\S\+\)*"
+syn keyword gpgOption contained skipwhite nextgroup=gpgArg
+ \ attribute-fd cert-digest-algo charset cipher-algo
+ \ command-fd comment completes-needed compress
+ \ compress-algo debug default-cert-check-level
+ \ default-key default-preference-list
+ \ default-recipient digest-algo disable-cipher-algo
+ \ disable-pubkey-algo encrypt-to exec-path
+ \ export-options group homedir import-options
+ \ keyring keyserver keyserver-options load-extension
+ \ local-user logger-fd marginals-needed max-cert-depth
+ \ notation-data options output override-session-key
+ \ passphrase-fd personal-cipher-preferences
+ \ personal-compress-preferences
+ \ personal-digest-preferences photo-viewer
+ \ recipient s2k-cipher-algo s2k-digest-algo s2k-mode
+ \ secret-keyring set-filename set-policy-url status-fd
+ \ trusted-key
+syn keyword gpgOption contained skipwhite nextgroup=gpgArgError
+ \ allow-freeform-uid allow-non-selfsigned-uid
+ \ allow-secret-key-import always-trust
+ \ armor ask-cert-expire ask-sig-expire
+ \ auto-check-trustdb batch debug-all default-comment
+ \ default-recipient-self dry-run emit-version
+ \ emulate-md-encode-bug enable-special-filenames
+ \ escape-from-lines expert fast-list-mode
+ \ fixed-list-mode for-your-eyes-only
+ \ force-mdc force-v3-sigs force-v4-certs
+ \ gpg-agent-info ignore-crc-error ignore-mdc-error
+ \ ignore-time-conflict ignore-valid-from interactive
+ \ list-only lock-multiple lock-never lock-once
+ \ merge-only no no-allow-non-selfsigned-uid
+ \ no-armor no-ask-cert-expire no-ask-sig-expire
+ \ no-auto-check-trustdb no-batch no-comment
+ \ no-default-keyring no-default-recipient
+ \ no-encrypt-to no-expensive-trust-checks
+ \ no-expert no-for-your-eyes-only no-force-v3-sigs
+ \ no-force-v4-certs no-greeting no-literal
+ \ no-mdc-warning no-options no-permission-warning
+ \ no-pgp2 no-pgp6 no-pgp7 no-random-seed-file
+ \ no-secmem-warning no-show-notation no-show-photos
+ \ no-show-policy-url no-sig-cache no-sig-create-check
+ \ no-sk-comments no-tty no-utf8-strings no-verbose
+ \ no-version not-dash-escaped openpgp pgp2
+ \ pgp6 pgp7 preserve-permissions quiet rfc1991
+ \ set-filesize show-keyring show-notation show-photos
+ \ show-policy-url show-session-key simple-sk-checksum
+ \ sk-comments skip-verify textmode throw-keyid
+ \ try-all-secrets use-agent use-embedded-filename
+ \ utf8-strings verbose with-colons with-fingerprint
+ \ with-key-data yes
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_gpg_syn_inits")
- if version < 508
- let did_gpg_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+syn match gpgArg contained display '\S\+\(\s\+\S\+\)*' contains=gpgID
+syn match gpgArgError contained display '\S\+\(\s\+\S\+\)*'
- HiLink gpgComment Comment
- HiLink gpgTodo Todo
- HiLink gpgID Number
- HiLink gpgOption Keyword
- HiLink gpgCommand Error
- HiLink gpgArgError Error
- delcommand HiLink
-endif
+hi def link gpgComment Comment
+hi def link gpgTodo Todo
+hi def link gpgID Number
+hi def link gpgOption Keyword
+hi def link gpgCommand Error
+hi def link gpgArgError Error
let b:current_syntax = "gpg"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/grub.vim b/runtime/syntax/grub.vim
index e87a8d93e..2e04d87bf 100644
--- a/runtime/syntax/grub.vim
+++ b/runtime/syntax/grub.vim
@@ -1,77 +1,93 @@
" Vim syntax file
-" Language: GRUB Configuration File
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/grub/
-" Latest Revision: 2004-05-06
-" arch-tag: 7a56ddd0-e551-44bc-b8c0-235fedbdf3c0
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: grub(8) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:current_syntax")
finish
endif
-" comments
-syn region grubComment display oneline start="^#" end="$" contains=grubTodo
-
-" todo
-syn keyword grubTodo contained TODO FIXME XXX NOTE
-
-" devices
-syn match grubDevice display "(\([fh]d\d\|\d\+\|0x\x\+\)\(,\d\+\)\=\(,\l\)\=)"
-
-" block lists
-syn match grubBlock display "\(\d\+\)\=+\d\+\(,\(\d\+\)\=+\d\+\)*"
-
-" numbers
-syn match grubNumbers display "+\=\<\d\+\|0x\x\+\>"
-
-syn match grubBegin display "^" nextgroup=grubCommand,grubComment skipwhite
-
-" menu commands
-syn keyword grubCommand contained default fallback hiddenmenu timeout title
-
-" general commands
-syn keyword grubCommand contained bootp color device dhcp hide ifconfig pager
-syn keyword grubCommand contained partnew parttype password rarp serial setkey
-syn keyword grubCommand contained terminal tftpserver unhide blocklist boot cat
-syn keyword grubCommand contained chainloader cmp configfile debug displayapm
-syn keyword grubCommand contained displaymem embed find fstest geometry halt help
-syn keyword grubCommand contained impsprobe initrd install ioprobe kernel lock
-syn keyword grubCommand contained makeactive map md5crypt module modulenounzip pause
-syn keyword grubCommand contained quit reboot read root rootnoverify savedefault
-syn keyword grubCommand contained setup testload testvbe uppermem vbeprobe
-
-" colors
-syn match grubColor "\(blink-\)\=\(black\|blue\|green\|cyan\|red\|magenta\|brown\|yellow\|white\)"
-syn match grubColor "\<\(blink-\)\=light-\(gray\|blue\|green\|cyan\|red\|magenta\)"
-syn match grubColor "\<\(blink-\)\=dark-gray"
-
-" specials
-syn keyword grubSpecial saved
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_grub_syn_inits")
- if version < 508
- let did_grub_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink grubComment Comment
- HiLink grubTodo Todo
- HiLink grubNumbers Number
- HiLink grubDevice Identifier
- HiLink grubBlock Identifier
- HiLink grubCommand Keyword
- HiLink grubColor Identifier
- HiLink grubSpecial Special
- delcommand HiLink
-endif
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword grubTodo contained TODO FIXME XXX NOTE
+
+syn region grubComment display oneline start='^#' end='$'
+ \ contains=grubTodo,@Spell
+
+syn match grubDevice display
+ \ '(\([fh]d\d\|\d\+\|0x\x\+\)\(,\d\+\)\=\(,\l\)\=)'
+
+syn match grubBlock display '\(\d\+\)\=+\d\+\(,\(\d\+\)\=+\d\+\)*'
+
+syn match grubNumbers display '+\=\<\d\+\|0x\x\+\>'
+
+syn match grubBegin display '^'
+ \ nextgroup=@grubCommands,grubComment skipwhite
+
+syn cluster grubCommands contains=grubCommand,grubTitleCommand
+
+syn keyword grubCommand contained default fallback hiddenmenu timeout
+
+syn keyword grubTitleCommand contained title nextgroup=grubTitle skipwhite
+
+syn match grubTitle contained display '.*'
+
+syn keyword grubCommand contained bootp color device dhcp hide ifconfig
+ \ pager partnew parttype password rarp serial setkey
+ \ terminal tftpserver unhide blocklist boot cat
+ \ chainloader cmp configfile debug displayapm
+ \ displaymem embed find fstest geometry halt help
+ \ impsprobe initrd install ioprobe kernel lock
+ \ makeactive map md5crypt module modulenounzip pause
+ \ quit reboot read root rootnoverify savedefault setup
+ \ testload testvbe uppermem vbeprobe
+
+syn keyword grubSpecial saved
+
+syn match grubBlink display 'blink-'
+syn keyword grubBlack black
+syn keyword grubBlue blue
+syn keyword grubGreen green
+syn keyword grubRed red
+syn keyword grubMagenta magenta
+syn keyword grubBrown brown yellow
+syn keyword grubWhite white
+syn match grubLightGray display 'light-gray'
+syn match grubLightBlue display 'light-blue'
+syn match grubLightGreen display 'light-green'
+syn match grubLightCyan display 'light-cyan'
+syn match grubLightRed display 'light-red'
+syn match grubLightMagenta display 'light-magenta'
+syn match grubDarkGray display 'dark-gray'
+
+hi def link grubComment Comment
+hi def link grubTodo Todo
+hi def link grubNumbers Number
+hi def link grubDevice Identifier
+hi def link grubBlock Identifier
+hi def link grubCommand Keyword
+hi def link grubTitleCommand grubCommand
+hi def link grubTitle String
+hi def link grubSpecial Special
+
+hi def grubBlink cterm=inverse
+hi def grubBlack ctermfg=Black ctermbg=White guifg=Black guibg=White
+hi def grubBlue ctermfg=DarkBlue guifg=DarkBlue
+hi def grubGreen ctermfg=DarkGreen guifg=DarkGreen
+hi def grubRed ctermfg=DarkRed guifg=DarkRed
+hi def grubMagenta ctermfg=DarkMagenta guifg=DarkMagenta
+hi def grubBrown ctermfg=Brown guifg=Brown
+hi def grubWhite ctermfg=White ctermbg=Black guifg=White guibg=Black
+hi def grubLightGray ctermfg=LightGray guifg=LightGray
+hi def grubLightBlue ctermfg=LightBlue guifg=LightBlue
+hi def grubLightGreen ctermfg=LightGreen guifg=LightGreen
+hi def grubLightCyan ctermfg=LightCyan guifg=LightCyan
+hi def grubLightRed ctermfg=LightRed guifg=LightRed
+hi def grubLightMagenta ctermfg=LightMagenta guifg=LightMagenta
+hi def grubDarkGray ctermfg=DarkGray guifg=DarkGray
let b:current_syntax = "grub"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/indent.vim b/runtime/syntax/indent.vim
index b9f3c7e7c..8d822ea47 100644
--- a/runtime/syntax/indent.vim
+++ b/runtime/syntax/indent.vim
@@ -1,101 +1,178 @@
" Vim syntax file
-" Language: indent RC File
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/indent/
-" Latest Revision: 2004-05-22
-" arch-tag: 23c11190-79fa-4493-9fc5-36435402a20d
+" Language: indent(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+" indent_is_bsd: If exists, will change somewhat to match BSD implementation
+"
" TODO: is the deny-all (a la lilo.vim nice or no?)...
-" irritating to be wrong to the last char...
-" would be sweet if right until one char fails
+" irritating to be wrong to the last char...
+" would be sweet if right until one char fails
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
-" Set iskeyword since we need `-' (and potentially others) in keywords.
-" For version 5.x: Set it globally
-" For version 6.x: Set it locally
-if version >= 600
- command -nargs=1 SetIsk setlocal iskeyword=<args>
-else
- command -nargs=1 SetIsk set iskeyword=<args>
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal iskeyword=@,48-57,-,_
+
+syn match indentError '\S\+'
+
+syn keyword indentTodo contained TODO FIXME XXX NOTE
+
+syn region indentComment matchgroup=indentComment
+ \ start='/\*' end='\*/'
+ \ contains=indentTodo,@Spell
+syn region indentComment matchgroup=indentComment
+ \ start='//' skip='\\$' end='$'
+ \ contains=indentTodo,@Spell
+
+syn keyword indentOptions -bacc --blank-lines-after-ifdefs
+ \ -bad --blank-lines-after-declarations
+ \ -badp --blank-lines-after-procedure-declarations
+ \ -bap --blank-lines-after-procedures
+ \ -bbb --blank-lines-before-block-comments
+ \ -bbo --break-before-boolean-operator
+ \ -bc --blank-lines-after-commas
+ \ -bfda --break-function-decl-args
+ \ -bfde --break-function-decl-args-end
+ \ -bl --braces-after-if-line
+ \ -blf --braces-after-func-def-line
+ \ -bls --braces-after-struct-decl-line
+ \ -br --braces-on-if-line
+ \ -brf --braces-on-func-def-line
+ \ -brs --braces-on-struct-decl-line
+ \ -bs --Bill-Shannon
+ \ -bs --blank-before-sizeof
+ \ -c++ --c-plus-plus
+ \ -cdb --comment-delimiters-on-blank-lines
+ \ -cdw --cuddle-do-while
+ \ -ce --cuddle-else
+ \ -cs --space-after-cast
+ \ -dj --left-justify-declarations
+ \ -eei --extra-expression-indentation
+ \ -fc1 --format-first-column-comments
+ \ -fca --format-all-comments
+ \ -gnu --gnu-style
+ \ -h --help
+ \ -h --usage
+ \ -hnl --honour-newlines
+ \ -kr --k-and-r-style
+ \ -kr --kernighan-and-ritchie
+ \ -kr --kernighan-and-ritchie-style
+ \ -lp --continue-at-parentheses
+ \ -lps --leave-preprocessor-space
+ \ -nbacc --no-blank-lines-after-ifdefs
+ \ -nbad --no-blank-lines-after-declarations
+ \ -nbadp --no-blank-lines-after-procedure-declarations
+ \ -nbap --no-blank-lines-after-procedures
+ \ -nbbb --no-blank-lines-before-block-comments
+ \ -nbbo --break-after-boolean-operator
+ \ -nbc --no-blank-lines-after-commas
+ \ -nbfda --dont-break-function-decl-args
+ \ -nbfde --dont-break-function-decl-args-end
+ \ -nbs --no-Bill-Shannon
+ \ -nbs --no-blank-before-sizeof
+ \ -ncdb --no-comment-delimiters-on-blank-lines
+ \ -ncdw --dont-cuddle-do-while
+ \ -nce --dont-cuddle-else
+ \ -ncs --no-space-after-casts
+ \ -ndj --dont-left-justify-declarations
+ \ -neei --no-extra-expression-indentation
+ \ -nfc1 --dont-format-first-column-comments
+ \ -nfca --dont-format-comments
+ \ -nhnl --ignore-newlines
+ \ -nip --dont-indent-parameters
+ \ -nip --no-parameter-indentation
+ \ -nlp --dont-line-up-parentheses
+ \ -nlps --remove-preprocessor-space
+ \ -npcs --no-space-after-function-call-names
+ \ -npro --ignore-profile
+ \ -nprs --no-space-after-parentheses
+ \ -npsl --dont-break-procedure-type
+ \ -nsaf --no-space-after-for
+ \ -nsai --no-space-after-if
+ \ -nsaw --no-space-after-while
+ \ -nsc --dont-star-comments
+ \ -nsob --leave-optional-blank-lines
+ \ -nss --dont-space-special-semicolon
+ \ -nut --no-tabs
+ \ -nv --no-verbosity
+ \ -o --output
+ \ -o --output-file
+ \ -orig --berkeley
+ \ -orig --berkeley-style
+ \ -orig --original
+ \ -orig --original-style
+ \ -pcs --space-after-procedure-calls
+ \ -pmt --preserve-mtime
+ \ -prs --space-after-parentheses
+ \ -psl --procnames-start-lines
+ \ -saf --space-after-for
+ \ -sai --space-after-if
+ \ -saw --space-after-while
+ \ -sc --start-left-side-of-comments
+ \ -sob --swallow-optional-blank-lines
+ \ -ss --space-special-semicolon
+ \ -st --standard-output
+ \ -ut --use-tabs
+ \ -v --verbose
+ \ -version --version
+
+syn keyword indentOptions -bli --brace-indent
+ \ -c --comment-indentation
+ \ -bli --brace-indent
+ \ -c --comment-indentation
+ \ -cbi --case-brace-indentation
+ \ -cd --declaration-comment-column
+ \ -ci --continuation-indentation
+ \ -cli --case-indentation
+ \ -cp --else-endif-column
+ \ -d --line-comments-indentation
+ \ -di --declaration-indentation
+ \ -i --indent-level
+ \ -ip --parameter-indentation
+ \ -l --line-length
+ \ -lc --comment-line-length
+ \ -pi --paren-indentation
+ \ -ppi --preprocessor-indentation
+ \ -sbi --struct-brace-indentation
+ \ -ts --tab-size
+ \ nextgroup=indenNumber skipwhite
+if !exists("indent_is_bsd")
+ syn keyword indentOptions -i --indentation-level
+ \ nextgroup=indentNumber skipwhite
endif
-SetIsk 48-57,65-90,97-122,-,_
-delcommand SetIsk
-
-" errors
-syn match indentError "\S\+"
-
-" todo
-syn keyword indentTodo contained TODO FIXME XXX NOTE
-
-" comments
-syn region indentComment matchgroup=indentComment start="/\*" end="\*/" contains=indentTodo
-
-" keywords (command-line switches)
-syn match indentOptions "\<--\(no-\)\=blank-\(before-sizeof\|Bill-Shannon\|lines-\(after-\(commas\|declarations\|procedures\)\|before-block-comments\)\)\>"
-syn match indentOptions "\<--brace-indent\s*\d\+\>"
-syn match indentOptions "\<--braces-\(after\|on\)-\(if\|struct-decl\)-line\>"
-syn match indentOptions "\<--break-\(\(after\|before\)-boolean-operator\|function-decl-args\)\>"
-syn match indentOptions "\<--\(case\(-brace\)\=\|comment\|continuation\|declaration\|line-comments\|parameter\|paren\|struct-brace\)-indentation\s*\d\+\>"
-syn match indentOptions "\<--\(no-\)\=comment-delimiters-on-blank-lines\>"
-syn match indentOptions "\<--\(dont-\)\=cuddle-\(do-while\|else\)\>"
-syn match indentOptions "\<--\(declaration-comment\|else-endif\)-column\s*\d\+\>"
-syn match indentOptions "\<--dont-break-\(function-decl-args\|procedure-type\)\>"
-syn match indentOptions "\<--\(dont-\)\=\(format\(-first-column\)\=\|star\)-comments\>"
-syn match indentOptions "\<--\(honour\|ignore\)-newlines\>"
-syn match indentOptions "\<--\(indent-level\|\(comment-\)\=line-length\)\s*\d\+\>"
-syn match indentOptions "\<--\(leave\|remove\)-preprocessor-space\>"
-"not 100%, since casts\= should always be cast if no- isn't given
-syn match indentOptions "\<--\(no-\)\=space-after-\(parentheses\|casts\=\|for\|if\|while\)\>"
-syn match indentOptions "\<--\(dont-\)\=space-special-semicolon\>"
-syn match indentOptions "\<--\(leave\|swallow\)-optional-blank-lines\>"
-syn match indentOptions "\<--tab-size\s*\d\+\>"
-syn match indentOptions "\<--\(no\|use\)-tabs\>"
-syn keyword indentOptions --gnu-style --ignore-profile --k-and-r-style --original
-syn keyword indentOptions --preserve-mtime --no-verbosity --verbose --output-file
-syn keyword indentOptions --no-parameter-indentation --procnames-start-lines
-syn keyword indentOptions --standard-output --start-left-side-of-comments
-syn keyword indentOptions --space-after-procedure-calls
-" this also here since the gnu indent fellas aren't consistent. (ever read
-" the code to `indent'? you'll know what i mean if you have)
-syn match indentOptions "\<-\(bli\|cbi\|cd\|ci\|cli\|c\|cp\|di\|d\|i\|ip\|l\|lc\|pi\|sbi\|ts\)\s*\d\+\>"
-syn match indentOptions "\<-T\s\+\w\+\>"
-syn keyword indentOptions --format-all-comments --continue-at-parentheses --dont-line-up-parentheses
-syn keyword indentOptions --no-space-after-function-call-names
-syn keyword indentOptions -bad -bap -bbb -bbo -bc -bfda -bl -br -bs -nbs -cdb -cdw -ce -cs -dce -fc1 -fca
-syn keyword indentOptions -gnu -hnl -kr -lp -lps -nbad -nbap -nbbb -nbbo -nbc -nbfda -ncdb -ncdw -nprs
-syn keyword indentOptions -nce -ncs -nfc1 -nfca -nhnl -nip -nlp -nlps -npcs -npmt -npro -npsl -nsaf -nsai
-syn keyword indentOptions -nsaw -nsc -nsob -nss -nv -o -orig -pcs -pmt -prs -psl -saf -sai -saw -sc
-syn keyword indentOptions -sob -ss -st -v -version -bls -brs -ut -nut
-
-if exists("indent_minlines")
- let b:indent_minlines = indent_minlines
-else
- let b:indent_minlines = 50
+
+syn match indentNumber display '\<\d\+\>'
+
+syn keyword indentOptions -T nextgroup=indentIdent skipwhite
+
+syn match indentIdent display '\<\h\w*\>'
+
+if exists("indent_is_bsd")
+ syn keyword indentOptions -ip -nip -dj -ndj -ei -nei
endif
-exec "syn sync minlines=" . b:indent_minlines
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_indent_syn_inits")
- if version < 508
- let did_indent_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
+
+if exists("c_minlines")
+ let b:c_minlines = c_minlines
+else
+ if !exists("c_no_if0")
+ let b:c_minlines = 50 " #if 0 constructs can be long
else
- command -nargs=+ HiLink hi def link <args>
+ let b:c_minlines = 15 " mostly for () constructs
endif
-
- HiLink indentError Error
- HiLink indentComment Comment
- HiLink indentTodo Todo
- HiLink indentOptions Keyword
- delcommand HiLink
endif
+hi def link indentError Error
+hi def link indentComment Comment
+hi def link indentTodo Todo
+hi def link indentOptions Keyword
+hi def link indentNumber Number
+hi def link indentIdent Identifier
+
let b:current_syntax = "indent"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/ld.vim b/runtime/syntax/ld.vim
index c1a00d9c4..2b39bea7d 100644
--- a/runtime/syntax/ld.vim
+++ b/runtime/syntax/ld.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: ld(1) script
" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision: 2005-06-28
+" Latest Revision: 2005-06-29
if exists("b:current_syntax")
finish
@@ -16,7 +16,7 @@ syn region ldComment start='/\*' end='\*/' contains=ldTodo,@Spell
syn region ldFileName start=+"+ end=+"+
-syn keyword ldPreProc SECTIONS MEMORY OVERLAY PHDRS VERSION
+syn keyword ldPreProc SECTIONS MEMORY OVERLAY PHDRS VERSION INCLUDE
syn match ldPreProc '\<VERS_\d\+\.\d\+'
syn keyword ldFunction ABSOLUTE ADDR ALIGN BLOCK DATA_SEGMENT_ALIGN
@@ -24,7 +24,7 @@ syn keyword ldFunction ABSOLUTE ADDR ALIGN BLOCK DATA_SEGMENT_ALIGN
\ LOADADDR MAX MIN NEXT SIZEOF SIZEOF_HEADERS
\ sizeof_headers
-syn keyword ldKeyword ENTRY INCLUDE INPUT GROUP OUTPUT
+syn keyword ldKeyword ENTRY INPUT GROUP OUTPUT
\ SEARCH_DIR STARTUP OUTPUT_FORMAT TARGET
\ ASSERT EXTERN FORCE_COMMON_ALLOCATION
\ INHIBIT_COMMON_ALLOCATION NOCROSSREFS OUTPUT_ARCH
diff --git a/runtime/syntax/lftp.vim b/runtime/syntax/lftp.vim
index fc1958ed3..0aab71eb2 100644
--- a/runtime/syntax/lftp.vim
+++ b/runtime/syntax/lftp.vim
@@ -1,184 +1,152 @@
" Vim syntax file
-" Language: lftp(1) configuration file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/lftp/
-" Latest Revision: 2004-05-22
-" arch-tag: f2537c49-5d64-42b8-beb4-13a09dd723d2
+" Language: lftp(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-27
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
-" Set iskeyword since we need `-' (and potentially others) in keywords.
-" For version 5.x: Set it globally
-" For version 6.x: Set it locally
-if version >= 600
- command -nargs=1 SetIsk setlocal iskeyword=<args>
-else
- command -nargs=1 SetIsk set iskeyword=<args>
-endif
-SetIsk 48-57,97-122,-
-delcommand SetIsk
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal iskeyword=@,48-57,-
-" comments
-syn region lftpComment display oneline matchgroup=lftpComment start="#" end="$" contains=lftpTodo
+syn region lftpComment display oneline matchgroup=lftpComment
+ \ start='#' end='$' contains=lftpTodo,@Spell
-" todo
-syn keyword lftpTodo contained TODO FIXME XXX NOTE
+syn keyword lftpTodo contained TODO FIXME XXX NOTE
-" strings
-syn region lftpString contained display start=+"+ skip=+\\$\|\\"+ end=+"+ end=+$+
+syn region lftpString contained display
+ \ start=+"+ skip=+\\$\|\\"+ end=+"+ end=+$+
-" numbers
-syn match lftpNumber contained display "\<\d\+\(\.\d\+\)\=\>"
+syn match lftpNumber contained display '\<\d\+\(\.\d\+\)\=\>'
-" booleans and other things
-syn keyword lftpBoolean contained yes no on off true false
+syn keyword lftpBoolean contained yes no on off true false
-" intervals
-syn keyword lftpInterval contained infinity inf never forever
-syn match lftpInterval contained "\<\(\d\+\(\.\d\+\)\=[dhms]\)\+\>"
+syn keyword lftpInterval contained infinity inf never forever
+syn match lftpInterval contained '\<\(\d\+\(\.\d\+\)\=[dhms]\)\+\>'
-" commands
-syn keyword lftpKeywords alias anon at bookmark cache cat cd chmod close
-syn keyword lftpKeywords cls command debug du echo exit fg find get get1
-syn keyword lftpKeywords glob help history jobs kill lcd lftp lpwd ls
-syn keyword lftpKeywords mget mirror mkdir module
-syn keyword lftpKeywords more mput mrm mv nlist open pget put pwd queue
-syn keyword lftpKeywords quote reget recls rels renlist repeat
-syn keyword lftpKeywords reput rm rmdir scache site source suspend user
-syn keyword lftpKeywords version wait zcat zmore
+syn keyword lftpKeywords alias anon at bookmark cache cat cd chmod close
+ \ cls command debug du echo exit fg find get
+ \ get1 glob help history jobs kill lcd lftp
+ \ lpwd ls mget mirror mkdir module more mput
+ \ mrm mv nlist open pget put pwd queue quote
+ \ reget recls rels renlist repeat reput rm
+ \ rmdir scache site source suspend user version
+ \ wait zcat zmore
-" settings
-syn region lftpSet matchgroup=lftpKeywords start="set" end=";" end="$" contains=lftpString,lftpNumber,lftpBoolean,lftpInterval,lftpSettingsPrefix,lftpSettings
-syn match lftpSettingsPrefix contained '\<\%(bmk\|cache\|cmd\|color\|dns\):'
-syn match lftpSettingsPrefix contained '\<\%(file\|fish\|ftp\|hftp\):'
-syn match lftpSettingsPrefix contained '\<\%(http\|https\|mirror\|module\):'
-syn match lftpSettingsPrefix contained '\<\%(net\|sftp\|ssl\|xfer\):'
+syn region lftpSet matchgroup=lftpKeywords
+ \ start="set" end=";" end="$"
+ \ contains=lftpString,lftpNumber,lftpBoolean,
+ \ lftpInterval,lftpSettingsPrefix,lftpSettings
+syn match lftpSettingsPrefix contained '\<\%(bmk\|cache\|cmd\|color\|dns\):'
+syn match lftpSettingsPrefix contained '\<\%(file\|fish\|ftp\|hftp\):'
+syn match lftpSettingsPrefix contained '\<\%(http\|https\|mirror\|module\):'
+syn match lftpSettingsPrefix contained '\<\%(net\|sftp\|ssl\|xfer\):'
" bmk:
-syn keyword lftpSettings contained save-p[asswords]
+syn keyword lftpSettings contained save-p[asswords]
" cache:
-syn keyword lftpSettings contained cache-em[pty-listings] en[able]
-syn keyword lftpSettings contained exp[ire] siz[e]
+syn keyword lftpSettings contained cache-em[pty-listings] en[able]
+ \ exp[ire] siz[e]
" cmd:
-syn keyword lftpSettings contained at[-exit] cls-c[ompletion-default]
-syn keyword lftpSettings contained cls-d[efault] cs[h-history]
-syn keyword lftpSettings contained default-p[rotocol] default-t[itle]
-syn keyword lftpSettings contained fai[l-exit] in[teractive]
-syn keyword lftpSettings contained lo[ng-running] ls[-default]
-syn keyword lftpSettings contained mo[ve-background] prom[pt]
-syn keyword lftpSettings contained rem[ote-completion]
-syn keyword lftpSettings contained save-c[wd-history] save-r[l-history]
-syn keyword lftpSettings contained set-t[erm-status] statu[s-interval]
-syn keyword lftpSettings contained te[rm-status] verb[ose] verify-h[ost]
-syn keyword lftpSettings contained verify-path verify-path[-cached]
+syn keyword lftpSettings contained at[-exit] cls-c[ompletion-default]
+ \ cls-d[efault] cs[h-history]
+ \ default-p[rotocol] default-t[itle]
+syn keyword lftpSettings contained fai[l-exit] in[teractive]
+ \ lo[ng-running] ls[-default] mo[ve-background]
+ \ prom[pt]
+ \ rem[ote-completion]
+ \ save-c[wd-history] save-r[l-history]
+ \ set-t[erm-status] statu[s-interval]
+ \ te[rm-status] verb[ose] verify-h[ost]
+ \ verify-path verify-path[-cached]
" color:
-syn keyword lftpSettings contained dir[-colors] use-c[olor]
+syn keyword lftpSettings contained dir[-colors] use-c[olor]
" dns:
-syn keyword lftpSettings contained S[RV-query] cache-en[able]
-syn keyword lftpSettings contained cache-ex[pire] cache-s[ize]
-syn keyword lftpSettings contained fat[al-timeout] o[rder] use-fo[rk]
+syn keyword lftpSettings contained S[RV-query] cache-en[able]
+ \ cache-ex[pire] cache-s[ize]
+ \ fat[al-timeout] o[rder] use-fo[rk]
" file:
-syn keyword lftpSettings contained ch[arset]
+syn keyword lftpSettings contained ch[arset]
" fish:
-syn keyword lftpSettings contained connect[-program] sh[ell]
+syn keyword lftpSettings contained connect[-program] sh[ell]
" ftp:
-syn keyword lftpSettings contained acct anon-p[ass] anon-u[ser]
-syn keyword lftpSettings contained au[to-sync-mode] b[ind-data-socket]
-syn keyword lftpSettings contained ch[arset] cli[ent] dev[ice-prefix]
-syn keyword lftpSettings contained fi[x-pasv-address] fxp-f[orce]
-syn keyword lftpSettings contained fxp-p[assive-source] h[ome] la[ng]
-syn keyword lftpSettings contained list-e[mpty-ok] list-o[ptions]
-syn keyword lftpSettings contained nop[-interval] pas[sive-mode]
-syn keyword lftpSettings contained port-i[pv4] port-r[ange] prox[y]
-syn keyword lftpSettings contained rest-l[ist] rest-s[tor]
-syn keyword lftpSettings contained retry-530 retry-530[-anonymous]
-syn keyword lftpSettings contained sit[e-group] skey-a[llow]
-syn keyword lftpSettings contained skey-f[orce] ssl-allow
-syn keyword lftpSettings contained ssl-allow[-anonymous] ssl-au[th]
-syn keyword lftpSettings contained ssl-f[orce] ssl-protect-d[ata]
-syn keyword lftpSettings contained ssl-protect-l[ist] stat-[interval]
-syn keyword lftpSettings contained sy[nc-mode] timez[one] use-a[bor]
-syn keyword lftpSettings contained use-fe[at] use-fx[p] use-hf[tp]
-syn keyword lftpSettings contained use-mdtm use-mdtm[-overloaded]
-syn keyword lftpSettings contained use-ml[sd] use-p[ret] use-q[uit]
-syn keyword lftpSettings contained use-site-c[hmod] use-site-i[dle]
-syn keyword lftpSettings contained use-site-u[time] use-siz[e]
-syn keyword lftpSettings contained use-st[at] use-te[lnet-iac]
-syn keyword lftpSettings contained verify-a[ddress] verify-p[ort]
-syn keyword lftpSettings contained w[eb-mode]
+syn keyword lftpSettings contained acct anon-p[ass] anon-u[ser]
+ \ au[to-sync-mode] b[ind-data-socket]
+ \ ch[arset] cli[ent] dev[ice-prefix]
+ \ fi[x-pasv-address] fxp-f[orce]
+ \ fxp-p[assive-source] h[ome] la[ng]
+ \ list-e[mpty-ok] list-o[ptions]
+ \ nop[-interval] pas[sive-mode]
+ \ port-i[pv4] port-r[ange] prox[y]
+ \ rest-l[ist] rest-s[tor]
+ \ retry-530 retry-530[-anonymous]
+ \ sit[e-group] skey-a[llow]
+ \ skey-f[orce] ssl-allow
+ \ ssl-allow[-anonymous] ssl-au[th]
+ \ ssl-f[orce] ssl-protect-d[ata]
+ \ ssl-protect-l[ist] stat-[interval]
+ \ sy[nc-mode] timez[one] use-a[bor]
+ \ use-fe[at] use-fx[p] use-hf[tp]
+ \ use-mdtm use-mdtm[-overloaded]
+ \ use-ml[sd] use-p[ret] use-q[uit]
+ \ use-site-c[hmod] use-site-i[dle]
+ \ use-site-u[time] use-siz[e]
+ \ use-st[at] use-te[lnet-iac]
+ \ verify-a[ddress] verify-p[ort]
+ \ w[eb-mode]
" hftp:
-syn keyword lftpSettings contained w[eb-mode] cache prox[y]
-syn keyword lftpSettings contained use-au[thorization] use-he[ad]
-syn keyword lftpSettings contained use-ty[pe]
+syn keyword lftpSettings contained w[eb-mode] cache prox[y]
+ \ use-au[thorization] use-he[ad] use-ty[pe]
" http:
-syn keyword lftpSettings contained accept accept-c[harset]
-syn keyword lftpSettings contained accept-l[anguage] cache coo[kie]
-syn keyword lftpSettings contained pos[t-content-type] prox[y]
-syn keyword lftpSettings contained put-c[ontent-type] put-m[ethod]
-syn keyword lftpSettings contained ref[erer] set-c[ookies] user[-agent]
+syn keyword lftpSettings contained accept accept-c[harset]
+ \ accept-l[anguage] cache coo[kie]
+ \ pos[t-content-type] prox[y]
+ \ put-c[ontent-type] put-m[ethod] ref[erer]
+ \ set-c[ookies] user[-agent]
" https:
-syn keyword lftpSettings contained prox[y]
+syn keyword lftpSettings contained prox[y]
" mirror:
-syn keyword lftpSettings contained exc[lude-regex] o[rder]
-syn keyword lftpSettings contained parallel-d[irectories]
-syn keyword lftpSettings contained parallel-t[ransfer-count]
-syn keyword lftpSettings contained use-p[get-n]
+syn keyword lftpSettings contained exc[lude-regex] o[rder]
+ \ parallel-d[irectories]
+ \ parallel-t[ransfer-count] use-p[get-n]
" module:
-syn keyword lftpSettings contained pat[h]
+syn keyword lftpSettings contained pat[h]
" net:
-syn keyword lftpSettings contained connection-l[imit]
-syn keyword lftpSettings contained connection-t[akeover]
-syn keyword lftpSettings contained id[le] limit-m[ax] limit-r[ate]
-syn keyword lftpSettings contained limit-total-m[ax] limit-total-r[ate]
-syn keyword lftpSettings contained max-ret[ries] no-[proxy]
-syn keyword lftpSettings contained pe[rsist-retries]
-syn keyword lftpSettings contained reconnect-interval-b[ase]
-syn keyword lftpSettings contained reconnect-interval-ma[x]
-syn keyword lftpSettings contained reconnect-interval-mu[ltiplier]
-syn keyword lftpSettings contained socket-bind-ipv4 socket-bind-ipv6
-syn keyword lftpSettings contained socket-bu[ffer] socket-m[axseg]
-syn keyword lftpSettings contained timeo[ut]
+syn keyword lftpSettings contained connection-l[imit]
+ \ connection-t[akeover] id[le] limit-m[ax]
+ \ limit-r[ate] limit-total-m[ax]
+ \ limit-total-r[ate] max-ret[ries] no-[proxy]
+ \ pe[rsist-retries] reconnect-interval-b[ase]
+ \ reconnect-interval-ma[x]
+ \ reconnect-interval-mu[ltiplier]
+ \ socket-bind-ipv4 socket-bind-ipv6
+ \ socket-bu[ffer] socket-m[axseg] timeo[ut]
" sftp:
-syn keyword lftpSettings contained connect[-program]
-syn keyword lftpSettings contained max-p[ackets-in-flight]
-syn keyword lftpSettings contained prot[ocol-version] ser[ver-program]
-syn keyword lftpSettings contained size-r[ead] size-w[rite]
+syn keyword lftpSettings contained connect[-program]
+ \ max-p[ackets-in-flight] prot[ocol-version]
+ \ ser[ver-program] size-r[ead] size-w[rite]
" ssl:
-syn keyword lftpSettings contained ca-f[ile] ca-p[ath] ce[rt-file]
-syn keyword lftpSettings contained crl-f[ile] crl-p[ath] k[ey-file]
-syn keyword lftpSettings contained verify-c[ertificate]
+syn keyword lftpSettings contained ca-f[ile] ca-p[ath] ce[rt-file]
+ \ crl-f[ile] crl-p[ath] k[ey-file]
+ \ verify-c[ertificate]
" xfer:
-syn keyword lftpSettings contained clo[bber] dis[k-full-fatal]
-syn keyword lftpSettings contained eta-p[eriod] eta-t[erse]
-syn keyword lftpSettings contained mak[e-backup] max-red[irections]
-syn keyword lftpSettings contained ra[te-period]
+syn keyword lftpSettings contained clo[bber] dis[k-full-fatal]
+ \ eta-p[eriod] eta-t[erse] mak[e-backup]
+ \ max-red[irections] ra[te-period]
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_lftp_syn_inits")
- if version < 508
- let did_lftp_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink lftpComment Comment
- HiLink lftpTodo Todo
- HiLink lftpString String
- HiLink lftpNumber Number
- HiLink lftpBoolean Boolean
- HiLink lftpInterval Number
- HiLink lftpKeywords Keyword
- HiLink lftpSettingsPrefix PreProc
- HiLink lftpSettings Type
- delcommand HiLink
-endif
+hi def link lftpComment Comment
+hi def link lftpTodo Todo
+hi def link lftpString String
+hi def link lftpNumber Number
+hi def link lftpBoolean Boolean
+hi def link lftpInterval Number
+hi def link lftpKeywords Keyword
+hi def link lftpSettingsPrefix PreProc
+hi def link lftpSettings Type
let b:current_syntax = "lftp"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/libao.vim b/runtime/syntax/libao.vim
index f675150e0..f4ce623a0 100644
--- a/runtime/syntax/libao.vim
+++ b/runtime/syntax/libao.vim
@@ -1,46 +1,27 @@
" Vim syntax file
-" Language: libao configuration file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/libao/
-" Latest Revision: 2004-05-22
-" arch-tag: 4ddef0a8-6817-4555-a5a1-0be82094053d
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: libao.conf(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:current_syntax")
finish
endif
-" Todo
-syn keyword libaoTodo contained TODO FIXME XXX NOTE
-
-" Comments
-syn region libaoComment matchgroup=libaoComment start='^\s*#' end='$' contains=libaoTodo
-
-" Keywords
-syn keyword libaoKeyword default_driver
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_libao_syn_inits")
- if version < 508
- let did_libao_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- command -nargs=+ HiDef hi <args>
- else
- command -nargs=+ HiLink hi def link <args>
- command -nargs=+ HiDef hi def <args>
- endif
-
- HiLink libaoTodo Todo
- HiLink libaoComment Comment
- HiLink libaoKeyword Keyword
-
- delcommand HiLink
- delcommand HiDef
-endif
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword libaoTodo contained TODO FIXME XXX NOTE
+
+syn region libaoComment matchgroup=libaoComment start='^\s*#' end='$'
+ \ contains=libaoTodo,@Spell
+
+syn keyword libaoKeyword default_driver
+
+hi def link libaoTodo Todo
+hi def link libaoComment Comment
+hi def link libaoKeyword Keyword
let b:current_syntax = "libao"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/limits.vim b/runtime/syntax/limits.vim
new file mode 100644
index 000000000..f6dfd8a73
--- /dev/null
+++ b/runtime/syntax/limits.vim
@@ -0,0 +1,44 @@
+" Vim syntax file
+" Language: limits(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword limitsTodo contained TODO FIXME XXX NOTE
+
+syn region limitsComment display oneline start='^\s*#' end='$'
+ \ contains=limitsTodo,@Spell
+
+syn match limitsBegin display '^'
+ \ nextgroup=limitsUser,limitsDefault,limitsComment
+ \ skipwhite
+
+syn match limitsUser contained '[^ \t#*]\+'
+ \ nextgroup=limitsLimit,limitsDeLimit skipwhite
+
+syn match limitsDefault contained '*'
+ \ nextgroup=limitsLimit,limitsDeLimit skipwhite
+
+syn match limitsLimit contained '[ACDFMNRSTUKLP]' nextgroup=limitsNumber
+syn match limitsDeLimit contained '-'
+
+syn match limitsNumber contained '\d\+\>' nextgroup=limitsLimit skipwhite
+
+hi def link limitsTodo Todo
+hi def link limitsComment Comment
+hi def link limitsUser Keyword
+hi def link limitsDefault Macro
+hi def link limitsLimit Identifier
+hi def link limitsDeLimit Special
+hi def link limitsNumber Number
+
+let b:current_syntax = "limits"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/loginaccess.vim b/runtime/syntax/loginaccess.vim
new file mode 100644
index 000000000..84a059d62
--- /dev/null
+++ b/runtime/syntax/loginaccess.vim
@@ -0,0 +1,96 @@
+" Vim syntax file
+" Language: login.access(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword loginaccessTodo contained TODO FIXME XXX NOTE
+
+syn region loginaccessComment display oneline start='^#' end='$'
+ \ contains=loginaccessTodo,@Spell
+
+syn match loginaccessBegin display '^'
+ \ nextgroup=loginaccessPermission,
+ \ loginaccessComment skipwhite
+
+syn match loginaccessPermission contained display '[^#]'
+ \ contains=loginaccessPermError
+ \ nextgroup=loginaccessUserSep
+
+syn match loginaccessPermError contained display '[^+-]'
+
+syn match loginaccessUserSep contained display ':'
+ \ nextgroup=loginaccessUsers,
+ \ loginaccessAllUsers,
+ \ loginaccessExceptUsers
+
+syn match loginaccessUsers contained display '[^, \t:]\+'
+ \ nextgroup=loginaccessUserIntSep,
+ \ loginaccessOriginSep
+
+syn match loginaccessAllUsers contained display '\<ALL\>'
+ \ nextgroup=loginaccessUserIntSep,
+ \ loginaccessOriginSep
+
+syn match loginaccessLocalUsers contained display '\<LOCAL\>'
+ \ nextgroup=loginaccessUserIntSep,
+ \ loginaccessOriginSep
+
+syn match loginaccessExceptUsers contained display '\<EXCEPT\>'
+ \ nextgroup=loginaccessUserIntSep,
+ \ loginaccessOriginSep
+
+syn match loginaccessUserIntSep contained display '[, \t]'
+ \ nextgroup=loginaccessUsers,
+ \ loginaccessAllUsers,
+ \ loginaccessExceptUsers
+
+syn match loginaccessOriginSep contained display ':'
+ \ nextgroup=loginaccessOrigins,
+ \ loginaccessAllOrigins,
+ \ loginaccessExceptOrigins
+
+syn match loginaccessOrigins contained display '[^, \t]\+'
+ \ nextgroup=loginaccessOriginIntSep
+
+syn match loginaccessAllOrigins contained display '\<ALL\>'
+ \ nextgroup=loginaccessOriginIntSep
+
+syn match loginaccessLocalOrigins contained display '\<LOCAL\>'
+ \ nextgroup=loginaccessOriginIntSep
+
+syn match loginaccessExceptOrigins contained display '\<EXCEPT\>'
+ \ nextgroup=loginaccessOriginIntSep
+
+syn match loginaccessOriginIntSep contained display '[, \t]'
+ \ nextgroup=loginaccessOrigins,
+ \ loginaccessAllOrigins,
+ \ loginaccessExceptOrigins
+
+hi def link loginaccessTodo Todo
+hi def link loginaccessComment Comment
+hi def link loginaccessPermission Type
+hi def link loginaccessPermError Error
+hi def link loginaccessUserSep Delimiter
+hi def link loginaccessUsers Identifier
+hi def link loginaccessAllUsers Macro
+hi def link loginaccessLocalUsers Macro
+hi def link loginaccessExceptUsers Operator
+hi def link loginaccessUserIntSep loginaccessUserSep
+hi def link loginaccessOriginSep loginaccessUserSep
+hi def link loginaccessOrigins Identifier
+hi def link loginaccessAllOrigins Macro
+hi def link loginaccessLocalOrigins Macro
+hi def link loginaccessExceptOrigins loginaccessExceptUsers
+hi def link loginaccessOriginIntSep loginaccessUserSep
+
+let b:current_syntax = "loginaccess"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/logindefs.vim b/runtime/syntax/logindefs.vim
new file mode 100644
index 000000000..2bbc6da96
--- /dev/null
+++ b/runtime/syntax/logindefs.vim
@@ -0,0 +1,94 @@
+" Vim syntax file
+" Language: login.defs(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword logindefsTodo contained TODO FIXME XXX NOTE
+
+syn region logindefsComment display oneline start='^\s*#' end='$'
+ \ contains=logindefsTodo,@Spell
+
+syn match logindefsString contained '[[:graph:]]\+'
+
+syn match logindefsPath contained '[[:graph:]]\+'
+
+syn match logindefsPaths contained '[[:graph:]]\+'
+ \ nextgroup=logindefsPathDelim
+
+syn match logindefsPathDelim contained ':' nextgroup=logindefsPaths
+
+syn keyword logindefsBoolean contained yes no
+
+syn match logindefsDecimal contained '\<\d\+\>'
+
+syn match logindefsOctal contained display '\<0\o\+\>'
+ \ contains=logindefsOctalZero
+syn match logindefsOctalZero contained display '\<0'
+syn match logindefsOctalError contained display '\<0\o*[89]\d*\>'
+
+syn match logindefsHex contained display '\<0x\x\+\>'
+
+syn cluster logindefsNumber contains=logindefsDecimal,logindefsOctal,
+ \ logindefsOctalError,logindefsHex
+
+syn match logindefsBegin display '^'
+ \ nextgroup=logindefsKeyword,logindefsComment
+ \ skipwhite
+
+syn keyword logindefsKeyword contained CHFN_AUTH CLOSE_SESSIONS CREATE_HOME
+ \ DEFAULT_HOME FAILLOG_ENAB LASTLOG_ENAB
+ \ LOG_OK_LOGINS LOG_UNKFAIL_ENAB MAIL_CHECK_ENAB
+ \ MD5_CRYPT_ENAB OBSCURE_CHECKS_ENAB
+ \ PASS_ALWAYS_WARN PORTTIME_CHECKS_ENAB
+ \ QUOTAS_ENAB SU_WHEEL_ONLY SYSLOG_SG_ENAB
+ \ SYSLOG_SU_ENAB USERGROUPS_ENAB
+ \ nextgroup=logindefsBoolean skipwhite
+
+syn keyword logindefsKeyword contained CHFN_RESTRICT CONSOLE CONSOLE_GROUPS
+ \ ENV_TZ ENV_HZ FAKE_SHELL SU_NAME LOGIN_STRING
+ \ NOLOGIN_STR TTYGROUP USERDEL_CMD
+ \ nextgroup=logindefsString skipwhite
+
+syn keyword logindefsKeyword contained ENVIRON_FILE FTMP_FILE HUSHLOGIN_FILE
+ \ ISSUE_FILE MAIL_DIR MAIL_FILE NOLOGINS_FILE
+ \ NOLOGINS_FILE TTYTYPE_FILE QMAIL_DIR
+ \ SULOG_FILE
+ \ nextgroup=logindefsPath skipwhite
+
+syn keyword logindefsKeyword contained CRACKLIB_DICTPATH ENV_PATH
+ \ ENV_ROOTPATH ENV_SUPATH MOTD_FILE
+ \ nextgroup=logindefsPaths skipwhite
+
+syn keyword logindefsKeyword contained ERASECHAR FAIL_DELAY GETPASS_ASTERISKS
+ \ GID_MAX GID_MIN KILLCHAR LOGIN_RETRIES
+ \ LOGIN_TIMEOUT PASS_CHANGE_TRIES PASS_MAX_DAYS
+ \ PASS_MAX_LEN PASS_MIN_DAYS PASS_MIN_LEN
+ \ PASS_WARN_AGE TTYPERM UID_MAX UID_MIN ULIMIT
+ \ UMASK
+ \ nextgroup=@logindefsNumber skipwhite
+
+hi def link logindefsTodo Todo
+hi def link logindefsComment Comment
+hi def link logindefsString String
+hi def link logindefsPath String
+hi def link logindefsPaths logindefsPath
+hi def link logindefsPathDelim Delimiter
+hi def link logindefsBoolean Boolean
+hi def link logindefsDecimal Number
+hi def link logindefsOctal Number
+hi def link logindefsOctalZero PreProc
+hi def link logindefsOctalError Error
+hi def link logindefsHex Number
+hi def link logindefsKeyword Keyword
+
+let b:current_syntax = "logindefs"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/modconf.vim b/runtime/syntax/modconf.vim
index 569e13449..82cb98054 100644
--- a/runtime/syntax/modconf.vim
+++ b/runtime/syntax/modconf.vim
@@ -1,66 +1,44 @@
" Vim syntax file
-" Language: Linux modutils modules.conf File
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/modconf/
-" Latest Revision: 2004-05-22
-" arch-tag: b7981bdb-daa3-41d1-94b5-a3d60b627916
+" Language: modules.conf(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
-" comments
-syn region modconfComment start="#" skip="\\$" end="$" contains=modconfTodo
+setlocal iskeyword=@,48-57,-
-" todo
-syn keyword modconfTodo FIXME TODO XXX NOTE
+let s:cpo_save = &cpo
+set cpo&vim
-" keywords and similar
-syn match modconfBegin "^" skipwhite nextgroup=modconfCommand,modconfComment
+syn keyword modconfTodo FIXME TODO XXX NOTE
-syn match modconfCommand "\(add\s\+\)\=(above\|below\|probe\|probeall\}"
-syn region modconfCommand transparent matchgroup=modconfCommand start="\(add\s\+\)\=options" skip="\\$" end="$" contains=modconfModOpt
-syn keyword modconfCommand define remove keep install insmod_opt else endif
-syn keyword modconfCommand nextgroup=modconfPath skipwhite alias depfile generic_stringfile pcimapfile include isapnpmapfile usbmapfile parportmapfile ieee1394mapfile pnpbiosmapfile persistdir prune
-syn match modconfCommand "path\(\[\w\+\]\)\=" nextgroup=modconfPath skipwhite
-syn region modconfCommand transparent matchgroup=modconfCommand start="^\s*\(if\|elseif\)" skip="\\$" end="$" contains=modconfOp
-syn region modconfCommand transparent matchgroup=modconfCommand start="^\s*\(post\|pre\)-\(install\|remove\)" skip="\\$" end="$"
+syn region modconfComment start='#' skip='\\$' end='$'
+ \ contains=modconfTodo,@Spell
+syn keyword modconfConditional if else elseif endif
-" expressions and similay
-syn match modconfOp contained "\s-[fnk]\>"
-syn region modconfPath contained start="\(=\@=\)\=/" skip="\\$" end="\\\@!\_s"
-syn match modconfModOpt contained "\<\w\+=\@="
+syn keyword modconfPreProc alias define include keep prune
+ \ post-install post-remove pre-install
+ \ pre-remove persistdir
-if exists("modconf_minlines")
- let b:modconf_minlines = modconf_minlines
-else
- let b:modconf_minlines = 50
-endif
-exec "syn sync minlines=" . b:modconf_minlines
+syn keyword modconfKeyword add above below install options probe probeall
+ \ remove
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_modconf_syn_inits")
- if version < 508
- let did_modconf_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+syn keyword modconfIdentifier depfile insmod_opt path generic_stringfile
+ \ pcimapfile isapnpmapfile usbmapfile
+ \ parportmapfile ieee1394mapfile pnpbiosmapfile
+syn match modconfIdentifier 'path\[[^]]\+\]'
- HiLink modconfComment Comment
- HiLink modconfTodo Todo
- HiLink modconfCommand Keyword
- HiLink modconfPath String
- HiLink modconfOp Identifier
- HiLink modconfModOpt Identifier
- delcommand HiLink
-endif
+hi def link modconfTodo Todo
+hi def link modconfComment Comment
+hi def link modconfConditional Conditional
+hi def link modconfPreProc PreProc
+hi def link modconfKeyword Keyword
+hi def link modconfIdentifier Identifier
let b:current_syntax = "modconf"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/mplayerconf.vim b/runtime/syntax/mplayerconf.vim
index 7abe20a1d..856d8ce19 100644
--- a/runtime/syntax/mplayerconf.vim
+++ b/runtime/syntax/mplayerconf.vim
@@ -1,111 +1,84 @@
" Vim syntax file
-" Language: mplayer(1) configuration file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/mplayerconf/
-" Latest Revision: 2004-05-22
-" arch-tag: c20b9381-5858-4452-b866-54e2e1891229
+" Language: mplayer(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-27
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
-" Set iskeyword since we need `-' (and potentially others) in keywords.
-" For version 5.x: Set it globally
-" For version 6.x: Set it locally
-if version >= 600
- command -nargs=1 SetIsk setlocal iskeyword=<args>
-else
- command -nargs=1 SetIsk set iskeyword=<args>
-endif
-SetIsk @,48-57,-
-delcommand SetIsk
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal iskeyword=@,48-57,-
-" Todo
-syn keyword mplayerconfTodo contained TODO FIXME XXX NOTE
+syn keyword mplayerconfTodo contained TODO FIXME XXX NOTE
-" Comments
-syn region mplayerconfComment display matchgroup=mplayerconfComment start='#' end='$' contains=mplayerconfTodo
+syn region mplayerconfComment display matchgroup=mplayerconfComment
+ \ start='#' end='$'
+ \ contains=mplayerconfTodo,@Spell
-" PreProc
syn keyword mplayerconfPreProc include
-" Booleans
syn keyword mplayerconfBoolean yes no
-" Numbers
syn match mplayerconfNumber '\<\d\+\>'
-" Options
-syn keyword mplayerconfOption hardframedrop nomouseinput bandwidth dumpstream
-syn keyword mplayerconfOption rtsp-stream-over-tcp tv overlapsub sub-bg-alpha
-syn keyword mplayerconfOption subfont-outline unicode format vo edl cookies
-syn keyword mplayerconfOption fps zrfd af-adv nosound audio-density
-syn keyword mplayerconfOption passlogfile vobsuboutindex
-syn keyword mplayerconfOption autoq autosync benchmark colorkey nocolorkey
-syn keyword mplayerconfOption edlout enqueue fixed-vo framedrop h
-syn keyword mplayerconfOption identify input lircconf list-options loop menu
-syn keyword mplayerconfOption menu-cfg menu-root nojoystick nolirc
-syn keyword mplayerconfOption nortc playlist quiet really-quiet shuffle skin
-syn keyword mplayerconfOption slave softsleep speed sstep use-stdin aid alang
-syn keyword mplayerconfOption audio-demuxer audiofile audiofile-cache
-syn keyword mplayerconfOption cdrom-device cache cdda channels chapter
-syn keyword mplayerconfOption cookies-file demuxer dumpaudio dumpfile
-syn keyword mplayerconfOption dumpvideo dvbin dvd-device dvdangle forceidx
-syn keyword mplayerconfOption frames hr-mp3-seek idx ipv4-only-proxy loadidx
-syn keyword mplayerconfOption mc mf ni nobps noextbased passwd prefer-ipv4
-syn keyword mplayerconfOption prefer-ipv6 rawaudio rawvideo
-syn keyword mplayerconfOption saveidx sb srate ss tskeepbroken tsprog tsprobe
-syn keyword mplayerconfOption user user-agent vid vivo dumpjacosub
-syn keyword mplayerconfOption dumpmicrodvdsub dumpmpsub dumpsami dumpsrtsub
-syn keyword mplayerconfOption dumpsub ffactor flip-hebrew font forcedsubsonly
-syn keyword mplayerconfOption fribidi-charset ifo noautosub osdlevel
-syn keyword mplayerconfOption sid slang spuaa spualign spugauss sub
-syn keyword mplayerconfOption sub-bg-color sub-demuxer sub-fuzziness
-syn keyword mplayerconfOption sub-no-text-pp subalign subcc subcp subdelay
-syn keyword mplayerconfOption subfile subfont-autoscale subfont-blur
-syn keyword mplayerconfOption subfont-encoding subfont-osd-scale
-syn keyword mplayerconfOption subfont-text-scale subfps subpos subwidth
-syn keyword mplayerconfOption utf8 vobsub vobsubid abs ao aofile aop delay
-syn keyword mplayerconfOption mixer nowaveheader aa bpp brightness contrast
-syn keyword mplayerconfOption dfbopts display double dr dxr2 fb fbmode
-syn keyword mplayerconfOption fbmodeconfig forcexv fs fsmode-dontuse fstype
-syn keyword mplayerconfOption geometry guiwid hue jpeg monitor-dotclock
-syn keyword mplayerconfOption monitor-hfreq monitor-vfreq monitoraspect
-syn keyword mplayerconfOption nograbpointer nokeepaspect noxv ontop panscan
-syn keyword mplayerconfOption rootwin saturation screenw stop-xscreensaver vm
-syn keyword mplayerconfOption vsync wid xineramascreen z zrbw zrcrop zrdev
-syn keyword mplayerconfOption zrhelp zrnorm zrquality zrvdec zrxdoff ac af
-syn keyword mplayerconfOption afm aspect flip lavdopts noaspect noslices
-syn keyword mplayerconfOption novideo oldpp pp pphelp ssf stereo sws vc vfm x
-syn keyword mplayerconfOption xvidopts xy y zoom vf vop audio-delay
-syn keyword mplayerconfOption audio-preload endpos ffourcc include info
-syn keyword mplayerconfOption noautoexpand noskip o oac of ofps ovc
-syn keyword mplayerconfOption skiplimit v vobsubout vobsuboutid
-syn keyword mplayerconfOption lameopts lavcopts nuvopts xvidencopts
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_mplayer_syn_inits")
- if version < 508
- let did_mplayer_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+syn keyword mplayerconfOption hardframedrop nomouseinput bandwidth dumpstream
+ \ rtsp-stream-over-tcp tv overlapsub
+ \ sub-bg-alpha subfont-outline unicode format
+ \ vo edl cookies fps zrfd af-adv nosound
+ \ audio-density passlogfile vobsuboutindex autoq
+ \ autosync benchmark colorkey nocolorkey edlout
+ \ enqueue fixed-vo framedrop h identify input
+ \ lircconf list-options loop menu menu-cfg
+ \ menu-root nojoystick nolirc nortc playlist
+ \ quiet really-quiet shuffle skin slave
+ \ softsleep speed sstep use-stdin aid alang
+ \ audio-demuxer audiofile audiofile-cache
+ \ cdrom-device cache cdda channels chapter
+ \ cookies-file demuxer dumpaudio dumpfile
+ \ dumpvideo dvbin dvd-device dvdangle forceidx
+ \ frames hr-mp3-seek idx ipv4-only-proxy
+ \ loadidx mc mf ni nobps noextbased
+ \ passwd prefer-ipv4 prefer-ipv6 rawaudio
+ \ rawvideo saveidx sb srate ss tskeepbroken
+ \ tsprog tsprobe user user-agent vid vivo
+ \ dumpjacosub dumpmicrodvdsub dumpmpsub dumpsami
+ \ dumpsrtsub dumpsub ffactor flip-hebrew font
+ \ forcedsubsonly fribidi-charset ifo noautosub
+ \ osdlevel sid slang spuaa spualign spugauss
+ \ sub sub-bg-color sub-demuxer sub-fuzziness
+ \ sub-no-text-pp subalign subcc subcp subdelay
+ \ subfile subfont-autoscale subfont-blur
+ \ subfont-encoding subfont-osd-scale
+ \ subfont-text-scale subfps subpos subwidth
+ \ utf8 vobsub vobsubid abs ao aofile aop delay
+ \ mixer nowaveheader aa bpp brightness contrast
+ \ dfbopts display double dr dxr2 fb fbmode
+ \ fbmodeconfig forcexv fs fsmode-dontuse fstype
+ \ geometry guiwid hue jpeg monitor-dotclock
+ \ monitor-hfreq monitor-vfreq monitoraspect
+ \ nograbpointer nokeepaspect noxv ontop panscan
+ \ rootwin saturation screenw stop-xscreensaver
+ \ vm vsync wid xineramascreen z zrbw zrcrop
+ \ zrdev zrhelp zrnorm zrquality zrvdec zrxdoff
+ \ ac af afm aspect flip lavdopts noaspect
+ \ noslices novideo oldpp pp pphelp ssf stereo
+ \ sws vc vfm x xvidopts xy y zoom vf vop
+ \ audio-delay audio-preload endpos ffourcc
+ \ include info noautoexpand noskip o oac of
+ \ ofps ovc skiplimit v vobsubout vobsuboutid
+ \ lameopts lavcopts nuvopts xvidencopts
- HiLink mplayerconfTodo Todo
- HiLink mplayerconfComment Comment
- HiLink mplayerconfPreProc PreProc
- HiLink mplayerconfBoolean Boolean
- HiLink mplayerconfNumber Number
- HiLink mplayerconfOption Keyword
-
- delcommand HiLink
-endif
+hi def link mplayerconfTodo Todo
+hi def link mplayerconfComment Comment
+hi def link mplayerconfPreProc PreProc
+hi def link mplayerconfBoolean Boolean
+hi def link mplayerconfNumber Number
+hi def link mplayerconfOption Keyword
let b:current_syntax = "mplayerconf"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/netrc.vim b/runtime/syntax/netrc.vim
index 83940eb9d..9d5d3ae53 100644
--- a/runtime/syntax/netrc.vim
+++ b/runtime/syntax/netrc.vim
@@ -1,55 +1,51 @@
" Vim syntax file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/
-" Latest Revision: 2004-12-16
-" arch-tag: 4f6ecb37-d10c-4eca-add0-77991559414a
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: netrc(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-27
+
+if exists("b:current_syntax")
finish
endif
-" Keywords
-syn keyword netrcKeyword machine password nextgroup=netrcName skipwhite skipnl
-syn keyword netrcKeyword login nextgroup=netrcName,netrcSpecial skipwhite skipnl
-syn keyword netrcKeyword default
-syn keyword netrcKeyword macdef nextgroup=netrcInit,netrcMacroName skipwhite skipnl
-syn region netrcMacro contained start='.' end='^$'
-
-" Names
-syn match netrcName contained display '\S\+'
-syn match netrcName contained display '"[^\\"]*\(\\.[^\\"]*\)*'
-syn match netrcMacroName contained display '\S\+' nextgroup=netrcMacro skipwhite skipnl
-syn match netrcMacroName contained display '"[^\\"]*\(\\.[^\\"]*\)*' nextgroup=netrcMacro skipwhite skipnl
-
-" Special
-syn keyword netrcSpecial contained anonymous
-syn match netrcInit contained '\<init$' nextgroup=netrcMacro skipwhite skipnl
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword netrcKeyword machine nextgroup=netrcMachine skipwhite skipnl
+syn keyword netrcKeyword login nextgroup=netrcLogin,netrcSpecial
+ \ skipwhite skipnl
+syn keyword netrcKeyword password nextgroup=netrcPassword skipwhite skipnl
+syn keyword netrcKeyword default
+syn keyword netrcKeyword macdef nextgroup=netrcInit,netrcMacroName
+ \ skipwhite skipnl
+syn region netrcMacro contained start='.' end='^$'
+
+syn match netrcMachine contained display '\S\+'
+syn match netrcMachine contained display '"[^\\"]*\(\\.[^\\"]*\)*"'
+syn match netrcLogin contained display '\S\+'
+syn match netrcLogin contained display '"[^\\"]*\(\\.[^\\"]*\)*"'
+syn match netrcPassword contained display '\S\+'
+syn match netrcPassword contained display '"[^\\"]*\(\\.[^\\"]*\)*"'
+syn match netrcMacroName contained display '\S\+' nextgroup=netrcMacro
+ \ skipwhite skipnl
+syn match netrcMacroName contained display '"[^\\"]*\(\\.[^\\"]*\)*"'
+ \ nextgroup=netrcMacro skipwhite skipnl
+
+syn keyword netrcSpecial contained anonymous
+syn match netrcInit contained '\<init$' nextgroup=netrcMacro
+ \ skipwhite skipnl
syn sync fromstart
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_netrc_syn_inits")
- if version < 508
- let did_netrc_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink netrcKeyword Keyword
- HiLink netrcMacro PreProc
- HiLink netrcName String
- HiLink netrcMacroName String
- HiLink netrcSpecial Special
- HiLink netrcInit Special
-
- delcommand HiLink
-endif
+hi def link netrcKeyword Keyword
+hi def link netrcMacro PreProc
+hi def link netrcMachine Identifier
+hi def link netrcLogin String
+hi def link netrcPassword String
+hi def link netrcMacroName String
+hi def link netrcSpecial Special
+hi def link netrcInit Special
let b:current_syntax = "netrc"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/pamconf.vim b/runtime/syntax/pamconf.vim
new file mode 100644
index 000000000..58eaf4b7e
--- /dev/null
+++ b/runtime/syntax/pamconf.vim
@@ -0,0 +1,118 @@
+" Vim syntax file
+" Language: pam(8) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn match pamconfService '^[[:graph:]]\+'
+ \ nextgroup=pamconfType,
+ \ pamconfServiceLineCont skipwhite
+
+syn keyword pamconfTodo contained TODO FIXME XXX NOTE
+
+syn region pamconfComment display oneline start='#' end='$'
+ \ contains=pamconfTodo,@Spell
+
+syn match pamconfServiceLineCont contained '\\$'
+ \ nextgroup=pamconfType,
+ \ pamconfServiceLineCont skipwhite skipnl
+
+syn keyword pamconfType account auth password session
+ \ nextgroup=pamconfControl,
+ \ pamconfTypeLineCont skipwhite
+
+syn match pamconfTypeLineCont contained '\\$'
+ \ nextgroup=pamconfControl,
+ \ pamconfTypeLineCont skipwhite skipnl
+
+syn keyword pamconfControl contained requisite required sufficient
+ \ optional
+ \ nextgroup=pamconfMPath,
+ \ pamconfControlLineContH skipwhite
+
+syn match pamconfControlBegin '\[' nextgroup=pamconfControlValues,
+ \ pamconfControlLineCont skipwhite
+
+syn match pamconfControlLineCont contained '\\$'
+ \ nextgroup=pamconfControlValues,
+ \ pamconfControlLineCont skipwhite skipnl
+
+syn keyword pamconfControlValues contained success open_err symbol_err
+ \ service_err system_err buf_err
+ \ perm_denied auth_err cred_insufficient
+ \ authinfo_unavail user_unknown maxtries
+ \ new_authtok_reqd acct_expired session_err
+ \ cred_unavail cred_expired cred_err
+ \ no_module_data conv_err authtok_err
+ \ authtok_recover_err authtok_lock_busy
+ \ authtok_disable_aging try_again ignore
+ \ abort authtok_expired module_unknown
+ \ bad_item and default
+ \ nextgroup=pamconfControlValueEq
+
+syn match pamconfControlValueEq contained '=' nextgroup=pamconfControlAction
+
+syn match pamconfControlActionN contained '\d\+\>'
+ \ nextgroup=pamconfControlValues,
+ \ pamconfControlLineCont,pamconfControlEnd
+ \ skipwhite
+syn keyword pamconfControlAction contained ignore bad die ok done reset
+ \ nextgroup=pamconfControlValues,
+ \ pamconfControlLineCont,pamconfControlEnd
+ \ skipwhite
+
+syn match pamconfControlEnd contained '\]'
+ \ nextgroup=pamconfMPath,
+ \ pamconfControlLineContH skipwhite
+
+syn match pamconfControlLineContH contained '\\$'
+ \ nextgroup=pamconfMPath,
+ \ pamconfControlLineContH skipwhite skipnl
+
+syn match pamconfMPath contained '\S\+'
+ \ nextgroup=pamconfMPathLineCont,
+ \ pamconfArgs skipwhite
+
+syn match pamconfArgs contained '\S\+'
+ \ nextgroup=pamconfArgsLineCont,
+ \ pamconfArgs skipwhite
+
+syn match pamconfMPathLineCont contained '\\$'
+ \ nextgroup=pamconfMPathLineCont,
+ \ pamconfArgs skipwhite skipnl
+
+syn match pamconfArgsLineCont contained '\\$'
+ \ nextgroup=pamconfArgsLineCont,
+ \ pamconfArgs skipwhite skipnl
+
+hi def link pamconfTodo Todo
+hi def link pamconfComment Comment
+hi def link pamconfService Statement
+hi def link pamconfServiceLineCont Special
+hi def link pamconfType Type
+hi def link pamconfTypeLineCont pamconfServiceLineCont
+hi def link pamconfControl Macro
+hi def link pamconfControlBegin Delimiter
+hi def link pamconfControlLineContH pamconfServiceLineCont
+hi def link pamconfControlLineCont pamconfServiceLineCont
+hi def link pamconfControlValues Identifier
+hi def link pamconfControlValueEq Operator
+hi def link pamconfControlActionN Number
+hi def link pamconfControlAction Identifier
+hi def link pamconfControlEnd Delimiter
+hi def link pamconfMPath String
+hi def link pamconfMPathLineCont pamconfServiceLineCont
+hi def link pamconfArgs Normal
+hi def link pamconfArgsLineCont pamconfServiceLineCont
+
+let b:current_syntax = "pamconf"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/pinfo.vim b/runtime/syntax/pinfo.vim
index aaef71289..dc76e9fbf 100644
--- a/runtime/syntax/pinfo.vim
+++ b/runtime/syntax/pinfo.vim
@@ -1,134 +1,111 @@
" Vim syntax file
-" Language: pinfo(1) configuration file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/
-" Latest Revision: 2004-05-22
-" arch-tag: da2cfa1c-0350-45dc-b2d2-2bf3915bd0a2
+" Language: pinfo(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-28
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
-" Set iskeyword since we need `-' (and potentially others) in keywords.
-" For version 5.x: Set it globally
-" For version 6.x: Set it locally
-if version >= 600
- command -nargs=1 SetIsk setlocal iskeyword=<args>
-else
- command -nargs=1 SetIsk set iskeyword=<args>
-endif
-SetIsk @,48-57,_,-
-delcommand SetIsk
+let s:cpo_save = &cpo
+set cpo&vim
-" Ignore Case
-syn case ignore
+setlocal iskeyword=@,48-57,_,-
-" Todo
-syn keyword pinfoTodo contained FIXME TODO XXX NOTE
+syn case ignore
-" Comments
-syn region pinfoComment start='^#' end='$' contains=pinfoTodo
+syn keyword pinfoTodo contained FIXME TODO XXX NOTE
-" Keywords
-syn keyword pinfoOptions MANUAL CUT-MAN-HEADERS CUT-EMPTY-MAN-LINES
-syn keyword pinfoOptions RAW-FILENAME APROPOS DONT-HANDLE-WITHOUT-TAG-TABLE
-syn keyword pinfoOptions HTTPVIEWER FTPVIEWER MAILEDITOR PRINTUTILITY
-syn keyword pinfoOptions MANLINKS INFOPATH MAN-OPTIONS STDERR-REDIRECTION
-syn keyword pinfoOptions LONG-MANUAL-LINKS FILTER-0xB7 QUIT-CONFIRMATION
-syn keyword pinfoOptions QUIT-CONFIRM-DEFAULT CLEAR-SCREEN-AT-EXIT
-syn keyword pinfoOptions CALL-READLINE-HISTORY HIGHLIGHTREGEXP SAFE-USER
-syn keyword pinfoOptions SAFE-GROUP
+syn region pinfoComment start='^#' end='$' contains=pinfoTodo,@Spell
-" Colors
-syn keyword pinfoColors COL_NORMAL COL_TOPLINE COL_BOTTOMLINE COL_MENU
-syn keyword pinfoColors COL_MENUSELECTED COL_NOTE COL_NOTESELECTED COL_URL
-syn keyword pinfoColors COL_URLSELECTED COL_INFOHIGHLIGHT COL_MANUALBOLD
-syn keyword pinfoColors COL_MANUALITALIC
-syn keyword pinfoColorDefault COLOR_DEFAULT
-syn keyword pinfoColorBold BOLD
-syn keyword pinfoColorNoBold NO_BOLD
-syn keyword pinfoColorBlink BLINK
-syn keyword pinfoColorNoBlink NO_BLINK
-syn keyword pinfoColorBlack COLOR_BLACK
-syn keyword pinfoColorRed COLOR_RED
-syn keyword pinfoColorGreen COLOR_GREEN
-syn keyword pinfoColorYellow COLOR_YELLOW
-syn keyword pinfoColorBlue COLOR_BLUE
-syn keyword pinfoColorMagenta COLOR_MAGENTA
-syn keyword pinfoColorCyan COLOR_CYAN
-syn keyword pinfoColorWhite COLOR_WHITE
+syn keyword pinfoOptions MANUAL CUT-MAN-HEADERS CUT-EMPTY-MAN-LINES
+ \ RAW-FILENAME APROPOS
+ \ DONT-HANDLE-WITHOUT-TAG-TABLE HTTPVIEWER
+ \ FTPVIEWER MAILEDITOR PRINTUTILITY MANLINKS
+ \ INFOPATH MAN-OPTIONS STDERR-REDIRECTION
+ \ LONG-MANUAL-LINKS FILTER-0xB7
+ \ QUIT-CONFIRMATION QUIT-CONFIRM-DEFAULT
+ \ CLEAR-SCREEN-AT-EXIT CALL-READLINE-HISTORY
+ \ HIGHLIGHTREGEXP SAFE-USER SAFE-GROUP
-" Keybindings
-syn keyword pinfoKeys KEY_TOTALSEARCH_1 KEY_TOTALSEARCH_2 KEY_SEARCH_1
-syn keyword pinfoKeys KEY_SEARCH_2 KEY_SEARCH_AGAIN_1 KEY_SEARCH_AGAIN_2
-syn keyword pinfoKeys KEY_GOTO_1 KEY_GOTO_2 KEY_PREVNODE_1 KEY_PREVNODE_2
-syn keyword pinfoKeys KEY_NEXTNODE_1 KEY_NEXTNODE_2 KEY_UP_1 KEY_UP_2
-syn keyword pinfoKeys KEY_END_1 KEY_END_2 KEY_PGDN_1 KEY_PGDN_2
-syn keyword pinfoKeys KEY_PGDN_AUTO_1 KEY_PGDN_AUTO_2 KEY_HOME_1 KEY_HOME_2
-syn keyword pinfoKeys KEY_PGUP_1 KEY_PGUP_2 KEY_PGUP_AUTO_1 KEY_PGUP_AUTO_2
-syn keyword pinfoKeys KEY_DOWN_1 KEY_DOWN_2 KEY_TOP_1 KEY_TOP_2 KEY_BACK_1
-syn keyword pinfoKeys KEY_BACK_2 KEY_FOLLOWLINK_1 KEY_FOLLOWLINK_2
-syn keyword pinfoKeys KEY_REFRESH_1 KEY_REFRESH_2 KEY_SHELLFEED_1
-syn keyword pinfoKeys KEY_SHELLFEED_2 KEY_QUIT_1 KEY_QUIT_2 KEY_GOLINE_1
-syn keyword pinfoKeys KEY_GOLINE_2 KEY_PRINT_1 KEY_PRINT_2
-syn keyword pinfoKeys KEY_DIRPAGE_1 KEY_DIRPAGE_2
+syn keyword pinfoColors COL_NORMAL COL_TOPLINE COL_BOTTOMLINE
+ \ COL_MENU COL_MENUSELECTED COL_NOTE
+ \ COL_NOTESELECTED COL_URL COL_URLSELECTED
+ \ COL_INFOHIGHLIGHT COL_MANUALBOLD
+ \ COL_MANUALITALIC COL_SEARCHHIGHLIGHT
-" Special Keys
-syn keyword pinfoSpecialKeys KEY_BREAK KEY_DOWN KEY_UP KEY_LEFT KEY_RIGHT
-syn keyword pinfoSpecialKeys KEY_DOWN KEY_HOME KEY_BACKSPACE KEY_NPAGE
-syn keyword pinfoSpecialKeys KEY_PPAGE KEY_END KEY_IC KEY_DC
-syn region pinfoSpecialKeys matchgroup=pinfoSpecialKeys transparent start=+KEY_\%(F\|CTRL\|ALT\)(+ end=+)+
-syn region pinfoSimpleKey matchgroup=pinfoSimpleKey start=+'+ skip=+\\'+ end=+'+ contains=pinfoSimpleKeyEscape
-syn match pinfoSimpleKeyEscape +\\[\\nt']+
-syn match pinfoKeycode '\<\d\+\>'
+syn keyword pinfoColorDefault COLOR_DEFAULT
+syn keyword pinfoColorBold BOLD
+syn keyword pinfoColorNoBold NO_BOLD
+syn keyword pinfoColorBlink BLINK
+syn keyword pinfoColorNoBlink NO_BLINK
+syn keyword pinfoColorBlack COLOR_BLACK
+syn keyword pinfoColorRed COLOR_RED
+syn keyword pinfoColorGreen COLOR_GREEN
+syn keyword pinfoColorYellow COLOR_YELLOW
+syn keyword pinfoColorBlue COLOR_BLUE
+syn keyword pinfoColorMagenta COLOR_MAGENTA
+syn keyword pinfoColorCyan COLOR_CYAN
+syn keyword pinfoColorWhite COLOR_WHITE
-" Constants
-syn keyword pinfoConstants TRUE FALSE YES NO
+syn keyword pinfoKeys KEY_TOTALSEARCH_1 KEY_TOTALSEARCH_2
+ \ KEY_SEARCH_1 KEY_SEARCH_2
+ \ KEY_SEARCH_AGAIN_1 KEY_SEARCH_AGAIN_2
+ \ KEY_GOTO_1 KEY_GOTO_2 KEY_PREVNODE_1
+ \ KEY_PREVNODE_2 KEY_NEXTNODE_1
+ \ KEY_NEXTNODE_2 KEY_UP_1 KEY_UP_2 KEY_END_1
+ \ KEY_END_2 KEY_PGDN_1 KEY_PGDN_2
+ \ KEY_PGDN_AUTO_1 KEY_PGDN_AUTO_2 KEY_HOME_1
+ \ KEY_HOME_2 KEY_PGUP_1 KEY_PGUP_2
+ \ KEY_PGUP_AUTO_1 KEY_PGUP_AUTO_2 KEY_DOWN_1
+ \ KEY_DOWN_2 KEY_TOP_1 KEY_TOP_2 KEY_BACK_1
+ \ KEY_BACK_2 KEY_FOLLOWLINK_1
+ \ KEY_FOLLOWLINK_2 KEY_REFRESH_1
+ \ KEY_REFRESH_2 KEY_SHELLFEED_1
+ \ KEY_SHELLFEED_2 KEY_QUIT_1 KEY_QUIT_2
+ \ KEY_GOLINE_1 KEY_GOLINE_2 KEY_PRINT_1
+ \ KEY_PRINT_2 KEY_DIRPAGE_1 KEY_DIRPAGE_2
+ \ KEY_TWODOWN_1 KEY_TWODOWN_2 KEY_TWOUP_1
+ \ KEY_TWOUP_2
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_pinfo_syn_inits")
- if version < 508
- let did_pinfo_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- command -nargs=+ HiDef hi <args>
- else
- command -nargs=+ HiLink hi def link <args>
- command -nargs=+ HiDef hi def <args>
- endif
+syn keyword pinfoSpecialKeys KEY_BREAK KEY_DOWN KEY_UP KEY_LEFT KEY_RIGHT
+ \ KEY_DOWN KEY_HOME KEY_BACKSPACE KEY_NPAGE
+ \ KEY_PPAGE KEY_END KEY_IC KEY_DC
+syn region pinfoSpecialKeys matchgroup=pinfoSpecialKeys transparent
+ \ start=+KEY_\%(F\|CTRL\|ALT\)(+ end=+)+
+syn region pinfoSimpleKey matchgroup=pinfoSimpleKey start=+'+
+ \ skip=+\\'+ end=+'+
+ \ contains=pinfoSimpleKeyEscape
+syn match pinfoSimpleKeyEscape +\\[\\nt']+
+syn match pinfoKeycode '\<\d\+\>'
- HiLink pinfoTodo Todo
- HiLink pinfoComment Comment
- HiLink pinfoOptions Keyword
- HiLink pinfoColors Keyword
- HiLink pinfoColorDefault Normal
- HiDef pinfoColorBold cterm=bold
- HiDef pinfoColorNoBold cterm=none
- " we can't access the blink attribute from Vim atm
- HiDef pinfoColorBlink cterm=inverse
- HiDef pinfoColorNoBlink cterm=none
- HiDef pinfoColorBlack ctermfg=Black guifg=Black
- HiDef pinfoColorRed ctermfg=DarkRed guifg=DarkRed
- HiDef pinfoColorGreen ctermfg=DarkGreen guifg=DarkGreen
- HiDef pinfoColorYellow ctermfg=DarkYellow guifg=DarkYellow
- HiDef pinfoColorBlue ctermfg=DarkBlue guifg=DarkBlue
- HiDef pinfoColorMagenta ctermfg=DarkMagenta guifg=DarkMagenta
- HiDef pinfoColorCyan ctermfg=DarkCyan guifg=DarkCyan
- HiDef pinfoColorWhite ctermfg=LightGray guifg=LightGray
- HiLink pinfoKeys Keyword
- HiLink pinfoSpecialKeys SpecialChar
- HiLink pinfoSimpleKey String
- HiLink pinfoSimpleKeyEscape SpecialChar
- HiLink pinfoKeycode Number
- HiLink pinfoConstants Constant
+syn keyword pinfoConstants TRUE FALSE YES NO
- delcommand HiLink
- delcommand HiDef
-endif
+hi def link pinfoTodo Todo
+hi def link pinfoComment Comment
+hi def link pinfoOptions Keyword
+hi def link pinfoColors Keyword
+hi def link pinfoColorDefault Normal
+hi def link pinfoSpecialKeys SpecialChar
+hi def link pinfoSimpleKey String
+hi def link pinfoSimpleKeyEscape SpecialChar
+hi def link pinfoKeycode Number
+hi def link pinfoConstants Constant
+hi def link pinfoKeys Keyword
+hi def pinfoColorBold cterm=bold
+hi def pinfoColorNoBold cterm=none
+hi def pinfoColorBlink cterm=inverse
+hi def pinfoColorNoBlink cterm=none
+hi def pinfoColorBlack ctermfg=Black guifg=Black
+hi def pinfoColorRed ctermfg=DarkRed guifg=DarkRed
+hi def pinfoColorGreen ctermfg=DarkGreen guifg=DarkGreen
+hi def pinfoColorYellow ctermfg=DarkYellow guifg=DarkYellow
+hi def pinfoColorBlue ctermfg=DarkBlue guifg=DarkBlue
+hi def pinfoColorMagenta ctermfg=DarkMagenta guifg=DarkMagenta
+hi def pinfoColorCyan ctermfg=DarkCyan guifg=DarkCyan
+hi def pinfoColorWhite ctermfg=LightGray guifg=LightGray
let b:current_syntax = "pinfo"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/quake.vim b/runtime/syntax/quake.vim
index 1ae8c71af..b86d52804 100644
--- a/runtime/syntax/quake.vim
+++ b/runtime/syntax/quake.vim
@@ -1,162 +1,134 @@
" Vim syntax file
-" Language: Quake[1-3] Configuration File
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/quake/
-" Latest Revision: 2004-05-22
-" arch-tag: a95793d7-cab3-4544-a78c-1cea47b5870b
-" Variables: quake_is_quake1 - the syntax is to be used for quake1 configs
-" quake_is_quake2 - the syntax is to be used for quake2 configs
-" quake_is_quake3 - the syntax is to be used for quake3 configs
-
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: Quake[1-3] configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+" quake_is_quake2 - the syntax is to be used for quake2 configs
+" quake_is_quake3 - the syntax is to be used for quake3 configs
+
+if exists("b:current_syntax")
finish
endif
+let s:cpo_save = &cpo
+set cpo&vim
-" Set iskeyword since we need `-' (and potentially others) in keywords.
-" For version 5.x: Set it globally
-" For version 6.x: Set it locally
-if version >= 600
- command -nargs=1 SetIsk setlocal iskeyword=<args>
-else
- command -nargs=1 SetIsk set iskeyword=<args>
-endif
-SetIsk 48-57,65-90,97-122,+,-,_
-delcommand SetIsk
-
+setlocal iskeyword=@,48-57,+,-,_
-" comments
-syn region quakeComment display oneline start="//" end="$" end=";" keepend contains=quakeTodo
+syn keyword quakeTodo contained TODO FIXME XXX NOTE
-" todo
-syn keyword quakeTodo contained TODO FIXME XXX NOTE
+syn region quakeComment display oneline start='//' end='$' end=';'
+ \ keepend contains=quakeTodo,@Spell
-" string (can contain numbers (which should be hilighted as such)
-syn region quakeString display oneline start=+"+ skip=+\\"+ end=+"\|$+ contains=quakeNumbers,@quakeCommands
+syn region quakeString display oneline start=+"+ skip=+\\\\\|\\"+
+ \ end=+"\|$+ contains=quakeNumbers,@quakeCommands
-" number
syn case ignore
-syn match quakeNumbers display transparent "\<\d\|\.\d" contains=quakeNumber,quakeFloat,quakeOctalError,quakeOctal
-syn match quakeNumber display contained "\d\+\>"
-" Flag the first zero of an octal number as something special
-syn match quakeOctal display contained "0\o\+\>" contains=quakeOctalZero
-syn match quakeOctalZero display contained "\<0"
-" floating point number, with dot
-syn match quakeFloat display contained "\d\+\.\d*"
-" floating point number, starting with a dot
-syn match quakeFloat display contained "\.\d\+\>"
-" flag an octal number with wrong digits
-syn match quakeOctalError display contained "0\o*[89]\d*"
-syn case match
-" commands
-syn case ignore
-syn cluster quakeCommands contains=quakeCommand,quake1Command,quake12Command,Quake2Command,Quake23Command,Quake3Command
-
-syn keyword quakeCommand +attack +back +forward +left +lookdown +lookup
-syn keyword quakeCommand +mlook +movedown +moveleft +moveright +moveup
-syn keyword quakeCommand +right +speed +strafe -attack -back bind
-syn keyword quakeCommand bindlist centerview clear connect cvarlist dir
-syn keyword quakeCommand disconnect dumpuser echo error exec -forward
-syn keyword quakeCommand god heartbeat joy_advancedupdate kick kill
-syn keyword quakeCommand killserver -left -lookdown -lookup map
-syn keyword quakeCommand messagemode messagemode2 -mlook modellist
-syn keyword quakeCommand -movedown -moveleft -moveright -moveup play
-syn keyword quakeCommand quit rcon reconnect record -right say say_team
-syn keyword quakeCommand screenshot serverinfo serverrecord serverstop
-syn keyword quakeCommand set sizedown sizeup snd_restart soundinfo
-syn keyword quakeCommand soundlist -speed spmap status -strafe stopsound
-syn keyword quakeCommand toggleconsole unbind unbindall userinfo pause
-syn keyword quakeCommand vid_restart viewpos wait weapnext weapprev
+syn match quakeNumbers display transparent '\<\d\|\.\d'
+ \ contains=quakeNumber,quakeFloat,
+ \ quakeOctalError,quakeOctal
+syn match quakeNumber contained display '\d\+\>'
+syn match quakeOctal contained display '0\o\+\>'
+ \ contains=quakeOctalZero
+syn match quakeOctalZero contained display '\<0'
+syn match quakeFloat contained display '\d\+\.\d*'
+syn match quakeFloat contained display '\.\d\+\>'
+syn match quakeOctalError contained display '0\o*[89]\d*'
+
+syn cluster quakeCommands contains=quakeCommand,quake1Command,
+ \ quake12Command,Quake2Command,Quake23Command,
+ \ Quake3Command
+
+syn keyword quakeCommand +attack +back +forward +left +lookdown +lookup
+syn keyword quakeCommand +mlook +movedown +moveleft +moveright +moveup
+syn keyword quakeCommand +right +speed +strafe -attack -back bind
+syn keyword quakeCommand bindlist centerview clear connect cvarlist dir
+syn keyword quakeCommand disconnect dumpuser echo error exec -forward
+syn keyword quakeCommand god heartbeat joy_advancedupdate kick kill
+syn keyword quakeCommand killserver -left -lookdown -lookup map
+syn keyword quakeCommand messagemode messagemode2 -mlook modellist
+syn keyword quakeCommand -movedown -moveleft -moveright -moveup play
+syn keyword quakeCommand quit rcon reconnect record -right say say_team
+syn keyword quakeCommand screenshot serverinfo serverrecord serverstop
+syn keyword quakeCommand set sizedown sizeup snd_restart soundinfo
+syn keyword quakeCommand soundlist -speed spmap status -strafe stopsound
+syn keyword quakeCommand toggleconsole unbind unbindall userinfo pause
+syn keyword quakeCommand vid_restart viewpos wait weapnext weapprev
if exists("quake_is_quake1")
-syn keyword quake1Command sv
+ syn keyword quake1Command sv
endif
if exists("quake_is_quake1") || exists("quake_is_quake2")
-syn keyword quake12Command +klook alias cd impulse link load save
-syn keyword quake12Command timerefresh changing info loading
-syn keyword quake12Command pingservers playerlist players score
+ syn keyword quake12Command +klook alias cd impulse link load save
+ syn keyword quake12Command timerefresh changing info loading
+ syn keyword quake12Command pingservers playerlist players score
endif
if exists("quake_is_quake2")
-syn keyword quake2Command cmd demomap +use condump download drop gamemap
-syn keyword quake2Command give gun_model setmaster sky sv_maplist wave
-syn keyword quake2Command cmdlist gameversiona gun_next gun_prev invdrop
-syn keyword quake2Command inven invnext invnextp invnextw invprev
-syn keyword quake2Command invprevp invprevw invuse menu_addressbook
-syn keyword quake2Command menu_credits menu_dmoptions menu_game
-syn keyword quake2Command menu_joinserver menu_keys menu_loadgame
-syn keyword quake2Command menu_main menu_multiplayer menu_options
-syn keyword quake2Command menu_playerconfig menu_quit menu_savegame
-syn keyword quake2Command menu_startserver menu_video
-syn keyword quake2Command notarget precache prog togglechat vid_front
-syn keyword quake2Command weaplast
+ syn keyword quake2Command cmd demomap +use condump download drop gamemap
+ syn keyword quake2Command give gun_model setmaster sky sv_maplist wave
+ syn keyword quake2Command cmdlist gameversiona gun_next gun_prev invdrop
+ syn keyword quake2Command inven invnext invnextp invnextw invprev
+ syn keyword quake2Command invprevp invprevw invuse menu_addressbook
+ syn keyword quake2Command menu_credits menu_dmoptions menu_game
+ syn keyword quake2Command menu_joinserver menu_keys menu_loadgame
+ syn keyword quake2Command menu_main menu_multiplayer menu_options
+ syn keyword quake2Command menu_playerconfig menu_quit menu_savegame
+ syn keyword quake2Command menu_startserver menu_video
+ syn keyword quake2Command notarget precache prog togglechat vid_front
+ syn keyword quake2Command weaplast
endif
+syn case match
+
if exists("quake_is_quake2") || exists("quake_is_quake3")
-syn keyword quake23Command imagelist modellist path z_stats
+ syn keyword quake23Command imagelist modellist path z_stats
endif
if exists("quake_is_quake3")
-syn keyword quake3Command +info +scores +zoom addbot arena banClient
-syn keyword quake3Command banUser callteamvote callvote changeVectors
-syn keyword quake3Command cinematic clientinfo clientkick cmd cmdlist
-syn keyword quake3Command condump configstrings crash cvar_restart devmap
-syn keyword quake3Command fdir follow freeze fs_openedList Fs_pureList
-syn keyword quake3Command Fs_referencedList gfxinfo globalservers
-syn keyword quake3Command hunk_stats in_restart -info levelshot
-syn keyword quake3Command loaddeferred localservers map_restart mem_info
-syn keyword quake3Command messagemode3 messagemode4 midiinfo model music
-syn keyword quake3Command modelist net_restart nextframe nextskin noclip
-syn keyword quake3Command notarget ping prevframe prevskin reset restart
-syn keyword quake3Command s_disable_a3d s_enable_a3d s_info s_list s_stop
-syn keyword quake3Command scanservers -scores screenshotJPEG sectorlist
-syn keyword quake3Command serverstatus seta setenv sets setu setviewpos
-syn keyword quake3Command shaderlist showip skinlist spdevmap startOribt
-syn keyword quake3Command stats stopdemo stoprecord systeminfo togglemenu
-syn keyword quake3Command tcmd team teamtask teamvote tell tell_attacker
-syn keyword quake3Command tell_target testgun testmodel testshader toggle
-syn keyword quake3Command touchFile vminfo vmprofile vmtest vosay
-syn keyword quake3Command vosay_team vote votell vsay vsay_team vstr
-syn keyword quake3Command vtaunt vtell vtell_attacker vtell_target weapon
-syn keyword quake3Command writeconfig -zoom
-syn match quake3Command display "\<[+-]button\(\d\|1[0-4]\)\>"
-endif
-
-syn case match
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_screen_syn_inits")
- if version < 508
- let did_screen_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink quakeComment Comment
- HiLink quakeTodo Todo
- HiLink quakeString String
- HiLink quakeNumber Number
- HiLink quakeOctal Number
- HiLink quakeOctalZero Number
- HiLink quakeFloat Number
- HiLink quakeOctalError Error
- HiLink quakeCommand quakeCommands
- HiLink quake1Command quakeCommands
- HiLink quake12Command quakeCommands
- HiLink quake2Command quakeCommands
- HiLink quake23Command quakeCommands
- HiLink quake3Command quakeCommands
- HiLink quakeCommands Keyword
-
- delcommand HiLink
+ syn keyword quake3Command +info +scores +zoom addbot arena banClient
+ syn keyword quake3Command banUser callteamvote callvote changeVectors
+ syn keyword quake3Command cinematic clientinfo clientkick cmd cmdlist
+ syn keyword quake3Command condump configstrings crash cvar_restart devmap
+ syn keyword quake3Command fdir follow freeze fs_openedList Fs_pureList
+ syn keyword quake3Command Fs_referencedList gfxinfo globalservers
+ syn keyword quake3Command hunk_stats in_restart -info levelshot
+ syn keyword quake3Command loaddeferred localservers map_restart mem_info
+ syn keyword quake3Command messagemode3 messagemode4 midiinfo model music
+ syn keyword quake3Command modelist net_restart nextframe nextskin noclip
+ syn keyword quake3Command notarget ping prevframe prevskin reset restart
+ syn keyword quake3Command s_disable_a3d s_enable_a3d s_info s_list s_stop
+ syn keyword quake3Command scanservers -scores screenshotJPEG sectorlist
+ syn keyword quake3Command serverstatus seta setenv sets setu setviewpos
+ syn keyword quake3Command shaderlist showip skinlist spdevmap startOribt
+ syn keyword quake3Command stats stopdemo stoprecord systeminfo togglemenu
+ syn keyword quake3Command tcmd team teamtask teamvote tell tell_attacker
+ syn keyword quake3Command tell_target testgun testmodel testshader toggle
+ syn keyword quake3Command touchFile vminfo vmprofile vmtest vosay
+ syn keyword quake3Command vosay_team vote votell vsay vsay_team vstr
+ syn keyword quake3Command vtaunt vtell vtell_attacker vtell_target weapon
+ syn keyword quake3Command writeconfig -zoom
+ syn match quake3Command display "\<[+-]button\(\d\|1[0-4]\)\>"
endif
-" vim: set sts=2 sw=2:
+hi def link quakeComment Comment
+hi def link quakeTodo Todo
+hi def link quakeString String
+hi def link quakeNumber Number
+hi def link quakeOctal Number
+hi def link quakeOctalZero PreProc
+hi def link quakeFloat Number
+hi def link quakeOctalError Error
+hi def link quakeCommand quakeCommands
+hi def link quake1Command quakeCommands
+hi def link quake12Command quakeCommands
+hi def link quake2Command quakeCommands
+hi def link quake23Command quakeCommands
+hi def link quake3Command quakeCommands
+hi def link quakeCommands Keyword
+
+let b:current_syntax = "quake"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/racc.vim b/runtime/syntax/racc.vim
new file mode 100644
index 000000000..064489564
--- /dev/null
+++ b/runtime/syntax/racc.vim
@@ -0,0 +1,138 @@
+" Vim default file
+" Language: Racc input file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword raccTodo contained TODO FIXME XXX NOTE
+
+syn region raccComment matchgroup=raccComment start='/\*' end='\*/'
+ \ contains=raccTodo,@Spell
+syn region raccComment matchgroup=raccComment start='#' end='$'
+ \ contains=raccTodo,@Spell
+
+syn region raccClass transparent matchgroup=raccKeyword
+ \ start='\<class\>' end='\<rule\>'he=e-4
+ \ contains=raccComment,raccPrecedence,
+ \ raccTokenDecl,raccExpect,raccOptions,raccConvert,
+ \ raccStart,
+
+syn region raccPrecedence transparent matchgroup=raccKeyword
+ \ start='\<prechigh\>' end='\<preclow\>'
+ \ contains=raccComment,raccPrecSpec
+
+syn keyword raccPrecSpec contained nonassoc left right
+ \ nextgroup=raccPrecToken,raccPrecString skipwhite
+ \ skipnl
+
+syn match raccPrecToken contained '\<\u[A-Z0-9]*\>'
+ \ nextgroup=raccPrecToken,raccPrecString skipwhite
+ \ skipnl
+
+syn region raccPrecString matchgroup=raccPrecString start=+"+
+ \ skip=+\\\\\|\\"+ end=+"+
+ \ contains=raccSpecial
+ \ nextgroup=raccPrecToken,raccPrecString skipwhite
+ \ skipnl
+syn region raccPrecString matchgroup=raccPrecString start=+'+
+ \ skip=+\\\\\|\\'+ end=+'+ contains=raccSpecial
+ \ nextgroup=raccPrecToken,raccPrecString skipwhite
+ \ skipnl
+
+syn keyword raccTokenDecl contained token
+ \ nextgroup=raccTokenR skipwhite skipnl
+
+syn match raccTokenR contained '\<\u[A-Z0-9]*\>'
+ \ nextgroup=raccTokenR skipwhite skipnl
+
+syn keyword raccExpect contained expect
+ \ nextgroup=raccNumber skipwhite skipnl
+
+syn match raccNumber contained '\<\d\+\>'
+
+syn keyword raccOptions contained options
+ \ nextgroup=raccOptionsR skipwhite skipnl
+
+syn keyword raccOptionsR contained omit_action_call result_var
+ \ nextgroup=raccOptionsR skipwhite skipnl
+
+syn region raccConvert transparent contained matchgroup=raccKeyword
+ \ start='\<convert\>' end='\<end\>'
+ \ contains=raccComment,raccConvToken skipwhite
+ \ skipnl
+
+syn match raccConvToken contained '\<\u[A-Z0-9]*\>'
+ \ nextgroup=raccString skipwhite skipnl
+
+syn keyword raccStart contained start
+ \ nextgroup=raccTargetS skipwhite skipnl
+
+syn match raccTargetS contained '\<\l[a-z0-9]*\>'
+
+syn match raccSpecial contained '\\["'\\]'
+
+syn region raccString matchgroup=raccString start=+"+ skip=+\\\\\|\\"+
+ \ end=+"+ contains=raccSpecial
+syn region raccString matchgroup=raccString start=+'+ skip=+\\\\\|\\'+
+ \ end=+'+ contains=raccSpecial
+
+syn region raccRules transparent matchgroup=raccKeyword start='\<rule\>'
+ \ end='\<end\>' contains=raccComment,raccString,
+ \ raccNumber,raccToken,raccTarget,raccDelimiter,
+ \ raccAction
+
+syn match raccTarget contained '\<\l[a-z0-9]*\>'
+
+syn match raccDelimiter contained '[:|]'
+
+syn match raccToken contained '\<\u[A-Z0-9]*\>'
+
+syn include @raccRuby syntax/ruby.vim
+
+syn region raccAction transparent matchgroup=raccDelimiter
+ \ start='{' end='}' contains=@raccRuby
+
+syn region raccHeader transparent matchgroup=raccPreProc
+ \ start='^---- header.*' end='^----'he=e-4
+ \ contains=@raccRuby
+
+syn region raccInner transparent matchgroup=raccPreProc
+ \ start='^---- inner.*' end='^----'he=e-4
+ \ contains=@raccRuby
+
+syn region raccFooter transparent matchgroup=raccPreProc
+ \ start='^---- footer.*' end='^----'he=e-4
+ \ contains=@raccRuby
+
+hi def link raccTodo Todo
+hi def link raccComment Comment
+hi def link raccPrecSpec Type
+hi def link raccPrecToken raccToken
+hi def link raccPrecString raccString
+hi def link raccTokenDecl Keyword
+hi def link raccToken Identifier
+hi def link raccTokenR raccToken
+hi def link raccExpect Keyword
+hi def link raccNumber Number
+hi def link raccOptions Keyword
+hi def link raccOptionsR Identifier
+hi def link raccConvToken raccToken
+hi def link raccStart Keyword
+hi def link raccTargetS Type
+hi def link raccSpecial special
+hi def link raccString String
+hi def link raccTarget Type
+hi def link raccDelimiter Delimiter
+hi def link raccPreProc PreProc
+hi def link raccKeyword Keyword
+
+let b:current_syntax = "racc"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/readline.vim b/runtime/syntax/readline.vim
index 8f72048ab..cc4d86d62 100644
--- a/runtime/syntax/readline.vim
+++ b/runtime/syntax/readline.vim
@@ -1,152 +1,176 @@
" Vim syntax file
-" Language: readline configuration file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/readline/
-" Latest Revision: 2004-05-22
-" arch-tag: 6d8e7da4-b39c-4bf7-8e6a-d9135f993457
-" Variables:
+" Language: readline(3) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
" readline_has_bash - if defined add support for bash specific
-" settings/functions
+" settings/functions
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
-" Set iskeyword since we need `-' (and potentially others) in keywords.
-" For version 5.x: Set it globally
-" For version 6.x: Set it locally
-if version >= 600
- command -nargs=1 SetIsk setlocal iskeyword=<args>
-else
- command -nargs=1 SetIsk set iskeyword=<args>
-endif
-SetIsk 48-57,65-90,97-122,-
-delcommand SetIsk
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal iskeyword=@,48-57,-
-" comments
-syn region readlineComment display oneline matchgroup=readlineComment start="^\s*#" end="$" contains=readlineTodo
+syn keyword readlineTodo contained TODO FIXME XXX NOTE
-" todo
-syn keyword readlineTodo contained TODO FIXME XXX NOTE
+syn region readlineComment display oneline matchgroup=readlineComment
+ \ start='^\s*#' end='$'
+ \ contains=readlineTodo,@Spell
-" strings (argh...not the way i want it, but fine..."
-syn match readlineString "^\s*[A-Za-z-]\+:"me=e-1 contains=readlineKeys
-syn region readlineString display oneline start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=readlineKeysTwo
+syn match readlineString '^\s*[A-Za-z-]\+:'me=e-1 contains=readlineKeys
+syn region readlineString display oneline start=+"+ skip=+\\\\\|\\"+
+ \ end=+"+ contains=readlineKeysTwo
-" special key
syn case ignore
-syn keyword readlineKeys contained Control Meta Del Esc Escape LFD Newline Ret Return Rubout Space Spc Tab
+syn keyword readlineKeys contained Control Meta Del Esc Escape LFD
+ \ Newline Ret Return Rubout Space Spc Tab
syn case match
-syn match readlineKeysTwo contained +\\\([CM]-\|[e\\"'abdfnrtv]\|\o\{3}\|x\x\{3}\)+
+syn match readlineKeysTwo contained display
+ \ +\\\([CM]-\|[e\\"'abdfnrtv]\|\o\{3}\|x\x\{3}\)+
-" keymaps
-syn match readlineKeymaps contained "emacs\(-standard\|-meta\|-ctlx\)\="
-syn match readlineKeymaps contained "vi\(-move\|-command\|-insert\)\="
+syn match readlineKeymaps contained display
+ \ 'emacs\(-standard\|-meta\|-ctlx\)\='
+syn match readlineKeymaps contained display
+ \ 'vi\(-move\|-command\|-insert\)\='
-" bell styles
-syn keyword readlineBellStyles contained audible visible none
+syn keyword readlineBellStyles contained audible visible none
-" numbers
-syn match readlineNumber contained "\<\d\+\>"
+syn match readlineNumber contained display '\<\d\+\>'
-" booleans
syn case ignore
-syn keyword readlineBoolean contained on off
+syn keyword readlineBoolean contained on off
syn case match
-" conditionals
-syn keyword readlineIfOps contained mode term
-
-syn region readlineConditional display oneline transparent matchgroup=readlineConditional start="^\s*$if" end="$" contains=readlineIfOps,readlineKeymaps
-syn match readlineConditional "^\s*$\(else\|endif\)\>"
-
-" include
-syn match readlineInclude "^\s*$include\>"
-
-" settings
-
-syn region readlineSet display oneline transparent matchgroup=readlineKeyword start="^\s*set\>" end="$"me=e-1 contains=readlineNumber,readlineBoolean,readlineKeymaps,readlineBellStyles,readlineSettings
+syn keyword readlineIfOps contained mode term
+
+syn region readlineConditional display oneline transparent
+ \ matchgroup=readlineConditional
+ \ start='^\s*$if' end="$"
+ \ contains=readlineIfOps,readlineKeymaps
+syn match readlineConditional display '^\s*$\(else\|endif\)\>'
+
+syn match readlineInclude display '^\s*$include\>'
+
+syn region readlineSet display oneline transparent
+ \ matchgroup=readlineKeyword start='^\s*set\>'
+ \ end="$"me=e-1 contains=readlineNumber,
+ \ readlineBoolean,readlineKeymaps,
+ \ readlineBellStyles,readlineSettings
+
+syn keyword readlineSettings contained bell-style comment-begin
+ \ completion-ignore-case completion-query-items
+ \ convert-meta disable-completion editing-mode
+ \ enable-keypad expand-tilde
+ \ horizontal-scroll-mode mark-directories
+ \ keymap mark-modified-lines meta-flag
+ \ input-meta output-meta
+ \ print-completions-horizontally
+ \ show-all-if-ambiguous visible-stats
+ \ prefer-visible-bell blink-matching-paren
+ \ match-hidden-files history-preserve-point
+ \ isearch-terminators
+
+syn region readlineBinding display oneline transparent
+ \ matchgroup=readlineKeyword start=':' end='$'
+ \ contains=readlineKeys,readlineFunctions
+
+syn keyword readlineFunctions contained display
+ \ beginning-of-line end-of-line forward-char
+ \ backward-char forward-word backward-word
+ \ clear-screen redraw-current-line
+ \ accept-line previous-history
+ \ next-history beginning-of-history
+ \ end-of-history reverse-search-history
+ \ forward-search-history
+ \ non-incremental-reverse-search-history
+ \ non-incremental-forward-search-history
+ \ history-search-forward
+ \ history-search-backward
+ \ yank-nth-arg yank-last-arg
+ \ delete-char backward-delete-char
+ \ forward-backward-delete-char quoted-insert
+ \ tab-insert self-insert transpose-chars
+ \ transpose-words upcase-word downcase-word
+ \ capitalize-word overwrite-mode kill-line
+ \ backward-kill-line unix-line-discard
+ \ kill-whole-line kill-word backward-kill-word
+ \ unix-word-rubout unix-filename-rubout
+ \ delete-horizontal-space kill-region
+ \ copy-region-as-kill copy-backward-word
+ \ copy-forward-word yank yank-pop
+ \ digit-argument universal-argument complete
+ \ possible-completions insert-completions
+ \ menu-complete delete-char-or-list
+ \ start-kbd-macro end-kbd-macro
+ \ call-last-kbd-macro re-read-init-file
+ \ abort do-uppercase-version prefix-meta
+ \ undo revert-line tilde-expand set-mark
+ \ exchange-point-and-mark character-search
+ \ character-search-backward insert-comment
+ \ dump-functions dump-variables dump-macros
+ \ emacs-editing-mode vi-editing-mode
+ \ vi-complete vi-char-search vi-redo
+ \ vi-search vi-arg-digit vi-append-eol
+ \ vi-prev-word vi-change-to vi-delete-to
+ \ vi-end-word vi-fetch-history vi-insert-beg
+ \ vi-search-again vi-put vi-replace
+ \ vi-subst vi-yank-to vi-first-print
+ \ vi-yank-arg vi-goto-mark vi-append-mode
+ \ vi-insertion-mode prev-history vi-set-mark
+ \ vi-search-again vi-put vi-change-char
+ \ vi-subst vi-delete vi-yank-to
+ \ vi-column vi-change-case vi-overstrike
+ \ vi-overstrike-delete do-lowercase-version
+ \ delete-char-or-list tty-status
+ \ arrow-key-prefix vi-back-to-indent vi-bword
+ \ vi-bWord vi-eword vi-eWord vi-fword vi-fWord
+ \ vi-next-word
-syn keyword readlineSettings contained bell-style comment-begin completion-ignore-case
-syn keyword readlineSettings contained completion-query-items convert-meta disable-completion editing-mode enable-keypad
-syn keyword readlineSettings contained expand-tilde horizontal-scroll-mode mark-directories keymap mark-modified-lines meta-flag
-syn keyword readlineSettings contained input-meta output-meta print-completions-horizontally show-all-if-ambiguous visible-stats
-syn keyword readlineSettings contained prefer-visible-bell blink-matching-paren
-syn keyword readlineSettings contained match-hidden-files history-preserve-point isearch-terminators
-
-" bash extensions
if exists("readline_has_bash")
- "syn keyword readlineSettings contained
+ syn keyword readlineFunctions contained
+ \ shell-expand-line history-expand-line
+ \ magic-space alias-expand-line
+ \ history-and-alias-expand-line
+ \ insert-last-argument operate-and-get-next
+ \ forward-backward-delete-char
+ \ delete-char-or-list complete-filename
+ \ possible-filename-completions
+ \ complete-username
+ \ possible-username-completions
+ \ complete-variable
+ \ possible-variable-completions
+ \ complete-hostname
+ \ possible-hostname-completions
+ \ complete-command
+ \ possible-command-completions
+ \ dynamic-complete-history
+ \ complete-into-braces
+ \ glob-expand-word glob-list-expansions
+ \ display-shell-version glob-complete-word
+ \ edit-and-execute-command
endif
-" key bindings
-syn region readlineBinding display oneline transparent matchgroup=readlineKeyword start=":" end="$" contains=readlineKeys,readlineFunctions
-
-syn match readlineFunctions contained "\<\(beginning\|end\)-of-line\>"
-syn match readlineFunctions contained "\<\(backward\|forward\)-\(char\|word\)\>"
-syn match readlineFunctions contained "\<\(previous\|next\|\(beginning\|end\)-of\|\(non-incremental-\)\=\(reverse\|forward\)-search\)-history\>"
-syn match readlineFunctions contained "\<history-search-\(forward\|backward\)\>"
-syn match readlineFunctions contained "\<yank-\(nth\|last\)-arg\>"
-syn match readlineFunctions contained "\<\(backward-\)\=kill-\(\(whole-\)\=line\|word\)\>"
-syn match readlineFunctions contained "\<\(start\|end\|call-last\)-kbd-macro\>"
-syn match readlineFunctions contained "\<dump-\(functions\|variables\|macros\)\>"
-syn match readlineFunctions contained "\<non-incremental-\(reverse\|forward\)-search-history-again\>"
-syn keyword readlineFunctions contained clear-screen redraw-current-line accept-line delete-char backward-delete-char quoted-insert tab-insert
-syn keyword readlineFunctions contained self-insert transpose-chars transpose-words downcase-word capitalize-word unix-word-rubout
-syn keyword readlineFunctions contained delete-horizontal-space kill-region copy-region-as-kill copy-backward-word copy-forward-word yank yank-pop
-syn keyword readlineFunctions contained digit-argument universal-argument complete possible-completions insert-completions menu-complete
-syn keyword readlineFunctions contained re-read-init-file abort do-uppercase-version prefix-meta undo revert-line tilde-expand set-mark
-syn keyword readlineFunctions contained exchange-point-and-mark character-search character-search-backward insert-comment emacs-editing-mode vi-editing-mode
-syn keyword readlineFunctions contained unix-line-discard upcase-word backward-delete-word vi-eof-maybe vi-movement-mode vi-match vi-tilde-expand
-syn keyword readlineFunctions contained vi-complete vi-char-search vi-redo vi-search vi-arg-digit vi-append-eol vi-prev-word vi-change-to vi-delete-to
-syn keyword readlineFunctions contained vi-end-word vi-fetch-history vi-insert-beg vi-search-again vi-put vi-replace vi-subst vi-yank-to vi-first-print
-syn keyword readlineFunctions contained vi-yank-arg vi-goto-mark vi-append-mode vi-insertion-mode prev-history vi-set-mark vi-search-again vi-put vi-change-char
-syn keyword readlineFunctions contained vi-subst vi-delete vi-yank-to vi-column vi-change-case vi-overstrike vi-overstrike-delete
-syn keyword readlineFunctions contained do-lowercase-version delete-char-or-list tty-status arrow-key-prefix
-syn keyword readlineFunctions contained vi-back-to-indent vi-bword vi-bWord vi-eword vi-eWord vi-fword vi-fWord vi-next-word
-
-" bash extensions
-if exists("readline_has_bash")
- syn keyword readlineFunctions contained shell-expand-line history-expand-line magic-space alias-expand-line history-and-alias-expand-line insert-last-argument
- syn keyword readlineFunctions contained operate-and-get-next forward-backward-delete-char delete-char-or-list complete-filename possible-filename-completions
- syn keyword readlineFunctions contained complete-username possible-username-completions complete-variable possible-variable-completions complete-hostname
- syn keyword readlineFunctions contained possible-hostname-completions complete-command possible-command-completions dynamic-complete-history complete-into-braces
- syn keyword readlineFunctions contained glob-expand-word glob-list-expansions display-shell-version
- syn keyword readlineFunctions contained glob-complete-word edit-and-execute-command
-endif
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_readline_syn_inits")
- if version < 508
- let did_readline_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink readlineComment Comment
- HiLink readlineTodo Todo
- HiLink readlineString String
- HiLink readlineKeys SpecialChar
- HiLink readlineKeysTwo SpecialChar
- HiLink readlineKeymaps Constant
- HiLink readlineBellStyles Constant
- HiLink readlineNumber Number
- HiLink readlineBoolean Boolean
- HiLink readlineIfOps Type
- HiLink readlineConditional Conditional
- HiLink readlineInclude Include
- HiLink readlineKeyword Keyword
- HiLink readlineSettings Type
- HiLink readlineFunctions Type
- delcommand HiLink
-endif
+hi def link readlineComment Comment
+hi def link readlineTodo Todo
+hi def link readlineString String
+hi def link readlineKeys SpecialChar
+hi def link readlineKeysTwo SpecialChar
+hi def link readlineKeymaps Constant
+hi def link readlineBellStyles Constant
+hi def link readlineNumber Number
+hi def link readlineBoolean Boolean
+hi def link readlineIfOps Type
+hi def link readlineConditional Conditional
+hi def link readlineInclude Include
+hi def link readlineKeyword Keyword
+hi def link readlineSettings Type
+hi def link readlineFunctions Type
let b:current_syntax = "readline"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/rnc.vim b/runtime/syntax/rnc.vim
index 3878c8c1b..99f7f19fa 100644
--- a/runtime/syntax/rnc.vim
+++ b/runtime/syntax/rnc.vim
@@ -1,94 +1,68 @@
" Vim syntax file
-" Language: Relax NG compact syntax
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/rnc/
-" Latest Revision: 2004-05-22
-" arch-tag: 061ee0a2-9efa-4e2a-b1a9-14cf5172d645
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: Relax NG compact syntax
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-27
+
+if exists("b:current_syntax")
finish
endif
-" Set iskeyword since we need `-' (and potentially others) in keywords.
-" For version 5.x: Set it globally
-" For version 6.x: Set it locally
-if version >= 600
- command -nargs=1 SetIsk setlocal iskeyword=<args>
-else
- command -nargs=1 SetIsk set iskeyword=<args>
-endif
-SetIsk @,48-57,_,-,.
-delcommand SetIsk
-
-" Todo
-syn keyword rncTodo contained TODO FIXME XXX NOTE
-
-" Comments
-syn region rncComment matchgroup=rncComment start='^\s*#' end='$' contains=rncTodo
-
-" Operators
-syn match rncOperator '[-|,&+?*~]'
-syn match rncOperator '\%(|&\)\=='
-syn match rncOperator '>>'
-
-" Namespaces
-syn match rncNamespace '\<\k\+:'
-
-" Quoted Identifier
-syn match rncQuoted '\\\k\+\>'
-
-" Special Characters
-syn match rncSpecial '\\x{\x\+}'
-
-" Annotations
-syn region Annotation transparent start='\[' end='\]' contains=ALLBUT,rncComment,rncTodo
-
-" Literals
-syn region rncLiteral matchgroup=rncLiteral oneline start=+"+ end=+"+ contains=rncSpecial
-syn region rncLiteral matchgroup=rncLiteral oneline start=+'+ end=+'+
-syn region rncLiteral matchgroup=rncLiteral start=+"""+ end=+"""+ contains=rncSpecial
-syn region rncLiteral matchgroup=rncLiteral start=+'''+ end=+'''+
-
-" Delimiters
-syn match rncDelimiter '[{},()]'
-
-" Keywords
-syn keyword rncKeyword datatypes default div empty external grammar
-syn keyword rncKeyword include inherit list mixed name namespace
-syn keyword rncKeyword notAllowed parent start string text token
-
-" Identifiers
-syn match rncIdentifier '\k\+\_s*\%(=\|&=\||=\)\@=' nextgroup=rncOperator
-syn keyword rncKeyword nextgroup=rncIdName skipwhite skipempty element attribute
-syn match rncIdentifier contained '\k\+'
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_rnc_syn_inits")
- if version < 508
- let did_rnc_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink rncTodo Todo
- HiLink rncComment Comment
- HiLink rncOperator Operator
- HiLink rncNamespace Identifier
- HiLink rncQuoted Special
- HiLink rncSpecial SpecialChar
- HiLink rncLiteral String
- HiLink rncDelimiter Delimiter
- HiLink rncKeyword Keyword
- HiLink rncIdentifier Identifier
-
- delcommand HiLink
-endif
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal iskeyword=@,48-57,_,-,.
+
+syn keyword rncTodo contained TODO FIXME XXX NOTE
+
+syn region rncComment matchgroup=rncComment start='^\s*#' end='$'
+ \ contains=rncTodo,@Spell
+
+syn match rncOperator display '[-|,&+?*~]'
+syn match rncOperator display '\%(|&\)\=='
+syn match rncOperator display '>>'
+
+syn match rncNamespace display '\<\k\+:'
+
+syn match rncQuoted display '\\\k\+\>'
+
+syn match rncSpecial display '\\x{\x\+}'
+
+syn region rncAnnotation transparent start='\[' end='\]'
+ \ contains=ALLBUT,rncComment,rncTodo
+
+syn region rncLiteral matchgroup=rncLiteral oneline start=+"+ end=+"+
+ \ contains=rncSpecial
+syn region rncLiteral matchgroup=rncLiteral oneline start=+'+ end=+'+
+syn region rncLiteral matchgroup=rncLiteral start=+"""+ end=+"""+
+ \ contains=rncSpecial
+syn region rncLiteral matchgroup=rncLiteral start=+'''+ end=+'''+
+
+syn match rncDelimiter display '[{},()]'
+
+syn keyword rncKeyword datatypes default div empty external grammar
+syn keyword rncKeyword include inherit list mixed name namespace
+syn keyword rncKeyword notAllowed parent start string text token
+
+syn match rncIdentifier display '\k\+\_s*\%(=\|&=\||=\)\@='
+ \ nextgroup=rncOperator
+syn keyword rncKeyword element attribute
+ \ nextgroup=rncIdName skipwhite skipempty
+syn match rncIdName contained '\k\+'
+
+hi def link rncTodo Todo
+hi def link rncComment Comment
+hi def link rncOperator Operator
+hi def link rncNamespace Identifier
+hi def link rncQuoted Special
+hi def link rncSpecial SpecialChar
+hi def link rncAnnotation Special
+hi def link rncLiteral String
+hi def link rncDelimiter Delimiter
+hi def link rncKeyword Keyword
+hi def link rncIdentifier Identifier
+hi def link rncIdName Identifier
let b:current_syntax = "rnc"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/rst.vim b/runtime/syntax/rst.vim
index 02d43c66d..a1b4429cd 100644
--- a/runtime/syntax/rst.vim
+++ b/runtime/syntax/rst.vim
@@ -1,107 +1,102 @@
" Vim syntax file
-" Language: reStructuredText Documentation Format
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/rst/
-" Latest Revision: 2004-05-13
-" arch-tag: 6fae09da-d5d4-49d8-aec1-e49008ea21e6
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: reStructuredText documentation format
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:current_syntax")
finish
endif
-" todo
-syn keyword rstTodo contained FIXME TODO XXX NOTE
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword rstTodo contained FIXME TODO XXX NOTE
syn case ignore
-" comments
-syn region rstComment matchgroup=rstComment start="^\.\.\%( \%([a-z0-9_.-]\+::\)\@!\|$\)" end="^\s\@!" contains=rstTodo
+syn region rstComment matchgroup=rstComment
+ \ start='^\.\.\%( \%([a-z0-9_.-]\+::\)\@!\|$\)'
+ \ end='^\s\@!' contains=rstTodo
-syn cluster rstCruft contains=rstFootnoteLabel,rstCitationLabel,rstSubstitutionLabel,rstInline,rstHyperlinks,rstInternalTarget
+syn cluster rstCruft contains=rstFootnoteLabel,rstCitationLabel,
+ \ rstSubstitutionLabel,rstInline,
+ \ rstHyperlinks,rstInternalTarget
-" blocks
-" syn region rstBlock matchgroup=rstDelimiter start=":\@<!:$" skip="^$" end="^\s\@!" contains=@rstCruft
-syn region rstBlock matchgroup=rstDelimiter start="::$" skip="^$" end="^\s\@!"
-syn region rstDoctestBlock matchgroup=rstDelimiter start="^>>>\s" end="^$"
+syn region rstBlock matchgroup=rstDelimiter
+ \ start='::$' skip='^$' end='^\s\@!'
+syn region rstDoctestBlock matchgroup=rstDelimiter
+ \ start='^>>>\s' end='^$'
-" tables
" TODO: these may actually be a bit too complicated to match correctly and
-" should perhaps be removed. Whon really needs it anyway?
-syn region rstTable transparent start="^\n\s*+[-=+]\+" end="^$" contains=rstTableLines,@rstCruft
-syn match rstTableLines contained "^\s*[|+=-]\+$"
-syn region rstSimpleTable transparent start="^\n\s*\%(=\+\s\+\)\%(=\+\s*\)\+$" end="^$" contains=rstSimpleTableLines,@rstCruft
-syn match rstSimpleTableLines contained "^\s*\%(=\+\s\+\)\%(=\+\s*\)\+$"
-
-" footnotes
-syn region rstFootnote matchgroup=rstDirective start="^\.\. \[\%([#*]\|[0-9]\+\|#[a-z0-9_.-]\+\)\]\s" end="^\s\@!" contains=@rstCruft
-syn match rstFootnoteLabel "\[\%([#*]\|[0-9]\+\|#[a-z0-9_.-]\+\)\]_"
-
-" citations
-syn region rstCitation matchgroup=rstDirective start="^\.\. \[[a-z0-9_.-]\+\]\s" end="^\s\@!" contains=@rstCruft
-syn match rstCitationLabel "\[[a-z0-9_.-]\+\]_"
-
-" directives
-syn region rstDirectiveBody matchgroup=rstDirective start="^\.\. [a-z0-9_.-]\+::" end="^\s\@!"
-
-" substitutions
-syn region rstSubstitution matchgroup=rstDirective start="^\.\. |[a-z0-9_.-]|\s[a-z0-9_.-]\+::\s" end="^\s\@!" contains=@rstCruft
-syn match rstSubstitutionLabel "|[a-z0-9_.-]|"
-
-" inline markup
-syn match rstInline "\*\{1,2}\S\%([^*]*\S\)\=\*\{1,2}"
-syn match rstInline "`\{1,2}\S\%([^`]*\S\)\=`\{1,2}"
-
-" hyperlinks
-syn region rstHyperlinks matchgroup=RstDirective start="^\.\. _[a-z0-9_. -]\+:\s" end="^\s\@!" contains=@rstCruft
-
-syn match rstHyperlinksLabel "`\S\%([^`]*\S\)\=`__\=\>"
-syn match rstHyperlinksLabel "\w\+__\=\>"
-
-" internal targets
-syn match rstInternalTarget "_`\S\%([^`]*\S\)\=`"
-
-" lists
-syn match rstListItem "^:\%(\w\+\s*\)\+:"
-syn match rstListItem "^\s*[-*+]\s\+"
+" should perhaps be removed. We won't really needs it anyway?
+syn region rstTable transparent start='^\n\s*+[-=+]\+' end='^$'
+ \ contains=rstTableLines,@rstCruft
+syn match rstTableLines contained '^\s*[|+=-]\+$'
+syn region rstSimpleTable transparent
+ \ start='^\n\s*\%(=\+\s\+\)\%(=\+\s*\)\+$'
+ \ end='^$'
+ \ contains=rstSimpleTableLines,@rstCruft
+syn match rstSimpleTableLines contained display
+ \ '^\s*\%(=\+\s\+\)\%(=\+\s*\)\+$'
+
+syn region rstFootnote matchgroup=rstDirective
+ \ start='^\.\. \[\%([#*]\|[0-9]\+\|#[a-z0-9_.-]\+\)\]\s'
+ \ end='^\s\@!' contains=@rstCruft
+syn match rstFootnoteLabel '\[\%([#*]\|[0-9]\+\|#[a-z0-9_.-]\+\)\]_'
+
+syn region rstCitation matchgroup=rstDirective
+ \ start='^\.\. \[[a-z0-9_.-]\+\]\s'
+ \ end='^\s\@!' contains=@rstCruft
+syn match rstCitationLabel '\[[a-z0-9_.-]\+\]_'
+
+syn region rstDirectiveBody matchgroup=rstDirective
+ \ start='^\.\. [a-z0-9_.-]\+::'
+ \ end='^\s\@!'
+
+syn region rstSubstitution matchgroup=rstDirective
+ \ start='^\.\. |[a-z0-9_.-]|\s[a-z0-9_.-]\+::\s'
+ \ end='^\s\@!' contains=@rstCruft
+syn match rstSubstitutionLbl '|[a-z0-9_.-]|'
+
+syn match rstInline '\*\{1,2}\S\%([^*]*\S\)\=\*\{1,2}'
+syn match rstInline '`\{1,2}\S\%([^`]*\S\)\=`\{1,2}'
+
+syn region rstHyperlinks matchgroup=RstDirective
+ \ start='^\.\. _[a-z0-9_. -]\+:\s'
+ \ end='^\s\@!' contains=@rstCruft
+
+syn match rstHyperlinksLabel '`\S\%([^`]*\S\)\=`__\=\>'
+syn match rstHyperlinksLabel '\w\+__\=\>'
+
+syn match rstInternalTarget '_`\S\%([^`]*\S\)\=`'
+
+syn match rstListItem '^:\%(\w\+\s*\)\+:'
+syn match rstListItem '^\s*[-*+]\s\+'
syn sync minlines=50
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_rst_syn_inits")
- if version < 508
- let did_rst_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink rstTodo Todo
- HiLink rstComment Comment
- HiLink rstDelimiter Delimiter
- HiLink rstBlock String
- HiLink rstDoctestBlock PreProc
- HiLink rstTableLines Delimiter
- HiLink rstSimpleTableLines rstTableLines
- HiLink rstFootnote String
- HiLink rstFootnoteLabel Identifier
- HiLink rstCitation String
- HiLink rstCitationLabel Identifier
- HiLink rstDirective Keyword
- HiLink rstDirectiveBody Type
- HiLink rstSubstitution String
- HiLink rstSubstitutionLabel Identifier
- HiLink rstHyperlinks String
- HiLink rstHyperlinksLabel Identifier
- HiLink rstListItem Identifier
- hi def rstInline term=italic cterm=italic gui=italic
- hi def rstInternalTarget term=italic cterm=italic gui=italic
- delcommand HiLink
-endif
+hi def link rstTodo Todo
+hi def link rstComment Comment
+hi def link rstDelimiter Delimiter
+hi def link rstBlock String
+hi def link rstDoctestBlock PreProc
+hi def link rstTableLines Delimiter
+hi def link rstSimpleTableLines rstTableLines
+hi def link rstFootnote String
+hi def link rstFootnoteLabel Identifier
+hi def link rstCitation String
+hi def link rstCitationLabel Identifier
+hi def link rstDirective Keyword
+hi def link rstDirectiveBody Type
+hi def link rstSubstitution String
+hi def link rstSubstitutionLbl Identifier
+hi def link rstHyperlinks String
+hi def link rstHyperlinksLabel Identifier
+hi def link rstListItem Identifier
+hi def rstInline term=italic cterm=italic gui=italic
+hi def rstInternalTarget term=italic cterm=italic gui=italic
let b:current_syntax = "rst"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/screen.vim b/runtime/syntax/screen.vim
index eef74f26f..553d1d517 100644
--- a/runtime/syntax/screen.vim
+++ b/runtime/syntax/screen.vim
@@ -1,93 +1,83 @@
" Vim syntax file
-" Language: Screen Virtual Terminal Emulator/Manager Configuration File
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/screen/
-" Latest Revision: 2004-05-22
-" arch-tag: 6a97fb8f-fc88-497f-9c55-e946734ba034
+" Language: screen(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
-" comments
-syn region screenComment matchgroup=screenComment start="#" end="$" contains=screenTodo
+let s:cpo_save = &cpo
+set cpo&vim
-" todo
-syn keyword screenTodo contained TODO FIXME XXX NOTE
+syn match screenEscape '\\.'
-" string (can contain variables)
-syn region screenString matchgroup=screenString start='"' skip='\\"' end='"\|$' contains=screenVariable,screenSpecial
+syn keyword screenTodo contained TODO FIXME XXX NOTE
-" literal string
-syn region screenLiteral matchgroup=screenLiteral start="'" skip="\\'" end="'\|$"
+syn region screenComment display oneline matchgroup=screenComment
+ \ start='#' end='$' contains=screenTodo,@Spell
-" environment variables
-syn match screenVariable contained "$\(\h\w*\|{\h\w*}\)"
+syn region screenString display oneline matchgroup=screenString
+ \ start=+"+ skip=+\\"+ end=+"\|$+
+ \ contains=screenVariable,screenSpecial
-" booleans
-syn keyword screenBoolean on off
+syn region screenLiteral display oneline matchgroup=screenLiteral
+ \ start=+'+ skip=+\\'+ end=+'\|$+
-" numbers
-syn match screenNumbers "\<\d\+\>"
+syn match screenVariable contained display '$\(\h\w*\|{\h\w*}\)'
-" specials
-syn match screenSpecials contained "%\([%aAdDhlmMstuwWyY?:{]\|[0-9]*n\|0?cC\)"
+syn keyword screenBoolean on off
-" commands
-syn keyword screenCommands acladd aclchg acldel aclgrp aclumask activity addacl allpartial at attrcolor
-syn keyword screenCommands autodetach bell_msg bind bindkey bufferfile caption chacl chdir clear colon
-syn keyword screenCommands command compacthist console copy copy_regcrlf debug detach digraph dinfo crlf
-syn keyword screenCommands displays dumptermcap echo exec fit focus height help history
-syn keyword screenCommands info kill lastmsg license lockscreen markkeys meta msgminwait msgwait
-syn keyword screenCommands multiuser nethack next nonblock number only other partial_state
-syn keyword screenCommands password paste pastefont pow_break pow_detach_msg prev printcmd process
-syn keyword screenCommands quit readbuf readreg redisplay register remove removebuf reset resize screen
-syn keyword screenCommands select sessionname setenv shelltitle silencewait verbose
-syn keyword screenCommands sleep sorendition split startup_message stuff su suspend time
-syn keyword screenCommands title umask version wall width writebuf xoff xon defmode hardstatus
-syn keyword screenCommands altscreen break breaktype copy_reg defbreaktype defencoding deflog encoding
-syn keyword screenCommands eval ignorecase ins_reg maxwin partial pow_detach setsid source unsetenv
-syn keyword screenCommands windowlist windows
-syn match screenCommands "\<\(def\)\=\(autonuke\|bce\|c1\|charset\|escape\|flow\|kanji\|login\|monitor\|hstatus\|obuflimit\)\>"
-syn match screenCommands "\<\(def\)\=\(scrollback\|shell\|silence\|slowpaste\|utf8\|wrap\|writelock\|zombie\|gr\)\>"
-syn match screenCommands "\<hard\(copy\(_append\|dir\)\=\|status\)\>"
-syn match screenCommands "\<log\(file\|in\|tstamp\)\=\>"
-syn match screenCommands "\<map\(default\|notnext\|timeout\)\>"
-syn match screenCommands "\<term\(cap\|info\|capinfo\)\=\>"
-syn match screenCommands "\<vbell\(_msg\|wait\)\=\>"
+syn match screenNumbers display '\<\d\+\>'
-if exists("screen_minlines")
- let b:screen_minlines = screen_minlines
-else
- let b:screen_minlines = 10
-endif
-exec "syn sync minlines=" . b:screen_minlines
+syn match screenSpecials contained
+ \ '%\([%aAdDhlmMstuwWyY?:{]\|[0-9]*n\|0?cC\)'
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_screen_syn_inits")
- if version < 508
- let did_screen_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+syn keyword screenCommands acladd aclchg acldel aclgrp aclumask activity
+ \ addacl allpartial at attrcolor autodetach
+ \ bell_msg bind bindkey bufferfile caption chacl
+ \ chdir clear colon command compacthist console
+ \ copy copy_regcrlf debug detach digraph dinfo
+ \ crlf displays dumptermcap echo exec fit focus
+ \ height help history info kill lastmsg license
+ \ lockscreen markkeys meta msgminwait msgwait
+ \ multiuser nethack next nonblock number only
+ \ other partial_state password paste pastefont
+ \ pow_break pow_detach_msg prev printcmd process
+ \ quit readbuf readreg redisplay register
+ \ remove removebuf reset resize screen select
+ \ sessionname setenv shelltitle silencewait
+ \ verbose sleep sorendition split startup_message
+ \ stuff su suspend time title umask version wall
+ \ width writebuf xoff xon defmode hardstatus
+ \ altscreen break breaktype copy_reg defbreaktype
+ \ defencoding deflog encoding eval ignorecase
+ \ ins_reg maxwin partial pow_detach setsid source
+ \ unsetenv windowlist windows defautonuke autonuke
+ \ defbce bce defc1 c1 defcharset charset defescape
+ \ escape defflow flow defkanji kanji deflogin
+ \ login defmonitor monitor defhstatus hstatus
+ \ defobuflimit obuflimit defscrollback scrollback
+ \ defshell shell defsilence silence defslowpaste
+ \ slowpaste defutf8 utf8 defwrap wrap defwritelock
+ \ writelock defzombie zombie defgr gr hardcopy
+ \ hardcopy_append hardcopydir hardstatus log
+ \ logfile login logtstamp mapdefault mapnotnext
+ \ maptimeout term termcap terminfo termcapinfo
+ \ vbell vbell_msg vbellwait
- HiLink screenComment Comment
- HiLink screenTodo Todo
- HiLink screenString String
- HiLink screenLiteral String
- HiLink screenVariable Identifier
- HiLink screenBoolean Boolean
- HiLink screenNumbers Number
- HiLink screenSpecials Special
- HiLink screenCommands Keyword
- delcommand HiLink
-endif
+hi def link screenEscape Special
+hi def link screenComment Comment
+hi def link screenTodo Todo
+hi def link screenString String
+hi def link screenLiteral String
+hi def link screenVariable Identifier
+hi def link screenBoolean Boolean
+hi def link screenNumbers Number
+hi def link screenSpecials Special
+hi def link screenCommands Keyword
let b:current_syntax = "screen"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/sieve.vim b/runtime/syntax/sieve.vim
index 2923f446b..1ce67137c 100644
--- a/runtime/syntax/sieve.vim
+++ b/runtime/syntax/sieve.vim
@@ -1,70 +1,56 @@
" Vim syntax file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/
-" Latest Revision: 2004-11-11
-" arch-tag: 356fad6d-ff6b-453c-bd25-7fc63c4758bc
+" Language: Sieve filtering language input file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
-" Todo
-syn keyword sieveTodo contained TODO FIXME XXX NOTE
+let s:cpo_save = &cpo
+set cpo&vim
-" Comments
-syn region sieveComment matchgroup=sieveComment start='/\*' end='\*/' contains=sieveTodo
-syn region sieveComment matchgroup=sieveComment start='#' end='$' contains=sieveTodo
+syn keyword sieveTodo contained TODO FIXME XXX NOTE
+
+syn region sieveComment matchgroup=sieveComment start='/\*' end='\*/'
+ \ contains=sieveTodo,@Spell
+syn region sieveComment matchgroup=sieveComment start='#' end='$'
+ \ contains=sieveTodo,@Spell
syn case ignore
-" Tags
-syn match sieveTag ':\h\w*'
+syn match sieveTag display ':\h\w*'
-" Numbers
-syn match sieveNumber '\d\+[KMG]\='
+syn match sieveNumber display '\<\d\+[KMG]\=\>'
-" Specials
-syn match sieveSpecial '\\["\\]'
+syn match sieveSpecial display '\\["\\]'
-" Strings
-syn region sieveString matchgroup=sieveString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=sieveSpecial
-syn region sieveString matchgroup=sieveString start='text:' end='\n.\n'
+syn region sieveString matchgroup=sieveString start=+"+
+ \ skip=+\\\\\|\\"+ end=+"+ contains=sieveSpecial
+syn region sieveString matchgroup=sieveString start='text:' end='\n.\n'
-" Keywords
syn keyword sieveConditional if elsif else
-syn keyword sieveTest address allof anyof envelope exists false header not size true
+syn keyword sieveTest address allof anyof envelope exists false header
+ \ not size true
syn keyword sievePreProc require stop
-syn keyword sieveAction reject fileinto redirect keep discard
+syn keyword sieveAction reject fileinto redirect keep discard
syn match sieveKeyword '\<\h\w*\>'
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_sieve_syn_inits")
- if version < 508
- let did_sieve_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink sieveTodo Todo
- HiLink sieveComment Comment
- HiLink sieveTag Type
- HiLink sieveNumber Number
- HiLink sieveSpecial Special
- HiLink sieveString String
- HiLink sieveConditional Conditional
- HiLink sieveTest Keyword
- HiLink sievePreProc PreProc
- HiLink sieveAction Keyword
- HiLink sieveKeyword Keyword
+syn case match
- delcommand HiLink
-endif
+hi def link sieveTodo Todo
+hi def link sieveComment Comment
+hi def link sieveTag Type
+hi def link sieveNumber Number
+hi def link sieveSpecial Special
+hi def link sieveString String
+hi def link sieveConditional Conditional
+hi def link sieveTest Keyword
+hi def link sievePreProc PreProc
+hi def link sieveAction Keyword
+hi def link sieveKeyword Keyword
let b:current_syntax = "sieve"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/sudoers.vim b/runtime/syntax/sudoers.vim
index 72a7890be..e197ca2c7 100644
--- a/runtime/syntax/sudoers.vim
+++ b/runtime/syntax/sudoers.vim
@@ -1,164 +1,154 @@
" Vim syntax file
-" Language: sudoers(5) configuration files.
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/
-" Latest Revision: 2004-12-17
-" arch-tag: 02fc3bc8-4308-466f-b83e-718a7487b198
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: sudoers(5) configuration files
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:current_syntax")
finish
endif
+let s:cpo_save = &cpo
+set cpo&vim
+
" TODO: instead of 'skipnl', we would like to match a specific group that would
" match \\$ and then continue with the nextgroup, actually, the skipnl doesn't
" work...
" TODO: treat 'ALL' like a special (yay, a bundle of new rules!!!)
-" User Specs
syn match sudoersUserSpec '^' nextgroup=@sudoersUserInSpec skipwhite
-syn match sudoersSpecEquals contained '=' nextgroup=@sudoersCmndSpecList skipwhite
-
-syn cluster sudoersCmndSpecList contains=sudoersUserRunasBegin,sudoersPASSWD,@sudoersCmndInSpec
-
-" Todo
-syn keyword sudoersTodo contained TODO FIXME XXX NOTE
-
-" Comments
-syn region sudoersComment matchgroup=sudoersComment start='#' end='$' contains=sudoersTodo
-
-" Aliases
-syn keyword sudoersAlias User_Alias Runas_Alias nextgroup=sudoersUserAlias skipwhite skipnl
-syn keyword sudoersAlias Host_Alias nextgroup=sudoersHostAlias skipwhite skipnl
-syn keyword sudoersAlias Cmnd_Alias nextgroup=sudoersCmndAlias skipwhite skipnl
-
-" Names
-syn match sudoersUserAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersUserAliasEquals skipwhite skipnl
-syn match sudoersUserNameInList contained '\<\l\+\>' nextgroup=@sudoersUserList skipwhite skipnl
-syn match sudoersUIDInList contained '#\d\+\>' nextgroup=@sudoersUserList skipwhite skipnl
-syn match sudoersGroupInList contained '%\l\+\>' nextgroup=@sudoersUserList skipwhite skipnl
-syn match sudoersUserNetgroupInList contained '+\l\+\>' nextgroup=@sudoersUserList skipwhite skipnl
-syn match sudoersUserAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserList skipwhite skipnl
-
-syn match sudoersUserName contained '\<\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
-syn match sudoersUID contained '#\d\+\>' nextgroup=@sudoersParameter skipwhite skipnl
-syn match sudoersGroup contained '%\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
-syn match sudoersUserNetgroup contained '+\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
-syn match sudoersUserAliasRef contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersParameter skipwhite skipnl
-
-syn match sudoersUserNameInSpec contained '\<\l\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl
-syn match sudoersUIDInSpec contained '#\d\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl
-syn match sudoersGroupInSpec contained '%\l\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl
-syn match sudoersUserNetgroupInSpec contained '+\l\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl
-syn match sudoersUserAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserSpec skipwhite skipnl
-
-syn match sudoersUserNameInRunas contained '\<\l\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl
-syn match sudoersUIDInRunas contained '#\d\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl
-syn match sudoersGroupInRunas contained '%\l\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl
-syn match sudoersUserNetgroupInRunas contained '+\l\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl
-syn match sudoersUserAliasInRunas contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserRunas skipwhite skipnl
-
-syn match sudoersHostAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersHostAliasEquals skipwhite skipnl
-syn match sudoersHostNameInList contained '\<\l\+\>' nextgroup=@sudoersHostList skipwhite skipnl
-syn match sudoersIPAddrInList contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersHostList skipwhite skipnl
+syn match sudoersSpecEquals contained '=' nextgroup=@sudoersCmndSpecList skipwhite
+
+syn cluster sudoersCmndSpecList contains=sudoersUserRunasBegin,sudoersPASSWD,@sudoersCmndInSpec
+
+syn keyword sudoersTodo contained TODO FIXME XXX NOTE
+
+syn region sudoersComment matchgroup=sudoersComment start='#' end='$' contains=sudoersTodo
+
+syn keyword sudoersAlias User_Alias Runas_Alias nextgroup=sudoersUserAlias skipwhite skipnl
+syn keyword sudoersAlias Host_Alias nextgroup=sudoersHostAlias skipwhite skipnl
+syn keyword sudoersAlias Cmnd_Alias nextgroup=sudoersCmndAlias skipwhite skipnl
+
+syn match sudoersUserAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersUserAliasEquals skipwhite skipnl
+syn match sudoersUserNameInList contained '\<\l\+\>' nextgroup=@sudoersUserList skipwhite skipnl
+syn match sudoersUIDInList contained '#\d\+\>' nextgroup=@sudoersUserList skipwhite skipnl
+syn match sudoersGroupInList contained '%\l\+\>' nextgroup=@sudoersUserList skipwhite skipnl
+syn match sudoersUserNetgroupInList contained '+\l\+\>' nextgroup=@sudoersUserList skipwhite skipnl
+syn match sudoersUserAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserList skipwhite skipnl
+
+syn match sudoersUserName contained '\<\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
+syn match sudoersUID contained '#\d\+\>' nextgroup=@sudoersParameter skipwhite skipnl
+syn match sudoersGroup contained '%\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
+syn match sudoersUserNetgroup contained '+\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
+syn match sudoersUserAliasRef contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersParameter skipwhite skipnl
+
+syn match sudoersUserNameInSpec contained '\<\l\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl
+syn match sudoersUIDInSpec contained '#\d\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl
+syn match sudoersGroupInSpec contained '%\l\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl
+syn match sudoersUserNetgroupInSpec contained '+\l\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl
+syn match sudoersUserAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserSpec skipwhite skipnl
+
+syn match sudoersUserNameInRunas contained '\<\l\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl
+syn match sudoersUIDInRunas contained '#\d\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl
+syn match sudoersGroupInRunas contained '%\l\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl
+syn match sudoersUserNetgroupInRunas contained '+\l\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl
+syn match sudoersUserAliasInRunas contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserRunas skipwhite skipnl
+
+syn match sudoersHostAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersHostAliasEquals skipwhite skipnl
+syn match sudoersHostNameInList contained '\<\l\+\>' nextgroup=@sudoersHostList skipwhite skipnl
+syn match sudoersIPAddrInList contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersHostList skipwhite skipnl
syn match sudoersNetworkInList contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersHostList skipwhite skipnl
-syn match sudoersHostNetgroupInList contained '+\l\+\>' nextgroup=@sudoersHostList skipwhite skipnl
-syn match sudoersHostAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersHostList skipwhite skipnl
+syn match sudoersHostNetgroupInList contained '+\l\+\>' nextgroup=@sudoersHostList skipwhite skipnl
+syn match sudoersHostAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersHostList skipwhite skipnl
-syn match sudoersHostName contained '\<\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
-syn match sudoersIPAddr contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersParameter skipwhite skipnl
-syn match sudoersNetwork contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersParameter skipwhite skipnl
-syn match sudoersHostNetgroup contained '+\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
-syn match sudoersHostAliasRef contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersParameter skipwhite skipnl
+syn match sudoersHostName contained '\<\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
+syn match sudoersIPAddr contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersParameter skipwhite skipnl
+syn match sudoersNetwork contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersParameter skipwhite skipnl
+syn match sudoersHostNetgroup contained '+\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl
+syn match sudoersHostAliasRef contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersParameter skipwhite skipnl
-syn match sudoersHostNameInSpec contained '\<\l\+\>' nextgroup=@sudoersHostSpec skipwhite skipnl
-syn match sudoersIPAddrInSpec contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersHostSpec skipwhite skipnl
+syn match sudoersHostNameInSpec contained '\<\l\+\>' nextgroup=@sudoersHostSpec skipwhite skipnl
+syn match sudoersIPAddrInSpec contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersHostSpec skipwhite skipnl
syn match sudoersNetworkInSpec contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersHostSpec skipwhite skipnl
-syn match sudoersHostNetgroupInSpec contained '+\l\+\>' nextgroup=@sudoersHostSpec skipwhite skipnl
-syn match sudoersHostAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersHostSpec skipwhite skipnl
+syn match sudoersHostNetgroupInSpec contained '+\l\+\>' nextgroup=@sudoersHostSpec skipwhite skipnl
+syn match sudoersHostAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersHostSpec skipwhite skipnl
-syn match sudoersCmndAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersCmndAliasEquals skipwhite skipnl
+syn match sudoersCmndAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersCmndAliasEquals skipwhite skipnl
syn match sudoersCmndNameInList contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=@sudoersCmndList,sudoersCommandEmpty,sudoersCommandArgs skipwhite
-syn match sudoersCmndAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersCmndList skipwhite skipnl
+syn match sudoersCmndAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersCmndList skipwhite skipnl
syn match sudoersCmndNameInSpec contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=@sudoersCmndSpec,sudoersCommandEmptyInSpec,sudoersCommandArgsInSpec skipwhite
-syn match sudoersCmndAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersCmndSpec skipwhite skipnl
+syn match sudoersCmndAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersCmndSpec skipwhite skipnl
-" Delimiters
-syn match sudoersUserAliasEquals contained '=' nextgroup=@sudoersUserInList skipwhite skipnl
-syn match sudoersUserListComma contained ',' nextgroup=@sudoersUserInList skipwhite skipnl
-syn match sudoersUserListColon contained ':' nextgroup=sudoersUserAlias skipwhite skipnl
-syn cluster sudoersUserList contains=sudoersUserListComma,sudoersUserListColon
+syn match sudoersUserAliasEquals contained '=' nextgroup=@sudoersUserInList skipwhite skipnl
+syn match sudoersUserListComma contained ',' nextgroup=@sudoersUserInList skipwhite skipnl
+syn match sudoersUserListColon contained ':' nextgroup=sudoersUserAlias skipwhite skipnl
+syn cluster sudoersUserList contains=sudoersUserListComma,sudoersUserListColon
-syn match sudoersUserSpecComma contained ',' nextgroup=@sudoersUserInSpec skipwhite skipnl
-syn cluster sudoersUserSpec contains=sudoersUserSpecComma,@sudoersHostInSpec
+syn match sudoersUserSpecComma contained ',' nextgroup=@sudoersUserInSpec skipwhite skipnl
+syn cluster sudoersUserSpec contains=sudoersUserSpecComma,@sudoersHostInSpec
syn match sudoersUserRunasBegin contained '(' nextgroup=@sudoersUserInRunas skipwhite skipnl
-syn match sudoersUserRunasComma contained ',' nextgroup=@sudoersUserInRunas skipwhite skipnl
-syn match sudoersUserRunasEnd contained ')' nextgroup=sudoersPASSWD,@sudoersCmndInSpec skipwhite skipnl
-syn cluster sudoersUserRunas contains=sudoersUserRunasComma,@sudoersUserInRunas,sudoersUserRunasEnd
+syn match sudoersUserRunasComma contained ',' nextgroup=@sudoersUserInRunas skipwhite skipnl
+syn match sudoersUserRunasEnd contained ')' nextgroup=sudoersPASSWD,@sudoersCmndInSpec skipwhite skipnl
+syn cluster sudoersUserRunas contains=sudoersUserRunasComma,@sudoersUserInRunas,sudoersUserRunasEnd
-syn match sudoersHostAliasEquals contained '=' nextgroup=@sudoersHostInList skipwhite skipnl
-syn match sudoersHostListComma contained ',' nextgroup=@sudoersHostInList skipwhite skipnl
-syn match sudoersHostListColon contained ':' nextgroup=sudoersHostAlias skipwhite skipnl
-syn cluster sudoersHostList contains=sudoersHostListComma,sudoersHostListColon
+syn match sudoersHostAliasEquals contained '=' nextgroup=@sudoersHostInList skipwhite skipnl
+syn match sudoersHostListComma contained ',' nextgroup=@sudoersHostInList skipwhite skipnl
+syn match sudoersHostListColon contained ':' nextgroup=sudoersHostAlias skipwhite skipnl
+syn cluster sudoersHostList contains=sudoersHostListComma,sudoersHostListColon
-syn match sudoersHostSpecComma contained ',' nextgroup=@sudoersHostInSpec skipwhite skipnl
-syn cluster sudoersHostSpec contains=sudoersHostSpecComma,sudoersSpecEquals
+syn match sudoersHostSpecComma contained ',' nextgroup=@sudoersHostInSpec skipwhite skipnl
+syn cluster sudoersHostSpec contains=sudoersHostSpecComma,sudoersSpecEquals
-syn match sudoersCmndAliasEquals contained '=' nextgroup=@sudoersCmndInList skipwhite skipnl
-syn match sudoersCmndListComma contained ',' nextgroup=@sudoersCmndInList skipwhite skipnl
-syn match sudoersCmndListColon contained ':' nextgroup=sudoersCmndAlias skipwhite skipnl
-syn cluster sudoersCmndList contains=sudoersCmndListComma,sudoersCmndListColon
+syn match sudoersCmndAliasEquals contained '=' nextgroup=@sudoersCmndInList skipwhite skipnl
+syn match sudoersCmndListComma contained ',' nextgroup=@sudoersCmndInList skipwhite skipnl
+syn match sudoersCmndListColon contained ':' nextgroup=sudoersCmndAlias skipwhite skipnl
+syn cluster sudoersCmndList contains=sudoersCmndListComma,sudoersCmndListColon
syn match sudoersCmndSpecComma contained ',' nextgroup=@sudoersCmndSpecList skipwhite skipnl
-syn match sudoersCmndSpecColon contained ':' nextgroup=@sudoersUserInSpec skipwhite skipnl
-syn cluster sudoersCmndSpec contains=sudoersCmndSpecComma,sudoersCmndSpecColon
+syn match sudoersCmndSpecColon contained ':' nextgroup=@sudoersUserInSpec skipwhite skipnl
+syn cluster sudoersCmndSpec contains=sudoersCmndSpecComma,sudoersCmndSpecColon
-" Lists
-syn cluster sudoersUserInList contains=sudoersUserNegationInList,sudoersUserNameInList,sudoersUIDInList,sudoersGroupInList,sudoersUserNetgroupInList,sudoersUserAliasInList
-syn cluster sudoersHostInList contains=sudoersHostNegationInList,sudoersHostNameInList,sudoersIPAddrInList,sudoersNetworkInList,sudoersHostNetgroupInList,sudoersHostAliasInList
-syn cluster sudoersCmndInList contains=sudoersCmndNegationInList,sudoersCmndNameInList,sudoersCmndAliasInList
+syn cluster sudoersUserInList contains=sudoersUserNegationInList,sudoersUserNameInList,sudoersUIDInList,sudoersGroupInList,sudoersUserNetgroupInList,sudoersUserAliasInList
+syn cluster sudoersHostInList contains=sudoersHostNegationInList,sudoersHostNameInList,sudoersIPAddrInList,sudoersNetworkInList,sudoersHostNetgroupInList,sudoersHostAliasInList
+syn cluster sudoersCmndInList contains=sudoersCmndNegationInList,sudoersCmndNameInList,sudoersCmndAliasInList
-syn cluster sudoersUser contains=sudoersUserNegation,sudoersUserName,sudoersUID,sudoersGroup,sudoersUserNetgroup,sudoersUserAliasRef
-syn cluster sudoersHost contains=sudoersHostNegation,sudoersHostName,sudoersIPAddr,sudoersNetwork,sudoersHostNetgroup,sudoersHostAliasRef
+syn cluster sudoersUser contains=sudoersUserNegation,sudoersUserName,sudoersUID,sudoersGroup,sudoersUserNetgroup,sudoersUserAliasRef
+syn cluster sudoersHost contains=sudoersHostNegation,sudoersHostName,sudoersIPAddr,sudoersNetwork,sudoersHostNetgroup,sudoersHostAliasRef
-syn cluster sudoersUserInSpec contains=sudoersUserNegationInSpec,sudoersUserNameInSpec,sudoersUIDInSpec,sudoersGroupInSpec,sudoersUserNetgroupInSpec,sudoersUserAliasInSpec
-syn cluster sudoersHostInSpec contains=sudoersHostNegationInSpec,sudoersHostNameInSpec,sudoersIPAddrInSpec,sudoersNetworkInSpec,sudoersHostNetgroupInSpec,sudoersHostAliasInSpec
-syn cluster sudoersUserInRunas contains=sudoersUserNegationInRunas,sudoersUserNameInRunas,sudoersUIDInRunas,sudoersGroupInRunas,sudoersUserNetgroupInRunas,sudoersUserAliasInRunas
-syn cluster sudoersCmndInSpec contains=sudoersCmndNegationInSpec,sudoersCmndNameInSpec,sudoersCmndAliasInSpec
+syn cluster sudoersUserInSpec contains=sudoersUserNegationInSpec,sudoersUserNameInSpec,sudoersUIDInSpec,sudoersGroupInSpec,sudoersUserNetgroupInSpec,sudoersUserAliasInSpec
+syn cluster sudoersHostInSpec contains=sudoersHostNegationInSpec,sudoersHostNameInSpec,sudoersIPAddrInSpec,sudoersNetworkInSpec,sudoersHostNetgroupInSpec,sudoersHostAliasInSpec
+syn cluster sudoersUserInRunas contains=sudoersUserNegationInRunas,sudoersUserNameInRunas,sudoersUIDInRunas,sudoersGroupInRunas,sudoersUserNetgroupInRunas,sudoersUserAliasInRunas
+syn cluster sudoersCmndInSpec contains=sudoersCmndNegationInSpec,sudoersCmndNameInSpec,sudoersCmndAliasInSpec
-" Operators
syn match sudoersUserNegationInList contained '!\+' nextgroup=@sudoersUserInList skipwhite skipnl
syn match sudoersHostNegationInList contained '!\+' nextgroup=@sudoersHostInList skipwhite skipnl
syn match sudoersCmndNegationInList contained '!\+' nextgroup=@sudoersCmndInList skipwhite skipnl
-syn match sudoersUserNegation contained '!\+' nextgroup=@sudoersUser skipwhite skipnl
-syn match sudoersHostNegation contained '!\+' nextgroup=@sudoersHost skipwhite skipnl
+syn match sudoersUserNegation contained '!\+' nextgroup=@sudoersUser skipwhite skipnl
+syn match sudoersHostNegation contained '!\+' nextgroup=@sudoersHost skipwhite skipnl
syn match sudoersUserNegationInSpec contained '!\+' nextgroup=@sudoersUserInSpec skipwhite skipnl
syn match sudoersHostNegationInSpec contained '!\+' nextgroup=@sudoersHostInSpec skipwhite skipnl
syn match sudoersUserNegationInRunas contained '!\+' nextgroup=@sudoersUserInRunas skipwhite skipnl
syn match sudoersCmndNegationInSpec contained '!\+' nextgroup=@sudoersCmndInSpec skipwhite skipnl
-" Arguments
-syn match sudoersCommandArgs contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersCommandArgs,@sudoersCmndList skipwhite
-syn match sudoersCommandEmpty contained '""' nextgroup=@sudoersCmndList skipwhite skipnl
+syn match sudoersCommandArgs contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersCommandArgs,@sudoersCmndList skipwhite
+syn match sudoersCommandEmpty contained '""' nextgroup=@sudoersCmndList skipwhite skipnl
syn match sudoersCommandArgsInSpec contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersCommandArgsInSpec,@sudoersCmndSpec skipwhite
syn match sudoersCommandEmptyInSpec contained '""' nextgroup=@sudoersCmndSpec skipwhite skipnl
-" Default Entries
-syn keyword sudoersDefaultEntry Defaults nextgroup=sudoersDefaultTypeAt,sudoersDefaultTypeColon,sudoersDefaultTypeGreaterThan,@sudoersParameter skipwhite skipnl
-syn match sudoersDefaultTypeAt contained '@' nextgroup=@sudoersHost skipwhite skipnl
-syn match sudoersDefaultTypeColon contained ':' nextgroup=@sudoersUser skipwhite skipnl
+syn keyword sudoersDefaultEntry Defaults nextgroup=sudoersDefaultTypeAt,sudoersDefaultTypeColon,sudoersDefaultTypeGreaterThan,@sudoersParameter skipwhite skipnl
+syn match sudoersDefaultTypeAt contained '@' nextgroup=@sudoersHost skipwhite skipnl
+syn match sudoersDefaultTypeColon contained ':' nextgroup=@sudoersUser skipwhite skipnl
syn match sudoersDefaultTypeGreaterThan contained '>' nextgroup=@sudoersUser skipwhite skipnl
" TODO: could also deal with special characters here
+syn match sudoersBooleanParameter contained '!' nextgroup=sudoersBooleanParameter skipwhite skipnl
syn keyword sudoersBooleanParameter contained long_opt_prompt ignore_dot mail_always mail_badpass mail_no_user mail_no_perms tty_tickets lecture authenticate root_sudo log_host log_year shell_noargs set_home always_set_home path_info preserve_groups fqdn insults requiretty env_editor rootpw runaspw targetpw set_logname stay_setuid env_reset use_loginclass nextgroup=sudoersParameterListComma skipwhite skipnl
syn keyword sudoersIntegerParameter contained passwd_tries loglinelen timestamp_timeout passwd_timeout umask nextgroup=sudoersIntegerParameterEquals skipwhite skipnl
syn keyword sudoersStringParameter contained mailsub badpass_message timestampdir timestampowner passprompt runas_default syslog_goodpri syslog_badpri editor logfile syslog mailerpath mailerflags mailto exempt_group verifypw listpw nextgroup=sudoersStringParameterEquals skipwhite skipnl
@@ -166,125 +156,111 @@ syn keyword sudoersListParameter contained env_check env_delete env_keep next
syn match sudoersParameterListComma contained ',' nextgroup=@sudoersParameter skipwhite skipnl
-syn cluster sudoersParameter contains=sudoersBooleanParameter,sudoersIntegerParameterEquals,sudoersStringParameter,sudoersListParameter
+syn cluster sudoersParameter contains=sudoersBooleanParameter,sudoersIntegerParameterEquals,sudoersStringParameter,sudoersListParameter
syn match sudoersIntegerParameterEquals contained '[+-]\==' nextgroup=sudoersIntegerValue skipwhite skipnl
syn match sudoersStringParameterEquals contained '[+-]\==' nextgroup=sudoersStringValue skipwhite skipnl
-syn match sudoersListParameterEquals contained '[+-]\==' nextgroup=sudoersListValue skipwhite skipnl
-
-syn match sudoersIntegerValue contained '\d\+' nextgroup=sudoersParameterListComma skipwhite skipnl
-syn match sudoersStringValue contained '[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl
-syn region sudoersStringValue contained start=+"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl
-syn match sudoersListValue contained '[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl
-syn region sudoersListValue contained start=+"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl
-
-" Special for specs
-syn match sudoersPASSWD contained '\%(NO\)\=PASSWD:' nextgroup=@sudoersCmndInSpec skipwhite
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_sudoers_syn_inits")
- if version < 508
- let did_sudoers_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink sudoersSpecEquals Operator
- HiLink sudoersTodo Todo
- HiLink sudoersComment Comment
- HiLink sudoersAlias Keyword
- HiLink sudoersUserAlias Identifier
- HiLink sudoersUserNameInList String
- HiLink sudoersUIDInList Number
- HiLink sudoersGroupInList PreProc
- HiLink sudoersUserNetgroupInList PreProc
- HiLink sudoersUserAliasInList PreProc
- HiLink sudoersUserName String
- HiLink sudoersUID Number
- HiLink sudoersGroup PreProc
- HiLink sudoersUserNetgroup PreProc
- HiLink sudoersUserAliasRef PreProc
- HiLink sudoersUserNameInSpec String
- HiLink sudoersUIDInSpec Number
- HiLink sudoersGroupInSpec PreProc
- HiLink sudoersUserNetgroupInSpec PreProc
- HiLink sudoersUserAliasInSpec PreProc
- HiLink sudoersUserNameInRunas String
- HiLink sudoersUIDInRunas Number
- HiLink sudoersGroupInRunas PreProc
- HiLink sudoersUserNetgroupInRunas PreProc
- HiLink sudoersUserAliasInRunas PreProc
- HiLink sudoersHostAlias Identifier
- HiLink sudoersHostNameInList String
- HiLink sudoersIPAddrInList Number
- HiLink sudoersNetworkInList Number
- HiLink sudoersHostNetgroupInList PreProc
- HiLink sudoersHostAliasInList PreProc
- HiLink sudoersHostName String
- HiLink sudoersIPAddr Number
- HiLink sudoersNetwork Number
- HiLink sudoersHostNetgroup PreProc
- HiLink sudoersHostAliasRef PreProc
- HiLink sudoersHostNameInSpec String
- HiLink sudoersIPAddrInSpec Number
- HiLink sudoersNetworkInSpec Number
- HiLink sudoersHostNetgroupInSpec PreProc
- HiLink sudoersHostAliasInSpec PreProc
- HiLink sudoersCmndAlias Identifier
- HiLink sudoersCmndNameInList String
- HiLink sudoersCmndAliasInList PreProc
- HiLink sudoersCmndNameInSpec String
- HiLink sudoersCmndAliasInSpec PreProc
- HiLink sudoersUserAliasEquals Operator
- HiLink sudoersUserListComma Delimiter
- HiLink sudoersUserListColon Delimiter
- HiLink sudoersUserSpecComma Delimiter
- HiLink sudoersUserRunasBegin Delimiter
- HiLink sudoersUserRunasComma Delimiter
- HiLink sudoersUserRunasEnd Delimiter
- HiLink sudoersHostAliasEquals Operator
- HiLink sudoersHostListComma Delimiter
- HiLink sudoersHostListColon Delimiter
- HiLink sudoersHostSpecComma Delimiter
- HiLink sudoersCmndAliasEquals Operator
- HiLink sudoersCmndListComma Delimiter
- HiLink sudoersCmndListColon Delimiter
- HiLink sudoersCmndSpecComma Delimiter
- HiLink sudoersCmndSpecColon Delimiter
- HiLink sudoersUserNegationInList Operator
- HiLink sudoersHostNegationInList Operator
- HiLink sudoersCmndNegationInList Operator
- HiLink sudoersUserNegation Operator
- HiLink sudoersHostNegation Operator
- HiLink sudoersUserNegationInSpec Operator
- HiLink sudoersHostNegationInSpec Operator
- HiLink sudoersUserNegationInRunas Operator
- HiLink sudoersCmndNegationInSpec Operator
- HiLink sudoersCommandArgs String
- HiLink sudoersCommandEmpty Special
- HiLink sudoersDefaultEntry Keyword
- HiLink sudoersDefaultTypeAt Special
- HiLink sudoersDefaultTypeColon Special
- HiLink sudoersDefaultTypeGreaterThan Special
- HiLink sudoersBooleanParameter Identifier
- HiLink sudoersIntegerParameter Identifier
- HiLink sudoersStringParameter Identifier
- HiLink sudoersListParameter Identifier
- HiLink sudoersParameterListComma Delimiter
- HiLink sudoersIntegerParameterEquals Operator
- HiLink sudoersStringParameterEquals Operator
- HiLink sudoersListParameterEquals Operator
- HiLink sudoersIntegerValue Number
- HiLink sudoersStringValue String
- HiLink sudoersListValue String
- HiLink sudoersPASSWD Special
-
- delcommand HiLink
-endif
+syn match sudoersListParameterEquals contained '[+-]\==' nextgroup=sudoersListValue skipwhite skipnl
+
+syn match sudoersIntegerValue contained '\d\+' nextgroup=sudoersParameterListComma skipwhite skipnl
+syn match sudoersStringValue contained '[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl
+syn region sudoersStringValue contained start=+"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl
+syn match sudoersListValue contained '[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl
+syn region sudoersListValue contained start=+"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl
+
+syn match sudoersPASSWD contained '\%(NO\)\=PASSWD:' nextgroup=@sudoersCmndInSpec skipwhite
+
+hi def link sudoersSpecEquals Operator
+hi def link sudoersTodo Todo
+hi def link sudoersComment Comment
+hi def link sudoersAlias Keyword
+hi def link sudoersUserAlias Identifier
+hi def link sudoersUserNameInList String
+hi def link sudoersUIDInList Number
+hi def link sudoersGroupInList PreProc
+hi def link sudoersUserNetgroupInList PreProc
+hi def link sudoersUserAliasInList PreProc
+hi def link sudoersUserName String
+hi def link sudoersUID Number
+hi def link sudoersGroup PreProc
+hi def link sudoersUserNetgroup PreProc
+hi def link sudoersUserAliasRef PreProc
+hi def link sudoersUserNameInSpec String
+hi def link sudoersUIDInSpec Number
+hi def link sudoersGroupInSpec PreProc
+hi def link sudoersUserNetgroupInSpec PreProc
+hi def link sudoersUserAliasInSpec PreProc
+hi def link sudoersUserNameInRunas String
+hi def link sudoersUIDInRunas Number
+hi def link sudoersGroupInRunas PreProc
+hi def link sudoersUserNetgroupInRunas PreProc
+hi def link sudoersUserAliasInRunas PreProc
+hi def link sudoersHostAlias Identifier
+hi def link sudoersHostNameInList String
+hi def link sudoersIPAddrInList Number
+hi def link sudoersNetworkInList Number
+hi def link sudoersHostNetgroupInList PreProc
+hi def link sudoersHostAliasInList PreProc
+hi def link sudoersHostName String
+hi def link sudoersIPAddr Number
+hi def link sudoersNetwork Number
+hi def link sudoersHostNetgroup PreProc
+hi def link sudoersHostAliasRef PreProc
+hi def link sudoersHostNameInSpec String
+hi def link sudoersIPAddrInSpec Number
+hi def link sudoersNetworkInSpec Number
+hi def link sudoersHostNetgroupInSpec PreProc
+hi def link sudoersHostAliasInSpec PreProc
+hi def link sudoersCmndAlias Identifier
+hi def link sudoersCmndNameInList String
+hi def link sudoersCmndAliasInList PreProc
+hi def link sudoersCmndNameInSpec String
+hi def link sudoersCmndAliasInSpec PreProc
+hi def link sudoersUserAliasEquals Operator
+hi def link sudoersUserListComma Delimiter
+hi def link sudoersUserListColon Delimiter
+hi def link sudoersUserSpecComma Delimiter
+hi def link sudoersUserRunasBegin Delimiter
+hi def link sudoersUserRunasComma Delimiter
+hi def link sudoersUserRunasEnd Delimiter
+hi def link sudoersHostAliasEquals Operator
+hi def link sudoersHostListComma Delimiter
+hi def link sudoersHostListColon Delimiter
+hi def link sudoersHostSpecComma Delimiter
+hi def link sudoersCmndAliasEquals Operator
+hi def link sudoersCmndListComma Delimiter
+hi def link sudoersCmndListColon Delimiter
+hi def link sudoersCmndSpecComma Delimiter
+hi def link sudoersCmndSpecColon Delimiter
+hi def link sudoersUserNegationInList Operator
+hi def link sudoersHostNegationInList Operator
+hi def link sudoersCmndNegationInList Operator
+hi def link sudoersUserNegation Operator
+hi def link sudoersHostNegation Operator
+hi def link sudoersUserNegationInSpec Operator
+hi def link sudoersHostNegationInSpec Operator
+hi def link sudoersUserNegationInRunas Operator
+hi def link sudoersCmndNegationInSpec Operator
+hi def link sudoersCommandArgs String
+hi def link sudoersCommandEmpty Special
+hi def link sudoersDefaultEntry Keyword
+hi def link sudoersDefaultTypeAt Special
+hi def link sudoersDefaultTypeColon Special
+hi def link sudoersDefaultTypeGreaterThan Special
+hi def link sudoersBooleanParameter Identifier
+hi def link sudoersIntegerParameter Identifier
+hi def link sudoersStringParameter Identifier
+hi def link sudoersListParameter Identifier
+hi def link sudoersParameterListComma Delimiter
+hi def link sudoersIntegerParameterEquals Operator
+hi def link sudoersStringParameterEquals Operator
+hi def link sudoersListParameterEquals Operator
+hi def link sudoersIntegerValue Number
+hi def link sudoersStringValue String
+hi def link sudoersListValue String
+hi def link sudoersPASSWD Special
let b:current_syntax = "sudoers"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/sysctl.vim b/runtime/syntax/sysctl.vim
new file mode 100644
index 000000000..460d0ac1f
--- /dev/null
+++ b/runtime/syntax/sysctl.vim
@@ -0,0 +1,39 @@
+" Vim syntax file
+" Language: sysctl.conf(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn match sysctlBegin display '^'
+ \ nextgroup=sysctlToken,sysctlComment skipwhite
+
+syn match sysctlToken contained display '\S\+'
+ \ nextgroup=sysctlTokenEq skipwhite
+
+syn match sysctlTokenEq contained display '=' nextgroup=sysctlValue skipwhite
+
+syn region sysctlValue contained display oneline
+ \ matchgroup=sysctlValue start='\S'
+ \ matchgroup=Normal end='\s*$'
+
+syn keyword sysctlTodo contained TODO FIXME XXX NOTE
+
+syn region sysctlComment display oneline start='^\s*[#;]' end='$'
+ \ contains=sysctlTodo,@Spell
+
+hi def link sysctlTodo Todo
+hi def link sysctlComment Comment
+hi def link sysctlToken Identifier
+hi def link sysctlTokenEq Operator
+hi def link sysctlValue String
+
+let b:current_syntax = "sysctl"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/terminfo.vim b/runtime/syntax/terminfo.vim
index 6ac7ffaf3..c83a3a3f4 100644
--- a/runtime/syntax/terminfo.vim
+++ b/runtime/syntax/terminfo.vim
@@ -1,115 +1,93 @@
" Vim syntax file
-" Language: Terminfo definition
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/terminfo/
-" Latest Revision: 2004-05-22
-" arch-tag: 8464dd47-0c5a-47d5-87ed-a2ad99e1196f
+" Language: terminfo(5) definition
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
-" keywords (define first as to not mess up comments
-syn match terminfoKeywords "[,=#|]"
+let s:cpo_save = &cpo
+set cpo&vim
-" todo
-syn keyword terminfoTodo contained TODO FIXME XXX NOTE
+syn match terminfoKeywords '[,=#|]'
-" comments
-syn region terminfoComment matchgroup=terminfoComment start="^#" end="$" contains=terminfoTodo
+syn keyword terminfoTodo contained TODO FIXME XXX NOTE
-" numbers
-syn match terminfoNumbers "\<[0-9]\+\>"
+syn region terminfoComment matchgroup=terminfoComment start='^#' end='$'
+ \ contains=terminfoTodo,@Spell
-" special keys
-syn match terminfoSpecialChar "\\\(\o\{3}\|[Eenlrtbfs^\,:0]\)"
-syn match terminfoSpecialChar "\^\a"
+syn match terminfoNumbers '\<[0-9]\+\>'
-" delays
-syn match terminfoDelay "$<[0-9]\+>"
+syn match terminfoSpecialChar '\\\(\o\{3}\|[Eenlrtbfs^\,:0]\)'
+syn match terminfoSpecialChar '\^\a'
-" boolean capabilities
-syn keyword terminfoBooleans bw am bce ccc xhp xhpa cpix crxw xt xenl eo gn
-syn keyword terminfoBooleans hc chts km daisy hs hls in lpix da db mir msgr
-syn keyword terminfoBooleans nxon xsb npc ndscr nrrmc os mc5i xcpa sam eslok
-syn keyword terminfoBooleans hz ul xon
+syn match terminfoDelay '$<[0-9]\+>'
-" numeric capabilities
-syn keyword terminfoNumerics cols it lh lw lines lm xmc ma colors pairs wnum
-syn keyword terminfoNumerics ncv nlab pb vt wsl bitwin bitype bufsz btns
-syn keyword terminfoNumerics spinh spinv maddr mjump mcs npins orc orhi orl
-syn keyword terminfoNumerics orvi cps widcs
+syn keyword terminfoBooleans bw am bce ccc xhp xhpa cpix crxw xt xenl eo gn
+ \ hc chts km daisy hs hls in lpix da db mir
+ \ msgr nxon xsb npc ndscr nrrmc os mc5i xcpa
+ \ sam eslok hz ul xon
-" string capabilities
-syn keyword terminfoStrings acsc cbt bel cr cpi lpi chr cvr csr rmp tbc mgc
-syn keyword terminfoStrings clear el1 el ed hpa cmdch cwin cup cud1 home
-syn keyword terminfoStrings civis cub1 mrcup cnorm cuf1 ll cuu1 cvvis defc
-syn keyword terminfoStrings dch1 dl1 dial dsl dclk hd enacs smacs smam blink
-syn keyword terminfoStrings bold smcup smdc dim swidm sdrfq smir sitm slm
-syn keyword terminfoStrings smicm snlq snrmq prot rev invis sshm smso ssubm
-syn keyword terminfoStrings ssupm smul sum smxon ech rmacs rmam sgr0 rmcup
-syn keyword terminfoStrings rmdc rwidm rmir ritm rlm rmicm rshm rmso rsubm
-syn keyword terminfoStrings rsupm rmul rum rmxon pause hook flash ff fsl
-syn keyword terminfoStrings wingo hup is1 is2 is3 if iprog initc initp ich1
-syn keyword terminfoStrings il1 ip ka1 ka3 kb2 kbs kbeg kcbt kc1 kc3 kcan
-syn keyword terminfoStrings ktbc kclr kclo kcmd kcpy kcrt kctab kdch1 kdl1
-syn keyword terminfoStrings kcud1 krmir kend kent kel ked kext
-syn match terminfoStrings "\<kf\([0-9]\|[0-5][0-9]\|6[0-3]\)\>"
-syn keyword terminfoStrings kfnd khlp khome kich1 kil1 kcub1 kll kmrk
-syn keyword terminfoStrings kmsg kmov knxt knp kopn kopt kpp kprv kprt krdo
-syn keyword terminfoStrings kref krfr krpl krst kres kcuf1 ksav kBEG kCAN
-syn keyword terminfoStrings kCMD kCPY kCRT kDC kDL kslt kEND kEOL kEXT kind
-syn keyword terminfoStrings kFND kHLP kHOM kIC kLFT kMSG kMOV kNXT kOPT kPRV
-syn keyword terminfoStrings kPRT kri kRDO kRPL kRIT kRES kSAV kSPD khts kUND
-syn keyword terminfoStrings kspd kund kcuu1 rmkx smkx lf0 lf1 lf10 lf2 lf3
-syn keyword terminfoStrings lf4 lf5 lf6 lf7 lf8 lf9 fln rmln smln rmm smm
-syn keyword terminfoStrings mhpa mcud1 mcub1 mcuf1 mvpa mcuu1 nel porder oc
-syn keyword terminfoStrings op pad dch dl cud mcud ich indn il cub mcub cuf
-syn keyword terminfoStrings mcuf rin cuu mccu pfkey pfloc pfx pln mc0 mc5p
-syn keyword terminfoStrings mc4 mc5 pulse qdial rmclk rep rfi rs1 rs2 rs3 rf
-syn keyword terminfoStrings rc vpa sc ind ri scs sgr setbsmgb smgbp sclk scp
-syn keyword terminfoStrings setb setf smgl smglp smgr smgrp hts smgt smgtp
-syn keyword terminfoStrings wind sbim scsd rbim rcsd subcs supcs ht docr
-syn keyword terminfoStrings tsl tone uc hu
-syn match terminfoStrings "\<u[0-9]\>"
-syn keyword terminfoStrings wait xoffc xonc zerom
-syn keyword terminfoStrings scesa bicr binel birep csnm csin colornm defbi
-syn keyword terminfoStrings devt dispc endbi smpch smsc rmpch rmsc getm
-syn keyword terminfoStrings kmous minfo pctrm pfxl reqmp scesc s0ds s1ds
-syn keyword terminfoStrings s2ds s3ds setab setaf setcolor smglr slines
-syn keyword terminfoStrings smgtb ehhlm elhlm erhlm ethlm evhlm sgr1
-syn keyword terminfoStrings slengthsL
+syn keyword terminfoNumerics cols it lh lw lines lm xmc ma colors pairs wnum
+ \ ncv nlab pb vt wsl bitwin bitype bufsz btns
+ \ spinh spinv maddr mjump mcs npins orc orhi
+ \ orl orvi cps widcs
-" parameterized strings
-syn match terminfoParameters "%[%dcspl+*/mAO&|^=<>!~i?te;-]"
-syn match terminfoParameters "%\('[A-Z]'\|{[0-9]\{1,2}}\|p[1-9]\|P[a-z]\|g[A-Z]\)"
+syn keyword terminfoStrings acsc cbt bel cr cpi lpi chr cvr csr rmp tbc mgc
+ \ clear el1 el ed hpa cmdch cwin cup cud1 home
+ \ civis cub1 mrcup cnorm cuf1 ll cuu1 cvvis
+ \ defc dch1 dl1 dial dsl dclk hd enacs smacs
+ \ smam blink bold smcup smdc dim swidm sdrfq
+ \ smir sitm slm smicm snlq snrmq prot rev
+ \ invis sshm smso ssubm ssupm smul sum smxon
+ \ ech rmacs rmam sgr0 rmcup rmdc rwidm rmir
+ \ ritm rlm rmicm rshm rmso rsubm rsupm rmul
+ \ rum rmxon pause hook flash ff fsl wingo hup
+ \ is1 is2 is3 if iprog initc initp ich1 il1 ip
+ \ ka1 ka3 kb2 kbs kbeg kcbt kc1 kc3 kcan ktbc
+ \ kclr kclo kcmd kcpy kcrt kctab kdch1 kdl1
+ \ kcud1 krmir kend kent kel ked kext kfnd khlp
+ \ khome kich1 kil1 kcub1 kll kmrk kmsg kmov
+ \ knxt knp kopn kopt kpp kprv kprt krdo kref
+ \ krfr krpl krst kres kcuf1 ksav kBEG kCAN
+ \ kCMD kCPY kCRT kDC kDL kslt kEND kEOL kEXT
+ \ kind kFND kHLP kHOM kIC kLFT kMSG kMOV kNXT
+ \ kOPT kPRV kPRT kri kRDO kRPL kRIT kRES kSAV
+ \ kSPD khts kUND kspd kund kcuu1 rmkx smkx
+ \ lf0 lf1 lf10 lf2 lf3 lf4 lf5 lf6 lf7 lf8 lf9
+ \ fln rmln smln rmm smm mhpa mcud1 mcub1 mcuf1
+ \ mvpa mcuu1 nel porder oc op pad dch dl cud
+ \ mcud ich indn il cub mcub cuf mcuf rin cuu
+ \ mccu pfkey pfloc pfx pln mc0 mc5p mc4 mc5
+ \ pulse qdial rmclk rep rfi rs1 rs2 rs3 rf rc
+ \ vpa sc ind ri scs sgr setbsmgb smgbp sclk
+ \ scp setb setf smgl smglp smgr smgrp hts smgt
+ \ smgtp wind sbim scsd rbim rcsd subcs supcs
+ \ ht docr tsl tone uc hu u0 u1 u2 u3 u4 u5 u6
+ \ u7 u8 u9 wait xoffc xonc zerom scesa bicr
+ \ binel birep csnm csin colornm defbi devt
+ \ dispc endbi smpch smsc rmpch rmsc getm kmous
+ \ minfo pctrm pfxl reqmp scesc s0ds s1ds s2ds
+ \ s3ds setab setaf setcolor smglr slines smgtb
+ \ ehhlm elhlm erhlm ethlm evhlm sgr1 slengthsL
+syn match terminfoStrings display '\<kf\([0-9]\|[0-5][0-9]\|6[0-3]\)\>'
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_terminfo_syn_inits")
- if version < 508
- let did_terminfo_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+syn match terminfoParameters '%[%dcspl+*/mAO&|^=<>!~i?te;-]'
+syn match terminfoParameters '%\('[A-Z]'\|{[0-9]\{1,2}}\|p[1-9]\|P[a-z]\|g[A-Z]\)'
- HiLink terminfoComment Comment
- HiLink terminfoTodo Todo
- HiLink terminfoNumbers Number
- HiLink terminfoSpecialChar SpecialChar
- HiLink terminfoDelay Special
- HiLink terminfoBooleans Type
- HiLink terminfoNumerics Type
- HiLink terminfoStrings Type
- HiLink terminfoParameters Keyword
- HiLink terminfoKeywords Keyword
- delcommand HiLink
-endif
+hi def link terminfoComment Comment
+hi def link terminfoTodo Todo
+hi def link terminfoNumbers Number
+hi def link terminfoSpecialChar SpecialChar
+hi def link terminfoDelay Special
+hi def link terminfoBooleans Type
+hi def link terminfoNumerics Type
+hi def link terminfoStrings Type
+hi def link terminfoParameters Keyword
+hi def link terminfoKeywords Keyword
let b:current_syntax = "terminfo"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/updatedb.vim b/runtime/syntax/updatedb.vim
new file mode 100644
index 000000000..91c335d66
--- /dev/null
+++ b/runtime/syntax/updatedb.vim
@@ -0,0 +1,39 @@
+" Vim syntax file
+" Language: updatedb.conf(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword updatedbTodo contained TODO FIXME XXX NOTE
+
+syn region updatedbComment display oneline start='^\s*#' end='$'
+ \ contains=updatedbTodo,@Spell
+
+syn match updatedbBegin display '^'
+ \ nextgroup=updatedbName,updatedbComment skipwhite
+
+syn keyword updatedbName contained PRUNEFS PRUNEPATHS
+ \ nextgroup=updatedbNameEq
+
+syn match updatedbNameEq contained display '=' nextgroup=updatedbValue
+
+syn region updatedbValue contained display oneline
+ \ matchgroup=updatedbValue start='"'
+ \ matchgroup=updatedbValue end='"'
+
+hi def link updatedbTodo Todo
+hi def link updatedbComment Comment
+hi def link updatedbName Identifier
+hi def link updatedbNameEq Operator
+hi def link updatedbValue String
+
+let b:current_syntax = "updatedb"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/xinetd.vim b/runtime/syntax/xinetd.vim
new file mode 100644
index 000000000..d9753ff17
--- /dev/null
+++ b/runtime/syntax/xinetd.vim
@@ -0,0 +1,347 @@
+" Vim syntax file
+" Language: xinetd.conf(5) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword xinetdTodo contained TODO FIXME XXX NOTE
+
+syn region xinetdComment display oneline start='^\s*#' end='$'
+ \ contains=xinetdTodo,@Spell
+
+syn match xinetdService '^\s*service\>'
+ \ nextgroup=xinetdServiceName skipwhite
+
+syn match xinetdServiceName contained '\S\+'
+ \ nextgroup=xinetdServiceGroup skipwhite skipnl
+
+syn match xinetdDefaults '^\s*defaults'
+ \ nextgroup=xinetdServiceGroup skipwhite skipnl
+
+syn region xinetdServiceGroup contained transparent
+ \ matchgroup=xinetdServiceGroupD start='{'
+ \ matchgroup=xinetdServiceGroupD end='}'
+ \ contains=xinetdAttribute,xinetdReqAttribute,
+ \ xinetdDisable
+
+syn keyword xinetdReqAttribute contained user server protocol
+ \ nextgroup=xinetdStringEq skipwhite
+
+syn keyword xinetdAttribute contained id group bind
+ \ interface
+ \ nextgroup=xinetdStringEq skipwhite
+
+syn match xinetdStringEq contained display '='
+ \ nextgroup=xinetdString skipwhite
+
+syn match xinetdString contained display '\S\+'
+
+syn keyword xinetdAttribute contained type nextgroup=xinetdTypeEq skipwhite
+
+syn match xinetdTypeEq contained display '='
+ \ nextgroup=xinetdType skipwhite
+
+syn keyword xinetdType contained RPC INTERNAL TCPMUX TCPMUXPLUS
+ \ UNLISTED
+ \ nextgroup=xinetdType skipwhite
+
+syn keyword xinetdAttribute contained flags
+ \ nextgroup=xinetdFlagsEq skipwhite
+
+syn cluster xinetdFlagsC contains=xinetdFlags,xinetdDeprFlags
+
+syn match xinetdFlagsEq contained display '='
+ \ nextgroup=@xinetdFlagsC skipwhite
+
+syn keyword xinetdFlags contained INTERCEPT NORETRY IDONLY NAMEINARGS
+ \ NODELAY KEEPALIVE NOLIBWRAP SENSOR IPv4 IPv6
+ \ nextgroup=@xinetdFlagsC skipwhite
+
+syn keyword xinetdDeprFlags contained REUSE nextgroup=xinetdFlagsC skipwhite
+
+syn keyword xinetdDisable contained disable
+ \ nextgroup=xinetdBooleanEq skipwhite
+
+syn match xinetdBooleanEq contained display '='
+ \ nextgroup=xinetdBoolean skipwhite
+
+syn keyword xinetdBoolean contained yes no
+
+syn keyword xinetdReqAttribute contained socket_type
+ \ nextgroup=xinetdSocketTypeEq skipwhite
+
+syn match xinetdSocketTypeEq contained display '='
+ \ nextgroup=xinetdSocketType skipwhite
+
+syn keyword xinetdSocketType contained stream dgram raw seqpacket
+
+syn keyword xinetdReqAttribute contained wait
+ \ nextgroup=xinetdBooleanEq skipwhite
+
+syn keyword xinetdAttribute contained groups mdns
+ \ nextgroup=xinetdBooleanEq skipwhite
+
+syn keyword xinetdAttribute contained instances per_source rlimit_cpu
+ \ rlimit_data rlimit_rss rlimit_stack
+ \ nextgroup=xinetdUNumberEq skipwhite
+
+syn match xinetdUNumberEq contained display '='
+ \ nextgroup=xinetdUnlimited,xinetdNumber
+ \ skipwhite
+
+syn keyword xinetdUnlimited contained UNLIMITED
+
+syn match xinetdNumber contained display '\<\d\+\>'
+
+syn keyword xinetdAttribute contained nice
+ \ nextgroup=xinetdSignedNumEq skipwhite
+
+syn match xinetdSignedNumEq contained display '='
+ \ nextgroup=xinetdSignedNumber skipwhite
+
+syn match xinetdSignedNumber contained display '[+-]\=\d\+\>'
+
+syn keyword xinetdAttribute contained server_args
+ \ enabled
+ \ nextgroup=xinetdStringsEq skipwhite
+
+syn match xinetdStringsEq contained display '='
+ \ nextgroup=xinetdStrings skipwhite
+
+syn match xinetdStrings contained display '\S\+'
+ \ nextgroup=xinetdStrings skipwhite
+
+syn keyword xinetdAttribute contained only_from no_access passenv
+ \ nextgroup=xinetdStringsAdvEq skipwhite
+
+syn match xinetdStringsAdvEq contained display '[+-]\=='
+ \ nextgroup=xinetdStrings skipwhite
+
+syn keyword xinetdAttribute contained access_times
+ \ nextgroup=xinetdTimeRangesEq skipwhite
+
+syn match xinetdTimeRangesEq contained display '='
+ \ nextgroup=xinetdTimeRanges skipwhite
+
+syn match xinetdTimeRanges contained display
+ \ '\%(0?\d\|1\d\|2[0-3]\):\%(0?\d\|[1-5]\d\)-\%(0?\d\|1\d\|2[0-3]\):\%(0?\d\|[1-5]\d\)'
+ \ nextgroup=xinetdTimeRanges skipwhite
+
+syn keyword xinetdAttribute contained log_type nextgroup=xinetdLogTypeEq
+ \ skipwhite
+
+syn match xinetdLogTypeEq contained display '='
+ \ nextgroup=xinetdLogType skipwhite
+
+syn keyword xinetdLogType contained SYSLOG nextgroup=xinetdSyslogType
+ \ skipwhite
+
+syn keyword xinetdLogType contained FILE nextgroup=xinetdLogFile skipwhite
+
+syn keyword xinetdSyslogType contained daemon auth authpriv user mail lpr
+ \ news uucp ftp local0 local1 local2 local3
+ \ local4 local5 local6 local7
+ \ nextgroup=xinetdSyslogLevel skipwhite
+
+syn keyword xinetdSyslogLevel contained emerg alert crit err warning notice
+ \ info debug
+
+syn match xinetdLogFile contained display '\S\+'
+ \ nextgroup=xinetdLogSoftLimit skipwhite
+
+syn match xinetdLogSoftLimit contained display '\<\d\+\>'
+ \ nextgroup=xinetdLogHardLimit skipwhite
+
+syn match xinetdLogHardLimit contained display '\<\d\+\>'
+
+syn keyword xinetdAttribute contained log_on_success
+ \ nextgroup=xinetdLogSuccessEq skipwhite
+
+syn match xinetdLogSuccessEq contained display '[+-]\=='
+ \ nextgroup=xinetdLogSuccess skipwhite
+
+syn keyword xinetdLogSuccess contained PID HOST USERID EXIT DURATION TRAFFIC
+ \ nextgroup=xinetdLogSuccess skipwhite
+
+syn keyword xinetdAttribute contained log_on_failure
+ \ nextgroup=xinetdLogFailureEq skipwhite
+
+syn match xinetdLogFailureEq contained display '[+-]\=='
+ \ nextgroup=xinetdLogFailure skipwhite
+
+syn keyword xinetdLogFailure contained HOST USERID ATTEMPT
+ \ nextgroup=xinetdLogFailure skipwhite
+
+syn keyword xinetdReqAttribute contained rpc_version
+ \ nextgroup=xinetdRPCVersionEq skipwhite
+
+syn match xinetdRPCVersionEq contained display '='
+ \ nextgroup=xinetdRPCVersion skipwhite
+
+syn match xinetdRPCVersion contained display '\d\+\%(-\d\+\)\=\>'
+
+syn keyword xinetdReqAttribute contained rpc_number port
+ \ nextgroup=xinetdNumberEq skipwhite
+
+syn match xinetdNumberEq contained display '='
+ \ nextgroup=xinetdNumber skipwhite
+
+syn keyword xinetdAttribute contained env nextgroup=xinetdEnvEq skipwhite
+
+syn match xinetdEnvEq contained display '+\=='
+ \ nextgroup=xinetdEnvName skipwhite
+
+syn match xinetdEnvName contained display '[^=]\+'
+ \ nextgroup=xinetdEnvNameEq
+
+syn match xinetdEnvNameEq contained display '=' nextgroup=xinetdEnvValue
+
+syn match xinetdEnvValue contained display '\S\+'
+ \ nextgroup=xinetdEnvName skipwhite
+
+syn keyword xinetdAttribute contained banner banner_success banner_failure
+ \ nextgroup=xinetdPathEq skipwhite
+
+syn keyword xinetdPPAttribute include includedir
+ \ nextgroup=xinetdPath skipwhite
+
+syn match xinetdPathEq contained display '='
+ \ nextgroup=xinetdPath skipwhite
+
+syn match xinetdPath contained display '\S\+'
+
+syn keyword xinetdAttribute contained redirect nextgroup=xinetdRedirectEq
+ \ skipwhite
+
+syn match xinetdRedirectEq contained display '='
+ \ nextgroup=xinetdRedirectIP skipwhite
+
+syn match xinetdRedirectIP contained display '\S\+'
+ \ nextgroup=xinetdNumber skipwhite
+
+syn keyword xinetdAttribute contained cps nextgroup=xinetdCPSEq skipwhite
+
+syn match xinetdCPSEq contained display '='
+ \ nextgroup=xinetdCPS skipwhite
+
+syn match xinetdCPS contained display '\<\d\+\>'
+ \ nextgroup=xinetdNumber skipwhite
+
+syn keyword xinetdAttribute contained max_load nextgroup=xinetdFloatEq
+ \ skipwhite
+
+syn match xinetdFloatEq contained display '='
+ \ nextgroup=xinetdFloat skipwhite
+
+syn match xinetdFloat contained display '\d\+\.\d*\|\.\d\+'
+
+syn keyword xinetdAttribute contained umask nextgroup=xinetdOctalEq
+ \ skipwhite
+
+syn match xinetdOctalEq contained display '='
+ \ nextgroup=xinetdOctal,xinetdOctalError
+ \ skipwhite
+
+syn match xinetdOctal contained display '\<0\o\+\>'
+ \ contains=xinetdOctalZero
+syn match xinetdOctalZero contained display '\<0'
+syn match xinetdOctalError contained display '\<0\o*[89]\d*\>'
+
+syn keyword xinetdAttribute contained rlimit_as nextgroup=xinetdASEq
+ \ skipwhite
+
+syn match xinetdASEq contained display '='
+ \ nextgroup=xinetdAS,xinetdUnlimited
+ \ skipwhite
+
+syn match xinetdAS contained display '\d\+' nextgroup=xinetdASMult
+
+syn match xinetdASMult contained display '[KM]'
+
+syn keyword xinetdAttribute contained deny_time nextgroup=xinetdDenyTimeEq
+ \ skipwhite
+
+syn match xinetdDenyTimeEq contained display '='
+ \ nextgroup=xinetdDenyTime,xinetdNumber
+ \ skipwhite
+
+syn keyword xinetdDenyTime contained FOREVER NEVER
+
+hi def link xinetdTodo Todo
+hi def link xinetdComment Comment
+hi def link xinetdService Keyword
+hi def link xinetdServiceName String
+hi def link xinetdDefaults Keyword
+hi def link xinetdServiceGroupD Delimiter
+hi def link xinetdReqAttribute Keyword
+hi def link xinetdAttribute Type
+hi def link xinetdEq Operator
+hi def link xinetdStringEq xinetdEq
+hi def link xinetdString String
+hi def link xinetdTypeEq xinetdEq
+hi def link xinetdType Identifier
+hi def link xinetdFlagsEq xinetdEq
+hi def link xinetdFlags xinetdType
+hi def link xinetdDeprFlags WarningMsg
+hi def link xinetdDisable Special
+hi def link xinetdBooleanEq xinetdEq
+hi def link xinetdBoolean Boolean
+hi def link xinetdSocketTypeEq xinetdEq
+hi def link xinetdSocketType xinetdType
+hi def link xinetdUNumberEq xinetdEq
+hi def link xinetdUnlimited Define
+hi def link xinetdNumber Number
+hi def link xinetdSignedNumEq xinetdEq
+hi def link xinetdSignedNumber xinetdNumber
+hi def link xinetdStringsEq xinetdEq
+hi def link xinetdStrings xinetdString
+hi def link xinetdStringsAdvEq xinetdEq
+hi def link xinetdTimeRangesEq xinetdEq
+hi def link xinetdTimeRanges Number
+hi def link xinetdLogTypeEq xinetdEq
+hi def link xinetdLogType Keyword
+hi def link xinetdSyslogType xinetdType
+hi def link xinetdSyslogLevel Number
+hi def link xinetdLogFile xinetdPath
+hi def link xinetdLogSoftLimit xinetdNumber
+hi def link xinetdLogHardLimit xinetdNumber
+hi def link xinetdLogSuccessEq xinetdEq
+hi def link xinetdLogSuccess xinetdType
+hi def link xinetdLogFailureEq xinetdEq
+hi def link xinetdLogFailure xinetdType
+hi def link xinetdRPCVersionEq xinetdEq
+hi def link xinetdRPCVersion xinetdNumber
+hi def link xinetdNumberEq xinetdEq
+hi def link xinetdEnvEq xinetdEq
+hi def link xinetdEnvName Identifier
+hi def link xinetdEnvNameEq xinetdEq
+hi def link xinetdEnvValue String
+hi def link xinetdPPAttribute PreProc
+hi def link xinetdPathEq xinetdEq
+hi def link xinetdPath String
+hi def link xinetdRedirectEq xinetdEq
+hi def link xinetdRedirectIP String
+hi def link xinetdCPSEq xinetdEq
+hi def link xinetdCPS xinetdNumber
+hi def link xinetdFloatEq xinetdEq
+hi def link xinetdFloat xinetdNumber
+hi def link xinetdOctalEq xinetdEq
+hi def link xinetdOctal xinetdNumber
+hi def link xinetdOctalZero PreProc
+hi def link xinetdOctalError Error
+hi def link xinetdASEq xinetdEq
+hi def link xinetdAS xinetdNumber
+hi def link xinetdASMult PreProc
+hi def link xinetdDenyTimeEq xinetdEq
+hi def link xinetdDenyTime PreProc
+
+let b:current_syntax = "xinetd"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/xmodmap.vim b/runtime/syntax/xmodmap.vim
index 77218845c..cf60c478b 100644
--- a/runtime/syntax/xmodmap.vim
+++ b/runtime/syntax/xmodmap.vim
@@ -1,172 +1,677 @@
" Vim syntax file
-" Language: xmodmap definition file
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/xmodmap/
-" Latest Revision: 2004-05-22
-" arch-tag: 8c37ed41-655a-479d-8050-e15dc6770338
+" Language: xmodmap(1) definition file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-29
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
finish
endif
-" comments
-syn region xmodmapComment display oneline matchgroup=xmodmapComment start=/^!/ end=/$/ contains=xmodmapTodo
+let s:cpo_save = &cpo
+set cpo&vim
-" todo
-syn keyword xmodmapTodo contained TODO FIXME XXX NOTE
+syn keyword xmodmapTodo contained TODO FIXME XXX NOTE
+
+syn region xmodmapComment display oneline matchgroup=xmodmapComment
+ \ start=/^!/ end=/$/ contains=xmodmapTodo,@Spell
-" numbers
syn case ignore
-syn match xmodmapInt display "\<\d\+\>"
-syn match xmodmapHex display "\<0x\x\+\>"
-syn match xmodmapOctal display "\<0\o\+\>"
-syn match xmodmapOctalError display "\<0\o*[89]\d*"
+syn match xmodmapInt display '\<\d\+\>'
+syn match xmodmapHex display '\<0x\x\+\>'
+syn match xmodmapOctal display '\<0\o\+\>'
+syn match xmodmapOctalError display '\<0\o*[89]\d*'
syn case match
-" keysyms (taken from <X11/keysymdef.h>)
-syn keyword xmodmapKeySym VoidSymbol BackSpace Tab Linefeed Clear Return Pause Scroll_Lock Sys_Req Escape Delete Multi_key Codeinput SingleCandidate MultipleCandidate
-syn keyword xmodmapKeySym PreviousCandidate Kanji Muhenkan Henkan_Mode Henkan Romaji Hiragana Katakana Hiragana_Katakana Zenkaku Hankaku Zenkaku_Hankaku Touroku Massyo Kana_Lock
-syn keyword xmodmapKeySym Kana_Shift Eisu_Shift Eisu_toggle Kanji_Bangou Zen_Koho Mae_Koho Home Left Up Right Down Prior Page_Up Next Page_Down
-syn keyword xmodmapKeySym End Begin Select Print Execute Insert Undo Redo Menu Find Cancel Help Break Mode_switch script_switch
-syn keyword xmodmapKeySym Num_Lock KP_Space KP_Tab KP_Enter KP_F1 KP_F2 KP_F3 KP_F4 KP_Home KP_Left KP_Up KP_Right KP_Down KP_Prior KP_Page_Up
-syn keyword xmodmapKeySym KP_Next KP_Page_Down KP_End KP_Begin KP_Insert KP_Delete KP_Equal KP_Multiply KP_Add KP_Separator KP_Subtract KP_Decimal KP_Divide KP_0 KP_1
-syn keyword xmodmapKeySym KP_2 KP_3 KP_4 KP_5 KP_6 KP_7 KP_8 KP_9 F1 F2 F3 F4 F5 F6 F7
-syn keyword xmodmapKeySym F8 F9 F10 F11 L1 F12 L2 F13 L3 F14 L4 F15 L5 F16 L6
-syn keyword xmodmapKeySym F17 L7 F18 L8 F19 L9 F20 L10 F21 R1 F22 R2 F23 R3 F24
-syn keyword xmodmapKeySym R4 F25 R5 F26 R6 F27 R7 F28 R8 F29 R9 F30 R10 F31 R11
-syn keyword xmodmapKeySym F32 R12 F33 R13 F34 R14 F35 R15 Shift_L Shift_R Control_L Control_R Caps_Lock Shift_Lock Meta_L
-syn keyword xmodmapKeySym Meta_R Alt_L Alt_R Super_L Super_R Hyper_L Hyper_R ISO_Lock ISO_Level2_Latch ISO_Level3_Shift ISO_Level3_Latch ISO_Level3_Lock ISO_Group_Shift ISO_Group_Latch ISO_Group_Lock
-syn keyword xmodmapKeySym ISO_Next_Group ISO_Next_Group_Lock ISO_Prev_Group ISO_Prev_Group_Lock ISO_First_Group ISO_First_Group_Lock ISO_Last_Group ISO_Last_Group_Lock ISO_Left_Tab ISO_Move_Line_Up ISO_Move_Line_Down ISO_Partial_Line_Up ISO_Partial_Line_Down ISO_Partial_Space_Left ISO_Partial_Space_Right
-syn keyword xmodmapKeySym ISO_Set_Margin_Left ISO_Set_Margin_Right ISO_Release_Margin_Left ISO_Release_Margin_Right ISO_Release_Both_Margins ISO_Fast_Cursor_Left ISO_Fast_Cursor_Right ISO_Fast_Cursor_Up ISO_Fast_Cursor_Down ISO_Continuous_Underline ISO_Discontinuous_Underline ISO_Emphasize ISO_Center_Object ISO_Enter dead_grave
-syn keyword xmodmapKeySym dead_acute dead_circumflex dead_tilde dead_macron dead_breve dead_abovedot dead_diaeresis dead_abovering dead_doubleacute dead_caron dead_cedilla dead_ogonek dead_iota dead_voiced_sound dead_semivoiced_sound
-syn keyword xmodmapKeySym dead_belowdot dead_hook dead_horn First_Virtual_Screen Prev_Virtual_Screen Next_Virtual_Screen Last_Virtual_Screen Terminate_Server AccessX_Enable AccessX_Feedback_Enable RepeatKeys_Enable SlowKeys_Enable BounceKeys_Enable StickyKeys_Enable MouseKeys_Enable
-syn keyword xmodmapKeySym MouseKeys_Accel_Enable Overlay1_Enable Overlay2_Enable AudibleBell_Enable Pointer_Left Pointer_Right Pointer_Up Pointer_Down Pointer_UpLeft Pointer_UpRight Pointer_DownLeft Pointer_DownRight Pointer_Button_Dflt Pointer_Button1 Pointer_Button2
-syn keyword xmodmapKeySym Pointer_Button3 Pointer_Button4 Pointer_Button5 Pointer_DblClick_Dflt Pointer_DblClick1 Pointer_DblClick2 Pointer_DblClick3 Pointer_DblClick4 Pointer_DblClick5 Pointer_Drag_Dflt Pointer_Drag1 Pointer_Drag2 Pointer_Drag3 Pointer_Drag4 Pointer_Drag5
-syn keyword xmodmapKeySym Pointer_EnableKeys Pointer_Accelerate Pointer_DfltBtnNext Pointer_DfltBtnPrev 3270_Duplicate 3270_FieldMark 3270_Right2 3270_Left2 3270_BackTab 3270_EraseEOF 3270_EraseInput 3270_Reset 3270_Quit 3270_PA1 3270_PA2
-syn keyword xmodmapKeySym 3270_PA3 3270_Test 3270_Attn 3270_CursorBlink 3270_AltCursor 3270_KeyClick 3270_Jump 3270_Ident 3270_Rule 3270_Copy 3270_Play 3270_Setup 3270_Record 3270_ChangeScreen 3270_DeleteWord
-syn keyword xmodmapKeySym 3270_ExSelect 3270_CursorSelect 3270_PrintScreen 3270_Enter space exclam quotedbl numbersign dollar percent ampersand apostrophe quoteright parenleft parenright
-syn keyword xmodmapKeySym asterisk plus comma minus period slash 0 1 2 3 4 5 6 7 8
-syn keyword xmodmapKeySym 9 colon semicolon less equal greater question at A B C D E F G
-syn keyword xmodmapKeySym H I J K L M N O P Q R S T U V
-syn keyword xmodmapKeySym W X Y Z bracketleft backslash bracketright asciicircum underscore grave quoteleft a b c d
-syn keyword xmodmapKeySym e f g h i j k l m n o p q r s
-syn keyword xmodmapKeySym t u v w x y z braceleft bar braceright asciitilde nobreakspace exclamdown cent sterling
-syn keyword xmodmapKeySym currency yen brokenbar section diaeresis copyright ordfeminine guillemotleft notsign hyphen registered macron degree plusminus twosuperior
-syn keyword xmodmapKeySym threesuperior acute mu paragraph periodcentered cedilla onesuperior masculine guillemotright onequarter onehalf threequarters questiondown Agrave Aacute
-syn keyword xmodmapKeySym Acircumflex Atilde Adiaeresis Aring AE Ccedilla Egrave Eacute Ecircumflex Ediaeresis Igrave Iacute Icircumflex Idiaeresis ETH
-syn keyword xmodmapKeySym Eth Ntilde Ograve Oacute Ocircumflex Otilde Odiaeresis multiply Ooblique Oslash Ugrave Uacute Ucircumflex Udiaeresis Yacute
-syn keyword xmodmapKeySym THORN Thorn ssharp agrave aacute acircumflex atilde adiaeresis aring ae ccedilla egrave eacute ecircumflex ediaeresis
-syn keyword xmodmapKeySym igrave iacute icircumflex idiaeresis eth ntilde ograve oacute ocircumflex otilde odiaeresis division oslash ooblique ugrave
-syn keyword xmodmapKeySym uacute ucircumflex udiaeresis yacute thorn ydiaeresis Aogonek breve Lstroke Lcaron Sacute Scaron Scedilla Tcaron Zacute
-syn keyword xmodmapKeySym Zcaron Zabovedot aogonek ogonek lstroke lcaron sacute caron scaron scedilla tcaron zacute doubleacute zcaron zabovedot
-syn keyword xmodmapKeySym Racute Abreve Lacute Cacute Ccaron Eogonek Ecaron Dcaron Dstroke Nacute Ncaron Odoubleacute Rcaron Uring Udoubleacute
-syn keyword xmodmapKeySym Tcedilla racute abreve lacute cacute ccaron eogonek ecaron dcaron dstroke nacute ncaron odoubleacute udoubleacute rcaron
-syn keyword xmodmapKeySym uring tcedilla abovedot Hstroke Hcircumflex Iabovedot Gbreve Jcircumflex hstroke hcircumflex idotless gbreve jcircumflex Cabovedot Ccircumflex
-syn keyword xmodmapKeySym Gabovedot Gcircumflex Ubreve Scircumflex cabovedot ccircumflex gabovedot gcircumflex ubreve scircumflex kra kappa Rcedilla Itilde Lcedilla
-syn keyword xmodmapKeySym Emacron Gcedilla Tslash rcedilla itilde lcedilla emacron gcedilla tslash ENG eng Amacron Iogonek Eabovedot Imacron
-syn keyword xmodmapKeySym Ncedilla Omacron Kcedilla Uogonek Utilde Umacron amacron iogonek eabovedot imacron ncedilla omacron kcedilla uogonek utilde
-syn keyword xmodmapKeySym umacron Babovedot babovedot Dabovedot Wgrave Wacute dabovedot Ygrave Fabovedot fabovedot Mabovedot mabovedot Pabovedot wgrave pabovedot
-syn keyword xmodmapKeySym wacute Sabovedot ygrave Wdiaeresis wdiaeresis sabovedot Wcircumflex Tabovedot Ycircumflex wcircumflex tabovedot ycircumflex OE oe Ydiaeresis
-syn keyword xmodmapKeySym overline kana_fullstop kana_openingbracket kana_closingbracket kana_comma kana_conjunctive kana_middledot kana_WO kana_a kana_i kana_u kana_e kana_o kana_ya kana_yu
-syn keyword xmodmapKeySym kana_yo kana_tsu kana_tu prolongedsound kana_A kana_I kana_U kana_E kana_O kana_KA kana_KI kana_KU kana_KE kana_KO kana_SA
-syn keyword xmodmapKeySym kana_SHI kana_SU kana_SE kana_SO kana_TA kana_CHI kana_TI kana_TSU kana_TU kana_TE kana_TO kana_NA kana_NI kana_NU kana_NE
-syn keyword xmodmapKeySym kana_NO kana_HA kana_HI kana_FU kana_HU kana_HE kana_HO kana_MA kana_MI kana_MU kana_ME kana_MO kana_YA kana_YU kana_YO
-syn keyword xmodmapKeySym kana_RA kana_RI kana_RU kana_RE kana_RO kana_WA kana_N voicedsound semivoicedsound kana_switch Farsi_0 Farsi_1 Farsi_2 Farsi_3 Farsi_4
-syn keyword xmodmapKeySym Farsi_5 Farsi_6 Farsi_7 Farsi_8 Farsi_9 Arabic_percent Arabic_superscript_alef Arabic_tteh Arabic_peh Arabic_tcheh Arabic_ddal Arabic_rreh Arabic_comma Arabic_fullstop Arabic_0
-syn keyword xmodmapKeySym Arabic_1 Arabic_2 Arabic_3 Arabic_4 Arabic_5 Arabic_6 Arabic_7 Arabic_8 Arabic_9 Arabic_semicolon Arabic_question_mark Arabic_hamza Arabic_maddaonalef Arabic_hamzaonalef Arabic_hamzaonwaw
-syn keyword xmodmapKeySym Arabic_hamzaunderalef Arabic_hamzaonyeh Arabic_alef Arabic_beh Arabic_tehmarbuta Arabic_teh Arabic_theh Arabic_jeem Arabic_hah Arabic_khah Arabic_dal Arabic_thal Arabic_ra Arabic_zain Arabic_seen
-syn keyword xmodmapKeySym Arabic_sheen Arabic_sad Arabic_dad Arabic_tah Arabic_zah Arabic_ain Arabic_ghain Arabic_tatweel Arabic_feh Arabic_qaf Arabic_kaf Arabic_lam Arabic_meem Arabic_noon Arabic_ha
-syn keyword xmodmapKeySym Arabic_heh Arabic_waw Arabic_alefmaksura Arabic_yeh Arabic_fathatan Arabic_dammatan Arabic_kasratan Arabic_fatha Arabic_damma Arabic_kasra Arabic_shadda Arabic_sukun Arabic_madda_above Arabic_hamza_above Arabic_hamza_below
-syn keyword xmodmapKeySym Arabic_jeh Arabic_veh Arabic_keheh Arabic_gaf Arabic_noon_ghunna Arabic_heh_doachashmee Farsi_yeh Arabic_farsi_yeh Arabic_yeh_baree Arabic_heh_goal Arabic_switch Cyrillic_GHE_bar Cyrillic_ghe_bar Cyrillic_ZHE_descender Cyrillic_zhe_descender
-syn keyword xmodmapKeySym Cyrillic_KA_descender Cyrillic_ka_descender Cyrillic_KA_vertstroke Cyrillic_ka_vertstroke Cyrillic_EN_descender Cyrillic_en_descender Cyrillic_U_straight Cyrillic_u_straight Cyrillic_U_straight_bar Cyrillic_u_straight_bar Cyrillic_HA_descender Cyrillic_ha_descender Cyrillic_CHE_descender Cyrillic_che_descender Cyrillic_CHE_vertstroke
-syn keyword xmodmapKeySym Cyrillic_che_vertstroke Cyrillic_SHHA Cyrillic_shha Cyrillic_SCHWA Cyrillic_schwa Cyrillic_I_macron Cyrillic_i_macron Cyrillic_O_bar Cyrillic_o_bar Cyrillic_U_macron Cyrillic_u_macron Serbian_dje Macedonia_gje Cyrillic_io Ukrainian_ie
-syn keyword xmodmapKeySym Ukranian_je Macedonia_dse Ukrainian_i Ukranian_i Ukrainian_yi Ukranian_yi Cyrillic_je Serbian_je Cyrillic_lje Serbian_lje Cyrillic_nje Serbian_nje Serbian_tshe Macedonia_kje Ukrainian_ghe_with_upturn
-syn keyword xmodmapKeySym Byelorussian_shortu Cyrillic_dzhe Serbian_dze numerosign Serbian_DJE Macedonia_GJE Cyrillic_IO Ukrainian_IE Ukranian_JE Macedonia_DSE Ukrainian_I Ukranian_I Ukrainian_YI Ukranian_YI Cyrillic_JE
-syn keyword xmodmapKeySym Serbian_JE Cyrillic_LJE Serbian_LJE Cyrillic_NJE Serbian_NJE Serbian_TSHE Macedonia_KJE Ukrainian_GHE_WITH_UPTURN Byelorussian_SHORTU Cyrillic_DZHE Serbian_DZE Cyrillic_yu Cyrillic_a Cyrillic_be Cyrillic_tse
-syn keyword xmodmapKeySym Cyrillic_de Cyrillic_ie Cyrillic_ef Cyrillic_ghe Cyrillic_ha Cyrillic_i Cyrillic_shorti Cyrillic_ka Cyrillic_el Cyrillic_em Cyrillic_en Cyrillic_o Cyrillic_pe Cyrillic_ya Cyrillic_er
-syn keyword xmodmapKeySym Cyrillic_es Cyrillic_te Cyrillic_u Cyrillic_zhe Cyrillic_ve Cyrillic_softsign Cyrillic_yeru Cyrillic_ze Cyrillic_sha Cyrillic_e Cyrillic_shcha Cyrillic_che Cyrillic_hardsign Cyrillic_YU Cyrillic_A
-syn keyword xmodmapKeySym Cyrillic_BE Cyrillic_TSE Cyrillic_DE Cyrillic_IE Cyrillic_EF Cyrillic_GHE Cyrillic_HA Cyrillic_I Cyrillic_SHORTI Cyrillic_KA Cyrillic_EL Cyrillic_EM Cyrillic_EN Cyrillic_O Cyrillic_PE
-syn keyword xmodmapKeySym Cyrillic_YA Cyrillic_ER Cyrillic_ES Cyrillic_TE Cyrillic_U Cyrillic_ZHE Cyrillic_VE Cyrillic_SOFTSIGN Cyrillic_YERU Cyrillic_ZE Cyrillic_SHA Cyrillic_E Cyrillic_SHCHA Cyrillic_CHE Cyrillic_HARDSIGN
-syn keyword xmodmapKeySym Greek_ALPHAaccent Greek_EPSILONaccent Greek_ETAaccent Greek_IOTAaccent Greek_IOTAdieresis Greek_IOTAdiaeresis Greek_OMICRONaccent Greek_UPSILONaccent Greek_UPSILONdieresis Greek_OMEGAaccent Greek_accentdieresis Greek_horizbar Greek_alphaaccent Greek_epsilonaccent Greek_etaaccent
-syn keyword xmodmapKeySym Greek_iotaaccent Greek_iotadieresis Greek_iotaaccentdieresis Greek_omicronaccent Greek_upsilonaccent Greek_upsilondieresis Greek_upsilonaccentdieresis Greek_omegaaccent Greek_ALPHA Greek_BETA Greek_GAMMA Greek_DELTA Greek_EPSILON Greek_ZETA Greek_ETA
-syn keyword xmodmapKeySym Greek_THETA Greek_IOTA Greek_KAPPA Greek_LAMDA Greek_LAMBDA Greek_MU Greek_NU Greek_XI Greek_OMICRON Greek_PI Greek_RHO Greek_SIGMA Greek_TAU Greek_UPSILON Greek_PHI
-syn keyword xmodmapKeySym Greek_CHI Greek_PSI Greek_OMEGA Greek_alpha Greek_beta Greek_gamma Greek_delta Greek_epsilon Greek_zeta Greek_eta Greek_theta Greek_iota Greek_kappa Greek_lamda Greek_lambda
-syn keyword xmodmapKeySym Greek_mu Greek_nu Greek_xi Greek_omicron Greek_pi Greek_rho Greek_sigma Greek_finalsmallsigma Greek_tau Greek_upsilon Greek_phi Greek_chi Greek_psi Greek_omega Greek_switch
-syn keyword xmodmapKeySym leftradical topleftradical horizconnector topintegral botintegral vertconnector topleftsqbracket botleftsqbracket toprightsqbracket botrightsqbracket topleftparens botleftparens toprightparens botrightparens leftmiddlecurlybrace
-syn keyword xmodmapKeySym rightmiddlecurlybrace topleftsummation botleftsummation topvertsummationconnector botvertsummationconnector toprightsummation botrightsummation rightmiddlesummation lessthanequal notequal greaterthanequal integral therefore variation infinity
-syn keyword xmodmapKeySym nabla approximate similarequal ifonlyif implies identical radical includedin includes intersection union logicaland logicalor partialderivative function
-syn keyword xmodmapKeySym leftarrow uparrow rightarrow downarrow blank soliddiamond checkerboard ht ff cr lf nl vt lowrightcorner uprightcorner
-syn keyword xmodmapKeySym upleftcorner lowleftcorner crossinglines horizlinescan1 horizlinescan3 horizlinescan5 horizlinescan7 horizlinescan9 leftt rightt bott topt vertbar emspace enspace
-syn keyword xmodmapKeySym em3space em4space digitspace punctspace thinspace hairspace emdash endash signifblank ellipsis doubbaselinedot onethird twothirds onefifth twofifths
-syn keyword xmodmapKeySym threefifths fourfifths onesixth fivesixths careof figdash leftanglebracket decimalpoint rightanglebracket marker oneeighth threeeighths fiveeighths seveneighths trademark
-syn keyword xmodmapKeySym signaturemark trademarkincircle leftopentriangle rightopentriangle emopencircle emopenrectangle leftsinglequotemark rightsinglequotemark leftdoublequotemark rightdoublequotemark prescription minutes seconds latincross hexagram
-syn keyword xmodmapKeySym filledrectbullet filledlefttribullet filledrighttribullet emfilledcircle emfilledrect enopencircbullet enopensquarebullet openrectbullet opentribulletup opentribulletdown openstar enfilledcircbullet enfilledsqbullet filledtribulletup filledtribulletdown
-syn keyword xmodmapKeySym leftpointer rightpointer club diamond heart maltesecross dagger doubledagger checkmark ballotcross musicalsharp musicalflat malesymbol femalesymbol telephone
-syn keyword xmodmapKeySym telephonerecorder phonographcopyright caret singlelowquotemark doublelowquotemark cursor leftcaret rightcaret downcaret upcaret overbar downtack upshoe downstile underbar
-syn keyword xmodmapKeySym jot quad uptack circle upstile downshoe rightshoe leftshoe lefttack righttack hebrew_doublelowline hebrew_aleph hebrew_bet hebrew_beth hebrew_gimel
-syn keyword xmodmapKeySym hebrew_gimmel hebrew_dalet hebrew_daleth hebrew_he hebrew_waw hebrew_zain hebrew_zayin hebrew_chet hebrew_het hebrew_tet hebrew_teth hebrew_yod hebrew_finalkaph hebrew_kaph hebrew_lamed
-syn keyword xmodmapKeySym hebrew_finalmem hebrew_mem hebrew_finalnun hebrew_nun hebrew_samech hebrew_samekh hebrew_ayin hebrew_finalpe hebrew_pe hebrew_finalzade hebrew_finalzadi hebrew_zade hebrew_zadi hebrew_qoph hebrew_kuf
-syn keyword xmodmapKeySym hebrew_resh hebrew_shin hebrew_taw hebrew_taf Hebrew_switch Thai_kokai Thai_khokhai Thai_khokhuat Thai_khokhwai Thai_khokhon Thai_khorakhang Thai_ngongu Thai_chochan Thai_choching Thai_chochang
-syn keyword xmodmapKeySym Thai_soso Thai_chochoe Thai_yoying Thai_dochada Thai_topatak Thai_thothan Thai_thonangmontho Thai_thophuthao Thai_nonen Thai_dodek Thai_totao Thai_thothung Thai_thothahan Thai_thothong Thai_nonu
-syn keyword xmodmapKeySym Thai_bobaimai Thai_popla Thai_phophung Thai_fofa Thai_phophan Thai_fofan Thai_phosamphao Thai_moma Thai_yoyak Thai_rorua Thai_ru Thai_loling Thai_lu Thai_wowaen Thai_sosala
-syn keyword xmodmapKeySym Thai_sorusi Thai_sosua Thai_hohip Thai_lochula Thai_oang Thai_honokhuk Thai_paiyannoi Thai_saraa Thai_maihanakat Thai_saraaa Thai_saraam Thai_sarai Thai_saraii Thai_saraue Thai_sarauee
-syn keyword xmodmapKeySym Thai_sarau Thai_sarauu Thai_phinthu Thai_maihanakat_maitho Thai_baht Thai_sarae Thai_saraae Thai_sarao Thai_saraaimaimuan Thai_saraaimaimalai Thai_lakkhangyao Thai_maiyamok Thai_maitaikhu Thai_maiek Thai_maitho
-syn keyword xmodmapKeySym Thai_maitri Thai_maichattawa Thai_thanthakhat Thai_nikhahit Thai_leksun Thai_leknung Thai_leksong Thai_leksam Thai_leksi Thai_lekha Thai_lekhok Thai_lekchet Thai_lekpaet Thai_lekkao Hangul
-syn keyword xmodmapKeySym Hangul_Start Hangul_End Hangul_Hanja Hangul_Jamo Hangul_Romaja Hangul_Codeinput Hangul_Jeonja Hangul_Banja Hangul_PreHanja Hangul_PostHanja Hangul_SingleCandidate Hangul_MultipleCandidate Hangul_PreviousCandidate Hangul_Special Hangul_switch
-syn keyword xmodmapKeySym Hangul_Kiyeog Hangul_SsangKiyeog Hangul_KiyeogSios Hangul_Nieun Hangul_NieunJieuj Hangul_NieunHieuh Hangul_Dikeud Hangul_SsangDikeud Hangul_Rieul Hangul_RieulKiyeog Hangul_RieulMieum Hangul_RieulPieub Hangul_RieulSios Hangul_RieulTieut Hangul_RieulPhieuf
-syn keyword xmodmapKeySym Hangul_RieulHieuh Hangul_Mieum Hangul_Pieub Hangul_SsangPieub Hangul_PieubSios Hangul_Sios Hangul_SsangSios Hangul_Ieung Hangul_Jieuj Hangul_SsangJieuj Hangul_Cieuc Hangul_Khieuq Hangul_Tieut Hangul_Phieuf Hangul_Hieuh
-syn keyword xmodmapKeySym Hangul_A Hangul_AE Hangul_YA Hangul_YAE Hangul_EO Hangul_E Hangul_YEO Hangul_YE Hangul_O Hangul_WA Hangul_WAE Hangul_OE Hangul_YO Hangul_U Hangul_WEO
-syn keyword xmodmapKeySym Hangul_WE Hangul_WI Hangul_YU Hangul_EU Hangul_YI Hangul_I Hangul_J_Kiyeog Hangul_J_SsangKiyeog Hangul_J_KiyeogSios Hangul_J_Nieun Hangul_J_NieunJieuj Hangul_J_NieunHieuh Hangul_J_Dikeud Hangul_J_Rieul Hangul_J_RieulKiyeog
-syn keyword xmodmapKeySym Hangul_J_RieulMieum Hangul_J_RieulPieub Hangul_J_RieulSios Hangul_J_RieulTieut Hangul_J_RieulPhieuf Hangul_J_RieulHieuh Hangul_J_Mieum Hangul_J_Pieub Hangul_J_PieubSios Hangul_J_Sios Hangul_J_SsangSios Hangul_J_Ieung Hangul_J_Jieuj Hangul_J_Cieuc Hangul_J_Khieuq
-syn keyword xmodmapKeySym Hangul_J_Tieut Hangul_J_Phieuf Hangul_J_Hieuh Hangul_RieulYeorinHieuh Hangul_SunkyeongeumMieum Hangul_SunkyeongeumPieub Hangul_PanSios Hangul_KkogjiDalrinIeung Hangul_SunkyeongeumPhieuf Hangul_YeorinHieuh Hangul_AraeA Hangul_AraeAE Hangul_J_PanSios Hangul_J_KkogjiDalrinIeung Hangul_J_YeorinHieuh
-syn keyword xmodmapKeySym Korean_Won Armenian_eternity Armenian_ligature_ew Armenian_full_stop Armenian_verjaket Armenian_parenright Armenian_parenleft Armenian_guillemotright Armenian_guillemotleft Armenian_em_dash Armenian_dot Armenian_mijaket Armenian_separation_mark Armenian_but Armenian_comma
-syn keyword xmodmapKeySym Armenian_en_dash Armenian_hyphen Armenian_yentamna Armenian_ellipsis Armenian_exclam Armenian_amanak Armenian_accent Armenian_shesht Armenian_question Armenian_paruyk Armenian_AYB Armenian_ayb Armenian_BEN Armenian_ben Armenian_GIM
-syn keyword xmodmapKeySym Armenian_gim Armenian_DA Armenian_da Armenian_YECH Armenian_yech Armenian_ZA Armenian_za Armenian_E Armenian_e Armenian_AT Armenian_at Armenian_TO Armenian_to Armenian_ZHE Armenian_zhe
-syn keyword xmodmapKeySym Armenian_INI Armenian_ini Armenian_LYUN Armenian_lyun Armenian_KHE Armenian_khe Armenian_TSA Armenian_tsa Armenian_KEN Armenian_ken Armenian_HO Armenian_ho Armenian_DZA Armenian_dza Armenian_GHAT
-syn keyword xmodmapKeySym Armenian_ghat Armenian_TCHE Armenian_tche Armenian_MEN Armenian_men Armenian_HI Armenian_hi Armenian_NU Armenian_nu Armenian_SHA Armenian_sha Armenian_VO Armenian_vo Armenian_CHA Armenian_cha
-syn keyword xmodmapKeySym Armenian_PE Armenian_pe Armenian_JE Armenian_je Armenian_RA Armenian_ra Armenian_SE Armenian_se Armenian_VEV Armenian_vev Armenian_TYUN Armenian_tyun Armenian_RE Armenian_re Armenian_TSO
-syn keyword xmodmapKeySym Armenian_tso Armenian_VYUN Armenian_vyun Armenian_PYUR Armenian_pyur Armenian_KE Armenian_ke Armenian_O Armenian_o Armenian_FE Armenian_fe Armenian_apostrophe Armenian_section_sign Georgian_an Georgian_ban
-syn keyword xmodmapKeySym Georgian_gan Georgian_don Georgian_en Georgian_vin Georgian_zen Georgian_tan Georgian_in Georgian_kan Georgian_las Georgian_man Georgian_nar Georgian_on Georgian_par Georgian_zhar Georgian_rae
-syn keyword xmodmapKeySym Georgian_san Georgian_tar Georgian_un Georgian_phar Georgian_khar Georgian_ghan Georgian_qar Georgian_shin Georgian_chin Georgian_can Georgian_jil Georgian_cil Georgian_char Georgian_xan Georgian_jhan
-syn keyword xmodmapKeySym Georgian_hae Georgian_he Georgian_hie Georgian_we Georgian_har Georgian_hoe Georgian_fi Ccedillaabovedot Xabovedot Qabovedot Ibreve IE UO Zstroke Gcaron
-syn keyword xmodmapKeySym Obarred ccedillaabovedot xabovedot Ocaron qabovedot ibreve ie uo zstroke gcaron ocaron obarred SCHWA schwa Lbelowdot
-syn keyword xmodmapKeySym Lstrokebelowdot lbelowdot lstrokebelowdot Gtilde gtilde Abelowdot abelowdot Ahook ahook Acircumflexacute acircumflexacute Acircumflexgrave acircumflexgrave Acircumflexhook acircumflexhook
-syn keyword xmodmapKeySym Acircumflextilde acircumflextilde Acircumflexbelowdot acircumflexbelowdot Abreveacute abreveacute Abrevegrave abrevegrave Abrevehook abrevehook Abrevetilde abrevetilde Abrevebelowdot abrevebelowdot Ebelowdot
-syn keyword xmodmapKeySym ebelowdot Ehook ehook Etilde etilde Ecircumflexacute ecircumflexacute Ecircumflexgrave ecircumflexgrave Ecircumflexhook ecircumflexhook Ecircumflextilde ecircumflextilde Ecircumflexbelowdot ecircumflexbelowdot
-syn keyword xmodmapKeySym Ihook ihook Ibelowdot ibelowdot Obelowdot obelowdot Ohook ohook Ocircumflexacute ocircumflexacute Ocircumflexgrave ocircumflexgrave Ocircumflexhook ocircumflexhook Ocircumflextilde
-syn keyword xmodmapKeySym ocircumflextilde Ocircumflexbelowdot ocircumflexbelowdot Ohornacute ohornacute Ohorngrave ohorngrave Ohornhook ohornhook Ohorntilde ohorntilde Ohornbelowdot ohornbelowdot Ubelowdot ubelowdot
-syn keyword xmodmapKeySym Uhook uhook Uhornacute uhornacute Uhorngrave uhorngrave Uhornhook uhornhook Uhorntilde uhorntilde Uhornbelowdot uhornbelowdot Ybelowdot ybelowdot Yhook
-syn keyword xmodmapKeySym yhook Ytilde ytilde Ohorn ohorn Uhorn uhorn combining_tilde combining_grave combining_acute combining_hook combining_belowdot EcuSign ColonSign CruzeiroSign
-syn keyword xmodmapKeySym FFrancSign LiraSign MillSign NairaSign PesetaSign RupeeSign WonSign NewSheqelSign DongSign EuroSign
-syn match xmodmapKeySym "\<[A-Za-z]\>"
+syn match xmodmapKeySym display '\<[A-Za-z]\>'
-" keywords
-syn keyword xmodmapKeyword keycode keysym clear add remove pointer
+" #include <X11/keysymdef.h>
+syn keyword xmodmapKeySym XK_VoidSymbol XK_BackSpace XK_Tab XK_Linefeed
+ \ XK_Clear XK_Return XK_Pause XK_Scroll_Lock
+ \ XK_Sys_Req XK_Escape XK_Delete XK_Multi_key
+ \ XK_Codeinput XK_SingleCandidate
+ \ XK_MultipleCandidate XK_PreviousCandidate
+ \ XK_Kanji XK_Muhenkan XK_Henkan_Mode
+ \ XK_Henkan XK_Romaji XK_Hiragana XK_Katakana
+ \ XK_Hiragana_Katakana XK_Zenkaku XK_Hankaku
+ \ XK_Zenkaku_Hankaku XK_Touroku XK_Massyo
+ \ XK_Kana_Lock XK_Kana_Shift XK_Eisu_Shift
+ \ XK_Eisu_toggle XK_Kanji_Bangou XK_Zen_Koho
+ \ XK_Mae_Koho XK_Home XK_Left XK_Up XK_Right
+ \ XK_Down XK_Prior XK_Page_Up XK_Next
+ \ XK_Page_Down XK_End XK_Begin XK_Select
+ \ XK_Print XK_Execute XK_Insert XK_Undo XK_Redo
+ \ XK_Menu XK_Find XK_Cancel XK_Help XK_Break
+ \ XK_Mode_switch XK_script_switch XK_Num_Lock
+ \ XK_KP_Space XK_KP_Tab XK_KP_Enter XK_KP_F1
+ \ XK_KP_F2 XK_KP_F3 XK_KP_F4 XK_KP_Home
+ \ XK_KP_Left XK_KP_Up XK_KP_Right XK_KP_Down
+ \ XK_KP_Prior XK_KP_Page_Up XK_KP_Next
+ \ XK_KP_Page_Down XK_KP_End XK_KP_Begin
+ \ XK_KP_Insert XK_KP_Delete XK_KP_Equal
+ \ XK_KP_Multiply XK_KP_Add XK_KP_Separator
+ \ XK_KP_Subtract XK_KP_Decimal XK_KP_Divide
+ \ XK_KP_0 XK_KP_1 XK_KP_2 XK_KP_3 XK_KP_4
+ \ XK_KP_5 XK_KP_6 XK_KP_7 XK_KP_8 XK_KP_9 XK_F1
+ \ XK_F2 XK_F3 XK_F4 XK_F5 XK_F6 XK_F7 XK_F8
+ \ XK_F9 XK_F10 XK_F11 XK_L1 XK_F12 XK_L2 XK_F13
+ \ XK_L3 XK_F14 XK_L4 XK_F15 XK_L5 XK_F16 XK_L6
+ \ XK_F17 XK_L7 XK_F18 XK_L8 XK_F19 XK_L9 XK_F20
+ \ XK_L10 XK_F21 XK_R1 XK_F22 XK_R2 XK_F23
+ \ XK_R3 XK_F24 XK_R4 XK_F25 XK_R5 XK_F26
+ \ XK_R6 XK_F27 XK_R7 XK_F28 XK_R8 XK_F29
+ \ XK_R9 XK_F30 XK_R10 XK_F31 XK_R11 XK_F32
+ \ XK_R12 XK_F33 XK_R13 XK_F34 XK_R14 XK_F35
+ \ XK_R15 XK_Shift_L XK_Shift_R XK_Control_L
+ \ XK_Control_R XK_Caps_Lock XK_Shift_Lock
+ \ XK_Meta_L XK_Meta_R XK_Alt_L XK_Alt_R
+ \ XK_Super_L XK_Super_R XK_Hyper_L XK_Hyper_R
+ \ XK_dead_hook XK_dead_horn XK_3270_Duplicate
+ \ XK_3270_FieldMark XK_3270_Right2 XK_3270_Left2
+ \ XK_3270_BackTab XK_3270_EraseEOF
+ \ XK_3270_EraseInput XK_3270_Reset
+ \ XK_3270_Quit XK_3270_PA1 XK_3270_PA2
+ \ XK_3270_PA3 XK_3270_Test XK_3270_Attn
+ \ XK_3270_CursorBlink XK_3270_AltCursor
+ \ XK_3270_KeyClick XK_3270_Jump
+ \ XK_3270_Ident XK_3270_Rule XK_3270_Copy
+ \ XK_3270_Play XK_3270_Setup XK_3270_Record
+ \ XK_3270_ChangeScreen XK_3270_DeleteWord
+ \ XK_3270_ExSelect XK_3270_CursorSelect
+ \ XK_3270_PrintScreen XK_3270_Enter XK_space
+ \ XK_exclam XK_quotedbl XK_numbersign XK_dollar
+ \ XK_percent XK_ampersand XK_apostrophe
+ \ XK_quoteright XK_parenleft XK_parenright
+ \ XK_asterisk XK_plus XK_comma XK_minus
+ \ XK_period XK_slash XK_0 XK_1 XK_2 XK_3
+ \ XK_4 XK_5 XK_6 XK_7 XK_8 XK_9 XK_colon
+ \ XK_semicolon XK_less XK_equal XK_greater
+ \ XK_question XK_at XK_A XK_B XK_C XK_D XK_E
+ \ XK_F XK_G XK_H XK_I XK_J XK_K XK_L XK_M XK_N
+ \ XK_O XK_P XK_Q XK_R XK_S XK_T XK_U XK_V XK_W
+ \ XK_X XK_Y XK_Z XK_bracketleft XK_backslash
+ \ XK_bracketright XK_asciicircum XK_underscore
+ \ XK_grave XK_quoteleft XK_a XK_b XK_c XK_d
+ \ XK_e XK_f XK_g XK_h XK_i XK_j XK_k XK_l
+ \ XK_m XK_n XK_o XK_p XK_q XK_r XK_s XK_t XK_u
+ \ XK_v XK_w XK_x XK_y XK_z XK_braceleft XK_bar
+ \ XK_braceright XK_asciitilde XK_nobreakspace
+ \ XK_exclamdown XK_cent XK_sterling XK_currency
+ \ XK_yen XK_brokenbar XK_section XK_diaeresis
+ \ XK_copyright XK_ordfeminine XK_guillemotleft
+ \ XK_notsign XK_hyphen XK_registered XK_macron
+ \ XK_degree XK_plusminus XK_twosuperior
+ \ XK_threesuperior XK_acute XK_mu XK_paragraph
+ \ XK_periodcentered XK_cedilla XK_onesuperior
+ \ XK_masculine XK_guillemotright XK_onequarter
+ \ XK_onehalf XK_threequarters XK_questiondown
+ \ XK_Agrave XK_Aacute XK_Acircumflex XK_Atilde
+ \ XK_Adiaeresis XK_Aring XK_AE XK_Ccedilla
+ \ XK_Egrave XK_Eacute XK_Ecircumflex
+ \ XK_Ediaeresis XK_Igrave XK_Iacute
+ \ XK_Icircumflex XK_Idiaeresis XK_ETH XK_Eth
+ \ XK_Ntilde XK_Ograve XK_Oacute XK_Ocircumflex
+ \ XK_Otilde XK_Odiaeresis XK_multiply
+ \ XK_Ooblique XK_Ugrave XK_Uacute XK_Ucircumflex
+ \ XK_Udiaeresis XK_Yacute XK_THORN XK_Thorn
+ \ XK_ssharp XK_agrave XK_aacute XK_acircumflex
+ \ XK_atilde XK_adiaeresis XK_aring XK_ae
+ \ XK_ccedilla XK_egrave XK_eacute XK_ecircumflex
+ \ XK_ediaeresis XK_igrave XK_iacute
+ \ XK_icircumflex XK_idiaeresis XK_eth XK_ntilde
+ \ XK_ograve XK_oacute XK_ocircumflex XK_otilde
+ \ XK_odiaeresis XK_division XK_oslash XK_ugrave
+ \ XK_uacute XK_ucircumflex XK_udiaeresis
+ \ XK_yacute XK_thorn XK_ydiaeresis XK_Aogonek
+ \ XK_breve XK_Lstroke XK_Lcaron XK_Sacute
+ \ XK_Scaron XK_Scedilla XK_Tcaron XK_Zacute
+ \ XK_Zcaron XK_Zabovedot XK_aogonek XK_ogonek
+ \ XK_lstroke XK_lcaron XK_sacute XK_caron
+ \ XK_scaron XK_scedilla XK_tcaron XK_zacute
+ \ XK_doubleacute XK_zcaron XK_zabovedot
+ \ XK_Racute XK_Abreve XK_Lacute XK_Cacute
+ \ XK_Ccaron XK_Eogonek XK_Ecaron XK_Dcaron
+ \ XK_Dstroke XK_Nacute XK_Ncaron XK_Odoubleacute
+ \ XK_Rcaron XK_Uring XK_Udoubleacute
+ \ XK_Tcedilla XK_racute XK_abreve XK_lacute
+ \ XK_cacute XK_ccaron XK_eogonek XK_ecaron
+ \ XK_dcaron XK_dstroke XK_nacute XK_ncaron
+ \ XK_odoubleacute XK_udoubleacute XK_rcaron
+ \ XK_uring XK_tcedilla XK_abovedot XK_Hstroke
+ \ XK_Hcircumflex XK_Iabovedot XK_Gbreve
+ \ XK_Jcircumflex XK_hstroke XK_hcircumflex
+ \ XK_idotless XK_gbreve XK_jcircumflex
+ \ XK_Cabovedot XK_Ccircumflex XK_Gabovedot
+ \ XK_Gcircumflex XK_Ubreve XK_Scircumflex
+ \ XK_cabovedot XK_ccircumflex XK_gabovedot
+ \ XK_gcircumflex XK_ubreve XK_scircumflex XK_kra
+ \ XK_kappa XK_Rcedilla XK_Itilde XK_Lcedilla
+ \ XK_Emacron XK_Gcedilla XK_Tslash XK_rcedilla
+ \ XK_itilde XK_lcedilla XK_emacron XK_gcedilla
+ \ XK_tslash XK_ENG XK_eng XK_Amacron XK_Iogonek
+ \ XK_Eabovedot XK_Imacron XK_Ncedilla XK_Omacron
+ \ XK_Kcedilla XK_Uogonek XK_Utilde XK_Umacron
+ \ XK_amacron XK_iogonek XK_eabovedot XK_imacron
+ \ XK_ncedilla XK_omacron XK_kcedilla XK_uogonek
+ \ XK_utilde XK_umacron XK_Babovedot XK_babovedot
+ \ XK_Dabovedot XK_Wgrave XK_Wacute XK_dabovedot
+ \ XK_Ygrave XK_Fabovedot XK_fabovedot
+ \ XK_Mabovedot XK_mabovedot XK_Pabovedot
+ \ XK_wgrave XK_pabovedot XK_wacute XK_Sabovedot
+ \ XK_ygrave XK_Wdiaeresis XK_wdiaeresis
+ \ XK_sabovedot XK_Wcircumflex XK_Tabovedot
+ \ XK_Ycircumflex XK_wcircumflex
+ \ XK_tabovedot XK_ycircumflex XK_OE XK_oe
+ \ XK_Ydiaeresis XK_overline XK_kana_fullstop
+ \ XK_kana_openingbracket XK_kana_closingbracket
+ \ XK_kana_comma XK_kana_conjunctive
+ \ XK_kana_middledot XK_kana_WO XK_kana_a
+ \ XK_kana_i XK_kana_u XK_kana_e XK_kana_o
+ \ XK_kana_ya XK_kana_yu XK_kana_yo
+ \ XK_kana_tsu XK_kana_tu XK_prolongedsound
+ \ XK_kana_A XK_kana_I XK_kana_U XK_kana_E
+ \ XK_kana_O XK_kana_KA XK_kana_KI XK_kana_KU
+ \ XK_kana_KE XK_kana_KO XK_kana_SA XK_kana_SHI
+ \ XK_kana_SU XK_kana_SE XK_kana_SO XK_kana_TA
+ \ XK_kana_CHI XK_kana_TI XK_kana_TSU
+ \ XK_kana_TU XK_kana_TE XK_kana_TO XK_kana_NA
+ \ XK_kana_NI XK_kana_NU XK_kana_NE XK_kana_NO
+ \ XK_kana_HA XK_kana_HI XK_kana_FU XK_kana_HU
+ \ XK_kana_HE XK_kana_HO XK_kana_MA XK_kana_MI
+ \ XK_kana_MU XK_kana_ME XK_kana_MO XK_kana_YA
+ \ XK_kana_YU XK_kana_YO XK_kana_RA XK_kana_RI
+ \ XK_kana_RU XK_kana_RE XK_kana_RO XK_kana_WA
+ \ XK_kana_N XK_voicedsound XK_semivoicedsound
+ \ XK_kana_switch XK_Farsi_0 XK_Farsi_1
+ \ XK_Farsi_2 XK_Farsi_3 XK_Farsi_4 XK_Farsi_5
+ \ XK_Farsi_6 XK_Farsi_7 XK_Farsi_8 XK_Farsi_9
+ \ XK_Arabic_percent XK_Arabic_superscript_alef
+ \ XK_Arabic_tteh XK_Arabic_peh XK_Arabic_tcheh
+ \ XK_Arabic_ddal XK_Arabic_rreh XK_Arabic_comma
+ \ XK_Arabic_fullstop XK_Arabic_0 XK_Arabic_1
+ \ XK_Arabic_2 XK_Arabic_3 XK_Arabic_4
+ \ XK_Arabic_5 XK_Arabic_6 XK_Arabic_7
+ \ XK_Arabic_8 XK_Arabic_9 XK_Arabic_semicolon
+ \ XK_Arabic_question_mark XK_Arabic_hamza
+ \ XK_Arabic_maddaonalef XK_Arabic_hamzaonalef
+ \ XK_Arabic_hamzaonwaw XK_Arabic_hamzaunderalef
+ \ XK_Arabic_hamzaonyeh XK_Arabic_alef
+ \ XK_Arabic_beh XK_Arabic_tehmarbuta
+ \ XK_Arabic_teh XK_Arabic_theh XK_Arabic_jeem
+ \ XK_Arabic_hah XK_Arabic_khah XK_Arabic_dal
+ \ XK_Arabic_thal XK_Arabic_ra XK_Arabic_zain
+ \ XK_Arabic_seen XK_Arabic_sheen
+ \ XK_Arabic_sad XK_Arabic_dad XK_Arabic_tah
+ \ XK_Arabic_zah XK_Arabic_ain XK_Arabic_ghain
+ \ XK_Arabic_tatweel XK_Arabic_feh XK_Arabic_qaf
+ \ XK_Arabic_kaf XK_Arabic_lam XK_Arabic_meem
+ \ XK_Arabic_noon XK_Arabic_ha XK_Arabic_heh
+ \ XK_Arabic_waw XK_Arabic_alefmaksura
+ \ XK_Arabic_yeh XK_Arabic_fathatan
+ \ XK_Arabic_dammatan XK_Arabic_kasratan
+ \ XK_Arabic_fatha XK_Arabic_damma
+ \ XK_Arabic_kasra XK_Arabic_shadda
+ \ XK_Arabic_sukun XK_Arabic_madda_above
+ \ XK_Arabic_hamza_above XK_Arabic_hamza_below
+ \ XK_Arabic_jeh XK_Arabic_veh XK_Arabic_keheh
+ \ XK_Arabic_gaf XK_Arabic_noon_ghunna
+ \ XK_Arabic_heh_doachashmee XK_Farsi_yeh
+ \ XK_Arabic_yeh_baree XK_Arabic_heh_goal
+ \ XK_Arabic_switch XK_Cyrillic_GHE_bar
+ \ XK_Cyrillic_ghe_bar XK_Cyrillic_ZHE_descender
+ \ XK_Cyrillic_zhe_descender
+ \ XK_Cyrillic_KA_descender
+ \ XK_Cyrillic_ka_descender
+ \ XK_Cyrillic_KA_vertstroke
+ \ XK_Cyrillic_ka_vertstroke
+ \ XK_Cyrillic_EN_descender
+ \ XK_Cyrillic_en_descender
+ \ XK_Cyrillic_U_straight XK_Cyrillic_u_straight
+ \ XK_Cyrillic_U_straight_bar
+ \ XK_Cyrillic_u_straight_bar
+ \ XK_Cyrillic_HA_descender
+ \ XK_Cyrillic_ha_descender
+ \ XK_Cyrillic_CHE_descender
+ \ XK_Cyrillic_che_descender
+ \ XK_Cyrillic_CHE_vertstroke
+ \ XK_Cyrillic_che_vertstroke XK_Cyrillic_SHHA
+ \ XK_Cyrillic_shha XK_Cyrillic_SCHWA
+ \ XK_Cyrillic_schwa XK_Cyrillic_I_macron
+ \ XK_Cyrillic_i_macron XK_Cyrillic_O_bar
+ \ XK_Cyrillic_o_bar XK_Cyrillic_U_macron
+ \ XK_Cyrillic_u_macron XK_Serbian_dje
+ \ XK_Macedonia_gje XK_Cyrillic_io
+ \ XK_Ukrainian_ie XK_Ukranian_je
+ \ XK_Macedonia_dse XK_Ukrainian_i XK_Ukranian_i
+ \ XK_Ukrainian_yi XK_Ukranian_yi XK_Cyrillic_je
+ \ XK_Serbian_je XK_Cyrillic_lje XK_Serbian_lje
+ \ XK_Cyrillic_nje XK_Serbian_nje XK_Serbian_tshe
+ \ XK_Macedonia_kje XK_Ukrainian_ghe_with_upturn
+ \ XK_Byelorussian_shortu XK_Cyrillic_dzhe
+ \ XK_Serbian_dze XK_numerosign
+ \ XK_Serbian_DJE XK_Macedonia_GJE
+ \ XK_Cyrillic_IO XK_Ukrainian_IE XK_Ukranian_JE
+ \ XK_Macedonia_DSE XK_Ukrainian_I XK_Ukranian_I
+ \ XK_Ukrainian_YI XK_Ukranian_YI XK_Cyrillic_JE
+ \ XK_Serbian_JE XK_Cyrillic_LJE XK_Serbian_LJE
+ \ XK_Cyrillic_NJE XK_Serbian_NJE XK_Serbian_TSHE
+ \ XK_Macedonia_KJE XK_Ukrainian_GHE_WITH_UPTURN
+ \ XK_Byelorussian_SHORTU XK_Cyrillic_DZHE
+ \ XK_Serbian_DZE XK_Cyrillic_yu
+ \ XK_Cyrillic_a XK_Cyrillic_be XK_Cyrillic_tse
+ \ XK_Cyrillic_de XK_Cyrillic_ie XK_Cyrillic_ef
+ \ XK_Cyrillic_ghe XK_Cyrillic_ha XK_Cyrillic_i
+ \ XK_Cyrillic_shorti XK_Cyrillic_ka
+ \ XK_Cyrillic_el XK_Cyrillic_em XK_Cyrillic_en
+ \ XK_Cyrillic_o XK_Cyrillic_pe XK_Cyrillic_ya
+ \ XK_Cyrillic_er XK_Cyrillic_es XK_Cyrillic_te
+ \ XK_Cyrillic_u XK_Cyrillic_zhe XK_Cyrillic_ve
+ \ XK_Cyrillic_softsign XK_Cyrillic_yeru
+ \ XK_Cyrillic_ze XK_Cyrillic_sha XK_Cyrillic_e
+ \ XK_Cyrillic_shcha XK_Cyrillic_che
+ \ XK_Cyrillic_hardsign XK_Cyrillic_YU
+ \ XK_Cyrillic_A XK_Cyrillic_BE XK_Cyrillic_TSE
+ \ XK_Cyrillic_DE XK_Cyrillic_IE XK_Cyrillic_EF
+ \ XK_Cyrillic_GHE XK_Cyrillic_HA XK_Cyrillic_I
+ \ XK_Cyrillic_SHORTI XK_Cyrillic_KA
+ \ XK_Cyrillic_EL XK_Cyrillic_EM XK_Cyrillic_EN
+ \ XK_Cyrillic_O XK_Cyrillic_PE XK_Cyrillic_YA
+ \ XK_Cyrillic_ER XK_Cyrillic_ES XK_Cyrillic_TE
+ \ XK_Cyrillic_U XK_Cyrillic_ZHE XK_Cyrillic_VE
+ \ XK_Cyrillic_SOFTSIGN XK_Cyrillic_YERU
+ \ XK_Cyrillic_ZE XK_Cyrillic_SHA XK_Cyrillic_E
+ \ XK_Cyrillic_SHCHA XK_Cyrillic_CHE
+ \ XK_Cyrillic_HARDSIGN XK_Greek_ALPHAaccent
+ \ XK_Greek_EPSILONaccent XK_Greek_ETAaccent
+ \ XK_Greek_IOTAaccent XK_Greek_IOTAdieresis
+ \ XK_Greek_OMICRONaccent XK_Greek_UPSILONaccent
+ \ XK_Greek_UPSILONdieresis
+ \ XK_Greek_OMEGAaccent XK_Greek_accentdieresis
+ \ XK_Greek_horizbar XK_Greek_alphaaccent
+ \ XK_Greek_epsilonaccent XK_Greek_etaaccent
+ \ XK_Greek_iotaaccent XK_Greek_iotadieresis
+ \ XK_Greek_iotaaccentdieresis
+ \ XK_Greek_omicronaccent XK_Greek_upsilonaccent
+ \ XK_Greek_upsilondieresis
+ \ XK_Greek_upsilonaccentdieresis
+ \ XK_Greek_omegaaccent XK_Greek_ALPHA
+ \ XK_Greek_BETA XK_Greek_GAMMA XK_Greek_DELTA
+ \ XK_Greek_EPSILON XK_Greek_ZETA XK_Greek_ETA
+ \ XK_Greek_THETA XK_Greek_IOTA XK_Greek_KAPPA
+ \ XK_Greek_LAMDA XK_Greek_LAMBDA XK_Greek_MU
+ \ XK_Greek_NU XK_Greek_XI XK_Greek_OMICRON
+ \ XK_Greek_PI XK_Greek_RHO XK_Greek_SIGMA
+ \ XK_Greek_TAU XK_Greek_UPSILON XK_Greek_PHI
+ \ XK_Greek_CHI XK_Greek_PSI XK_Greek_OMEGA
+ \ XK_Greek_alpha XK_Greek_beta XK_Greek_gamma
+ \ XK_Greek_delta XK_Greek_epsilon XK_Greek_zeta
+ \ XK_Greek_eta XK_Greek_theta XK_Greek_iota
+ \ XK_Greek_kappa XK_Greek_lamda XK_Greek_lambda
+ \ XK_Greek_mu XK_Greek_nu XK_Greek_xi
+ \ XK_Greek_omicron XK_Greek_pi XK_Greek_rho
+ \ XK_Greek_sigma XK_Greek_finalsmallsigma
+ \ XK_Greek_tau XK_Greek_upsilon XK_Greek_phi
+ \ XK_Greek_chi XK_Greek_psi XK_Greek_omega
+ \ XK_Greek_switch XK_leftradical
+ \ XK_topleftradical XK_horizconnector
+ \ XK_topintegral XK_botintegral
+ \ XK_vertconnector XK_topleftsqbracket
+ \ XK_botleftsqbracket XK_toprightsqbracket
+ \ XK_botrightsqbracket XK_topleftparens
+ \ XK_botleftparens XK_toprightparens
+ \ XK_botrightparens XK_leftmiddlecurlybrace
+ \ XK_rightmiddlecurlybrace
+ \ XK_topleftsummation XK_botleftsummation
+ \ XK_topvertsummationconnector
+ \ XK_botvertsummationconnector
+ \ XK_toprightsummation XK_botrightsummation
+ \ XK_rightmiddlesummation XK_lessthanequal
+ \ XK_notequal XK_greaterthanequal XK_integral
+ \ XK_therefore XK_variation XK_infinity
+ \ XK_nabla XK_approximate XK_similarequal
+ \ XK_ifonlyif XK_implies XK_identical XK_radical
+ \ XK_includedin XK_includes XK_intersection
+ \ XK_union XK_logicaland XK_logicalor
+ \ XK_partialderivative XK_function XK_leftarrow
+ \ XK_uparrow XK_rightarrow XK_downarrow XK_blank
+ \ XK_soliddiamond XK_checkerboard XK_ht XK_ff
+ \ XK_cr XK_lf XK_nl XK_vt XK_lowrightcorner
+ \ XK_uprightcorner XK_upleftcorner
+ \ XK_lowleftcorner XK_crossinglines
+ \ XK_horizlinescan1 XK_horizlinescan3
+ \ XK_horizlinescan5 XK_horizlinescan7
+ \ XK_horizlinescan9 XK_leftt XK_rightt XK_bott
+ \ XK_topt XK_vertbar XK_emspace XK_enspace
+ \ XK_em3space XK_em4space XK_digitspace
+ \ XK_punctspace XK_thinspace XK_hairspace
+ \ XK_emdash XK_endash XK_signifblank XK_ellipsis
+ \ XK_doubbaselinedot XK_onethird XK_twothirds
+ \ XK_onefifth XK_twofifths XK_threefifths
+ \ XK_fourfifths XK_onesixth XK_fivesixths
+ \ XK_careof XK_figdash XK_leftanglebracket
+ \ XK_decimalpoint XK_rightanglebracket
+ \ XK_marker XK_oneeighth XK_threeeighths
+ \ XK_fiveeighths XK_seveneighths XK_trademark
+ \ XK_signaturemark XK_trademarkincircle
+ \ XK_leftopentriangle XK_rightopentriangle
+ \ XK_emopencircle XK_emopenrectangle
+ \ XK_leftsinglequotemark XK_rightsinglequotemark
+ \ XK_leftdoublequotemark XK_rightdoublequotemark
+ \ XK_prescription XK_minutes XK_seconds
+ \ XK_latincross XK_hexagram XK_filledrectbullet
+ \ XK_filledlefttribullet XK_filledrighttribullet
+ \ XK_emfilledcircle XK_emfilledrect
+ \ XK_enopencircbullet XK_enopensquarebullet
+ \ XK_openrectbullet XK_opentribulletup
+ \ XK_opentribulletdown XK_openstar
+ \ XK_enfilledcircbullet XK_enfilledsqbullet
+ \ XK_filledtribulletup XK_filledtribulletdown
+ \ XK_leftpointer XK_rightpointer XK_club
+ \ XK_diamond XK_heart XK_maltesecross
+ \ XK_dagger XK_doubledagger XK_checkmark
+ \ XK_ballotcross XK_musicalsharp XK_musicalflat
+ \ XK_malesymbol XK_femalesymbol XK_telephone
+ \ XK_telephonerecorder XK_phonographcopyright
+ \ XK_caret XK_singlelowquotemark
+ \ XK_doublelowquotemark XK_cursor
+ \ XK_leftcaret XK_rightcaret XK_downcaret
+ \ XK_upcaret XK_overbar XK_downtack XK_upshoe
+ \ XK_downstile XK_underbar XK_jot XK_quad
+ \ XK_uptack XK_circle XK_upstile XK_downshoe
+ \ XK_rightshoe XK_leftshoe XK_lefttack
+ \ XK_righttack XK_hebrew_doublelowline
+ \ XK_hebrew_aleph XK_hebrew_bet XK_hebrew_beth
+ \ XK_hebrew_gimel XK_hebrew_gimmel
+ \ XK_hebrew_dalet XK_hebrew_daleth
+ \ XK_hebrew_he XK_hebrew_waw XK_hebrew_zain
+ \ XK_hebrew_zayin XK_hebrew_chet XK_hebrew_het
+ \ XK_hebrew_tet XK_hebrew_teth XK_hebrew_yod
+ \ XK_hebrew_finalkaph XK_hebrew_kaph
+ \ XK_hebrew_lamed XK_hebrew_finalmem
+ \ XK_hebrew_mem XK_hebrew_finalnun XK_hebrew_nun
+ \ XK_hebrew_samech XK_hebrew_samekh
+ \ XK_hebrew_ayin XK_hebrew_finalpe XK_hebrew_pe
+ \ XK_hebrew_finalzade XK_hebrew_finalzadi
+ \ XK_hebrew_zade XK_hebrew_zadi XK_hebrew_qoph
+ \ XK_hebrew_kuf XK_hebrew_resh XK_hebrew_shin
+ \ XK_hebrew_taw XK_hebrew_taf XK_Hebrew_switch
+ \ XK_Thai_kokai XK_Thai_khokhai XK_Thai_khokhuat
+ \ XK_Thai_khokhwai XK_Thai_khokhon
+ \ XK_Thai_khorakhang XK_Thai_ngongu
+ \ XK_Thai_chochan XK_Thai_choching
+ \ XK_Thai_chochang XK_Thai_soso XK_Thai_chochoe
+ \ XK_Thai_yoying XK_Thai_dochada XK_Thai_topatak
+ \ XK_Thai_thothan XK_Thai_thonangmontho
+ \ XK_Thai_thophuthao XK_Thai_nonen
+ \ XK_Thai_dodek XK_Thai_totao XK_Thai_thothung
+ \ XK_Thai_thothahan XK_Thai_thothong
+ \ XK_Thai_nonu XK_Thai_bobaimai XK_Thai_popla
+ \ XK_Thai_phophung XK_Thai_fofa XK_Thai_phophan
+ \ XK_Thai_fofan XK_Thai_phosamphao XK_Thai_moma
+ \ XK_Thai_yoyak XK_Thai_rorua XK_Thai_ru
+ \ XK_Thai_loling XK_Thai_lu XK_Thai_wowaen
+ \ XK_Thai_sosala XK_Thai_sorusi XK_Thai_sosua
+ \ XK_Thai_hohip XK_Thai_lochula XK_Thai_oang
+ \ XK_Thai_honokhuk XK_Thai_paiyannoi
+ \ XK_Thai_saraa XK_Thai_maihanakat
+ \ XK_Thai_saraaa XK_Thai_saraam XK_Thai_sarai
+ \ XK_Thai_saraii XK_Thai_saraue XK_Thai_sarauee
+ \ XK_Thai_sarau XK_Thai_sarauu XK_Thai_phinthu
+ \ XK_Thai_maihanakat_maitho XK_Thai_baht
+ \ XK_Thai_sarae XK_Thai_saraae XK_Thai_sarao
+ \ XK_Thai_saraaimaimuan XK_Thai_saraaimaimalai
+ \ XK_Thai_lakkhangyao XK_Thai_maiyamok
+ \ XK_Thai_maitaikhu XK_Thai_maiek XK_Thai_maitho
+ \ XK_Thai_maitri XK_Thai_maichattawa
+ \ XK_Thai_thanthakhat XK_Thai_nikhahit
+ \ XK_Thai_leksun XK_Thai_leknung XK_Thai_leksong
+ \ XK_Thai_leksam XK_Thai_leksi XK_Thai_lekha
+ \ XK_Thai_lekhok XK_Thai_lekchet XK_Thai_lekpaet
+ \ XK_Thai_lekkao XK_Hangul XK_Hangul_Start
+ \ XK_Hangul_End XK_Hangul_Hanja XK_Hangul_Jamo
+ \ XK_Hangul_Romaja XK_Hangul_Codeinput
+ \ XK_Hangul_Jeonja XK_Hangul_Banja
+ \ XK_Hangul_PreHanja XK_Hangul_PostHanja
+ \ XK_Hangul_SingleCandidate
+ \ XK_Hangul_MultipleCandidate
+ \ XK_Hangul_PreviousCandidate XK_Hangul_Special
+ \ XK_Hangul_switch XK_Hangul_Kiyeog
+ \ XK_Hangul_SsangKiyeog XK_Hangul_KiyeogSios
+ \ XK_Hangul_Nieun XK_Hangul_NieunJieuj
+ \ XK_Hangul_NieunHieuh XK_Hangul_Dikeud
+ \ XK_Hangul_SsangDikeud XK_Hangul_Rieul
+ \ XK_Hangul_RieulKiyeog XK_Hangul_RieulMieum
+ \ XK_Hangul_RieulPieub XK_Hangul_RieulSios
+ \ XK_Hangul_RieulTieut XK_Hangul_RieulPhieuf
+ \ XK_Hangul_RieulHieuh XK_Hangul_Mieum
+ \ XK_Hangul_Pieub XK_Hangul_SsangPieub
+ \ XK_Hangul_PieubSios XK_Hangul_Sios
+ \ XK_Hangul_SsangSios XK_Hangul_Ieung
+ \ XK_Hangul_Jieuj XK_Hangul_SsangJieuj
+ \ XK_Hangul_Cieuc XK_Hangul_Khieuq
+ \ XK_Hangul_Tieut XK_Hangul_Phieuf
+ \ XK_Hangul_Hieuh XK_Hangul_A XK_Hangul_AE
+ \ XK_Hangul_YA XK_Hangul_YAE XK_Hangul_EO
+ \ XK_Hangul_E XK_Hangul_YEO XK_Hangul_YE
+ \ XK_Hangul_O XK_Hangul_WA XK_Hangul_WAE
+ \ XK_Hangul_OE XK_Hangul_YO XK_Hangul_U
+ \ XK_Hangul_WEO XK_Hangul_WE XK_Hangul_WI
+ \ XK_Hangul_YU XK_Hangul_EU XK_Hangul_YI
+ \ XK_Hangul_I XK_Hangul_J_Kiyeog
+ \ XK_Hangul_J_SsangKiyeog XK_Hangul_J_KiyeogSios
+ \ XK_Hangul_J_Nieun XK_Hangul_J_NieunJieuj
+ \ XK_Hangul_J_NieunHieuh XK_Hangul_J_Dikeud
+ \ XK_Hangul_J_Rieul XK_Hangul_J_RieulKiyeog
+ \ XK_Hangul_J_RieulMieum XK_Hangul_J_RieulPieub
+ \ XK_Hangul_J_RieulSios XK_Hangul_J_RieulTieut
+ \ XK_Hangul_J_RieulPhieuf XK_Hangul_J_RieulHieuh
+ \ XK_Hangul_J_Mieum XK_Hangul_J_Pieub
+ \ XK_Hangul_J_PieubSios XK_Hangul_J_Sios
+ \ XK_Hangul_J_SsangSios XK_Hangul_J_Ieung
+ \ XK_Hangul_J_Jieuj XK_Hangul_J_Cieuc
+ \ XK_Hangul_J_Khieuq XK_Hangul_J_Tieut
+ \ XK_Hangul_J_Phieuf XK_Hangul_J_Hieuh
+ \ XK_Hangul_RieulYeorinHieuh
+ \ XK_Hangul_SunkyeongeumMieum
+ \ XK_Hangul_SunkyeongeumPieub XK_Hangul_PanSios
+ \ XK_Hangul_KkogjiDalrinIeung
+ \ XK_Hangul_SunkyeongeumPhieuf
+ \ XK_Hangul_YeorinHieuh XK_Hangul_AraeA
+ \ XK_Hangul_AraeAE XK_Hangul_J_PanSios
+ \ XK_Hangul_J_KkogjiDalrinIeung
+ \ XK_Hangul_J_YeorinHieuh XK_Korean_Won
+ \ XK_Armenian_eternity XK_Armenian_ligature_ew
+ \ XK_Armenian_full_stop XK_Armenian_verjaket
+ \ XK_Armenian_parenright XK_Armenian_parenleft
+ \ XK_Armenian_guillemotright
+ \ XK_Armenian_guillemotleft XK_Armenian_em_dash
+ \ XK_Armenian_dot XK_Armenian_mijaket
+ \ XK_Armenian_separation_mark XK_Armenian_but
+ \ XK_Armenian_comma XK_Armenian_en_dash
+ \ XK_Armenian_hyphen XK_Armenian_yentamna
+ \ XK_Armenian_ellipsis XK_Armenian_exclam
+ \ XK_Armenian_amanak XK_Armenian_accent
+ \ XK_Armenian_shesht XK_Armenian_question
+ \ XK_Armenian_paruyk XK_Armenian_AYB
+ \ XK_Armenian_ayb XK_Armenian_BEN
+ \ XK_Armenian_ben XK_Armenian_GIM
+ \ XK_Armenian_gim XK_Armenian_DA XK_Armenian_da
+ \ XK_Armenian_YECH XK_Armenian_yech
+ \ XK_Armenian_ZA XK_Armenian_za XK_Armenian_E
+ \ XK_Armenian_e XK_Armenian_AT XK_Armenian_at
+ \ XK_Armenian_TO XK_Armenian_to
+ \ XK_Armenian_ZHE XK_Armenian_zhe
+ \ XK_Armenian_INI XK_Armenian_ini
+ \ XK_Armenian_LYUN XK_Armenian_lyun
+ \ XK_Armenian_KHE XK_Armenian_khe
+ \ XK_Armenian_TSA XK_Armenian_tsa
+ \ XK_Armenian_KEN XK_Armenian_ken XK_Armenian_HO
+ \ XK_Armenian_ho XK_Armenian_DZA XK_Armenian_dza
+ \ XK_Armenian_GHAT XK_Armenian_ghat
+ \ XK_Armenian_TCHE XK_Armenian_tche
+ \ XK_Armenian_MEN XK_Armenian_men XK_Armenian_HI
+ \ XK_Armenian_hi XK_Armenian_NU XK_Armenian_nu
+ \ XK_Armenian_SHA XK_Armenian_sha XK_Armenian_VO
+ \ XK_Armenian_vo XK_Armenian_CHA XK_Armenian_cha
+ \ XK_Armenian_PE XK_Armenian_pe XK_Armenian_JE
+ \ XK_Armenian_je XK_Armenian_RA XK_Armenian_ra
+ \ XK_Armenian_SE XK_Armenian_se XK_Armenian_VEV
+ \ XK_Armenian_vev XK_Armenian_TYUN
+ \ XK_Armenian_tyun XK_Armenian_RE
+ \ XK_Armenian_re XK_Armenian_TSO
+ \ XK_Armenian_tso XK_Armenian_VYUN
+ \ XK_Armenian_vyun XK_Armenian_PYUR
+ \ XK_Armenian_pyur XK_Armenian_KE XK_Armenian_ke
+ \ XK_Armenian_O XK_Armenian_o XK_Armenian_FE
+ \ XK_Armenian_fe XK_Armenian_apostrophe
+ \ XK_Armenian_section_sign XK_Georgian_an
+ \ XK_Georgian_ban XK_Georgian_gan
+ \ XK_Georgian_don XK_Georgian_en XK_Georgian_vin
+ \ XK_Georgian_zen XK_Georgian_tan
+ \ XK_Georgian_in XK_Georgian_kan XK_Georgian_las
+ \ XK_Georgian_man XK_Georgian_nar XK_Georgian_on
+ \ XK_Georgian_par XK_Georgian_zhar
+ \ XK_Georgian_rae XK_Georgian_san
+ \ XK_Georgian_tar XK_Georgian_un
+ \ XK_Georgian_phar XK_Georgian_khar
+ \ XK_Georgian_ghan XK_Georgian_qar
+ \ XK_Georgian_shin XK_Georgian_chin
+ \ XK_Georgian_can XK_Georgian_jil
+ \ XK_Georgian_cil XK_Georgian_char
+ \ XK_Georgian_xan XK_Georgian_jhan
+ \ XK_Georgian_hae XK_Georgian_he XK_Georgian_hie
+ \ XK_Georgian_we XK_Georgian_har XK_Georgian_hoe
+ \ XK_Georgian_fi XK_Ccedillaabovedot
+ \ XK_Xabovedot XK_Qabovedot XK_IE XK_UO
+ \ XK_Zstroke XK_ccedillaabovedot XK_xabovedot
+ \ XK_qabovedot XK_ie XK_uo XK_zstroke XK_SCHWA
+ \ XK_schwa XK_Lbelowdot XK_Lstrokebelowdot
+ \ XK_lbelowdot XK_lstrokebelowdot XK_Gtilde
+ \ XK_gtilde XK_Abelowdot XK_abelowdot
+ \ XK_Ahook XK_ahook XK_Acircumflexacute
+ \ XK_acircumflexacute XK_Acircumflexgrave
+ \ XK_acircumflexgrave XK_Acircumflexhook
+ \ XK_acircumflexhook XK_Acircumflextilde
+ \ XK_acircumflextilde XK_Acircumflexbelowdot
+ \ XK_acircumflexbelowdot XK_Abreveacute
+ \ XK_abreveacute XK_Abrevegrave XK_abrevegrave
+ \ XK_Abrevehook XK_abrevehook XK_Abrevetilde
+ \ XK_abrevetilde XK_Abrevebelowdot
+ \ XK_abrevebelowdot XK_Ebelowdot XK_ebelowdot
+ \ XK_Ehook XK_ehook XK_Etilde XK_etilde
+ \ XK_Ecircumflexacute XK_ecircumflexacute
+ \ XK_Ecircumflexgrave XK_ecircumflexgrave
+ \ XK_Ecircumflexhook XK_ecircumflexhook
+ \ XK_Ecircumflextilde XK_ecircumflextilde
+ \ XK_Ecircumflexbelowdot XK_ecircumflexbelowdot
+ \ XK_Ihook XK_ihook XK_Ibelowdot XK_ibelowdot
+ \ XK_Obelowdot XK_obelowdot XK_Ohook XK_ohook
+ \ XK_Ocircumflexacute XK_ocircumflexacute
+ \ XK_Ocircumflexgrave XK_ocircumflexgrave
+ \ XK_Ocircumflexhook XK_ocircumflexhook
+ \ XK_Ocircumflextilde XK_ocircumflextilde
+ \ XK_Ocircumflexbelowdot XK_ocircumflexbelowdot
+ \ XK_Ohornacute XK_ohornacute XK_Ohorngrave
+ \ XK_ohorngrave XK_Ohornhook XK_ohornhook
+ \ XK_Ohorntilde XK_ohorntilde XK_Ohornbelowdot
+ \ XK_ohornbelowdot XK_Ubelowdot XK_ubelowdot
+ \ XK_Uhook XK_uhook XK_Uhornacute XK_uhornacute
+ \ XK_Uhorngrave XK_uhorngrave XK_Uhornhook
+ \ XK_uhornhook XK_Uhorntilde XK_uhorntilde
+ \ XK_Uhornbelowdot XK_uhornbelowdot XK_Ybelowdot
+ \ XK_ybelowdot XK_Yhook XK_yhook XK_Ytilde
+ \ XK_ytilde XK_Ohorn XK_ohorn XK_Uhorn XK_uhorn
+ \ XK_combining_tilde XK_combining_grave
+ \ XK_combining_acute XK_combining_hook
+ \ XK_combining_belowdot XK_EcuSign XK_ColonSign
+ \ XK_CruzeiroSign XK_FFrancSign XK_LiraSign
+ \ XK_MillSign XK_NairaSign XK_PesetaSign
+ \ XK_RupeeSign XK_WonSign XK_NewSheqelSign
+ \ XK_DongSign XK_EuroSign
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_xmodmap_syn_inits")
- if version < 508
- let did_xmodmap_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
+" #include <X11/Sunkeysym.h>
+syn keyword xmodmapKeySym SunXK_Sys_Req SunXK_Print_Screen SunXK_Compose
+ \ SunXK_AltGraph SunXK_PageUp SunXK_PageDown
+ \ SunXK_Undo SunXK_Again SunXK_Find SunXK_Stop
+ \ SunXK_Props SunXK_Front SunXK_Copy SunXK_Open
+ \ SunXK_Paste SunXK_Cut SunXK_PowerSwitch
+ \ SunXK_AudioLowerVolume SunXK_AudioMute
+ \ SunXK_AudioRaiseVolume SunXK_VideoDegauss
+ \ SunXK_VideoLowerBrightness
+ \ SunXK_VideoRaiseBrightness
+ \ SunXK_PowerSwitchShift
- HiLink xmodmapComment Comment
- HiLink xmodmapTodo Todo
- HiLink xmodmapInt Number
- HiLink xmodmapHex Number
- HiLink xmodmapOctal Number
- HiLink xmodmapOctalError Error
- HiLink xmodmapKeySym Constant
- HiLink xmodmapKeyword Keyword
- delcommand HiLink
-endif
+" #include <X11/XF86keysym.h>
+syn keyword xmodmapKeySym XF86XK_ModeLock XF86XK_Standby
+ \ XF86XK_AudioLowerVolume XF86XK_AudioMute
+ \ XF86XK_AudioRaiseVolume XF86XK_AudioPlay
+ \ XF86XK_AudioStop XF86XK_AudioPrev
+ \ XF86XK_AudioNext XF86XK_HomePage
+ \ XF86XK_Mail XF86XK_Start XF86XK_Search
+ \ XF86XK_AudioRecord XF86XK_Calculator
+ \ XF86XK_Memo XF86XK_ToDoList XF86XK_Calendar
+ \ XF86XK_PowerDown XF86XK_ContrastAdjust
+ \ XF86XK_RockerUp XF86XK_RockerDown
+ \ XF86XK_RockerEnter XF86XK_Back XF86XK_Forward
+ \ XF86XK_Stop XF86XK_Refresh XF86XK_PowerOff
+ \ XF86XK_WakeUp XF86XK_Eject XF86XK_ScreenSaver
+ \ XF86XK_WWW XF86XK_Sleep XF86XK_Favorites
+ \ XF86XK_AudioPause XF86XK_AudioMedia
+ \ XF86XK_MyComputer XF86XK_VendorHome
+ \ XF86XK_LightBulb XF86XK_Shop XF86XK_History
+ \ XF86XK_OpenURL XF86XK_AddFavorite
+ \ XF86XK_HotLinks XF86XK_BrightnessAdjust
+ \ XF86XK_Finance XF86XK_Community
+ \ XF86XK_AudioRewind XF86XK_XF86BackForward
+ \ XF86XK_Launch0 XF86XK_Launch1 XF86XK_Launch2
+ \ XF86XK_Launch3 XF86XK_Launch4 XF86XK_Launch5
+ \ XF86XK_Launch6 XF86XK_Launch7 XF86XK_Launch8
+ \ XF86XK_Launch9 XF86XK_LaunchA XF86XK_LaunchB
+ \ XF86XK_LaunchC XF86XK_LaunchD XF86XK_LaunchE
+ \ XF86XK_LaunchF XF86XK_ApplicationLeft
+ \ XF86XK_ApplicationRight XF86XK_Book
+ \ XF86XK_CD XF86XK_Calculater XF86XK_Clear
+ \ XF86XK_Close XF86XK_Copy XF86XK_Cut
+ \ XF86XK_Display XF86XK_DOS XF86XK_Documents
+ \ XF86XK_Excel XF86XK_Explorer XF86XK_Game
+ \ XF86XK_Go XF86XK_iTouch XF86XK_LogOff
+ \ XF86XK_Market XF86XK_Meeting XF86XK_MenuKB
+ \ XF86XK_MenuPB XF86XK_MySites XF86XK_New
+ \ XF86XK_News XF86XK_OfficeHome XF86XK_Open
+ \ XF86XK_Option XF86XK_Paste XF86XK_Phone
+ \ XF86XK_Q XF86XK_Reply XF86XK_Reload
+ \ XF86XK_RotateWindows XF86XK_RotationPB
+ \ XF86XK_RotationKB XF86XK_Save XF86XK_ScrollUp
+ \ XF86XK_ScrollDown XF86XK_ScrollClick
+ \ XF86XK_Send XF86XK_Spell XF86XK_SplitScreen
+ \ XF86XK_Support XF86XK_TaskPane XF86XK_Terminal
+ \ XF86XK_Tools XF86XK_Travel XF86XK_UserPB
+ \ XF86XK_User1KB XF86XK_User2KB XF86XK_Video
+ \ XF86XK_WheelButton XF86XK_Word XF86XK_Xfer
+ \ XF86XK_ZoomIn XF86XK_ZoomOut XF86XK_Away
+ \ XF86XK_Messenger XF86XK_WebCam
+ \ XF86XK_MailForward XF86XK_Pictures
+ \ XF86XK_Music XF86XK_Switch_VT_1
+ \ XF86XK_Switch_VT_2 XF86XK_Switch_VT_3
+ \ XF86XK_Switch_VT_4 XF86XK_Switch_VT_5
+ \ XF86XK_Switch_VT_6 XF86XK_Switch_VT_7
+ \ XF86XK_Switch_VT_8 XF86XK_Switch_VT_9
+ \ XF86XK_Switch_VT_10 XF86XK_Switch_VT_11
+ \ XF86XK_Switch_VT_12 XF86XK_Ungrab
+ \ XF86XK_ClearGrab XF86XK_Next_VMode
+ \ XF86XK_Prev_VMode
+
+syn keyword xmodmapKeyword keycode keysym clear add remove pointer
+
+hi def link xmodmapComment Comment
+hi def link xmodmapTodo Todo
+hi def link xmodmapInt Number
+hi def link xmodmapHex Number
+hi def link xmodmapOctal Number
+hi def link xmodmapOctalError Error
+hi def link xmodmapKeySym Constant
+hi def link xmodmapKeyword Keyword
let b:current_syntax = "xmodmap"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/yaml.vim b/runtime/syntax/yaml.vim
index 56e578b30..1be00ee3e 100644
--- a/runtime/syntax/yaml.vim
+++ b/runtime/syntax/yaml.vim
@@ -1,105 +1,83 @@
" Vim syntax file
-" Language: YAML (YAML Ain't Markup Language)
-" Maintainer: Nikolai Weibull <source@pcppopper.org>
-" URL: http://www.pcppopper.org/vim/syntax/pcp/yaml/
-" Latest Revision: 2004-05-22
-" arch-tag: 01bf8ef1-335f-4692-a228-4846cb64cd16
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: YAML (YAML Ain't Markup Language)
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-27
+
+if exists("b:current_syntax")
finish
endif
-" Todo
-syn keyword yamlTodo contained TODO FIXME XXX NOTE
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword yamlTodo contained TODO FIXME XXX NOTE
-" Comments (4.2.2)
-syn region yamlComment matchgroup=yamlComment start='\%(^\|\s\)#' end='$' contains=yamlTodo
+syn region yamlComment matchgroup=yamlComment start='\%(^\|\s\)#'
+ \ end='$' contains=yamlTodo,@Spell
-" Node Properties (4.3.4)
-syn match yamlNodeProperty '!\%(![^\\^% ]\+\|[^!][^:/ ]*\)'
+syn match yamlNodeProperty '!\%(![^\\^% ]\+\|[^!][^:/ ]*\)'
-" Anchors (4.3.6)
-syn match yamlAnchor '&.\+'
+syn match yamlAnchor '&.\+'
-" Aliases (4.3.7)
-syn match yamlAlias '\*.\+'
+syn match yamlAlias '\*.\+'
-" Operators, Blocks, Keys, and Delimiters
-syn match yamlDelimiter '[-,:]'
-syn match yamlBlock '[\[\]{}>|]'
-syn match yamlOperator '[?+-]'
-syn match yamlKey '\w\+\(\s\+\w\+\)*\ze\s*:'
+syn match yamlDelimiter '[-,:]'
+syn match yamlBlock '[\[\]{}>|]'
+syn match yamlOperator '[?+-]'
+syn match yamlKey '\w\+\(\s\+\w\+\)*\ze\s*:'
-" Strings (4.6.8, 4.6.9)
-syn region yamlString start=+"+ skip=+\\"+ end=+"+ contains=yamlEscape
-syn region yamlString start=+'+ skip=+''+ end=+'+ contains=yamlSingleEscape
-syn match yamlEscape contained +\\[\\"abefnrtv^0_ NLP]+
-syn match yamlEscape contained '\\x\x\{2}'
-syn match yamlEscape contained '\\u\x\{4}'
-syn match yamlEscape contained '\\U\x\{8}'
+syn region yamlString start=+"+ skip=+\\"+ end=+"+
+ \ contains=yamlEscape
+syn region yamlString start=+'+ skip=+''+ end=+'+
+ \ contains=yamlSingleEscape
+syn match yamlEscape contained display +\\[\\"abefnrtv^0_ NLP]+
+syn match yamlEscape contained display '\\x\x\{2}'
+syn match yamlEscape contained display '\\u\x\{4}'
+syn match yamlEscape contained display '\\U\x\{8}'
" TODO: how do we get 0x85, 0x2028, and 0x2029 into this?
-syn match yamlEscape '\\\%(\r\n\|[\r\n]\)'
-syn match yamlSingleEscape contained +''+
+syn match yamlEscape display '\\\%(\r\n\|[\r\n]\)'
+syn match yamlSingleEscape contained display +''+
-" Numbers
" TODO: sexagecimal and fixed (20:30.15 and 1,230.15)
-syn match yamlNumber '\<[+-]\=\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\='
-syn match yamlNumber '0\o\+'
-syn match yamlNumber '0x\x\+'
-syn match yamlNumber '([+-]\=[iI]nf)'
-syn match yamlNumber '(NaN)'
-
-" Constants
-syn match yamlConstant '\<[~yn]\>'
-syn keyword yamlConstant true True TRUE false False FALSE
-syn keyword yamlConstant yes Yes on ON no No off OFF
-syn keyword yamlConstant null Null NULL nil Nil NIL
-
-" Timestamps
-syn match yamlTimestamp '\d\d\d\d-\%(1[0-2]\|\d\)-\%(3[0-2]\|2\d\|1\d\|\d\)\%( \%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d [+-]\%([01]\d\|2[0-3]\):[0-5]\d\|t\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d[+-]\%([01]\d\|2[0-3]\):[0-5]\d\|T\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\dZ\)\='
-
-" Documents (4.3.1)
-syn region yamlDocumentHeader start='---' end='$' contains=yamlDirective
-syn match yamlDocumentEnd '\.\.\.'
-
-" Directives (4.3.2)
-syn match yamlDirective contained '%[^:]\+:.\+'
-
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_yaml_syn_inits")
- if version < 508
- let did_yaml_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink yamlTodo Todo
- HiLink yamlComment Comment
- HiLink yamlDocumentHeader PreProc
- HiLink yamlDocumentEnd PreProc
- HiLink yamlDirective Keyword
- HiLink yamlNodeProperty Type
- HiLink yamlAnchor Type
- HiLink yamlAlias Type
- HiLink yamlDelimiter Delimiter
- HiLink yamlBlock Operator
- HiLink yamlOperator Operator
- HiLink yamlKey Identifier
- HiLink yamlString String
- HiLink yamlEscape SpecialChar
- HiLink yamlSingleEscape SpecialChar
- HiLink yamlNumber Number
- HiLink yamlConstant Constant
- HiLink yamlTimestamp Number
-
- delcommand HiLink
-endif
+syn match yamlNumber display
+ \ '\<[+-]\=\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\='
+syn match yamlNumber display '0\o\+'
+syn match yamlNumber display '0x\x\+'
+syn match yamlNumber display '([+-]\=[iI]nf)'
+syn match yamlNumber display '(NaN)'
+
+syn match yamlConstant '\<[~yn]\>'
+syn keyword yamlConstant true True TRUE false False FALSE
+syn keyword yamlConstant yes Yes on ON no No off OFF
+syn keyword yamlConstant null Null NULL nil Nil NIL
+
+syn match yamlTimestamp '\d\d\d\d-\%(1[0-2]\|\d\)-\%(3[0-2]\|2\d\|1\d\|\d\)\%( \%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d [+-]\%([01]\d\|2[0-3]\):[0-5]\d\|t\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d[+-]\%([01]\d\|2[0-3]\):[0-5]\d\|T\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\dZ\)\='
+
+syn region yamlDocumentHeader start='---' end='$' contains=yamlDirective
+syn match yamlDocumentEnd '\.\.\.'
+
+syn match yamlDirective contained '%[^:]\+:.\+'
+
+hi def link yamlTodo Todo
+hi def link yamlComment Comment
+hi def link yamlDocumentHeader PreProc
+hi def link yamlDocumentEnd PreProc
+hi def link yamlDirective Keyword
+hi def link yamlNodeProperty Type
+hi def link yamlAnchor Type
+hi def link yamlAlias Type
+hi def link yamlDelimiter Delimiter
+hi def link yamlBlock Operator
+hi def link yamlOperator Operator
+hi def link yamlKey Identifier
+hi def link yamlString String
+hi def link yamlEscape SpecialChar
+hi def link yamlSingleEscape SpecialChar
+hi def link yamlNumber Number
+hi def link yamlConstant Constant
+hi def link yamlTimestamp Number
let b:current_syntax = "yaml"
-" vim: set sts=2 sw=2:
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/src/fileio.c b/src/fileio.c
index dd42fb4cf..a8192eab0 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1344,8 +1344,11 @@ retry:
== (size_t)-1 && ICONV_ERRNO != ICONV_EINVAL)
|| from_size > CONV_RESTLEN)
{
- if (!keep_dest_enc)
+ if (!keep_dest_enc && can_retry)
goto rewind_retry;
+ if (!keep_dest_enc)
+ conv_error = TRUE;
+
/* Ignore a byte and try again. */
++fromp;
--from_size;
@@ -1761,6 +1764,7 @@ rewind_retry:
conv_error = TRUE;
else
# endif
+ if (illegal_byte == 0) /* Keep the first linenr */
{
char_u *s;
diff --git a/src/misc1.c b/src/misc1.c
index 73d0ef250..fcc87263e 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -3162,7 +3162,10 @@ prompt_for_number(mouse_used)
int save_State;
/* When using ":silent" assume that <CR> was entered. */
- MSG_PUTS(_("Choice number (<Enter> cancels): "));
+ if (mouse_used != NULL)
+ MSG_PUTS(_("Type number or click with mouse (<Enter> cancels): "));
+ else
+ MSG_PUTS(_("Choice number (<Enter> cancels): "));
/* Set the state such that text can be selected/copied/pasted. */
save_cmdline_row = cmdline_row;
diff --git a/src/spell.c b/src/spell.c
index c4efed275..6446cd977 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -134,14 +134,17 @@
* SAL_F0LLOWUP
* SAL_COLLAPSE
* SAL_REM_ACCENTS
+ * SAL_SOFO: SOFOFROM and SOFOTO used instead of SAL
+ *
+ * <salcount> 2 bytes number of <sal> items following
*
* <sal> : <salfromlen> <salfrom> <saltolen> <salto>
*
- * <salfromlen> 1 byte length of <salfrom>
+ * <salfromlen> 1-2 bytes length of <salfrom> (2 bytes for SAL_SOFO)
*
* <salfrom> N bytes "from" part of soundsalike
*
- * <saltolen> 1 byte length of <salto>
+ * <saltolen> 1-2 bytes length of <salto> (2 bytes for SAL_SOFO)
*
* <salto> N bytes "to" part of soundsalike
*
@@ -267,16 +270,22 @@ typedef struct salitem_S
{
char_u *sm_lead; /* leading letters */
int sm_leadlen; /* length of "sm_lead" */
- char_u *sm_oneoff; /* letters from () or NULL */
+ char_u *sm_oneof; /* letters from () or NULL */
char_u *sm_rules; /* rules like ^, $, priority */
char_u *sm_to; /* replacement. */
#ifdef FEAT_MBYTE
int *sm_lead_w; /* wide character copy of "sm_lead" */
- int *sm_oneoff_w; /* wide character copy of "sm_oneoff" */
+ int *sm_oneof_w; /* wide character copy of "sm_oneof" */
int *sm_to_w; /* wide character copy of "sm_to" */
#endif
} salitem_T;
+#ifdef FEAT_MBYTE
+typedef int salfirst_T;
+#else
+typedef short salfirst_T;
+#endif
+
/*
* Structure used to store words and other info for one language, loaded from
* a .spl file.
@@ -316,8 +325,11 @@ struct slang_S
short sl_rep_first[256]; /* indexes where byte first appears, -1 if
there is none */
garray_T sl_sal; /* list of salitem_T entries from SAL lines */
- short sl_sal_first[256]; /* indexes where byte first appears, -1 if
+ salfirst_T sl_sal_first[256]; /* indexes where byte first appears, -1 if
there is none */
+ int sl_sofo; /* SOFOFROM and SOFOTO instead of SAL items:
+ * "sl_sal_first" maps chars, when has_mbyte
+ * "sl_sal" is a list of wide char lists. */
int sl_followup; /* SAL followup */
int sl_collapse; /* SAL collapse_result */
int sl_rem_accents; /* SAL remove_accents */
@@ -338,6 +350,7 @@ static slang_T *first_lang = NULL;
#define SAL_F0LLOWUP 1
#define SAL_COLLAPSE 2
#define SAL_REM_ACCENTS 4
+#define SAL_SOFO 8 /* SOFOFROM and SOFOTO instead of SAL */
/*
* Structure used in "b_langp", filled from 'spelllang'.
@@ -501,6 +514,7 @@ typedef enum
STATE_START = 0, /* At start of node check for NUL bytes (goodword
* ends); if badword ends there is a match, otherwise
* try splitting word. */
+ STATE_NOPREFIX, /* try without prefix */
STATE_SPLITUNDO, /* Undo splitting. */
STATE_ENDNUL, /* Past NUL bytes at start of the node. */
STATE_PLAIN, /* Use each byte of the node. */
@@ -530,6 +544,8 @@ typedef struct trystate_S
char_u ts_fidx; /* index in fword[], case-folded bad word */
char_u ts_fidxtry; /* ts_fidx at which bytes may be changed */
char_u ts_twordlen; /* valid length of tword[] */
+ char_u ts_prefixdepth; /* stack depth for end of prefix or PREFIXTREE
+ * or NOPREFIX */
#ifdef FEAT_MBYTE
char_u ts_tcharlen; /* number of bytes in tword character */
char_u ts_tcharidx; /* current byte index in tword character */
@@ -546,6 +562,10 @@ typedef struct trystate_S
#define DIFF_YES 1 /* different byte found */
#define DIFF_INSERT 2 /* inserting character */
+/* special values ts_prefixdepth */
+#define PREFIXTREE 0xfe /* walking through the prefix tree */
+#define NOPREFIX 0xff /* not using prefixes */
+
/* mode values for find_word */
#define FIND_FOLDWORD 0 /* find word case-folded */
#define FIND_KEEPWORD 1 /* find keep-case word */
@@ -601,9 +621,11 @@ static int was_banned __ARGS((suginfo_T *su, char_u *word));
static void free_banned __ARGS((suginfo_T *su));
static void rescore_suggestions __ARGS((suginfo_T *su));
static int cleanup_suggestions __ARGS((garray_T *gap, int maxscore, int keep));
-static void spell_soundfold __ARGS((slang_T *slang, char_u *inword, char_u *res));
+static void spell_soundfold __ARGS((slang_T *slang, char_u *inword, int folded, char_u *res));
+static void spell_soundfold_sofo __ARGS((slang_T *slang, char_u *inword, char_u *res));
+static void spell_soundfold_sal __ARGS((slang_T *slang, char_u *inword, char_u *res));
#ifdef FEAT_MBYTE
-static void spell_soundfold_w __ARGS((slang_T *slang, char_u *inword, char_u *res));
+static void spell_soundfold_wsal __ARGS((slang_T *slang, char_u *inword, char_u *res));
#endif
static int soundalike_score __ARGS((char_u *goodsound, char_u *badsound));
static int spell_edit_score __ARGS((char_u *badword, char_u *goodword));
@@ -1107,16 +1129,16 @@ find_prefix(mip)
char_u *byts;
idx_T *idxs;
+ byts = slang->sl_pbyts;
+ if (byts == NULL)
+ return; /* array is empty */
+
/* We use the case-folded word here, since prefixes are always
* case-folded. */
ptr = mip->mi_fword;
flen = mip->mi_fwordlen; /* available case-folded bytes */
- byts = slang->sl_pbyts;
idxs = slang->sl_pidxs;
- if (byts == NULL)
- return; /* array is empty */
-
/*
* Repeat advancing in the tree until:
* - there is a byte that doesn't match,
@@ -1562,12 +1584,24 @@ slang_clear(lp)
ga_clear(gap);
gap = &lp->sl_sal;
- while (gap->ga_len > 0)
- {
- smp = &((salitem_T *)gap->ga_data)[--gap->ga_len];
- vim_free(smp->sm_lead);
- vim_free(smp->sm_to);
- }
+ if (lp->sl_sofo)
+ /* SOFOFROM and SOFOTO items: free lists of wide characters. */
+ for (i = 0; i < gap->ga_len; ++i)
+ vim_free(((int **)gap->ga_data)[i]);
+ else
+ /* SAL items: free salitem_T items */
+ while (gap->ga_len > 0)
+ {
+ smp = &((salitem_T *)gap->ga_data)[--gap->ga_len];
+ vim_free(smp->sm_lead);
+ /* Don't free sm_oneof and sm_rules, they point into sm_lead. */
+ vim_free(smp->sm_to);
+#ifdef FEAT_MBYTE
+ vim_free(smp->sm_lead_w);
+ vim_free(smp->sm_oneof_w);
+ vim_free(smp->sm_to_w);
+#endif
+ }
ga_clear(gap);
for (i = 0; i < lp->sl_prefixcnt; ++i)
@@ -1638,6 +1672,7 @@ spell_load_file(fname, lang, old_lp, silent)
salitem_T *smp;
int rr;
short *first;
+ salfirst_T *sfirst;
idx_T idx;
int c = 0;
@@ -1895,150 +1930,281 @@ formerr:
lp->sl_collapse = TRUE;
if (i & SAL_REM_ACCENTS)
lp->sl_rem_accents = TRUE;
+ if (i & SAL_SOFO)
+ lp->sl_sofo = TRUE;
cnt = (getc(fd) << 8) + getc(fd); /* <salcount> */
if (cnt < 0)
goto formerr;
- gap = &lp->sl_sal;
- if (ga_grow(gap, cnt) == FAIL)
- goto endFAIL;
-
- /* <sal> : <salfromlen> <salfrom> <saltolen> <salto> */
- for (; gap->ga_len < cnt; ++gap->ga_len)
+ if (lp->sl_sofo)
{
- smp = &((salitem_T *)gap->ga_data)[gap->ga_len];
- ccnt = getc(fd); /* <salfromlen> */
- if (ccnt < 0)
+ /*
+ * SOFOFROM and SOFOTO items come in one <salfrom> and <salto>
+ */
+ if (cnt != 1)
goto formerr;
- if ((p = alloc(ccnt + 2)) == NULL)
- goto endFAIL;
- smp->sm_lead = p;
- /* Read up to the first special char into sm_lead. */
- for (i = 0; i < ccnt; ++i)
- {
- c = getc(fd); /* <salfrom> */
- if (vim_strchr((char_u *)"0123456789(-<^$", c) != NULL)
- break;
- *p++ = c;
- }
- smp->sm_leadlen = p - smp->sm_lead;
- *p++ = NUL;
-
- /* Put optional chars in sm_oneoff, if any. */
- if (c == '(')
- {
- smp->sm_oneoff = p;
- for (++i; i < ccnt; ++i)
- {
- c = getc(fd); /* <salfrom> */
- if (c == ')')
- break;
- *p++ = c;
- }
- *p++ = NUL;
- if (++i < ccnt)
- c = getc(fd);
- }
- else
- smp->sm_oneoff = NULL;
-
- /* Any following chars go in sm_rules. */
- smp->sm_rules = p;
- if (i < ccnt)
- *p++ = c;
- for (++i; i < ccnt; ++i)
- *p++ = getc(fd); /* <salfrom> */
- *p++ = NUL;
+ cnt = (getc(fd) << 8) + getc(fd); /* <salfromlen> */
+ if (cnt < 0)
+ goto formerr;
+ if ((bp = alloc(cnt + 1)) == NULL)
+ goto endFAIL;
+ for (i = 0; i < cnt; ++i)
+ bp[i] = getc(fd); /* <salfrom> */
+ bp[i] = NUL;
- ccnt = getc(fd); /* <saltolen> */
+ ccnt = (getc(fd) << 8) + getc(fd); /* <saltolen> */
if (ccnt < 0)
{
- vim_free(smp->sm_lead);
+ vim_free(bp);
goto formerr;
}
- if ((p = alloc(ccnt + 1)) == NULL)
+ if ((fol = alloc(ccnt + 1)) == NULL)
{
- vim_free(smp->sm_lead);
+ vim_free(bp);
goto endFAIL;
}
- smp->sm_to = p;
-
for (i = 0; i < ccnt; ++i)
- *p++ = getc(fd); /* <salto> */
- *p++ = NUL;
+ fol[i] = getc(fd); /* <salto> */
+ fol[i] = NUL;
#ifdef FEAT_MBYTE
if (has_mbyte)
{
- /* convert the multi-byte strings to wide char strings */
- smp->sm_lead_w = mb_str2wide(smp->sm_lead);
- smp->sm_leadlen = mb_charlen(smp->sm_lead);
- if (smp->sm_oneoff == NULL)
- smp->sm_oneoff_w = NULL;
- else
- smp->sm_oneoff_w = mb_str2wide(smp->sm_oneoff);
- smp->sm_to_w = mb_str2wide(smp->sm_to);
- if (smp->sm_lead_w == NULL
- || (smp->sm_oneoff_w == NULL && smp->sm_oneoff != NULL)
- || smp->sm_to_w == NULL)
+ char_u *s;
+
+ /* Use "sl_sal" as an array with 256 pointers to a list of wide
+ * characters. The index is the low byte of the character.
+ * The list contains from-to pairs with a terminating NUL.
+ * sl_sal_first[] is used for latin1 "from" characters. */
+ gap = &lp->sl_sal;
+ ga_init2(gap, sizeof(int *), 1);
+ if (ga_grow(gap, 256) == FAIL)
{
- vim_free(smp->sm_lead);
- vim_free(smp->sm_to);
- vim_free(smp->sm_lead_w);
- vim_free(smp->sm_oneoff_w);
- vim_free(smp->sm_to_w);
+sofoFAIL:
+ vim_free(bp);
+ vim_free(fol);
goto endFAIL;
}
+ vim_memset(gap->ga_data, 0, sizeof(int *) * 256);
+ gap->ga_len = 256;
+
+ /* First count the number of items for each list. Temporarily use
+ * sl_sal_first[] for this. */
+ for (p = bp, s = fol; *p != NUL && *s != NUL; )
+ {
+ c = mb_ptr2char_adv(&p);
+ mb_ptr_adv(s);
+ if (c >= 256)
+ ++lp->sl_sal_first[c & 0xff];
+ }
+ if (*p != NUL || *s != NUL) /* lengths differ */
+ goto sofoerr;
+
+ /* Allocate the lists. */
+ for (i = 0; i < 256; ++i)
+ if (lp->sl_sal_first[i] > 0)
+ {
+ p = alloc(sizeof(int) * (lp->sl_sal_first[i] * 2 + 1));
+ if (p == NULL)
+ goto sofoFAIL;
+ ((int **)gap->ga_data)[i] = (int *)p;
+ *(int *)p = 0;
+ }
+
+ /* Put the characters in sl_sal_first[] or a sl_sal list. */
+ vim_memset(lp->sl_sal_first, 0, sizeof(salfirst_T) * 256);
+ for (p = bp, s = fol; *p != NUL && *s != NUL; )
+ {
+ c = mb_ptr2char_adv(&p);
+ i = mb_ptr2char_adv(&s);
+ if (c >= 256)
+ {
+ int *inp;
+
+ /* Append the from-to chars at the end of the list with
+ * the low byte. */
+ inp = ((int **)gap->ga_data)[c & 0xff];
+ while (*inp != 0)
+ ++inp;
+ *inp++ = c; /* from char */
+ *inp++ = i; /* to char */
+ *inp++ = NUL; /* NUL at the end */
+ }
+ else
+ /* mapping byte to char is done in sl_sal_first[] */
+ lp->sl_sal_first[c] = i;
+ }
}
+ else
#endif
- }
-
- /* Fill the first-index table. */
- first = lp->sl_sal_first;
- for (i = 0; i < 256; ++i)
- first[i] = -1;
- for (i = 0; i < gap->ga_len; ++i)
- {
- smp = &((salitem_T *)gap->ga_data)[i];
+ {
+ /* mapping bytes to bytes is done in sl_sal_first[] */
+ if (cnt != ccnt)
+ {
#ifdef FEAT_MBYTE
- if (has_mbyte)
- /* Use the lowest byte of the first character. */
- c = *smp->sm_lead_w & 0xff;
- else
+sofoerr:
#endif
- c = *smp->sm_lead;
- if (first[c] == -1)
+ vim_free(bp);
+ vim_free(fol);
+ goto formerr;
+ }
+ for (i = 0; i < cnt; ++i)
+ lp->sl_sal_first[bp[i]] = fol[i];
+ lp->sl_sal.ga_len = 1; /* indicates we have soundfolding */
+ }
+ vim_free(bp);
+ vim_free(fol);
+ }
+ else
+ {
+ /*
+ * SAL items
+ */
+ gap = &lp->sl_sal;
+ if (ga_grow(gap, cnt) == FAIL)
+ goto endFAIL;
+
+ /* <sal> : <salfromlen> <salfrom> <saltolen> <salto> */
+ for (; gap->ga_len < cnt; ++gap->ga_len)
{
- first[c] = i;
+ smp = &((salitem_T *)gap->ga_data)[gap->ga_len];
+ ccnt = getc(fd); /* <salfromlen> */
+ if (ccnt < 0)
+ goto formerr;
+ if ((p = alloc(ccnt + 2)) == NULL)
+ goto endFAIL;
+ smp->sm_lead = p;
+
+ /* Read up to the first special char into sm_lead. */
+ for (i = 0; i < ccnt; ++i)
+ {
+ c = getc(fd); /* <salfrom> */
+ if (vim_strchr((char_u *)"0123456789(-<^$", c) != NULL)
+ break;
+ *p++ = c;
+ }
+ smp->sm_leadlen = p - smp->sm_lead;
+ *p++ = NUL;
+
+ /* Put (abc) chars in sm_oneof, if any. */
+ if (c == '(')
+ {
+ smp->sm_oneof = p;
+ for (++i; i < ccnt; ++i)
+ {
+ c = getc(fd); /* <salfrom> */
+ if (c == ')')
+ break;
+ *p++ = c;
+ }
+ *p++ = NUL;
+ if (++i < ccnt)
+ c = getc(fd);
+ }
+ else
+ smp->sm_oneof = NULL;
+
+ /* Any following chars go in sm_rules. */
+ smp->sm_rules = p;
+ if (i < ccnt)
+ /* store the char we got while checking for end of sm_lead */
+ *p++ = c;
+ for (++i; i < ccnt; ++i)
+ *p++ = getc(fd); /* <salfrom> */
+ *p++ = NUL;
+
+ ccnt = getc(fd); /* <saltolen> */
+ if (ccnt < 0)
+ {
+ vim_free(smp->sm_lead);
+ goto formerr;
+ }
+ if ((p = alloc(ccnt + 1)) == NULL)
+ {
+ vim_free(smp->sm_lead);
+ goto endFAIL;
+ }
+ smp->sm_to = p;
+
+ for (i = 0; i < ccnt; ++i)
+ *p++ = getc(fd); /* <salto> */
+ *p++ = NUL;
+
#ifdef FEAT_MBYTE
if (has_mbyte)
{
- int j;
-
- /* Make sure all entries with this byte are following each
- * other. Move the ones down that are in the wrong position.
- * Do keep the right sequence. */
- while (i + 1 < gap->ga_len && (*smp[1].sm_lead_w & 0xff) == c)
+ /* convert the multi-byte strings to wide char strings */
+ smp->sm_lead_w = mb_str2wide(smp->sm_lead);
+ smp->sm_leadlen = mb_charlen(smp->sm_lead);
+ if (smp->sm_oneof == NULL)
+ smp->sm_oneof_w = NULL;
+ else
+ smp->sm_oneof_w = mb_str2wide(smp->sm_oneof);
+ smp->sm_to_w = mb_str2wide(smp->sm_to);
+ if (smp->sm_lead_w == NULL
+ || (smp->sm_oneof_w == NULL && smp->sm_oneof != NULL)
+ || smp->sm_to_w == NULL)
{
- ++i;
- ++smp;
+ vim_free(smp->sm_lead);
+ vim_free(smp->sm_to);
+ vim_free(smp->sm_lead_w);
+ vim_free(smp->sm_oneof_w);
+ vim_free(smp->sm_to_w);
+ goto endFAIL;
}
- for (j = 1; i + j < gap->ga_len; ++j)
- if ((*smp[j].sm_lead_w & 0xff) == c)
- {
- salitem_T tsal;
+ }
+#endif
+ }
+ /* Fill the first-index table. */
+ sfirst = lp->sl_sal_first;
+ for (i = 0; i < 256; ++i)
+ sfirst[i] = -1;
+ smp = (salitem_T *)gap->ga_data;
+ for (i = 0; i < gap->ga_len; ++i)
+ {
+#ifdef FEAT_MBYTE
+ if (has_mbyte)
+ /* Use the lowest byte of the first character. For latin1 it's
+ * the character, for other encodings it should differ for most
+ * characters. */
+ c = *smp[i].sm_lead_w & 0xff;
+ else
+#endif
+ c = *smp[i].sm_lead;
+ if (sfirst[c] == -1)
+ {
+ sfirst[c] = i;
+#ifdef FEAT_MBYTE
+ if (has_mbyte)
+ {
+ /* Make sure all entries with this byte are following each
+ * other. Move the ones that are in the wrong position. Do
+ * keep the same ordering! */
+ while (i + 1 < gap->ga_len
+ && (*smp[i + 1].sm_lead_w & 0xff) == c)
+ /* Skip over entry with same index byte. */
++i;
- ++smp;
- --j;
- tsal = smp[j];
- mch_memmove(smp + 1, smp, sizeof(salitem_T) * j);
- *smp = tsal;
- }
- }
+
+ for (n = 1; i + n < gap->ga_len; ++n)
+ if ((*smp[i + n].sm_lead_w & 0xff) == c)
+ {
+ salitem_T tsal;
+
+ /* Move entry with same index byte after the entries
+ * we already found. */
+ ++i;
+ --n;
+ tsal = smp[i + n];
+ mch_memmove(smp + i + 1, smp + i,
+ sizeof(salitem_T) * n);
+ smp[i] = tsal;
+ }
+ }
#endif
+ }
}
}
@@ -2711,6 +2877,8 @@ typedef struct spellinfo_S
garray_T si_rep; /* list of fromto_T entries from REP lines */
garray_T si_sal; /* list of fromto_T entries from SAL lines */
+ char_u *si_sofofr; /* SOFOFROM text */
+ char_u *si_sofoto; /* SOFOTO text */
int si_followup; /* soundsalike: ? */
int si_collapse; /* soundsalike: ? */
int si_rem_accents; /* soundsalike: remove accents */
@@ -2776,6 +2944,7 @@ spell_read_aff(fname, spin)
int do_sal;
int do_map;
int do_midword;
+ int do_sofo;
int found_map = FALSE;
hashitem_T *hi;
@@ -2811,6 +2980,9 @@ spell_read_aff(fname, spin)
/* Only do MIDWORD line when not done in another .aff file already */
do_midword = spin->si_midword == NULL;
+ /* Only do SOFOFROM and SOFOTO when not done in another .aff file already */
+ do_sofo = spin->si_sofofr == NULL;
+
/*
* Allocate and init the afffile_T structure.
*/
@@ -2886,6 +3058,7 @@ spell_read_aff(fname, spin)
p_enc) == FAIL)
smsg((char_u *)_("Conversion in %s not supported: from %s to %s"),
fname, aff->af_enc, p_enc);
+ spin->si_conv.vc_fail = TRUE;
#else
smsg((char_u *)_("Conversion in %s not supported"), fname);
#endif
@@ -3165,12 +3338,30 @@ spell_read_aff(fname, spin)
: items[2]);
}
}
+ else if (STRCMP(items[0], "SOFOFROM") == 0 && itemcnt == 2
+ && (!do_sofo || spin->si_sofofr == NULL))
+ {
+ if (do_sofo)
+ spin->si_sofofr = vim_strsave(items[1]);
+ }
+ else if (STRCMP(items[0], "SOFOTO") == 0 && itemcnt == 2
+ && (!do_sofo || spin->si_sofoto == NULL))
+ {
+ if (do_sofo)
+ spin->si_sofoto = vim_strsave(items[1]);
+ }
else
smsg((char_u *)_("Unrecognized item in %s line %d: %s"),
fname, lnum, items[0]);
}
}
+ if (do_sofo && (spin->si_sofofr == NULL) != (spin->si_sofoto == NULL))
+ smsg((char_u *)_("Missing SOFO%s line in %s"),
+ spin->si_sofofr == NULL ? "FROM" : "TO", fname);
+ if (spin->si_sofofr != NULL && spin->si_sal.ga_len > 0)
+ smsg((char_u *)_("Both SAL and SOFO lines in %s"), fname);
+
if (fol != NULL || low != NULL || upp != NULL)
{
if (spin->si_clear_chartab)
@@ -3449,7 +3640,7 @@ spell_read_dic(fname, spin, affile)
hi = hash_lookup(&ht, dw, hash);
if (!HASHITEM_EMPTY(hi))
smsg((char_u *)_("Duplicate word in %s line %d: %s"),
- fname, lnum, w);
+ fname, lnum, dw);
else
hash_add_item(&ht, hi, dw, hash);
@@ -3797,6 +3988,7 @@ spell_read_wordfile(fname, spin)
smsg((char_u *)_("Conversion in %s not supported: from %s to %s"),
fname, line, p_enc);
vim_free(enc);
+ spin->si_conv.vc_fail = TRUE;
#else
smsg((char_u *)_("Conversion in %s not supported"), fname);
#endif
@@ -4376,6 +4568,8 @@ write_vim_spell(fname, spin)
qsort(spin->si_rep.ga_data, (size_t)spin->si_rep.ga_len,
sizeof(fromto_T), rep_compare);
+ /* round 1: REP items
+ * round 2: SAL items (unless SOFO is used) */
for (round = 1; round <= 2; ++round)
{
if (round == 1)
@@ -4391,7 +4585,11 @@ write_vim_spell(fname, spin)
i |= SAL_COLLAPSE;
if (spin->si_rem_accents)
i |= SAL_REM_ACCENTS;
+ if (spin->si_sofofr != NULL && spin->si_sofoto != NULL)
+ i |= SAL_SOFO;
putc(i, fd); /* <salflags> */
+ if (i & SAL_SOFO)
+ break;
}
put_bytes(fd, (long_u)gap->ga_len, 2); /* <repcount> or <salcount> */
@@ -4410,6 +4608,20 @@ write_vim_spell(fname, spin)
}
}
+ /* SOFOFROM and SOFOTO */
+ if (spin->si_sofofr != NULL && spin->si_sofoto != NULL)
+ {
+ put_bytes(fd, 1L, 2); /* <salcount> */
+
+ l = STRLEN(spin->si_sofofr);
+ put_bytes(fd, (long_u)l, 2); /* <salfromlen> */
+ fwrite(spin->si_sofofr, l, (size_t)1, fd); /* <salfrom> */
+
+ l = STRLEN(spin->si_sofoto);
+ put_bytes(fd, (long_u)l, 2); /* <saltolen> */
+ fwrite(spin->si_sofoto, l, (size_t)1, fd); /* <salto> */
+ }
+
put_bytes(fd, (long_u)spin->si_map.ga_len, 2); /* <maplen> */
if (spin->si_map.ga_len > 0) /* <mapstr> */
fwrite(spin->si_map.ga_data, (size_t)spin->si_map.ga_len,
@@ -4869,6 +5081,8 @@ mkspell(fcount, fnames, ascii, overwrite, added_word)
ga_clear(&spin.si_map);
ga_clear(&spin.si_prefcond);
vim_free(spin.si_midword);
+ vim_free(spin.si_sofofr);
+ vim_free(spin.si_sofoto);
/* Free the .aff file structures. */
for (i = 0; i < incount; ++i)
@@ -5535,7 +5749,7 @@ spell_suggest()
while (p > line && SPELL_ISWORDP(p))
mb_ptr_back(line, p);
/* Forward to start of word. */
- while (!SPELL_ISWORDP(p))
+ while (*p != NUL && !SPELL_ISWORDP(p))
mb_ptr_adv(p);
if (!SPELL_ISWORDP(p)) /* No word found. */
@@ -5813,8 +6027,8 @@ spell_find_suggest(badptr, su, maxcount, banbadword)
if (STRNCMP(buf, "expr:", 5) == 0)
{
#ifdef FEAT_EVAL
- /* Evaluate an expression. Skip this when called recursively
- * (using spellsuggest() in the expression). */
+ /* Evaluate an expression. Skip this when called recursively,
+ * when using spellsuggest() in the expression. */
if (!expr_busy)
{
expr_busy = TRUE;
@@ -6151,8 +6365,8 @@ suggest_try_change(su)
trystate_T *sp;
int newscore;
langp_T *lp;
- char_u *byts;
- idx_T *idxs;
+ char_u *byts, *fbyts, *pbyts;
+ idx_T *idxs, *fidxs, *pidxs;
int depth;
int c, c2, c3;
int n = 0;
@@ -6182,22 +6396,42 @@ suggest_try_change(su)
* "fword[]" the word we are trying to match with (initially the bad
* word).
*/
- byts = lp->lp_slang->sl_fbyts;
- idxs = lp->lp_slang->sl_fidxs;
-
depth = 0;
- stack[0].ts_state = STATE_START;
- stack[0].ts_score = 0;
- stack[0].ts_curi = 1;
- stack[0].ts_fidx = 0;
- stack[0].ts_fidxtry = 0;
- stack[0].ts_twordlen = 0;
- stack[0].ts_arridx = 0;
+ sp = &stack[0];
+ sp->ts_state = STATE_START;
+ sp->ts_score = 0;
+ sp->ts_curi = 1;
+ sp->ts_fidx = 0;
+ sp->ts_fidxtry = 0;
+ sp->ts_twordlen = 0;
+ sp->ts_arridx = 0;
#ifdef FEAT_MBYTE
- stack[0].ts_tcharlen = 0;
+ sp->ts_tcharlen = 0;
#endif
/*
+ * When there are postponed prefixes we need to use these first. At
+ * the end of the prefix we continue in the case-fold tree.
+ */
+ fbyts = lp->lp_slang->sl_fbyts;
+ fidxs = lp->lp_slang->sl_fidxs;
+ pbyts = lp->lp_slang->sl_pbyts;
+ pidxs = lp->lp_slang->sl_pidxs;
+ if (pbyts != NULL)
+ {
+ byts = pbyts;
+ idxs = pidxs;
+ sp->ts_prefixdepth = PREFIXTREE;
+ sp->ts_state = STATE_NOPREFIX; /* try without prefix first */
+ }
+ else
+ {
+ byts = fbyts;
+ idxs = fidxs;
+ sp->ts_prefixdepth = NOPREFIX;
+ }
+
+ /*
* Loop to find all suggestions. At each round we either:
* - For the current state try one operation, advance "ts_curi",
* increase "depth".
@@ -6210,6 +6444,7 @@ suggest_try_change(su)
switch (sp->ts_state)
{
case STATE_START:
+ case STATE_NOPREFIX:
/*
* Start of node: Deal with NUL bytes, which means
* tword[] may end here.
@@ -6218,6 +6453,40 @@ suggest_try_change(su)
len = byts[arridx]; /* bytes in this node */
arridx += sp->ts_curi; /* index of current byte */
+ if (sp->ts_prefixdepth == PREFIXTREE)
+ {
+ /* Skip over the NUL bytes, we use them later. */
+ for (n = 0; n < len && byts[arridx + n] == 0; ++n)
+ ;
+ sp->ts_curi += n;
+
+ /* At end of a prefix or at start of prefixtree: check for
+ * following word. */
+ if (byts[arridx] == 0 || sp->ts_state == STATE_NOPREFIX)
+ {
+ sp->ts_state = STATE_START;
+ ++depth;
+ stack[depth] = stack[depth - 1];
+ sp = &stack[depth];
+ sp->ts_prefixdepth = depth - 1;
+ byts = fbyts;
+ idxs = fidxs;
+ sp->ts_state = STATE_START;
+ sp->ts_curi = 1; /* start just after length byte */
+ sp->ts_arridx = 0;
+
+ /* Move the prefix to preword[] so that
+ * find_keepcap_word() works. */
+ prewordlen = splitoff = sp->ts_twordlen;
+ mch_memmove(preword, tword, splitoff);
+ break;
+ }
+
+ /* Always past NUL bytes now. */
+ sp->ts_state = STATE_ENDNUL;
+ break;
+ }
+
if (sp->ts_curi > len || byts[arridx] != 0)
{
/* Past bytes in node and/or past NUL bytes. */
@@ -6232,6 +6501,31 @@ suggest_try_change(su)
flags = (int)idxs[arridx];
+ if (sp->ts_prefixdepth < MAXWLEN)
+ {
+ /* There was a prefix before the word. Check that the
+ * prefix can be used with this word. */
+ /* Count the length of the NULs in the prefix. If there
+ * are none this must be the first try without a prefix.
+ */
+ n = stack[sp->ts_prefixdepth].ts_arridx;
+ len = pbyts[n++];
+ for (c = 0; c < len && pbyts[n + c] == 0; ++c)
+ ;
+ if (c > 0)
+ {
+ /* The prefix ID is stored two bytes above the flags. */
+ c = valid_word_prefix(c, n, (unsigned)flags >> 16,
+ tword + splitoff, lp->lp_slang);
+ if (c == 0)
+ break;
+
+ /* Use the WF_RARE flag for a rare prefix. */
+ if (c & WF_RAREPFX)
+ flags |= WF_RARE;
+ }
+ }
+
/*
* Form the word with proper case in preword.
* If there is a word from a previous split, append.
@@ -6945,6 +7239,14 @@ suggest_try_change(su)
/* Did all possible states at this level, go up one level. */
--depth;
+ if (depth >= 0 && stack[depth].ts_prefixdepth == PREFIXTREE)
+ {
+ /* Continue in or go back to the prefix tree. */
+ byts = pbyts;
+ idxs = pidxs;
+ splitoff = 0;
+ }
+
/* Don't check for CTRL-C too often, it takes time. */
line_breakcheck();
}
@@ -7161,7 +7463,7 @@ score_comp_sal(su)
if (lp->lp_slang->sl_sal.ga_len > 0)
{
/* soundfold the bad word */
- spell_soundfold(lp->lp_slang, su->su_fbadword, badsound);
+ spell_soundfold(lp->lp_slang, su->su_fbadword, TRUE, badsound);
for (i = 0; i < su->su_ga.ga_len; ++i)
{
@@ -7213,7 +7515,7 @@ score_combine(su)
if (lp->lp_slang->sl_sal.ga_len > 0)
{
/* soundfold the bad word */
- spell_soundfold(lp->lp_slang, su->su_fbadword, badsound);
+ spell_soundfold(lp->lp_slang, su->su_fbadword, TRUE, badsound);
for (i = 0; i < su->su_ga.ga_len; ++i)
{
@@ -7320,14 +7622,12 @@ stp_sal_score(stp, su, slang, badsound)
for (p = fword; *(p = skiptowhite(p)) != NUL; )
mch_memmove(p, p + 1, STRLEN(p));
- spell_soundfold(slang, fword, badsound2);
+ spell_soundfold(slang, fword, TRUE, badsound2);
p = badsound2;
}
- /* Case-fold the word, sound-fold the word and compute the score for the
- * difference. */
- (void)spell_casefold(stp->st_word, STRLEN(stp->st_word), fword, MAXWLEN);
- spell_soundfold(slang, fword, goodsound);
+ /* Sound-fold the word and compute the score for the difference. */
+ spell_soundfold(slang, stp->st_word, FALSE, goodsound);
return soundalike_score(goodsound, p);
}
@@ -7341,7 +7641,6 @@ suggest_try_soundalike(su)
{
char_u salword[MAXWLEN];
char_u tword[MAXWLEN];
- char_u tfword[MAXWLEN];
char_u tsalword[MAXWLEN];
idx_T arridx[MAXWLEN];
int curi[MAXWLEN];
@@ -7362,7 +7661,7 @@ suggest_try_soundalike(su)
if (lp->lp_slang->sl_sal.ga_len > 0)
{
/* soundfold the bad word */
- spell_soundfold(lp->lp_slang, su->su_fbadword, salword);
+ spell_soundfold(lp->lp_slang, su->su_fbadword, TRUE, salword);
/*
* Go through the whole tree, soundfold each word and compare.
@@ -7406,18 +7705,10 @@ suggest_try_soundalike(su)
if (round == 2 || (flags & WF_KEEPCAP) == 0)
{
tword[depth] = NUL;
- if (round == 1)
- spell_soundfold(lp->lp_slang,
- tword, tsalword);
- else
- {
- /* In keep-case tree need to case-fold the
- * word. */
- (void)spell_casefold(tword, depth,
- tfword, MAXWLEN);
- spell_soundfold(lp->lp_slang,
- tfword, tsalword);
- }
+ /* Sound-fold. Only in keep-case tree need to
+ * case-fold the word. */
+ spell_soundfold(lp->lp_slang, tword,
+ round == 1, tsalword);
/* Compute the edit distance between the
* sound-a-like words. */
@@ -7812,7 +8103,7 @@ rescore_suggestions(su)
if (lp->lp_slang->sl_sal.ga_len > 0)
{
/* soundfold the bad word */
- spell_soundfold(lp->lp_slang, su->su_fbadword, sal_badword);
+ spell_soundfold(lp->lp_slang, su->su_fbadword, TRUE, sal_badword);
for (i = 0; i < su->su_ga.ga_len; ++i)
{
@@ -7896,7 +8187,6 @@ eval_soundfold(word)
char_u *word;
{
langp_T *lp;
- char_u fword[MAXWLEN];
char_u sound[MAXWLEN];
if (curwin->w_p_spell && *curbuf->b_p_spl != NUL)
@@ -7905,11 +8195,8 @@ eval_soundfold(word)
lp->lp_slang != NULL; ++lp)
if (lp->lp_slang->sl_sal.ga_len > 0)
{
- /* word most be case-folded first. */
- (void)spell_casefold(word, STRLEN(word), fword, MAXWLEN);
-
/* soundfold the word */
- spell_soundfold(lp->lp_slang, fword, sound);
+ spell_soundfold(lp->lp_slang, word, FALSE, sound);
return vim_strsave(sound);
}
@@ -7922,14 +8209,125 @@ eval_soundfold(word)
* Turn "inword" into its sound-a-like equivalent in "res[MAXWLEN]".
*/
static void
-spell_soundfold(slang, inword, res)
+spell_soundfold(slang, inword, folded, res)
+ slang_T *slang;
+ char_u *inword;
+ int folded; /* "inword" is already case-folded */
+ char_u *res;
+{
+ char_u fword[MAXWLEN];
+ char_u *word;
+
+ if (slang->sl_sofo)
+ /* SOFOFROM and SOFOTO used */
+ spell_soundfold_sofo(slang, inword, res);
+ else
+ {
+ /* SAL items used. Requires the word to be case-folded. */
+ if (folded)
+ word = inword;
+ else
+ {
+ (void)spell_casefold(inword, STRLEN(inword), fword, MAXWLEN);
+ word = fword;
+ }
+
+#ifdef FEAT_MBYTE
+ if (has_mbyte)
+ spell_soundfold_wsal(slang, word, res);
+ else
+#endif
+ spell_soundfold_sal(slang, word, res);
+ }
+}
+
+/*
+ * Perform sound folding of "inword" into "res" according to SOFOFROM and
+ * SOFOTO lines.
+ */
+ static void
+spell_soundfold_sofo(slang, inword, res)
+ slang_T *slang;
+ char_u *inword;
+ char_u *res;
+{
+ char_u *s;
+ int ri = 0;
+ int c;
+
+#ifdef FEAT_MBYTE
+ if (has_mbyte)
+ {
+ int prevc = 0;
+ int *ip;
+
+ /* The sl_sal_first[] table contains the translation for chars up to
+ * 255, sl_sal the rest. */
+ for (s = inword; *s != NUL; )
+ {
+ c = mb_ptr2char_adv(&s);
+ if (enc_utf8 ? utf_class(c) == 0 : vim_iswhite(c))
+ c = ' ';
+ else if (c < 256)
+ c = slang->sl_sal_first[c];
+ else
+ {
+ ip = ((int **)slang->sl_sal.ga_data)[c & 0xff];
+ if (ip == NULL) /* empty list, can't match */
+ c = NUL;
+ else
+ for (;;) /* find "c" in the list */
+ {
+ if (*ip == 0) /* not found */
+ {
+ c = NUL;
+ break;
+ }
+ if (*ip == c) /* match! */
+ {
+ c = ip[1];
+ break;
+ }
+ ip += 2;
+ }
+ }
+
+ if (c != NUL && c != prevc)
+ {
+ ri += mb_char2bytes(c, res + ri);
+ if (ri + MB_MAXBYTES > MAXWLEN)
+ break;
+ prevc = c;
+ }
+ }
+ }
+ else
+#endif
+ {
+ /* The sl_sal_first[] table contains the translation. */
+ for (s = inword; (c = *s) != NUL; ++s)
+ {
+ if (vim_iswhite(c))
+ c = ' ';
+ else
+ c = slang->sl_sal_first[c];
+ if (c != NUL && (ri == 0 || res[ri - 1] != c))
+ res[ri++] = c;
+ }
+ }
+
+ res[ri] = NUL;
+}
+
+ static void
+spell_soundfold_sal(slang, inword, res)
slang_T *slang;
char_u *inword;
char_u *res;
{
salitem_T *smp;
char_u word[MAXWLEN];
- char_u *s;
+ char_u *s = inword;
char_u *t;
char_u *pf;
int i, j, z;
@@ -7943,21 +8341,12 @@ spell_soundfold(slang, inword, res)
int p0 = -333;
int c0;
-#ifdef FEAT_MBYTE
- if (has_mbyte)
- {
- /* Call the multi-byte version of this. */
- spell_soundfold_w(slang, inword, res);
- return;
- }
-#endif
-
/* Remove accents, if wanted. We actually remove all non-word characters.
- * But keep white space. */
+ * But keep white space. We need a copy, the word may be changed here. */
if (slang->sl_rem_accents)
{
t = word;
- for (s = inword; *s != NUL; )
+ while (*s != NUL)
{
if (vim_iswhite(*s))
{
@@ -7974,7 +8363,7 @@ spell_soundfold(slang, inword, res)
*t = NUL;
}
else
- STRCPY(word, inword);
+ STRCPY(word, s);
smp = (salitem_T *)slang->sl_sal.ga_data;
@@ -8011,9 +8400,9 @@ spell_soundfold(slang, inword, res)
}
}
- if ((pf = smp[n].sm_oneoff) != NULL)
+ if ((pf = smp[n].sm_oneof) != NULL)
{
- /* Check for match with one of the chars in "sm_oneoff". */
+ /* Check for match with one of the chars in "sm_oneof". */
while (*pf != NUL && *pf != word[i + k])
++pf;
if (*pf == NUL)
@@ -8081,10 +8470,10 @@ spell_soundfold(slang, inword, res)
}
k0 += k - 1;
- if ((pf = smp[n0].sm_oneoff) != NULL)
+ if ((pf = smp[n0].sm_oneof) != NULL)
{
/* Check for match with one of the chars in
- * "sm_oneoff". */
+ * "sm_oneof". */
while (*pf != NUL && *pf != word[i + k0])
++pf;
if (*pf == NUL)
@@ -8211,12 +8600,12 @@ spell_soundfold(slang, inword, res)
* Multi-byte version of spell_soundfold().
*/
static void
-spell_soundfold_w(slang, inword, res)
+spell_soundfold_wsal(slang, inword, res)
slang_T *slang;
char_u *inword;
char_u *res;
{
- salitem_T *smp;
+ salitem_T *smp = (salitem_T *)slang->sl_sal.ga_data;
int word[MAXWLEN];
int wres[MAXWLEN];
int l;
@@ -8266,8 +8655,6 @@ spell_soundfold_w(slang, inword, res)
}
word[n] = NUL;
- smp = (salitem_T *)slang->sl_sal.ga_data;
-
/*
* This comes from Aspell phonet.cpp.
* Converted from C++ to C. Added support for multi-byte chars.
@@ -8282,11 +8669,13 @@ spell_soundfold_w(slang, inword, res)
if (n >= 0)
{
- /* check all rules for the same letter */
+ /* check all rules for the same index byte */
for (; ((ws = smp[n].sm_lead_w)[0] & 0xff) == (c & 0xff); ++n)
{
/* Quickly skip entries that don't match the word. Most
* entries are less then three chars, optimize for that. */
+ if (c != ws[0])
+ continue;
k = smp[n].sm_leadlen;
if (k > 1)
{
@@ -8302,9 +8691,9 @@ spell_soundfold_w(slang, inword, res)
}
}
- if ((pf = smp[n].sm_oneoff_w) != NULL)
+ if ((pf = smp[n].sm_oneof_w) != NULL)
{
- /* Check for match with one of the chars in "sm_oneoff". */
+ /* Check for match with one of the chars in "sm_oneof". */
while (*pf != NUL && *pf != word[i + k])
++pf;
if (*pf == NUL)
@@ -8350,12 +8739,15 @@ spell_soundfold_w(slang, inword, res)
if (slang->sl_followup && k > 1 && n0 >= 0
&& p0 != '-' && word[i + k] != NUL)
{
- /* test follow-up rule for "word[i + k]" */
+ /* Test follow-up rule for "word[i + k]"; loop over
+ * all entries with the same index byte. */
for ( ; ((ws = smp[n0].sm_lead_w)[0] & 0xff)
== (c0 & 0xff); ++n0)
{
/* Quickly skip entries that don't match the word.
- * */
+ */
+ if (c0 != ws[0])
+ continue;
k0 = smp[n0].sm_leadlen;
if (k0 > 1)
{
@@ -8373,10 +8765,10 @@ spell_soundfold_w(slang, inword, res)
}
k0 += k - 1;
- if ((pf = smp[n0].sm_oneoff_w) != NULL)
+ if ((pf = smp[n0].sm_oneof_w) != NULL)
{
/* Check for match with one of the chars in
- * "sm_oneoff". */
+ * "sm_oneof". */
while (*pf != NUL && *pf != word[i + k0])
++pf;
if (*pf == NUL)
diff --git a/src/spell/he_IL.diff b/src/spell/he_IL.diff
index 0dfde4347..2947c2882 100644
--- a/src/spell/he_IL.diff
+++ b/src/spell/he_IL.diff
@@ -1,5 +1,5 @@
*** he_IL.orig.aff Sat Jun 18 14:46:51 2005
---- he_IL.aff Sat Jun 18 15:13:34 2005
+--- he_IL.aff Wed Jun 29 17:24:12 2005
***************
*** 2,3 ****
--- 2,6 ----
@@ -8,3 +8,69 @@
+ PFXPOSTPONE
+
# This file was generated automatically from data prepared
+*** he_IL.orig.dic Sat Jun 18 14:47:00 2005
+--- he_IL.dic Wed Jun 29 17:22:13 2005
+***************
+*** 318898,318902 ****
+ ëë
+- ëì
+ ëî
+- ëîä
+ ëù
+--- 318898,318900 ----
+***************
+*** 318911,318913 ****
+ ëùëîä
+- ëùì
+ ëùìë
+--- 318909,318910 ----
+***************
+*** 318935,318950 ****
+ îá
+- îä
+ îë
+- îì
+- îù
+- îùá
+ îùáë
+- îùä
+ îùë
+- îùëá
+ îùëë
+- îùëì
+ îùëî
+ îùëîä
+- îùì
+ îùìë
+--- 318932,318939 ----
+***************
+*** 318954,318964 ****
+ ù
+- ùá
+ ùáë
+- ùä
+ ùë
+- ùëá
+ ùëë
+- ùëì
+ ùëî
+- ùëîä
+ ùëù
+--- 318943,318948 ----
+***************
+*** 318978,318980 ****
+ ùëùîë
+- ùì
+ ùìë
+--- 318962,318963 ----
+***************
+*** 318996,319003 ****
+ ùî
+- ùîä
+ ùîë
+- ùîù
+ ùîùá
+ ùîùáë
+- ùîùä
+ ùîùë
+--- 318979,318983 ----
diff --git a/src/spell/nl_NL.diff b/src/spell/nl_NL.diff
index 3aab7027e..070dd9148 100644
--- a/src/spell/nl_NL.diff
+++ b/src/spell/nl_NL.diff
@@ -1,13 +1,16 @@
*** nl_NL.orig.aff Wed Apr 20 11:48:16 2005
---- nl_NL.aff Mon Jun 27 22:07:02 2005
+--- nl_NL.aff Wed Jun 29 17:29:49 2005
***************
*** 3,4 ****
---- 3,14 ----
+--- 3,17 ----
+ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
+ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
+ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
+
++ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
++ SOFOTO ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
++
+ MIDWORD '-
+
+ KEP =
@@ -37,7 +40,7 @@
! SFX J 0 je [aeiou][bcdfgkpt]
! SFX J 0 jes [aeiou][bcdfgkpt]
---- 43,62 ----
+--- 46,65 ----
SFX J N 18
! SFX J 0 tje [aeiou][aeiou]
! SFX J 0 tjes [aeiou][aeiou]
@@ -63,7 +66,7 @@
REP ubi ibu
! REP croc krok
REP ten than
---- 263,265 ----
+--- 266,268 ----
REP ubi ibu
! REP croc krok
REP ten than
@@ -72,7 +75,7 @@
REP capucino cappuccino
! REP celcius Celsius
REP kado cadeau
---- 298,300 ----
+--- 301,303 ----
REP capucino cappuccino
! REP celcius Celsius
REP kado cadeau
@@ -85,7 +88,7 @@
REP kommittee comité
! REP kwis quiz
REP kwissen quizzen
---- 304,310 ----
+--- 307,313 ----
REP committee comité
! REP komitee comité
! REP komittee comité
@@ -98,7 +101,7 @@
REP copy kopij
! REP pitoresque pittoreske
REP reikweite reikwijdte
---- 312,314 ----
+--- 315,317 ----
REP copy kopij
! REP pitoresque pittoreske
REP reikweite reikwijdte
@@ -110,7 +113,7 @@
! REP kontekst context
! REP korrekt correct
REP kritikus criticus
---- 324,329 ----
+--- 327,332 ----
REP klup club
! REP wiskid whizzkid
! REP kontakt contact
@@ -119,7 +122,7 @@
REP kritikus criticus
***************
*** 333 ****
---- 343,466 ----
+--- 346,359 ----
REP aflassen afgelasten
+ REP svp s.v.p.
+ REP zoz z.o.z.
@@ -134,116 +137,6 @@
+ MAP cç
+ MAP yÿý
+ MAP sß
-+
-+ # This comes from Aspell en_phonet.dat, version 1.1, 2000-01-07
-+
-+ SAL AH(AEIOUY)-^ *H
-+ SAL AR(AEIOUY)-^ *R
-+ SAL A(HR)^ *
-+ SAL A^ *
-+ SAL AH(AEIOUY)- H
-+ SAL AR(AEIOUY)- R
-+ SAL A(HR) _
-+ SAL À^ *
-+ SAL Å^ *
-+ SAL BB- _
-+ SAL B B
-+ SAL CQ- _
-+ SAL CIA X
-+ SAL CH X
-+ SAL C(EIY)- S
-+ SAL CK K
-+ SAL COUGH^ KF
-+ SAL CC< C
-+ SAL C K
-+ SAL DG(EIY) K
-+ SAL DD- _
-+ SAL D T
-+ SAL É< E
-+ SAL EH(AEIOUY)-^ *H
-+ SAL ER(AEIOUY)-^ *R
-+ SAL E(HR)^ *
-+ SAL ENOUGH^$ *NF
-+ SAL E^ *
-+ SAL EH(AEIOUY)- H
-+ SAL ER(AEIOUY)- R
-+ SAL E(HR) _
-+ SAL FF- _
-+ SAL F F
-+ SAL GN^ N
-+ SAL GN$ N
-+ SAL GNS$ NS
-+ SAL GNED$ N
-+ SAL GH(AEIOUY)- K
-+ SAL GH _
-+ SAL GG9 K
-+ SAL G K
-+ SAL H H
-+ SAL IH(AEIOUY)-^ *H
-+ SAL IR(AEIOUY)-^ *R
-+ SAL I(HR)^ *
-+ SAL I^ *
-+ SAL ING6 N
-+ SAL IH(AEIOUY)- H
-+ SAL IR(AEIOUY)- R
-+ SAL I(HR) _
-+ SAL J K
-+ SAL KN^ N
-+ SAL KK- _
-+ SAL K K
-+ SAL LAUGH^ LF
-+ SAL LL- _
-+ SAL L L
-+ SAL MB$ M
-+ SAL MM M
-+ SAL M M
-+ SAL NN- _
-+ SAL N N
-+ SAL OH(AEIOUY)-^ *H
-+ SAL OR(AEIOUY)-^ *R
-+ SAL O(HR)^ *
-+ SAL O^ *
-+ SAL OH(AEIOUY)- H
-+ SAL OR(AEIOUY)- R
-+ SAL O(HR) _
-+ SAL PH F
-+ SAL PN^ N
-+ SAL PP- _
-+ SAL P P
-+ SAL Q K
-+ SAL RH^ R
-+ SAL ROUGH^ RF
-+ SAL RR- _
-+ SAL R R
-+ SAL SCH(EOU)- SK
-+ SAL SC(IEY)- S
-+ SAL SH X
-+ SAL SI(AO)- X
-+ SAL SS- _
-+ SAL S S
-+ SAL TI(AO)- X
-+ SAL TH @
-+ SAL TCH-- _
-+ SAL TOUGH^ TF
-+ SAL TT- _
-+ SAL T T
-+ SAL UH(AEIOUY)-^ *H
-+ SAL UR(AEIOUY)-^ *R
-+ SAL U(HR)^ *
-+ SAL U^ *
-+ SAL UH(AEIOUY)- H
-+ SAL UR(AEIOUY)- R
-+ SAL U(HR) _
-+ SAL V^ W
-+ SAL V F
-+ SAL WR^ R
-+ SAL WH^ W
-+ SAL W(AEIOU)- W
-+ SAL X^ S
-+ SAL X KS
-+ SAL Y(AEIOU)- Y
-+ SAL ZZ- _
-+ SAL Z S
*** nl_NL.orig.dic Tue Apr 19 21:03:15 2005
--- nl_NL.dic Mon Jun 27 20:38:35 2005
***************
diff --git a/src/version.h b/src/version.h
index 1b12b0ca2..59a885424 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
#define VIM_VERSION_NODOT "vim70aa"
#define VIM_VERSION_SHORT "7.0aa"
#define VIM_VERSION_MEDIUM "7.0aa ALPHA"
-#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Jun 28)"
-#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jun 28, compiled "
+#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Jun 29)"
+#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jun 29, compiled "