summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2017-10-01 14:43:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2017-10-01 14:43:41 +0000
commite98af22e3863604894ea3d3431d41a3d43e3ee53 (patch)
tree7a0e8387a471a4b6439008a31d27ed3a79fe1cc8
parentReleasing progress-linux version 2:8.0.0946-1~dschinn1. (diff)
downloadvim-e98af22e3863604894ea3d3431d41a3d43e3ee53.zip
vim-e98af22e3863604894ea3d3431d41a3d43e3ee53.tar.xz
Merging upstream version 2:8.0.1144.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
-rw-r--r--Filelist1
-rw-r--r--nsis/gvim.nsi15
-rw-r--r--runtime/autoload/paste.vim4
-rw-r--r--runtime/doc/cmdline.txt8
-rw-r--r--runtime/doc/diff.txt6
-rw-r--r--runtime/doc/editing.txt3
-rw-r--r--runtime/doc/eval.txt183
-rw-r--r--runtime/doc/gui.txt28
-rw-r--r--runtime/doc/index.txt4
-rw-r--r--runtime/doc/intro.txt10
-rw-r--r--runtime/doc/map.txt18
-rw-r--r--runtime/doc/mbyte.txt3
-rw-r--r--runtime/doc/options.txt67
-rw-r--r--runtime/doc/quickfix.txt9
-rw-r--r--runtime/doc/quickref.txt4
-rw-r--r--runtime/doc/syntax.txt22
-rw-r--r--runtime/doc/tags53
-rw-r--r--runtime/doc/term.txt34
-rw-r--r--runtime/doc/terminal.txt238
-rw-r--r--runtime/doc/todo.txt148
-rw-r--r--runtime/doc/usr_07.txt22
-rw-r--r--runtime/doc/usr_41.txt19
-rw-r--r--runtime/doc/various.txt12
-rw-r--r--runtime/doc/vim.man2
-rw-r--r--runtime/doc/visual.txt7
-rw-r--r--runtime/doc/windows.txt10
-rw-r--r--runtime/ftplugin/perl.vim13
-rw-r--r--runtime/ftplugin/verilog.vim21
-rw-r--r--runtime/indent/cmake.vim19
-rw-r--r--runtime/indent/javascript.vim505
-rw-r--r--runtime/indent/perl.vim9
-rw-r--r--runtime/indent/verilog.vim30
-rw-r--r--runtime/optwin.vim8
-rw-r--r--runtime/pack/dist/opt/matchit/plugin/matchit.vim8
-rw-r--r--runtime/pack/dist/opt/termdebug/plugin/termdebug.vim377
-rw-r--r--runtime/scripts.vim4
-rw-r--r--runtime/syntax/clojure.vim2
-rw-r--r--runtime/syntax/cmake.vim491
-rw-r--r--runtime/syntax/debcontrol.vim16
-rw-r--r--runtime/syntax/form.vim10
-rw-r--r--runtime/syntax/mason.vim56
-rw-r--r--runtime/syntax/murphi.vim38
-rw-r--r--runtime/syntax/n1ql.vim434
-rw-r--r--runtime/syntax/perl.vim199
-rw-r--r--runtime/syntax/pod.vim5
-rw-r--r--runtime/syntax/readline.vim5
-rw-r--r--runtime/syntax/sas.vim4
-rw-r--r--runtime/syntax/tap.vim97
-rw-r--r--runtime/syntax/tt2.vim6
-rw-r--r--runtime/syntax/vim.vim4
-rw-r--r--runtime/syntax/xs.vim3942
-rw-r--r--runtime/tutor/tutor2
-rw-r--r--runtime/tutor/tutor.ru.utf-84
-rw-r--r--runtime/tutor/tutor.utf-82
-rw-r--r--runtime/tutor/tutor.zh.utf-82
-rw-r--r--runtime/tutor/tutor.zh_tw.utf-82
-rw-r--r--src/Make_cyg.mak2
-rw-r--r--src/Make_cyg_ming.mak71
-rw-r--r--src/Make_ming.mak2
-rw-r--r--src/Make_mvc.mak49
-rw-r--r--src/Makefile27
-rwxr-xr-xsrc/auto/configure27
-rw-r--r--src/buffer.c215
-rw-r--r--src/channel.c395
-rw-r--r--src/charset.c46
-rw-r--r--src/configure.ac24
-rw-r--r--src/diff.c83
-rw-r--r--src/digraph.c4
-rw-r--r--src/edit.c62
-rw-r--r--src/eval.c59
-rw-r--r--src/evalfunc.c355
-rw-r--r--src/ex_cmdidxs.h16
-rw-r--r--src/ex_cmds.c63
-rw-r--r--src/ex_cmds.h16
-rw-r--r--src/ex_cmds2.c153
-rw-r--r--src/ex_docmd.c392
-rw-r--r--src/ex_getln.c9
-rw-r--r--src/feature.h24
-rw-r--r--src/fileio.c33
-rw-r--r--src/fold.c3
-rw-r--r--src/getchar.c48
-rw-r--r--src/globals.h37
-rw-r--r--src/gui.c95
-rw-r--r--src/gui.h3
-rw-r--r--src/gui_athena.c2
-rw-r--r--src/gui_beval.c26
-rw-r--r--src/gui_gtk.c4
-rw-r--r--src/gui_gtk_x11.c258
-rw-r--r--src/gui_mac.c7
-rw-r--r--src/gui_motif.c2
-rw-r--r--src/gui_w32.c34
-rw-r--r--src/gui_x11.c90
-rw-r--r--src/if_cscope.c10
-rw-r--r--src/if_lua.c6
-rw-r--r--src/if_mzsch.c16
-rw-r--r--src/if_perl.xs31
-rw-r--r--src/if_py_both.h8
-rw-r--r--src/if_python.c2
-rw-r--r--src/if_python3.c2
-rw-r--r--src/if_ruby.c14
-rw-r--r--src/if_tcl.c2
-rw-r--r--src/if_xcmdsrv.c1
-rw-r--r--src/iscygpty.c24
-rw-r--r--src/iscygpty.h7
-rw-r--r--src/libvterm/src/screen.c2
-rw-r--r--src/libvterm/src/state.c1
-rw-r--r--src/libvterm/src/unicode.c28
-rw-r--r--src/libvterm/src/vterm.c3
-rw-r--r--src/main.c78
-rw-r--r--src/mark.c8
-rw-r--r--src/mbyte.c441
-rw-r--r--src/memline.c6
-rw-r--r--src/menu.c316
-rw-r--r--src/message.c13
-rw-r--r--src/misc1.c139
-rw-r--r--src/misc2.c37
-rw-r--r--src/move.c55
-rw-r--r--src/netbeans.c6
-rw-r--r--src/normal.c142
-rw-r--r--src/ops.c20
-rw-r--r--src/option.c293
-rw-r--r--src/option.h24
-rw-r--r--src/os_unix.c70
-rw-r--r--src/os_win32.c2
-rw-r--r--src/popupmnu.c16
-rw-r--r--src/proto/buffer.pro2
-rw-r--r--src/proto/channel.pro6
-rw-r--r--src/proto/charset.pro2
-rw-r--r--src/proto/ex_docmd.pro4
-rw-r--r--src/proto/gui_gtk_x11.pro1
-rw-r--r--src/proto/mbyte.pro2
-rw-r--r--src/proto/menu.pro3
-rw-r--r--src/proto/misc1.pro1
-rw-r--r--src/proto/os_unix.pro1
-rw-r--r--src/proto/quickfix.pro4
-rw-r--r--src/proto/screen.pro10
-rw-r--r--src/proto/syntax.pro5
-rw-r--r--src/proto/term.pro2
-rw-r--r--src/proto/terminal.pro7
-rw-r--r--src/quickfix.c1231
-rw-r--r--src/screen.c923
-rw-r--r--src/search.c14
-rw-r--r--src/spell.c8
-rw-r--r--src/structs.h92
-rw-r--r--src/syntax.c128
-rw-r--r--src/tag.c57
-rw-r--r--src/term.c391
-rw-r--r--src/term.h16
-rw-r--r--src/terminal.c1351
-rw-r--r--src/testdir/Make_all.mak6
-rw-r--r--src/testdir/Make_vms.mms4
-rw-r--r--src/testdir/gen_opt_test.vim1
-rw-r--r--src/testdir/runtest.vim1
-rw-r--r--src/testdir/setup.vim3
-rw-r--r--src/testdir/shared.vim14
-rw-r--r--src/testdir/test56.in21
-rw-r--r--src/testdir/test56.ok2
-rw-r--r--src/testdir/test57.in545
-rw-r--r--src/testdir/test57.ok501
-rw-r--r--src/testdir/test80.in201
-rw-r--r--src/testdir/test80.ok131
-rw-r--r--src/testdir/test_alot.vim4
-rw-r--r--src/testdir/test_autocmd.vim13
-rw-r--r--src/testdir/test_bufline.vim43
-rw-r--r--src/testdir/test_cindent.vim31
-rw-r--r--src/testdir/test_clientserver.vim3
-rw-r--r--src/testdir/test_diffmode.vim8
-rw-r--r--src/testdir/test_filetype.vim28
-rw-r--r--src/testdir/test_fold.vim14
-rw-r--r--src/testdir/test_functions.vim36
-rw-r--r--src/testdir/test_help.vim17
-rw-r--r--src/testdir/test_match.vim14
-rw-r--r--src/testdir/test_mksession.vim30
-rw-r--r--src/testdir/test_normal.vim22
-rw-r--r--src/testdir/test_quickfix.vim158
-rw-r--r--src/testdir/test_sort.vim1138
-rw-r--r--src/testdir/test_stat.vim31
-rw-r--r--src/testdir/test_substitute.vim180
-rw-r--r--src/testdir/test_terminal.vim290
-rw-r--r--src/testdir/test_terminal_fail.vim21
-rw-r--r--src/testdir/test_timers.vim54
-rw-r--r--src/testdir/test_vimscript.vim20
-rw-r--r--src/testdir/test_virtualedit.vim43
-rw-r--r--src/testdir/test_winbar.vim23
-rw-r--r--src/testdir/test_windows_home.vim121
-rw-r--r--src/ui.c101
-rw-r--r--src/undo.c4
-rw-r--r--src/version.c408
-rw-r--r--src/vim.h40
-rw-r--r--src/window.c171
-rw-r--r--src/workshop.c2
-rw-r--r--vimtutor.bat4
192 files changed, 12756 insertions, 7811 deletions
diff --git a/Filelist b/Filelist
index 594b335..0587917 100644
--- a/Filelist
+++ b/Filelist
@@ -638,6 +638,7 @@ RT_ALL = \
runtime/pack/dist/opt/matchit/doc/tags \
runtime/pack/dist/opt/shellmenu/plugin/shellmenu.vim \
runtime/pack/dist/opt/swapmouse/plugin/swapmouse.vim \
+ runtime/pack/dist/opt/termdebug/plugin/termdebug.vim \
# runtime files for all distributions without CR-NL translation
RT_ALL_BIN = \
diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi
index dba9021..1a169f3 100644
--- a/nsis/gvim.nsi
+++ b/nsis/gvim.nsi
@@ -179,7 +179,7 @@ FunctionEnd
##########################################################
Section "Vim executables and runtime files"
- SectionIn 1 2 3
+ SectionIn 1 2 3 RO
# we need also this here if the user changes the instdir
StrCpy $0 "$INSTDIR\vim${VER_MAJOR}${VER_MINOR}"
@@ -191,13 +191,16 @@ Section "Vim executables and runtime files"
File ${VIMSRC}\vimrun.exe
File /oname=tee.exe ${VIMSRC}\teew32.exe
File /oname=xxd.exe ${VIMSRC}\xxdw32.exe
- File ${VIMTOOLS}\diff.exe
File ${VIMRT}\vimtutor.bat
File ${VIMRT}\README.txt
File ..\uninstal.txt
File ${VIMRT}\*.vim
File ${VIMRT}\rgb.txt
+ File ${VIMTOOLS}\diff.exe
+ File ${VIMTOOLS}\winpty32.dll
+ File ${VIMTOOLS}\winpty-agent.exe
+
SetOutPath $0\colors
File ${VIMRT}\colors\*.*
@@ -216,6 +219,14 @@ Section "Vim executables and runtime files"
SetOutPath $0\macros
File ${VIMRT}\macros\*.*
+ SetOutPath $0\macros\hanoi
+ File ${VIMRT}\macros\hanoi\*.*
+ SetOutPath $0\macros\life
+ File ${VIMRT}\macros\life\*.*
+ SetOutPath $0\macros\maze
+ File ${VIMRT}\macros\maze\*.*
+ SetOutPath $0\macros\urm
+ File ${VIMRT}\macros\urm\*.*
SetOutPath $0\pack\dist\opt\dvorak\dvorak
File ${VIMRT}\pack\dist\opt\dvorak\dvorak\*.*
diff --git a/runtime/autoload/paste.vim b/runtime/autoload/paste.vim
index fcf06ec..dd7b3ae 100644
--- a/runtime/autoload/paste.vim
+++ b/runtime/autoload/paste.vim
@@ -1,6 +1,6 @@
" Vim support file to help with paste mappings and menus
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2006 Jun 23
+" Last Change: 2017 Aug 30
" Define the string to use for items that are present both in Edit, Popup and
" Toolbar menu. Also used in mswin.vim and macmap.vim.
@@ -12,7 +12,7 @@
if has("virtualedit")
let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"}
let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n']
- let paste#paste_cmd['i'] = 'x<BS><Esc>' . paste#paste_cmd['n'] . 'gi'
+ let paste#paste_cmd['i'] = "\<c-\>\<c-o>\"+gP"
func! paste#Paste()
let ove = &ve
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index cd38e90..a0e37b5 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt* For Vim version 8.0. Last change: 2017 Jul 11
+*cmdline.txt* For Vim version 8.0. Last change: 2017 Sep 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -826,10 +826,16 @@ Also see |`=|.
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
*:<sfile>* *<sfile>* *:<afile>* *<afile>*
*:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
+ *:<cexpr>* *<cexpr>*
*<slnum>* *E495* *E496* *E497* *E499* *E500*
Note: these are typed literally, they are not special keys!
<cword> is replaced with the word under the cursor (like |star|)
<cWORD> is replaced with the WORD under the cursor (see |WORD|)
+ <cexpr> is replaced with the word under the cursor, including more
+ to form a C expression. E.g., when the cursor is on "arg"
+ of "ptr->arg" then the result is "ptr->arg"; when the
+ cursor is on "]" of "list[idx]" then the result is
+ "list[idx]". This is used for |v:beval_text|.
<cfile> is replaced with the path name under the cursor (like what
|gf| uses)
<afile> When executing autocommands, is replaced with the file name
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 7361d42..9951028 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,4 +1,4 @@
-*diff.txt* For Vim version 8.0. Last change: 2017 Feb 03
+*diff.txt* For Vim version 8.0. Last change: 2017 Sep 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -226,8 +226,8 @@ The diffs are highlighted with these groups:
(searching from the end of the line). The
text in between is highlighted. This means
that parts in the middle that are still the
- same are highlighted anyway. Only "iwhite" of
- 'diffopt' is used here.
+ same are highlighted anyway. The 'diffopt'
+ flags "iwhite" and "icase" are used here.
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
because they don't really exist in this
buffer.
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index e4433d6..714bc65 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt* For Vim version 8.0. Last change: 2017 Aug 01
+*editing.txt* For Vim version 8.0. Last change: 2017 Aug 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1109,6 +1109,7 @@ The names can be in upper- or lowercase.
window in the current tab page the current tab page is
closed |tab-page|.
Triggers the |QuitPre| autocommand event.
+ See |CTRL-W_q| for quitting another window.
:conf[irm] q[uit] Quit, but give prompt when changes have been made, or
the last file in the argument list has not been
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 37e849c..edc12ef 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 8.0. Last change: 2017 Aug 11
+*eval.txt* For Vim version 8.0. Last change: 2017 Sep 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1449,7 +1449,7 @@ v:beval_text The text under or after the mouse pointer. Usually a word as
but a dot and "->" before the position is included. When on a
']' the text before it is used, including the matching '[' and
word before it. When on a Visual area within one line the
- highlighted text is used.
+ highlighted text is used. Also see |<cexpr>|.
Only valid while evaluating the 'balloonexpr' option.
*v:beval_winnr* *beval_winnr-variable*
@@ -1902,6 +1902,26 @@ v:termresponse The escape sequence returned by the terminal for the |t_RV|
always 95 or bigger). Pc is always zero.
{only when compiled with |+termresponse| feature}
+ *v:termblinkresp*
+v:termblinkresp The escape sequence returned by the terminal for the |t_RC|
+ termcap entry. This is used to find out whether the terminal
+ cursor is blinking. This is used by |term_getcursor()|.
+
+ *v:termstyleresp*
+v:termstyleresp The escape sequence returned by the terminal for the |t_RS|
+ termcap entry. This is used to find out what the shape of the
+ cursor is. This is used by |term_getcursor()|.
+
+ *v:termrgbresp*
+v:termrgbresp The escape sequence returned by the terminal for the |t_RB|
+ termcap entry. This is used to find out what the terminal
+ background color is, see 'background'.
+
+ *v:termu7resp*
+v:termu7resp The escape sequence returned by the terminal for the |t_u7|
+ termcap entry. This is used to find out what the terminal
+ does with ambiguous width characters, see 'ambiwidth'.
+
*v:testing* *testing-variable*
v:testing Must be set before using `test_garbagecollect_now()`.
Also, when set certain error messages won't be shown for 2
@@ -2296,6 +2316,9 @@ searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]])
server2client({clientid}, {string})
Number send reply string
serverlist() String get a list of available servers
+setbufline( {expr}, {lnum}, {line})
+ Number set line {lnum} to {line} in buffer
+ {expr}
setbufvar({expr}, {varname}, {val})
none set {varname} in buffer {expr} to {val}
setcharsearch({dict}) Dict set character search from {dict}
@@ -2378,7 +2401,7 @@ term_getscrolled({buf}) Number get the scroll count of a terminal
term_getsize({buf}) List get the size of a terminal
term_getstatus({buf}) String get the status of a terminal
term_gettitle({buf}) String get the title of a terminal
-term_gettty({buf}) String get the tty name of a terminal
+term_getttty({buf}, [{input}]) String get the tty name of a terminal
term_list() List get the list of terminal buffers
term_scrape({buf}, {row}) List get row of a terminal screen
term_sendkeys({buf}, {keys}) none send keystrokes to a terminal
@@ -2387,6 +2410,7 @@ term_wait({buf} [, {time}]) Number wait for screen to be updated
test_alloc_fail({id}, {countdown}, {repeat})
none make memory allocation fail
test_autochdir() none enable 'autochdir' during startup
+test_feedinput() none add key sequence to input buffer
test_garbagecollect_now() none free memory right now for testing
test_ignore_error({expr}) none ignore a specific error
test_null_channel() Channel null value for testing
@@ -3277,7 +3301,7 @@ count({comp}, {expr} [, {ic} [, {start}]]) *count()*
When {ic} is given and it's |TRUE| then case is ignored.
When {comp} is a string then the number of not overlapping
- occurences of {expr} is returned.
+ occurrences of {expr} is returned.
*cscope_connection()*
@@ -3443,7 +3467,7 @@ escape({string}, {chars}) *escape()*
:echo escape('c:\program files\vim', ' \')
< results in: >
c:\\program\ files\\vim
-< Also see |shellescape()|.
+< Also see |shellescape()| and |fnameescape()|.
*eval()*
eval({string}) Evaluate {string} and return the result. Especially useful to
@@ -3863,7 +3887,7 @@ float2nr({expr}) *float2nr()*
When the value of {expr} is out of range for a |Number| the
result is truncated to 0x7fffffff or -0x7fffffff (or when
64-bit Number support is enabled, 0x7fffffffffffffff or
- -0x7fffffffffffffff. NaN results in -0x80000000 (or when
+ -0x7fffffffffffffff). NaN results in -0x80000000 (or when
64-bit Number support is enabled, -0x8000000000000000).
Examples: >
echo float2nr(3.95)
@@ -4612,31 +4636,52 @@ getqflist([{what}]) *getqflist()*
returns only the items listed in {what} as a dictionary. The
following string items are supported in {what}:
context get the context stored with |setqflist()|
+ efm errorformat to use when parsing "lines". If
+ not present, then the 'erroformat' option
+ value is used.
+ id get information for the quickfix list with
+ |quickfix-ID|; zero means the id for the
+ current list or the list specifed by "nr"
+ idx index of the current entry in the list
items quickfix list entries
+ lines use 'errorformat' to extract items from a list
+ of lines and return the resulting entries.
+ Only a |List| type is accepted. The current
+ quickfix list is not modified.
nr get information for this quickfix list; zero
- means the current quickfix list and '$' means
+ means the current quickfix list and "$" means
the last quickfix list
+ size number of entries in the quickfix list
title get the list title
winid get the |window-ID| (if opened)
all all of the above quickfix properties
Non-string items in {what} are ignored.
If "nr" is not present then the current quickfix list is used.
- To get the number of lists in the quickfix stack, set 'nr' to
- '$' in {what}. The 'nr' value in the returned dictionary
+ If both "nr" and a non-zero "id" are specified, then the list
+ specified by "id" is used.
+ To get the number of lists in the quickfix stack, set "nr" to
+ "$" in {what}. The "nr" value in the returned dictionary
contains the quickfix stack size.
+ When "lines" is specified, all the other items except "efm"
+ are ignored. The returned dictionary contains the entry
+ "items" with the list of entries.
In case of error processing {what}, an empty dictionary is
returned.
The returned dictionary contains the following entries:
context context information stored with |setqflist()|
+ id quickfix list ID |quickfix-ID|
+ idx index of the current entry in the list
items quickfix list entries
nr quickfix list number
+ size number of entries in the quickfix list
title quickfix list title text
winid quickfix |window-ID| (if opened)
Examples: >
:echo getqflist({'all': 1})
:echo getqflist({'nr': 2, 'title': 1})
+ :echo getqflist({'lines' : ["F1:10:L10"]})
<
getreg([{regname} [, 1 [, {list}]]]) *getreg()*
@@ -4742,7 +4787,9 @@ getwininfo([{winid}]) *getwininfo()*
Each List item is a Dictionary with the following entries:
bufnr number of buffer in the window
- height window height
+ height window height (excluding winbar)
+ winbar 1 if the window has a toolbar, 0
+ otherwise
loclist 1 if showing a location list
{only with the +quickfix feature}
quickfix 1 if quickfix or location list window
@@ -5204,7 +5251,8 @@ job_info({job}) *job_info()*
"status" what |job_status()| returns
"channel" what |job_getchannel()| returns
"process" process ID
- "tty" controlling terminal name, empty when none
+ "tty_in" terminal input name, empty when none
+ "tty_out" terminal output name, empty when none
"exitval" only valid when "status" is "dead"
"exit_cb" function to be called on exit
"stoponexit" |job-stoponexit|
@@ -5217,6 +5265,7 @@ job_setoptions({job}, {options}) *job_setoptions()*
job_start({command} [, {options}]) *job_start()*
Start a job and return a Job object. Unlike |system()| and
|:!cmd| this does not wait for the job to finish.
+ To start a job in a terminal window see |term_start()|.
{command} can be a String. This works best on MS-Windows. On
Unix it is split up in white-separated parts to be passed to
@@ -5629,6 +5678,7 @@ maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
"s" Select
"x" Visual
"l" langmap |language-mapping|
+ "t" Terminal-Job
"" Normal, Visual and Operator-pending
When {mode} is omitted, the modes for "" are used.
@@ -5955,7 +6005,7 @@ mode([expr]) Return a string that indicates the current mode.
a non-empty String (|non-zero-arg|), then the full mode is
returned, otherwise only the first letter is returned.
- n Normal
+ n Normal, Terminal-Normal
no Operator-pending
v Visual by character
V Visual by line
@@ -5977,6 +6027,7 @@ mode([expr]) Return a string that indicates the current mode.
rm The -- more -- prompt
r? A |:confirm| query of some sort
! Shell or external command is executing
+ t Terminal-Job mode: keys go to the job
This is useful in the 'statusline' option or when used
with |remote_expr()| In most other places it always returns
"c" or "n".
@@ -6822,6 +6873,19 @@ serverlist() *serverlist()*
Example: >
:echo serverlist()
<
+setbufline({expr}, {lnum}, {text}) *setbufline()*
+ Set line {lnum} to {text} in buffer {expr}. To insert
+ lines use |append()|.
+
+ For the use of {expr}, see |bufname()| above.
+
+ {lnum} is used like with |setline()|.
+ This works like |setline()| for the specified buffer.
+ On success 0 is returned, on failure 1 is returned.
+
+ If {expr} is not a valid buffer or {lnum} is not valid, an
+ error message is given.
+
setbufvar({expr}, {varname}, {val}) *setbufvar()*
Set option or local variable {varname} in buffer {expr} to
{val}.
@@ -6890,13 +6954,19 @@ setfperm({fname}, {mode}) *setfperm()* *chmod*
setline({lnum}, {text}) *setline()*
Set line {lnum} of the current buffer to {text}. To insert
- lines use |append()|.
+ lines use |append()|. To set lines in another buffer use
+ |setbufline()|.
+
{lnum} is used like with |getline()|.
When {lnum} is just below the last line the {text} will be
added as a new line.
+
If this succeeds, 0 is returned. If this fails (most likely
- because {lnum} is invalid) 1 is returned. Example: >
+ because {lnum} is invalid) 1 is returned.
+
+ Example: >
:call setline(5, strftime("%c"))
+
< When {text} is a |List| then line {lnum} and following lines
will be set to the items in the list. Example: >
:call setline(5, ['aaa', 'bbb', 'ccc'])
@@ -6904,6 +6974,7 @@ setline({lnum}, {text}) *setline()*
:for [n, l] in [[5, 'aaa'], [6, 'bbb'], [7, 'ccc']]
: call setline(n, l)
:endfor
+
< Note: The '[ and '] marks are not set.
setloclist({nr}, {list}[, {action}[, {what}]]) *setloclist()*
@@ -7028,31 +7099,38 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()*
is created. The new quickfix list is added after the current
quickfix list in the stack and all the following lists are
freed. To add a new quickfix list at the end of the stack,
- set "nr" in {what} to '$'.
+ set "nr" in {what} to "$".
If the optional {what} dictionary argument is supplied, then
only the items listed in {what} are set. The first {list}
argument is ignored. The following items can be specified in
{what}:
context any Vim type can be stored as a context
- text use 'errorformat' to extract items from the
- text and add the resulting entries to the
- quickfix list {nr}. The value can be a string
- with one line or a list with multiple lines.
+ efm errorformat to use when parsing text from
+ "lines". If this is not present, then the
+ 'errorformat' option value is used.
+ id quickfix list identifier |quickfix-ID|
items list of quickfix entries. Same as the {list}
argument.
+ lines use 'errorformat' to parse a list of lines and
+ add the resulting entries to the quickfix list
+ {nr} or {id}. Only a |List| value is supported.
nr list number in the quickfix stack; zero
- means the current quickfix list and '$' means
+ means the current quickfix list and "$" means
the last quickfix list
title quickfix list title text
Unsupported keys in {what} are ignored.
If the "nr" item is not present, then the current quickfix list
is modified. When creating a new quickfix list, "nr" can be
set to a value one greater than the quickfix stack size.
+ When modifying a quickfix list, to guarantee that the correct
+ list is modified, "id" should be used instead of "nr" to
+ specify the list.
Examples: >
- :call setqflist([], 'r', {'title': 'My search'})
- :call setqflist([], 'r', {'nr': 2, 'title': 'Errors'})
+ :call setqflist([], 'r', {'title': 'My search'})
+ :call setqflist([], 'r', {'nr': 2, 'title': 'Errors'})
+ :call setqflist([], 'a', {'id':myid, 'lines':["F1:10:L10"]})
<
Returns zero for success, -1 for failure.
@@ -7094,16 +7172,17 @@ setreg({regname}, {value} [, {options}])
:call setreg('a', "1\n2\n3", 'b5')
< This example shows using the functions to save and restore a
- register (note: you may not reliably restore register value
- without using the third argument to |getreg()| as without it
- newlines are represented as newlines AND Nul bytes are
- represented as newlines as well, see |NL-used-for-Nul|). >
+ register: >
:let var_a = getreg('a', 1, 1)
:let var_amode = getregtype('a')
....
:call setreg('a', var_a, var_amode)
+< Note: you may not reliably restore register value
+ without using the third argument to |getreg()| as without it
+ newlines are represented as newlines AND Nul bytes are
+ represented as newlines as well, see |NL-used-for-Nul|.
-< You can also change the type of a register by appending
+ You can also change the type of a register by appending
nothing: >
:call setreg('a', '', 'al')
@@ -7683,6 +7762,7 @@ synIDattr({synID}, {what} [, {mode}]) *synIDattr()*
"standout" "1" if standout
"underline" "1" if underlined
"undercurl" "1" if undercurled
+ "strike" "1" if strikethrough
Example (echoes the color of the syntax item under the
cursor): >
@@ -7712,12 +7792,12 @@ synconcealed({lnum}, {col}) *synconcealed()*
the text is "123456" and both "23" and "45" are concealed
and replace by the character "X", then:
call returns ~
- synconcealed(lnum, 1) [0, '', 0]
- synconcealed(lnum, 2) [1, 'X', 1]
- synconcealed(lnum, 3) [1, 'X', 1]
- synconcealed(lnum, 4) [1, 'X', 2]
- synconcealed(lnum, 5) [1, 'X', 2]
- synconcealed(lnum, 6) [0, '', 0]
+ synconcealed(lnum, 1) [0, '', 0]
+ synconcealed(lnum, 2) [1, 'X', 1]
+ synconcealed(lnum, 3) [1, 'X', 1]
+ synconcealed(lnum, 4) [1, 'X', 2]
+ synconcealed(lnum, 5) [1, 'X', 2]
+ synconcealed(lnum, 6) [0, '', 0]
synstack({lnum}, {col}) *synstack()*
@@ -7944,9 +8024,9 @@ term_getattr({attr}, {what}) *term_getattr()*
term_getcursor({buf}) *term_getcursor()*
Get the cursor position of terminal {buf}. Returns a list with
- two numbers and a dictionary: [rows, cols, dict].
+ two numbers and a dictionary: [row, col, dict].
- "rows" and "cols" are one based, the first screen cell is row
+ "row" and "col" are one based, the first screen cell is row
1, column 1. This is the cursor position of the terminal
itself, not of the Vim window.
@@ -8022,10 +8102,13 @@ term_gettitle({buf}) *term_gettitle()*
string is returned.
{only available when compiled with the |+terminal| feature}
-term_gettty({buf}) *term_gettty()*
+term_gettty({buf} [, {input}]) *term_gettty()*
Get the name of the controlling terminal associated with
- terminal window {buf}.
- {buf} is used as with |term_getsize()|.
+ terminal window {buf}. {buf} is used as with |term_getsize()|.
+
+ When {input} is omitted or 0, return the name for writing
+ (stdout). When {input} is 1 return the name for reading
+ (stdin). On UNIX, both return same name.
{only available when compiled with the |+terminal| feature}
term_list() *term_list()*
@@ -8058,6 +8141,10 @@ term_sendkeys({buf}, {keys}) *term_sendkeys()*
means the character CTRL-X.
{only available when compiled with the |+terminal| feature}
+term_setsize({buf}, {expr}) *term_setsize()*
+ Not implemented yet.
+ {only available when compiled with the |+terminal| feature}
+
term_start({cmd}, {options}) *term_start()*
Open a terminal window and run {cmd} in it.
@@ -8071,7 +8158,7 @@ term_start({cmd}, {options}) *term_start()*
are supported:
all timeout options
"stoponexit"
- "out_cb", "err_cb"
+ "callback", "out_cb", "err_cb"
"exit_cb", "close_cb"
"in_io", "in_top", "in_bot", "in_name", "in_buf"
"out_io", "out_name", "out_buf", "out_modifiable", "out_msg"
@@ -8091,6 +8178,7 @@ term_start({cmd}, {options}) *term_start()*
"curwin" use the current window, do not split the
window; fails if the current buffer
cannot be |abandon|ed
+ "hidden" do not open a window
"term_finish" What to do when the job is finished:
"close": close any windows
"open": open window if needed
@@ -8101,6 +8189,11 @@ term_start({cmd}, {options}) *term_start()*
have "%d" where the buffer number goes,
e.g. "10split|buffer %d"; when not
specified "botright sbuf %d" is used
+ "eof_chars" Text to send after all buffer lines were
+ written to the terminal. When not set
+ CTRL-D is used on MS-Windows. For Python
+ use CTRL-Z or "exit()". For a shell use
+ "exit". A CR is always added.
{only available when compiled with the |+terminal| feature}
@@ -8121,6 +8214,11 @@ test_autochdir() *test_autochdir()*
Set a flag to enable the effect of 'autochdir' before Vim
startup has finished.
+test_feedinput({string}) *test_feedinput()*
+ Characters in {string} are queued for processing as if they
+ were typed by the user. This uses a low level input buffer.
+ This function works only when with |+unix| or GUI is running.
+
test_garbagecollect_now() *test_garbagecollect_now()*
Like garbagecollect(), but executed right away. This must
only be called directly to avoid any structure to exist
@@ -8478,7 +8576,7 @@ win_getid([{win} [, {tab}]]) *win_getid()*
Get the |window-ID| for the specified window.
When {win} is missing use the current window.
With {win} this is the window number. The top window has
- number 1.
+ number 1. Use `win_getid(winnr())` for the current window.
Without {tab} use the current tab, otherwise the tab with
number {tab}. The first tab has number one.
Return zero if the window cannot be found.
@@ -8518,6 +8616,7 @@ winheight({nr}) *winheight()*
When {nr} is zero, the height of the current window is
returned. When window {nr} doesn't exist, -1 is returned.
An existing window always has a height of zero or more.
+ This excludes any window toolbar line.
Examples: >
:echo "The current window has " . winheight(0) . " lines."
<
@@ -8625,7 +8724,7 @@ wordcount() *wordcount()*
(only in Visual mode)
visual_chars Number of chars visually selected
(only in Visual mode)
- visual_words Number of chars visually selected
+ visual_words Number of words visually selected
(only in Visual mode)
@@ -8845,7 +8944,7 @@ title Compiled with window title support |'title'|.
toolbar Compiled with support for |gui-toolbar|.
ttyin input is a terminal (tty)
ttyout output is a terminal (tty)
-unix Unix version of Vim.
+unix Unix version of Vim. *+unix*
unnamedplus Compiled with support for "unnamedplus" in 'clipboard'
user_commands User-defined commands.
vertsplit Compiled with vertically split windows |:vsplit|.
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index 10c729d..dc77123 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt* For Vim version 8.0. Last change: 2017 Jul 15
+*gui.txt* For Vim version 8.0. Last change: 2017 Sep 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -67,7 +67,7 @@ When the GUI starts up initializations are carried out, in this order:
executed as an Ex command.
- If the user gvimrc file exists, it is sourced. The name of this file is
normally "$HOME/.gvimrc". You can check this with ":version".
- - For Win32, when $HOME is not set, "$VIM\_gvimrc" is used.
+ - For Win32, $HOME is set by Vim if needed, see |$HOME-windows|.
- When a "_gvimrc" file is not found, ".gvimrc" is tried too. And vice
versa.
The name of the first file found is stored in $MYGVIMRC, unless it was
@@ -784,10 +784,34 @@ In the Win32 and GTK+ GUI, starting a menu name with ']' excludes that menu
from the main menu bar. You must then use the |:popup| or |:tearoff| command
to display it.
+ *window-toolbar* *WinBar*
+Each window can have a local toolbar. This uses the first line of the window,
+thus reduces the space for the text by one line. The items in the toolbar
+must start with "WinBar".
+
+Only text can be used. When using Unicode, special characters can be used to
+make the items look like icons.
+
+If the items do not fit then the last ones cannot be used. The toolbar does
+not wrap.
+
+Example for debugger tools: >
+ amenu 1.10 WinBar.Step :Step<CR>
+ amenu 1.20 WinBar.Next :Next<CR>
+ amenu 1.30 WinBar.Finish :Finish<CR>
+ amenu 1.40 WinBar.Cont :Continue<CR>
+<
+The window toolbar uses the ToolbarLine and ToolbarButton highlight groups.
+
+When splitting the window the window toolbar is not copied to the new window.
+
*popup-menu*
In the Win32, GTK+, Motif, Athena and Photon GUI, you can define the
special menu "PopUp". This is the menu that is displayed when the right mouse
button is pressed, if 'mousemodel' is set to popup or popup_setpos.
+Example: >
+ nnoremenu 1.40 PopUp.&Paste "+gP
+ menu PopUp
5.3 Showing What Menus Are Mapped To *showing-menus*
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index e202c33..3d0c8d6 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1583,13 +1583,17 @@ tag command action ~
|:tjump| :tj[ump] like ":tselect", but jump directly when there
is only one match
|:tlast| :tl[ast] jump to last matching tag
+|:tmapclear| :tmapc[lear] remove all mappings for Terminal-Job mode
+|:tmap| :tma[p] like ":map" but for Terminal-Job mode
|:tmenu| :tm[enu] define menu tooltip
|:tnext| :tn[ext] jump to next matching tag
+|:tnoremap| :tno[remap] like ":noremap" but for Terminal-Job mode
|:topleft| :to[pleft] make split window appear at top or far left
|:tprevious| :tp[revious] jump to previous matching tag
|:trewind| :tr[ewind] jump to first matching tag
|:try| :try execute commands, abort on error or exception
|:tselect| :ts[elect] list matching tags and select one
+|:tunmap| :tunma[p] like ":unmap" but for Terminal-Job mode
|:tunmenu| :tu[nmenu] remove menu tooltip
|:undo| :u[ndo] undo last change(s)
|:undojoin| :undoj[oin] join next change with previous undo block
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index 27f0cc6..24ceb47 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,4 +1,4 @@
-*intro.txt* For Vim version 8.0. Last change: 2017 Aug 05
+*intro.txt* For Vim version 8.0. Last change: 2017 Sep 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -264,6 +264,10 @@ Vim would never have become what it is now, without the help of these people!
Juergen Weigert Lattice version, AUX improvements, UNIX and
MS-DOS ports, autoconf
Stefan 'Sec' Zehl Maintainer of vim.org
+ Yasuhiro Matsumoto many MS-Windows improvements
+ Ken Takata fixes and features
+ Kazunobu Kuriyama GTK 3
+ Christian Brabandt many fixes, features, user support, etc.
I wish to thank all the people that sent me bug reports and suggestions. The
list is too long to mention them all here. Vim would not be the same without
@@ -839,10 +843,12 @@ by Vim. {Vi: not ok}
==============================================================================
8. Definitions *definitions*
+ buffer Contains lines of text, usually read from a file.
screen The whole area that Vim uses to work in. This can be
a terminal emulator window. Also called "the Vim
window".
- window A view on a buffer.
+ window A view on a buffer. There can be multiple windows for
+ one buffer.
A screen contains one or more windows, separated by status lines and with the
command line at the bottom.
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 983fb2d..80e9077 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt* For Vim version 8.0. Last change: 2017 May 30
+*map.txt* For Vim version 8.0. Last change: 2017 Sep 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -55,6 +55,7 @@ modes.
:im[ap] {lhs} {rhs} |mapmode-i| *:im* *:imap*
:lm[ap] {lhs} {rhs} |mapmode-l| *:lm* *:lmap*
:cm[ap] {lhs} {rhs} |mapmode-c| *:cm* *:cmap*
+:tma[p] {lhs} {rhs} |mapmode-t| *:tma* *:tmap*
Map the key sequence {lhs} to {rhs} for the modes
where the map command applies. The result, including
{rhs}, is then further scanned for mappings. This
@@ -71,6 +72,7 @@ modes.
:ino[remap] {lhs} {rhs} |mapmode-i| *:ino* *:inoremap*
:ln[oremap] {lhs} {rhs} |mapmode-l| *:ln* *:lnoremap*
:cno[remap] {lhs} {rhs} |mapmode-c| *:cno* *:cnoremap*
+:tno[remap] {lhs} {rhs} |mapmode-t| *:tno* *:tnoremap*
Map the key sequence {lhs} to {rhs} for the modes
where the map command applies. Disallow mapping of
{rhs}, to avoid nested and recursive mappings. Often
@@ -87,6 +89,7 @@ modes.
:iu[nmap] {lhs} |mapmode-i| *:iu* *:iunmap*
:lu[nmap] {lhs} |mapmode-l| *:lu* *:lunmap*
:cu[nmap] {lhs} |mapmode-c| *:cu* *:cunmap*
+:tunma[p] {lhs} |mapmode-t| *:tunma* *:tunmap*
Remove the mapping of {lhs} for the modes where the
map command applies. The mapping may remain defined
for other modes where it applies.
@@ -105,6 +108,7 @@ modes.
:imapc[lear] |mapmode-i| *:imapc* *:imapclear*
:lmapc[lear] |mapmode-l| *:lmapc* *:lmapclear*
:cmapc[lear] |mapmode-c| *:cmapc* *:cmapclear*
+:tmapc[lear] |mapmode-t| *:tmapc* *:tmapclear*
Remove ALL mappings for the modes where the map
command applies. {not in Vi}
Use the <buffer> argument to remove buffer-local
@@ -121,6 +125,7 @@ modes.
:im[ap] |mapmode-i|
:lm[ap] |mapmode-l|
:cm[ap] |mapmode-c|
+:tma[p] |mapmode-t|
List all key mappings for the modes where the map
command applies. Note that ":map" and ":map!" are
used most often, because they include the other modes.
@@ -135,6 +140,7 @@ modes.
:im[ap] {lhs} |mapmode-i| *:imap_l*
:lm[ap] {lhs} |mapmode-l| *:lmap_l*
:cm[ap] {lhs} |mapmode-c| *:cmap_l*
+:tma[p] {lhs} |mapmode-t| *:tmap_l*
List the key mappings for the key sequences starting
with {lhs} in the modes where the map command applies.
{not in Vi}
@@ -318,6 +324,7 @@ Overview of which map command works in which mode. More details below.
:imap :inoremap :iunmap Insert
:lmap :lnoremap :lunmap Insert, Command-line, Lang-Arg
:cmap :cnoremap :cunmap Command-line
+:tmap :tnoremap :tunmap Terminal-Job
COMMANDS MODES ~
@@ -358,6 +365,10 @@ Therefore the ":map" and ":map!" commands enter and display mappings for
several modes. In Vim you can use the ":nmap", ":vmap", ":omap", ":cmap" and
":imap" commands to enter mappings for each mode separately.
+ *mapmode-t*
+The terminal mappings are used in a terminal window, when typing keys for the
+job running in the terminal. See |terminal-typing|.
+
*omap-info*
Operator-pending mappings can be used to define a movement command that can be
used with any operator. Simple example: ":omap { w" makes "y{" work like "yw"
@@ -418,6 +429,7 @@ When listing mappings the characters in the first two columns are:
i Insert
l ":lmap" mappings for Insert, Command-line and Lang-Arg
c Command-line
+ t Terminal-Job
Just before the {rhs} a special character can appear:
* indicates that it is not remappable
@@ -682,7 +694,7 @@ option). After that it assumes that the 'q' is to be interpreted as such. If
you type slowly, or your system is slow, reset the 'timeout' option. Then you
might want to set the 'ttimeout' option.
- *map-precedence*
+ *map-precedence*
Buffer-local mappings (defined using |:map-<buffer>|) take precedence over
global mappings. When a buffer-local mapping is the same as a global mapping,
Vim will use the buffer-local mapping. In addition, Vim will use a complete
@@ -1415,6 +1427,8 @@ The valid escape sequences are
<line1> The starting line of the command range.
*<line2>*
<line2> The final line of the command range.
+ *<range>*
+ <range> The number of items in the command range: 0, 1 or 2
*<count>*
<count> Any count supplied (as described for the '-range'
and '-count' attributes).
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index 2499f09..1c3e2b1 100644
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -832,6 +832,9 @@ Use the RPM or port for your system.
Currently, GUI Vim supports three styles, |OverTheSpot|, |OffTheSpot| and
|Root|.
+ When compiled with |+GUI_GTK| feature, GUI Vim supports two styles,
+ |OnTheSpot| and |OverTheSpot|. You can select the style with the 'imstyle'
+ option.
*. on-the-spot *OnTheSpot*
Preedit Area and Status Area are performed by the client application in
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 73955f4..b5e5847 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 8.0. Last change: 2017 Jul 31
+*options.txt* For Vim version 8.0. Last change: 2017 Sep 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -417,11 +417,22 @@ On Unix systems the form "${HOME}" can be used too. The name between {} can
contain non-id characters then. Note that if you want to use this for the
"gf" command, you need to add the '{' and '}' characters to 'isfname'.
+NOTE: expanding environment variables and "~/" is only done with the ":set"
+command, not when assigning a value to an option with ":let".
+
+ *$HOME-windows*
On MS-Windows, if $HOME is not defined as an environment variable, then
at runtime Vim will set it to the expansion of $HOMEDRIVE$HOMEPATH.
+If $HOMEDRIVE is not set then $USERPROFILE is used.
-NOTE: expanding environment variables and "~/" is only done with the ":set"
-command, not when assigning a value to an option with ":let".
+This expanded value is not exported to the environment, this matters when
+running an external command: >
+ :echo system('set | findstr ^HOME=')
+and >
+ :echo luaeval('os.getenv("HOME")')
+should echo nothing (an empty string) despite exists('$HOME') being true.
+When setting $HOME to a non-empty string it will be exported to the
+subprocesses.
Note the maximum length of an expanded option is limited. How much depends on
@@ -721,7 +732,8 @@ A jump table for the options with a short description can be found at |Q_op|.
Vim may set this option automatically at startup time when Vim is
compiled with the |+termresponse| feature and if |t_u7| is set to the
- escape sequence to request cursor position report.
+ escape sequence to request cursor position report. The response can
+ be found in |v:termu7resp|.
*'antialias'* *'anti'* *'noantialias'* *'noanti'*
'antialias' 'anti' boolean (default: off)
@@ -869,11 +881,12 @@ A jump table for the options with a short description can be found at |Q_op|.
< Vim will guess the value. In the GUI this should work correctly,
in other cases Vim might not be able to guess the right value.
- When the t_BG option is set, Vim will use it to request the background
+ When the |t_RB| option is set, Vim will use it to request the background
color from the terminal. If the returned RGB value is dark/light and
'background' is not dark/light, 'background' will be set and the
screen is redrawn. This may have side effects, make t_BG empty in
- your .vimrc if you suspect this problem.
+ your .vimrc if you suspect this problem. The response to |t_RB| can
+ be found in |v:termrgbresp|.
When starting the GUI, the default value for 'background' will be
"light". When the value is not set in the .gvimrc, and Vim detects
@@ -889,6 +902,10 @@ A jump table for the options with a short description can be found at |Q_op|.
"screen.linux", "cygwin" or "putty", or $COLORFGBG suggests a dark
background. Otherwise the default is "light".
+ The |:terminal| command and the |term_start()| function use the
+ 'background' value to decide whether the terminal window will start
+ with a white or black background.
+
Normally this option would be set in the .vimrc file. Possibly
depending on the terminal name. Example: >
:if &term == "pcterm"
@@ -4041,7 +4058,7 @@ A jump table for the options with a short description can be found at |Q_op|.
x:PmenuSbar,X:PmenuThumb,*:TabLine,
#:TabLineSel,_:TabLineFill,!:CursorColumn,
.:CursorLine,o:ColorColumn,q:QuickFixLine,
- $:StatusLineTerm")
+ z:StatusLineTerm,Z:StatusLineTermNC")
global
{not in Vi}
This option can be used to set highlighting mode for various
@@ -4100,6 +4117,7 @@ A jump table for the options with a short description can be found at |Q_op|.
s standout (termcap entry "so" and "se")
u underline (termcap entry "us" and "ue")
c undercurl (termcap entry "Cs" and "Ce")
+ t strikethrough (termcap entry "Ts" and "Te")
n no highlighting
- no highlighting
: use a highlight group
@@ -4293,7 +4311,7 @@ A jump table for the options with a short description can be found at |Q_op|.
may change in later releases.
*'iminsert'* *'imi'*
-'iminsert' 'imi' number (default 0, 2 when an input method is supported)
+'iminsert' 'imi' number (default 0)
local to buffer
{not in Vi}
Specifies whether :lmap or an Input Method (IM) is to be used in
@@ -4316,7 +4334,7 @@ A jump table for the options with a short description can be found at |Q_op|.
methods. Use 'imdisable' to disable XIM then.
*'imsearch'* *'ims'*
-'imsearch' 'ims' number (default 0, 2 when an input method is supported)
+'imsearch' 'ims' number (default -1)
local to buffer
{not in Vi}
Specifies whether :lmap or an Input Method (IM) is to be used when
@@ -4351,6 +4369,23 @@ A jump table for the options with a short description can be found at |Q_op|.
<
NOTE: This function is invoked very often. Keep it fast.
+ *'imstyle'* *'imst'*
+'imstyle' 'imst' number (default 1)
+ global
+ {not in Vi}
+ {only available when compiled with |+xim| and
+ |+GUI_GTK|}
+ This option specifies the input style of Input Method:
+ 0 use on-the-spot style
+ 1 over-the-spot style
+ See: |xim-input-style|
+
+ For a long time on-the-spot sytle had been used in GTK version of vim,
+ however, it is known that it causes troubles when using mappings,
+ |single-repeat|, etc. Therefore over-the-spot style becomes the
+ default now. This should work fine for most people, however if you
+ have any problem with it, try using on-the-spot style.
+
*'include'* *'inc'*
'include' 'inc' string (default "^\s*#\s*include")
global or local to buffer |global-local|
@@ -8831,6 +8866,20 @@ A jump table for the options with a short description can be found at |Q_op|.
large number, it will cause errors when opening more than a few
windows. A value of 0 to 12 is reasonable.
+ *'winptydll'*
+'winptydll' string (default "winpty32.dll" or "winpty64.dll")
+ global
+ {not in Vi}
+ {only available when compiled with the |terminal|
+ feature on MS-Windows}
+ Specifies the name of the winpty shared library, used for the
+ |:terminal| command. The default depends on whether was build as a
+ 32-bit or 64-bit executable. If not found, "winpty.dll" is tried as
+ a fallback.
+ Environment variables are expanded |:set_env|.
+ This option cannot be set from a |modeline| or in the |sandbox|, for
+ security reasons.
+
*'winwidth'* *'wiw'* *E592*
'winwidth' 'wiw' number (default 20)
global
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index e555451..cfbfe4c 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt* For Vim version 8.0. Last change: 2017 Jun 13
+*quickfix.txt* For Vim version 8.0. Last change: 2017 Sep 13
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -44,6 +44,13 @@ From inside Vim an easy way to run a command and handle the output is with the
The 'errorformat' option should be set to match the error messages from your
compiler (see |errorformat| below).
+ *quickfix-ID*
+Each quickfix list has a unique identifier called the quickfix ID and this
+number will not change within a Vim session. The getqflist() function can be
+used to get the identifier assigned to a list. There is also a quickfix list
+number which may change whenever more than ten lists are added to a quickfix
+stack.
+
*location-list* *E776*
A location list is a window-local quickfix list. You get one after commands
like `:lvimgrep`, `:lgrep`, `:lhelpgrep`, `:lmake`, etc., which create a
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 00075b3..c4d6790 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt* For Vim version 8.0. Last change: 2017 Aug 01
+*quickref.txt* For Vim version 8.0. Last change: 2017 Sep 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -749,6 +749,7 @@ Short explanation of each option: *option-list*
'iminsert' 'imi' use :lmap or IM in Insert mode
'imsearch' 'ims' use :lmap or IM when typing a search pattern
'imstatusfunc' 'imsf' function to obtain X input method status
+'imstyle' 'imst' specifies the input style of the input method
'include' 'inc' pattern to be used to find an include file
'includeexpr' 'inex' expression used to process an include line
'incsearch' 'is' highlight match while typing search pattern
@@ -974,6 +975,7 @@ Short explanation of each option: *option-list*
'winfixwidth' 'wfw' keep window width when opening/closing windows
'winminheight' 'wmh' minimum number of lines for any window
'winminwidth' 'wmw' minimal number of columns for any window
+'winptydll' name of the winpty dynamic library
'winwidth' 'wiw' minimal number of columns for current window
'wrap' long lines wrap and continue on the next line
'wrapmargin' 'wm' chars from the right where wrapping starts
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index dda2e66..8f887c4 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 8.0. Last change: 2017 Jul 14
+*syntax.txt* For Vim version 8.0. Last change: 2017 Aug 12
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2138,6 +2138,16 @@ set "msql_minlines" to the value you desire. Example: >
:let msql_minlines = 200
+N1QL *n1ql.vim* *ft-n1ql-syntax*
+
+N1QL is a SQL-like declarative language for manipulating JSON documents in
+Couchbase Server databases.
+
+Vim syntax highlights N1QL statements, keywords, operators, types, comments,
+and special values. Vim ignores syntactical elements specific to SQL or its
+many dialects, like COLUMN or CHAR, that don't exist in N1QL.
+
+
NCF *ncf.vim* *ft-ncf-syntax*
There is one option for NCF syntax highlighting.
@@ -4689,13 +4699,14 @@ the same syntax file on all terminals, and use the optimal highlighting.
*bold* *underline* *undercurl*
*inverse* *italic* *standout*
- *nocombine*
+ *nocombine* *strikethrough*
term={attr-list} *attr-list* *highlight-term* *E418*
attr-list is a comma separated list (without spaces) of the
following items (in any order):
bold
underline
undercurl not always available
+ strikethrough not always available
reverse
inverse same as reverse
italic
@@ -4706,8 +4717,8 @@ term={attr-list} *attr-list* *highlight-term* *E418*
Note that "bold" can be used here and by using a bold font. They
have the same effect.
"undercurl" is a curly underline. When "undercurl" is not possible
- then "underline" is used. In general "undercurl" is only available in
- the GUI. The color is set with |highlight-guisp|.
+ then "underline" is used. In general "undercurl" and "strikethrough"
+ is only available in the GUI. The color is set with |highlight-guisp|.
start={term-list} *highlight-start* *E422*
stop={term-list} *term-list* *highlight-stop*
@@ -4872,7 +4883,8 @@ guifg={color-name} *highlight-guifg*
guibg={color-name} *highlight-guibg*
guisp={color-name} *highlight-guisp*
These give the foreground (guifg), background (guibg) and special
- (guisp) color to use in the GUI. "guisp" is used for undercurl.
+ (guisp) color to use in the GUI. "guisp" is used for undercurl and
+ strikethrough.
There are a few special names:
NONE no color (transparent)
bg use normal background color
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 2068f9e..31836c1 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4,6 +4,7 @@
$ motion.txt /*$*
$HOME options.txt /*$HOME*
$HOME-use version5.txt /*$HOME-use*
+$HOME-windows options.txt /*$HOME-windows*
$MYGVIMRC gui.txt /*$MYGVIMRC*
$MYVIMRC starting.txt /*$MYVIMRC*
$VIM starting.txt /*$VIM*
@@ -366,7 +367,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'ims' options.txt /*'ims'*
'imsearch' options.txt /*'imsearch'*
'imsf' options.txt /*'imsf'*
+'imst' options.txt /*'imst'*
'imstatusfunc' options.txt /*'imstatusfunc'*
+'imstyle' options.txt /*'imstyle'*
'inc' options.txt /*'inc'*
'include' options.txt /*'include'*
'includeexpr' options.txt /*'includeexpr'*
@@ -935,6 +938,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
't_Co' term.txt /*'t_Co'*
't_Cs' term.txt /*'t_Cs'*
't_DL' term.txt /*'t_DL'*
+'t_EC' term.txt /*'t_EC'*
't_EI' term.txt /*'t_EI'*
't_F1' term.txt /*'t_F1'*
't_F2' term.txt /*'t_F2'*
@@ -971,12 +975,19 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
't_PE' term.txt /*'t_PE'*
't_PS' term.txt /*'t_PS'*
't_RB' term.txt /*'t_RB'*
+'t_RC' term.txt /*'t_RC'*
't_RI' term.txt /*'t_RI'*
+'t_RS' term.txt /*'t_RS'*
't_RV' term.txt /*'t_RV'*
+'t_SC' term.txt /*'t_SC'*
+'t_SH' term.txt /*'t_SH'*
't_SI' term.txt /*'t_SI'*
't_SR' term.txt /*'t_SR'*
't_Sb' term.txt /*'t_Sb'*
't_Sf' term.txt /*'t_Sf'*
+'t_Te' term.txt /*'t_Te'*
+'t_Ts' term.txt /*'t_Ts'*
+'t_VS' term.txt /*'t_VS'*
't_WP' term.txt /*'t_WP'*
't_WS' term.txt /*'t_WS'*
't_ZH' term.txt /*'t_ZH'*
@@ -1167,6 +1178,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'winheight' options.txt /*'winheight'*
'winminheight' options.txt /*'winminheight'*
'winminwidth' options.txt /*'winminwidth'*
+'winptydll' options.txt /*'winptydll'*
'winwidth' options.txt /*'winwidth'*
'wiv' options.txt /*'wiv'*
'wiw' options.txt /*'wiw'*
@@ -1323,6 +1335,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
+timers various.txt /*+timers*
+title various.txt /*+title*
+toolbar various.txt /*+toolbar*
++unix eval.txt /*+unix*
+user_commands various.txt /*+user_commands*
+vertsplit various.txt /*+vertsplit*
+viminfo various.txt /*+viminfo*
@@ -1887,6 +1900,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:<afile> cmdline.txt /*:<afile>*
:<amatch> cmdline.txt /*:<amatch>*
:<cWORD> cmdline.txt /*:<cWORD>*
+:<cexpr> cmdline.txt /*:<cexpr>*
:<cfile> cmdline.txt /*:<cfile>*
:<cword> cmdline.txt /*:<cword>*
:<sfile> cmdline.txt /*:<sfile>*
@@ -1946,6 +1960,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:Sexplore pi_netrw.txt /*:Sexplore*
:TOhtml syntax.txt /*:TOhtml*
:TarDiff pi_tar.txt /*:TarDiff*
+:Termdebug terminal.txt /*:Termdebug*
:Texplore pi_netrw.txt /*:Texplore*
:UseVimball pi_vimball.txt /*:UseVimball*
:Vexplore pi_netrw.txt /*:Vexplore*
@@ -3117,9 +3132,16 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:tl tagsrch.txt /*:tl*
:tlast tagsrch.txt /*:tlast*
:tm gui.txt /*:tm*
+:tma map.txt /*:tma*
+:tmap map.txt /*:tmap*
+:tmap_l map.txt /*:tmap_l*
+:tmapc map.txt /*:tmapc*
+:tmapclear map.txt /*:tmapclear*
:tmenu gui.txt /*:tmenu*
:tn tagsrch.txt /*:tn*
:tnext tagsrch.txt /*:tnext*
+:tno map.txt /*:tno*
+:tnoremap map.txt /*:tnoremap*
:topleft windows.txt /*:topleft*
:tp tagsrch.txt /*:tp*
:tprevious tagsrch.txt /*:tprevious*
@@ -3129,6 +3151,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:ts tagsrch.txt /*:ts*
:tselect tagsrch.txt /*:tselect*
:tu gui.txt /*:tu*
+:tunma map.txt /*:tunma*
+:tunmap map.txt /*:tunmap*
:tunmenu gui.txt /*:tunmenu*
:u undo.txt /*:u*
:un undo.txt /*:un*
@@ -3393,6 +3417,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
<bang> map.txt /*<bang>*
<buffer=N> autocmd.txt /*<buffer=N>*
<buffer=abuf> autocmd.txt /*<buffer=abuf>*
+<cexpr> cmdline.txt /*<cexpr>*
<cfile> cmdline.txt /*<cfile>*
<character> intro.txt /*<character>*
<count> map.txt /*<count>*
@@ -3423,6 +3448,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
<mods> map.txt /*<mods>*
<nomodeline> autocmd.txt /*<nomodeline>*
<q-args> map.txt /*<q-args>*
+<range> map.txt /*<range>*
<reg> map.txt /*<reg>*
<register> map.txt /*<register>*
<sfile> cmdline.txt /*<sfile>*
@@ -4537,6 +4563,7 @@ E944 pattern.txt /*E944*
E945 pattern.txt /*E945*
E946 terminal.txt /*E946*
E947 terminal.txt /*E947*
+E948 terminal.txt /*E948*
E95 message.txt /*E95*
E96 diff.txt /*E96*
E97 diff.txt /*E97*
@@ -4823,6 +4850,7 @@ W22 eval.txt /*W22*
WORD motion.txt /*WORD*
WWW intro.txt /*WWW*
Win32 os_win32.txt /*Win32*
+WinBar gui.txt /*WinBar*
WinEnter autocmd.txt /*WinEnter*
WinLeave autocmd.txt /*WinLeave*
WinNew autocmd.txt /*WinNew*
@@ -6134,6 +6162,7 @@ ft-mathematica-syntax syntax.txt /*ft-mathematica-syntax*
ft-mma-syntax syntax.txt /*ft-mma-syntax*
ft-moo-syntax syntax.txt /*ft-moo-syntax*
ft-msql-syntax syntax.txt /*ft-msql-syntax*
+ft-n1ql-syntax syntax.txt /*ft-n1ql-syntax*
ft-nasm-syntax syntax.txt /*ft-nasm-syntax*
ft-ncf-syntax syntax.txt /*ft-ncf-syntax*
ft-nroff-syntax syntax.txt /*ft-nroff-syntax*
@@ -7263,6 +7292,7 @@ mapmode-n map.txt /*mapmode-n*
mapmode-nvo map.txt /*mapmode-nvo*
mapmode-o map.txt /*mapmode-o*
mapmode-s map.txt /*mapmode-s*
+mapmode-t map.txt /*mapmode-t*
mapmode-v map.txt /*mapmode-v*
mapmode-x map.txt /*mapmode-x*
mapping map.txt /*mapping*
@@ -7377,6 +7407,7 @@ mzscheme-vim if_mzsch.txt /*mzscheme-vim*
mzscheme-vimext if_mzsch.txt /*mzscheme-vimext*
mzscheme-window if_mzsch.txt /*mzscheme-window*
n pattern.txt /*n*
+n1ql.vim syntax.txt /*n1ql.vim*
nasm.vim syntax.txt /*nasm.vim*
navigation motion.txt /*navigation*
nb-commands netbeans.txt /*nb-commands*
@@ -7720,6 +7751,7 @@ no-type-checking eval.txt /*no-type-checking*
no_buffers_menu gui.txt /*no_buffers_menu*
no_mail_maps filetype.txt /*no_mail_maps*
no_plugin_maps filetype.txt /*no_plugin_maps*
+nocombine syntax.txt /*nocombine*
non-greedy pattern.txt /*non-greedy*
non-zero-arg eval.txt /*non-zero-arg*
none-variable eval.txt /*none-variable*
@@ -7996,6 +8028,7 @@ qnx-terminal os_qnx.txt /*qnx-terminal*
quake.vim syntax.txt /*quake.vim*
quickfix quickfix.txt /*quickfix*
quickfix-6 version6.txt /*quickfix-6*
+quickfix-ID quickfix.txt /*quickfix-ID*
quickfix-directory-stack quickfix.txt /*quickfix-directory-stack*
quickfix-error-lists quickfix.txt /*quickfix-error-lists*
quickfix-functions usr_41.txt /*quickfix-functions*
@@ -8225,6 +8258,7 @@ servername-variable eval.txt /*servername-variable*
session-file starting.txt /*session-file*
set-option options.txt /*set-option*
set-spc-auto spell.txt /*set-spc-auto*
+setbufline() eval.txt /*setbufline()*
setbufvar() eval.txt /*setbufvar()*
setcharsearch() eval.txt /*setcharsearch()*
setcmdpos() eval.txt /*setcmdpos()*
@@ -8451,6 +8485,7 @@ strdisplaywidth() eval.txt /*strdisplaywidth()*
strftime() eval.txt /*strftime()*
strgetchar() eval.txt /*strgetchar()*
stridx() eval.txt /*stridx()*
+strikethrough syntax.txt /*strikethrough*
string eval.txt /*string*
string() eval.txt /*string()*
string-functions usr_41.txt /*string-functions*
@@ -8537,12 +8572,14 @@ t_AL term.txt /*t_AL*
t_BD term.txt /*t_BD*
t_BE term.txt /*t_BE*
t_CS term.txt /*t_CS*
+t_CTRL-W_CTRL-C terminal.txt /*t_CTRL-W_CTRL-C*
t_CTRL-\_CTRL-N terminal.txt /*t_CTRL-\\_CTRL-N*
t_CV term.txt /*t_CV*
t_Ce term.txt /*t_Ce*
t_Co term.txt /*t_Co*
t_Cs term.txt /*t_Cs*
t_DL term.txt /*t_DL*
+t_EC term.txt /*t_EC*
t_EI term.txt /*t_EI*
t_F1 term.txt /*t_F1*
t_F2 term.txt /*t_F2*
@@ -8579,12 +8616,19 @@ t_KL term.txt /*t_KL*
t_PE term.txt /*t_PE*
t_PS term.txt /*t_PS*
t_RB term.txt /*t_RB*
+t_RC term.txt /*t_RC*
t_RI term.txt /*t_RI*
+t_RS term.txt /*t_RS*
t_RV term.txt /*t_RV*
+t_SC term.txt /*t_SC*
+t_SH term.txt /*t_SH*
t_SI term.txt /*t_SI*
t_SR term.txt /*t_SR*
t_Sb term.txt /*t_Sb*
t_Sf term.txt /*t_Sf*
+t_Te term.txt /*t_Te*
+t_Ts term.txt /*t_Ts*
+t_VS term.txt /*t_VS*
t_WP term.txt /*t_WP*
t_WS term.txt /*t_WS*
t_ZH term.txt /*t_ZH*
@@ -8815,6 +8859,7 @@ term_gettty() eval.txt /*term_gettty()*
term_list() eval.txt /*term_list()*
term_scrape() eval.txt /*term_scrape()*
term_sendkeys() eval.txt /*term_sendkeys()*
+term_setsize() eval.txt /*term_setsize()*
term_start() eval.txt /*term_start()*
term_wait() eval.txt /*term_wait()*
termcap term.txt /*termcap*
@@ -8827,11 +8872,13 @@ termcap-title term.txt /*termcap-title*
terminal terminal.txt /*terminal*
terminal-colors os_unix.txt /*terminal-colors*
terminal-debug terminal.txt /*terminal-debug*
+terminal-functions usr_41.txt /*terminal-functions*
terminal-info term.txt /*terminal-info*
terminal-key-codes term.txt /*terminal-key-codes*
terminal-options term.txt /*terminal-options*
terminal-output-codes term.txt /*terminal-output-codes*
terminal-testing terminal.txt /*terminal-testing*
+terminal-typing terminal.txt /*terminal-typing*
terminal-use terminal.txt /*terminal-use*
terminal.txt terminal.txt /*terminal.txt*
terminfo term.txt /*terminfo*
@@ -8839,6 +8886,7 @@ termresponse-variable eval.txt /*termresponse-variable*
test-functions usr_41.txt /*test-functions*
test_alloc_fail() eval.txt /*test_alloc_fail()*
test_autochdir() eval.txt /*test_autochdir()*
+test_feedinput() eval.txt /*test_feedinput()*
test_garbagecollect_now() eval.txt /*test_garbagecollect_now()*
test_ignore_error() eval.txt /*test_ignore_error()*
test_null_channel() eval.txt /*test_null_channel()*
@@ -9065,7 +9113,11 @@ v:t_list eval.txt /*v:t_list*
v:t_none eval.txt /*v:t_none*
v:t_number eval.txt /*v:t_number*
v:t_string eval.txt /*v:t_string*
+v:termblinkresp eval.txt /*v:termblinkresp*
v:termresponse eval.txt /*v:termresponse*
+v:termrgbresp eval.txt /*v:termrgbresp*
+v:termstyleresp eval.txt /*v:termstyleresp*
+v:termu7resp eval.txt /*v:termu7resp*
v:testing eval.txt /*v:testing*
v:this_session eval.txt /*v:this_session*
v:throwpoint eval.txt /*v:throwpoint*
@@ -9385,6 +9437,7 @@ window-resize windows.txt /*window-resize*
window-size term.txt /*window-size*
window-size-functions usr_41.txt /*window-size-functions*
window-tag windows.txt /*window-tag*
+window-toolbar gui.txt /*window-toolbar*
window-variable eval.txt /*window-variable*
windowid windows.txt /*windowid*
windowid-variable eval.txt /*windowid-variable*
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index 999a5f0..0fc6939 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -1,4 +1,4 @@
-*term.txt* For Vim version 8.0. Last change: 2017 Jul 21
+*term.txt* For Vim version 8.0. Last change: 2017 Aug 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -295,13 +295,11 @@ OUTPUT CODES *terminal-output-codes*
t_ts set window title start (to status line) *t_ts* *'t_ts'*
t_ue underline end *t_ue* *'t_ue'*
t_us underline mode *t_us* *'t_us'*
- t_Ce undercurl end *t_Ce* *'t_Ce'*
- t_Cs undercurl mode *t_Cs* *'t_Cs'*
t_ut clearing uses the current background color *t_ut* *'t_ut'*
t_vb visual bell *t_vb* *'t_vb'*
t_ve cursor visible *t_ve* *'t_ve'*
t_vi cursor invisible *t_vi* *'t_vi'*
- t_vs cursor very visible *t_vs* *'t_vs'*
+ t_vs cursor very visible (blink) *t_vs* *'t_vs'*
*t_xs* *'t_xs'*
t_xs if non-empty, standout not erased by overwriting (hpterm)
*t_xn* *'t_xn'*
@@ -311,11 +309,16 @@ OUTPUT CODES *terminal-output-codes*
t_ZR italics end *t_ZR* *'t_ZR'*
Added by Vim (there are no standard codes for these):
+ t_Ce undercurl end *t_Ce* *'t_Ce'*
+ t_Cs undercurl mode *t_Cs* *'t_Cs'*
+ t_Te strikethrough end *t_Te* *'t_Te'*
+ t_Ts strikethrough mode *t_Ts* *'t_Ts'*
t_IS set icon text start *t_IS* *'t_IS'*
t_IE set icon text end *t_IE* *'t_IE'*
t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'*
t_GP get window position (Y, X) in pixels *t_GP* *'t_GP'*
t_WS set window size (height, width in cells) *t_WS* *'t_WS'*
+ t_VS cursor normally visible (no blink) *t_VS* *'t_VS'*
t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'*
t_SR start replace mode (underline cursor shape) *t_SR* *'t_SR'*
t_EI end insert or replace mode (block cursor shape) *t_EI* *'t_EI'*
@@ -333,6 +336,29 @@ Added by Vim (there are no standard codes for these):
|xterm-bracketed-paste|
t_BD disable bracketed paste mode *t_BD* *'t_BD'*
|xterm-bracketed-paste|
+ t_SC set cursor color start *t_SC* *'t_SC'*
+ t_EC set cursor color end *t_EC* *'t_EC'*
+ t_SH set cursor shape *t_SH* *'t_SH'*
+ t_RC request terminal cursor blinking *t_RC* *'t_RC'*
+ t_RS request terminal cursor style *t_RS* *'t_RS'*
+
+Some codes have a start, middle and end part. The start and end are defined
+by the termcap option, the middle part is text.
+ set title text: t_ts {title text} t_fs
+ set icon text: t_IS {icon text} t_IE
+ set cursor color: t_SC {color name} t_EC
+
+t_SH must take one argument:
+ 0, 1 or none blinking block cursor
+ 2 block cursor
+ 3 blinking underline cursor
+ 4 underline cursor
+ 5 blinking vertical bar cursor
+ 6 vertical bar cursor
+
+t_RS is sent only if the response to t_RV has been received. It is not used
+on Mac OS when Terminal.app could be recognized from the termresponse.
+
KEY CODES *terminal-key-codes*
Note: Use the <> form if possible
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index ae99107..bce1d6f 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1,4 +1,4 @@
-*terminal.txt* For Vim version 8.0. Last change: 2017 Aug 12
+*terminal.txt* For Vim version 8.0. Last change: 2017 Sep 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -19,6 +19,9 @@ If the result is "1" you have it.
3. Debugging |terminal-debug|
{Vi does not have any of these commands}
+{only available when compiled with the |+terminal| feature}
+
+The terminal feature requires the |+multi_byte|, |+job| and |+channel| features.
==============================================================================
1. Basic use *terminal-use*
@@ -27,15 +30,15 @@ This feature is for running a terminal emulator in a Vim window. A job can be
started connected to the terminal emulator. For example, to run a shell: >
:term bash
-Or to run a debugger: >
- :term gdb vim
+Or to run build command: >
+ :term make myprogram
The job runs asynchronously from Vim, the window will be updated to show
-output from the job, also while editing in any other window.
+output from the job, also while editing in another window.
Typing ~
-
+ *terminal-typing*
When the keyboard focus is in the terminal window, typed keys will be sent to
the job. This uses a pty when possible. You can click outside of the
terminal window to move keyboard focus elsewhere.
@@ -52,6 +55,7 @@ Special in the terminal window: *CTRL-W_.* *CTRL-W_N*
CTRL-W " {reg} paste register {reg} *CTRL-W_quote*
Also works with the = register to insert the result of
evaluating an expression.
+ CTRL-W CTRL-C ends the job, see below |t_CTRL-W_CTRL-C|
See option 'termkey' for specifying another key instead of CTRL-W that
will work like CTRL-W. However, typing 'termkey' twice sends 'termkey' to
@@ -62,16 +66,38 @@ the job. For example:
'termkey' . send a CTRL-W to the job in the terminal
'termkey' N go to terminal Normal mode, see below
'termkey' CTRL-N same as CTRL-W N
+ 'termkey' CTRL-C same as |t_CTRL-W_CTRL-C|
*t_CTRL-\_CTRL-N*
The special key combination CTRL-\ CTRL-N can be used to switch to Normal
mode, just like this works in any other mode.
+ *t_CTRL-W_CTRL-C*
+CTRL-W CTRL-C can be typed to forcefully end the job. On MS-Windows a
+CTRL-BREAK will also kill the job.
+
+If you type CTRL-C the effect depends on what the pty has been configured to
+do. For simple commands this causes a SIGINT to be sent to the job, which
+would end it. Other commands may ignore the SIGINT or handle the CTRL-C
+themselves (like Vim does).
+To change the keys you type use terminal mode mappings, see |:tmap|.
+These are defined like any mapping, but apply only when typing keys that are
+sent to the job running in the terminal.
-Size ~
+
+Size and color ~
See option 'termsize' for controlling the size of the terminal window.
(TODO: scrolling when the terminal is larger than the window)
+The job running in the terminal can change the colors. The default foreground
+and background colors are taken from Vim, the Normal highlight group.
+
+For a color terminal the 'background' option is used to decide whether the
+terminal window will start with a white or black background.
+
+To use a different color the Terminal highlight group can be used: >
+ hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue
+
Syntax ~
@@ -81,6 +107,8 @@ Syntax ~
If [command] is provided run it as a job and connect
the input and output to the terminal.
If [command] is not given the 'shell' option is used.
+ if [command] is NONE no job is started, the pty of the
+ terminal can be used by a command like gdb.
A new buffer will be created, using [command] or
'shell' as the name, prefixed with a "!". If a buffer
@@ -88,10 +116,10 @@ Syntax ~
parentheses. E.g. if "gdb" exists the second terminal
buffer will use "!gdb (1)".
- If [range] is given it is used for the terminal size.
- One number specifies the number of rows. Unless the
- "vertical" modifier is used, then it is the number of
- columns.
+ If [range] is given the specified lines are used as
+ input for the job. It will not be possible to type
+ keys in the terminal window. For MS-Windows see the
+ ++eof argument below.
Two comma separated numbers are used as "rows,cols".
E.g. `:24,80gdb` opens a terminal with 24 rows and 80
@@ -111,18 +139,39 @@ Syntax ~
cannot be |abandon|ed.
++hidden Open the terminal in a hidden buffer,
no window will be used.
+ ++rows={height} Use {height} for the terminal window
+ height.
+ ++cols={width} Use {width} for the terminal window
+ width.
+ ++eof={text} when using [range]: text to send after
+ the last line was written. Cannot
+ contain white space. A CR is
+ appended. For MS-Windows the default
+ is to send CTRL-D.
+ E.g. for a shell use "++eof=exit" and
+ for Python "++eof=exit()". Special
+ codes can be used like with `:map`,
+ e.g. "<C-Z>" for CTRL-Z.
If you want to use more options use the |term_start()|
function.
-When the buffer associated with the terminal is wiped out the job is killed,
-similar to calling `job_stop(job, "kill")`
+When the buffer associated with the terminal is unloaded or wiped out the job
+is killed, similar to calling `job_stop(job, "kill")`
+
+So long as the job is running the window behaves like it contains a modified
+buffer. Trying to close the window with `CTRL-W :quit` fails. When using
+`CTRL-W :quit!` the job is ended. The text in the window is lost. The buffer
+still exists, but getting it in a window with `:buffer` will show an empty
+buffer.
+
+Trying to close the window with `CTRL-W :close` also fails. Using
+`CTRL-W :close!` will close the window and make the buffer hidden.
-By default the 'bufhidden' option of the buffer will be set to "hide".
-So long as the job is running: If the window is closed the buffer becomes
-hidden. The command will not be stopped. The `:buffer` command can be used
-to turn the current window into a terminal window. If there are unsaved
-changes this fails, use ! to force, as usual.
+You can use `CTRL-W :hide` to close the terminal window and make the buffer
+hidden, the job keeps running. The `:buffer` command can be used to turn the
+current window into a terminal window. If there are unsaved changes this
+fails, use ! to force, as usual.
To have a background job run without a window, and open the window when it's
done, use options like this: >
@@ -130,7 +179,7 @@ done, use options like this: >
Note that the window will open at an unexpected moment, this will interrupt
what you are doing.
- *E947*
+ *E947* *E948*
So long as the job is running, the buffer is considered modified and Vim
cannot be quit easily, see |abandon|.
@@ -176,17 +225,36 @@ mode.
Use CTRL-W N (or 'termkey' N) to switch to Terminal-Normal mode. Now the
contents of the terminal window is under control of Vim, the job output is
suspended. CTRL-\ CTRL-N does the same.
+
+Terminal-Job mode is where |:tmap| mappings are applied. Keys sent by
+|term_sendkeys()| are not subject to tmap, but keys from |feedkeys()| are.
+
*E946*
In Terminal-Normal mode you can move the cursor around with the usual Vim
commands, Visually mark text, yank text, etc. But you cannot change the
contents of the buffer. The commands that would start insert mode, such as
'i' and 'a', return to Terminal-Job mode. The window will be updated to show
-the contents of the terminal.
+the contents of the terminal. |:startinsert| is ineffective.
In Terminal-Normal mode the statusline and window title show "(Terminal)". If
the job ends while in Terminal-Normal mode this changes to
"(Terminal-finished)".
+It is not possible to enter Insert mode from Terminal-Job mode.
+
+
+Cursor style ~
+
+By default the cursor in the terminal window uses a not blinking block. The
+normal xterm escape sequences can be used to change the blinking state and the
+shape. Once focus leaves the terminal window Vim will restore the original
+cursor.
+
+An exception is when xterm is started with the "-bc" argument, or another way
+that causes the cursor to blink. This actually means that the blinking flag
+is inverted. Since Vim cannot detect this, the terminal window cursor
+blinking will also be inverted.
+
Unix ~
@@ -226,7 +294,10 @@ You can download them from the following page:
https://github.com/rprichard/winpty
-Just put the files somewhere in your PATH.
+Just put the files somewhere in your PATH. You can set the 'winptydll' option
+to point to the right file, if needed. If you have both the 32-bit and 64-bit
+version, rename to winpty32.dll and winpty64.dll to match the way Vim was
+build.
==============================================================================
2. Remote testing *terminal-testing*
@@ -238,7 +309,7 @@ inspects the resulting screen state.
Functions ~
-term_sendkeys() send keystrokes to a terminal
+term_sendkeys() send keystrokes to a terminal (not subject to tmap)
term_wait() wait for screen to be updated
term_scrape() inspect terminal screen
@@ -247,25 +318,118 @@ term_scrape() inspect terminal screen
3. Debugging *terminal-debug*
The Terminal debugging plugin can be used to debug a program with gdb and view
-the source code in a Vim window. For example: >
+the source code in a Vim window. Since this is completely contained inside
+Vim this also works remotely over an ssh connection.
+
+
+Starting ~
+Load the plugin with this command: >
+ packadd termdebug
+< *:Termdebug*
+To start debugging use `:TermDebug` folowed by the command name, for example: >
:TermDebug vim
-This opens three windows:
-- A terminal window in which "gdb vim" is executed. Here you can directly
- interact with gdb.
-- A terminal window for the executed program. When "run" is used in gdb the
- program I/O will happen in this window, so that it does not interfere with
- controlling gdb.
-- A normal Vim window used to show the source code. When gdb jumps to a
- source file location this window will display the code, if possible. Values
- of variables can be inspected, breakpoints set and cleared, etc.
-
-This uses two terminal windows. To open the gdb window: >
- :term gdb [arguments]
-To open the terminal to run the tested program |term_start()| is used.
-
-TODO
+This opens two windows:
+gdb window A terminal window in which "gdb vim" is executed. Here you
+ can directly interact with gdb. The buffer name is "!gdb".
+program window A terminal window for the executed program. When "run" is
+ used in gdb the program I/O will happen in this window, so
+ that it does not interfere with controlling gdb. The buffer
+ name is "gdb program".
+
+The current window is used to show the source code. When gdb pauses the
+source file location will be displayed, if possible. A sign is used to
+highlight the current position (using highlight group debugPC).
+
+If the buffer in the current window is modified, another window will be opened
+to display the current gdb position.
+
+Focus the terminal of the executed program to interact with it. This works
+the same as any command running in a terminal window.
+
+When the debugger ends, typically by typing "quit" in the gdb window, the two
+opened windows are closed.
+
+
+Stepping through code ~
+
+Put focus on the gdb window to type commands there. Some common ones are:
+- CTRL-C interrupt the program
+- next execute the current line and stop at the next line
+- step execute the current line and stop at the next statement, entering
+ functions
+- finish execute until leaving the current function
+- where show the stack
+- frame N go to the Nth stack frame
+- continue continue execution
+
+In the window showing the source code some commands can used to control gdb:
+ :Break set a breakpoint at the current line; a sign will be displayed
+ :Delete delete a breakpoint at the current line
+ :Step execute the gdb "step" command
+ :Over execute the gdb "next" command (:Next is a Vim command)
+ :Finish execute the gdb "finish" command
+ :Continue execute the gdb "continue" command
+
+The plugin adds a window toolbar with these entries:
+ Step :Step
+ Next :Over
+ Finish :Finish
+ Cont :Continue
+ Eval :Evaluate
+This way you can use the mouse to perform the most common commands.
+
+
+Inspecting variables ~
+
+ :Evaluate evaluate the expression under the cursor
+ K same
+ :Evaluate {expr} evaluate {expr}
+ :'<,'>Evaluate evaluate the Visually selected text
+
+This is similar to using "print" in the gdb window.
+
+
+Other commands ~
+
+ :Gdb jump to the gdb window
+ :Program jump to the window with the running program
+
+
+Communication ~
+
+There is another, hidden, buffer, which is used for Vim to communicate with
+gdb. The buffer name is "gdb communication". Do not delete this buffer, it
+will break the debugger.
+
+
+Customizing ~
+
+To change the name of the gdb command, set the "termdebugger" variable before
+invoking `:Termdebug`: >
+ let termdebugger = "mygdb"
+Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI
+interface.
+
+The color of the signs can be adjusted with these highlight groups:
+- debugPC the current position
+- debugBreakpoint a breakpoint
+
+The defaults are, when 'background' is "light":
+ hi debugPC term=reverse ctermbg=lightblue guibg=lightblue
+ hi debugBreakpoint term=reverse ctermbg=red guibg=red
+
+When 'background' is "dark":
+ hi debugPC term=reverse ctermbg=darkblue guibg=darkblue
+ hi debugBreakpoint term=reverse ctermbg=red guibg=red
+
+To change the width of the Vim window when debugging starts, and use a
+vertical split: >
+ let g:termdebug_wide = 163
+This will set &columns to 163 when :Termdebug is used. The value is restored
+when quitting the debugger.
+
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index f065b7c..8247fe6 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 8.0. Last change: 2017 Aug 11
+*todo.txt* For Vim version 8.0. Last change: 2017 Sep 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -35,31 +35,46 @@ entered there will not be repeated below, unless there is extra information.
*known-bugs*
-------------------- Known bugs and current work -----------------------
+:term hangs in Athena and Motif. (Kazunobu Kuriyama, 2017 Sep 17)
+
+Always use FEAT_WINDOWS:
+May get rid of:
+ #define W_WINCOL(wp) (wp->w_wincol)
+ #define W_WIDTH(wp) (wp->w_width)
+ #define W_ENDCOL(wp) (wp->w_wincol + wp->w_width)
+ #define W_VSEP_WIDTH(wp) (wp->w_vsep_width)
+ #define W_STATUS_HEIGHT(wp) (wp->w_status_height)
+ #define W_WINROW(wp) (wp->w_winrow)
+# define ALIST(win) (win)->w_alist
+
No maintainer for Vietnamese translations.
No maintainer for Simplified Chinese translations.
-
Terminal emulator window:
- Lots of stuff to implement, see src/terminal.c
-- Add winpty.dll and winpty-agent.exe in the NSIS build.
-- Add debugger interface. Implementation for gdb by Xavier de Gaye. Should
- work like an IDE. Try to keep it generic. Now found here:
- http://clewn.sf.net.
- Can this replace Agide? http://www.a-a-p.org/images/debugfull.png
+- Improve debugger interface:
+ Include all debug features of Agide.
+ - Implement the right-click popup menu for the terminal. Can use the
+ completion popup menu code and mouse dragging.
+ Use it for "set breakpoint", "remove breakpoint", etc.
- make showballoon() work in a terminal. Requires getting mouse-move
events.
- send 'balloonText' events for the cursor position (using CursorHold ?)
in terminal mode.
- - Implement the right-click popup menu for the terminal. Can use the
- completion popup menu code and mouse dragging.
-- Look into the idevim plugin/script.
-- Related wishes for NetBeans commands:
- - make it possible to have 'defineAnnoType' also handle terminal colors.
+ - get ideas from http://clewn.sf.net
+ - Look into the idevim plugin/script.
+- Improve testing:
+ Make a screenshot of a terminal, store in a file.
+ Display a stored screenshot, display diff with another one.
+ Make a test that puts Vim in a specific state, make a screenshot and compare
+ with the expected screenshot. Set t_Co to 256.
+channel:
- Try out background make plugin:
https://github.com/AndrewVos/vim-make-background
- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
+- Writing raw mode to a buffer should still handle NL characters as line
+ breaks. (Dmitry Zotikov, 2017 Aug 16)
- When out_cb executes :sleep, the close_cb may be invoked. (Daniel Hahler,
2016 Dec 11, #1320)
- Implement |job-term| ?
@@ -74,7 +89,7 @@ Terminal emulator window:
Feb 9) How to do this on MS-Windows?
- For connection to server, a "keep open" flag would be useful. Retry
connecting in the main loop with zero timeout.
-- job_start(): run job in a newly opened terminal.
+- job_start(): run job in a newly opened terminal (not a terminal window).
With xterm could use -S{pty}.
Although user could use "xterm -e 'cmd arg'".
@@ -130,27 +145,53 @@ Use names that indicate their appearnce (Christian Brabandt, 2017 Aug 3)
- seoul256 - Christian Brabandt (2017 Aug 3)
- gruvbox - Christian Brabandt (2017 Aug 3)
- janah - Marco Hinz (2017 Aug 4)
-- apprentice - Romain Lafourcade (2017 Aug 6) remarks about help file
+- apprentice - Romain Lafourcade (2017 Aug 6) remarks about help file #1964
Suggested by Hiroki Kokubun:
- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
- [hybrid](https://github.com/w0ng/vim-hybrid)
-test_gui fails with gnome2: cannot create .gnome2 dir
- use testdir/Xfakehome instead of does/not/exist?
+Patch to update Brazilian translations. (Eduardo Dobay, 2017 Sep 10, #2077)
+
+When starting with --clean packages under "start" are not loaded. Make this
+work: :packadd START {name} similar to :runtime START name
-Patch for quickfix: parse lines for any quickfix list. (Yegappan Lakshmanan,
-2017 Jul 20)
+Patch to refactor qf_jump(). (Yegappan, 2017 Sep 17)
-Patch for restoring wide characters in the console buffer.
-(Ken Takata, 2016 Jun 7)
+When using :packadd files under "later" are not used, which is inconsistent
+with packages under "start". (xtal8, #1994)
-Patch to add Couchbase syntax file. (Eugene Ciurana, 2017 Aug 8, #1951)
+After 8.0.0962 pasting leaves the cursor in another position. (Ken Takata,
+2017 Aug 23, #2015) Also (zdm, 2017 Aug 23)
-Patch to fix font name problem with cp932. (Ken Takata, 2017 Aug 9)
+Patch to fix popup menu drawing when changing the window size. (Ozaki Kiichi,
+2017 Sep 17, #2110)
+
+Patch to fix cursor highlighting with match. (Ozaki Kiichi, 2017 Sep 17,
+#2111)
+
+Patch for not profiling the first line of a script. (Lemonboy, 2017 Sep 17,
+#2103)
+
+Mac Terminal.app: ctermbg=15 gives light grey instead of white.
+ctermbg=256 breaks clearing till end of the line. Both work fine in xterm.
+
+Using ":hi" causes a redraw, but a redraw may update the status line, which
+may trigger a ":hi" command.
+
+Last line not in profile if it is a continuation line. (LemonBoy, 2017 Sep 17,
+#2112)
+
+"vim -c startinsert!" doesn't append. (#2117)
With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
(Marcin Szewczyk, 2017 Apr 26)
+Patch to make Mac features more clear and add "macdarwin". (Kazunobu Kuriyama,
+2017 Sep 5)
+
+Using 'wildignore' also applies to literally entered file name. Also with
+:drop (remote commands).
+
ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737)
Lemonboy can reproduce (2017 Jun 5)
@@ -158,39 +199,50 @@ ml_get errors with buggy script. (Dominique, 2017 Apr 30)
Error in emsg with buggy script. (Dominique, 2017 Apr 30)
-Start a test directory under runtime, to test runtime file changes.
-Start with filetype detection. Only include in the source distribution.
-"make test" in src/ can be renamed to "make testsrc" and "make test" would do
-both "testsrc" and "testruntime" targets.
+Patch to make ":set scroll&" work properly. (Ozaki Kiichi, 2017 Sep 17, #2104)
-Patch for Murphi syntax. (Matthew Fernandez, 2017 Jul 24)
+mswin.vim should not map CTRL-F in the console (#2093)
+Patch from Christian, 2017 Sep 15.
-Better detection of strace file. (Steven Fernandez, 2017 Jul 12, #1837)
+Default install on MS-Windows should source defaults.vim.
+Ask whether to use Windows or Vim key behavior?
-Patch to add setbufline(). (email from Yasuhiro Matsumoto, patch by Ozaki
-Kiichi, 2016 Feb 28)
-Update Mar 8: https://gist.github.com/mattn/23c1f50999084992ca98
-Update Mar 13: https://gist.github.com/mattn/23c1f50999084992ca98
-Update Aug 2017: #1953
+matchit hasn't been maintained for a long time. #955.
+
+Test runtime files.
+Start with filetype detection: testdir/test_filetype.vim
+
+Window not closed when deleting buffer. (Harm te Hennepe, 2017 Aug 27, #2029)
Add options_default() / options_restore() to set several options to Vim
defaults for a plugin. Comments from Zyx, 2017 May 10.
Perhaps use a vimcontext / endvimcontext command block.
+After using :noautocmd CursorMoved may still trigger. (Andy Stewart, 2017 Sep
+13, #2084). Set old position after the command.
+
Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
Still happens (2017 Jul 9)
+When bracketed paste is used, pasting at the ":append" prompt does not get the
+line breaks. (Ken Takata, 2017 Aug 22)
+
+This example in the help does not work (Andy Wokula, 2017 Aug 20):
+ augroup mine | au! BufRead | augroup END
+
+Memory leaks in test_channel? (or is it because of fork())
Memory leak in test_arabic.
+Using uninitialized value in test_crypt.
-Include Haiku port? (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
+Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070)
+
+Include Haiku port. (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
It can replace the BeOS code, which is likely not used anymore.
-Now on github: #1856. Is now up-to-date?
+Now on github: #1856.
Got permission to include this under the Vim license.
Refactored HTML indent file. (Michael Lee, #1821)
-Using uninitialized value in test_crypt.
-
Test_writefile_fails_conversion failure on Solaris because if different iconv
behavior. Skip when "uname" returns "SunOS"? (Pavel Heimlich, #1872)
@@ -208,6 +260,9 @@ Alternatives for ~:
The ++ options for the :edit command are also useful on the Vim command line.
+Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
+#2089) Patch with possible solution by Björn Linse.
+
X11: Putting more than about 262040 characters of text on the clipboard and
pasting it in another Vim doesn't work. (Dominique Pelle, 2008 Aug 21-23)
clip_x11_request_selection_cb() is called with zero value and length.
@@ -222,6 +277,9 @@ Creating a partial with an autoload function is confused about the "self"
attribute of the function. For an unknown function assume "self" and make
that optiona? (Bjorn Linse, 2017 Aug 5)
+Cindent: returning a structure has more indent for the second item.
+(Sam Pagenkopf, 2017 Sep 14, #2090)
+
Completion mixes results from the current buffer with tags and other files.
Happens when typing CTRL-N while still search for results. E.g., type "b_" in
terminal.c and then CTRL-N twice.
@@ -382,9 +440,6 @@ Implement optional arguments for functions.
call Foo(12, all = 0)
call Foo(12, 15, 0)
-Patch to support on-the-spot and over-the-spot input method. (Ken Takata, 2017
-Feb 14).
-
Change the Farsi code to work with UTF-8. Possibly combined with the Arabic
support, or similar.
Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
@@ -624,11 +679,6 @@ Reject the value? #710.
Patch to fix increment/decrement not working properly when 'virtualedit' is
set. (Hirohito Higashi, 2016 Aug 1, #923)
-Patch to support strikethrough next to bold and italic. (Christian Brabandt,
-2013 Jul 30) Update from Ken Takata, 2013 Oct 12.
-Update mentioned by Christian, 2016 Apr 25.
-Update from Ken Takata, 2016 Jul 17.
-
When doing "vi buf.md" a BufNew autocommand for *.md is not triggered.
Because of using the initial buffer? (Dun Peal, 2016 May 12)
@@ -1396,9 +1446,6 @@ Windows keys not set properly on Windows 7? (cncyber, 2010 Aug 26)
When using a Vim server, a # in the path causes an error message.
(Jeff Lanzarotta, 2011 Feb 17)
-Setting $HOME on MS-Windows is not very well documented. Suggestion by Ben
-Fritz (2011 Oct 27).
-
When there is a ">" in a line that "gq" wraps to the start of the next line,
then the following line will pick it up as a leader. Should get the leader
from the first line, not a wrapped line. (Matt Ackeret, 2012 Feb 27)
@@ -1503,6 +1550,9 @@ GTK: tear-off menu does not work. (Kurt Sonnenmoser, 2010 Oct 25)
Win32: tear-off menu does not work when menu language is German. (Markus
Bossler, 2011 Mar 2) Fixed by 7.3.095?
+Wish for NetBeans commands:
+ - make it possible to have 'defineAnnoType' also handle terminal colors.
+
Version of netbeans.c for use with MacVim. (Kazuki Sakamoto, 2010 Nov 18)
7.3.014 changed how backslash at end of line works, but still get a NUL when
@@ -3693,7 +3743,7 @@ Multi-byte characters:
at a multi-byte character >= 0x100.
- Add the possibility to enter mappings which are used whenever normal text
could be entered. E.g., for "f" command. But not in Normal mode. Sort
- of opposite of 'langmap'. Use ":tmap" command?
+ of opposite of 'langmap'. Use ":amap" command?
- When breaking a line, take properties of multi-byte characters into
account. The "linebreak" program from Bruno Haible can do it:
ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz
diff --git a/runtime/doc/usr_07.txt b/runtime/doc/usr_07.txt
index 956dc1d..50fe4e9 100644
--- a/runtime/doc/usr_07.txt
+++ b/runtime/doc/usr_07.txt
@@ -1,4 +1,4 @@
-*usr_07.txt* For Vim version 8.0. Last change: 2017 Aug 11
+*usr_07.txt* For Vim version 8.0. Last change: 2017 Sep 18
VIM USER MANUAL - by Bram Moolenaar
@@ -215,14 +215,14 @@ change: >
`.
-Suppose you are editing the file "one.txt". Somewhere halfway the file you
-use "x" to delete a character. Then you go to the last line with "G" and
-write the file with ":w". You edit several other files, and then use ":edit
-one.txt" to come back to "one.txt". If you now use `" Vim jumps to the last
-line of the file. Using `. takes you to the position where you deleted the
-character. Even when you move around in the file `" and `. will take you to
-the remembered position. At least until you make another change or leave the
-file.
+Suppose you are editing the file "one.txt". Somewhere halfway through the
+file you use "x" to delete a character. Then you go to the last line with "G"
+and write the file with ":w". You edit several other files, and then use
+":edit one.txt" to come back to "one.txt". If you now use `" Vim jumps to the
+last line of the file. Using `. takes you to the position where you deleted
+the character. Even when you move around in the file `" and `. will take you
+to the remembered position. At least until you make another change or leave
+the file.
FILE MARKS
@@ -233,8 +233,8 @@ another file and place marks there, these are specific for that file. Thus
each file has its own set of marks, they are local to the file.
So far we were using marks with a lowercase letter. There are also marks
with an uppercase letter. These are global, they can be used from any file.
-For example suppose that we are editing the file "foo.txt". Go to halfway the
-file ("50%") and place the F mark there (F for foo): >
+For example suppose that we are editing the file "foo.txt". Go to halfway
+down the file ("50%") and place the F mark there (F for foo): >
50%mF
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index a0428a0..8b2ce53 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt* For Vim version 8.0. Last change: 2017 Jul 19
+*usr_41.txt* For Vim version 8.0. Last change: 2017 Aug 22
VIM USER MANUAL - by Bram Moolenaar
@@ -966,6 +966,23 @@ Jobs: *job-functions*
job_info() get information about a job
job_setoptions() set options for a job
+Terminal window: *terminal-functions*
+ term_start() open a terminal window and run a job
+ term_list() get the list of terminal buffers
+ term_sendkeys() send keystrokes to a terminal
+ term_wait() wait for screen to be updated
+ term_getjob() get the job associated with a terminal
+ term_scrape() get row of a terminal screen
+ term_getline() get a line of text from a terminal
+ term_getattr() get the value of attribute {what}
+ term_getcursor() get the cursor position of a terminal
+ term_getscrolled() get the scroll count of a terminal
+ term_getaltscreen() get the alternate screen flag
+ term_getsize() get the size of a terminal
+ term_getstatus() get the status of a terminal
+ term_gettitle() get the title of a terminal
+ term_gettty() get the tty name of a terminal
+
Timers: *timer-functions*
timer_start() create a timer
timer_pause() pause or unpause a timer
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 24290fa..3790b25 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt* For Vim version 8.0. Last change: 2017 Feb 24
+*various.txt* For Vim version 8.0. Last change: 2017 Sep 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -322,7 +322,7 @@ N *+cindent* |'cindent'|, C indenting
N *+clientserver* Unix and Win32: Remote invocation |clientserver|
*+clipboard* |clipboard| support
N *+cmdline_compl* command line completion |cmdline-completion|
-N *+cmdline_hist* command line history |cmdline-history|
+S *+cmdline_hist* command line history |cmdline-history|
N *+cmdline_info* |'showcmd'| and |'ruler'|
N *+comments* |'comments'| support
B *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc.
@@ -361,7 +361,7 @@ m *+hangul_input* Hangul input support |hangul|
*+iconv/dyn* Likewise |iconv-dynamic| |/dyn|
N *+insert_expand* |insert_expand| Insert mode completion
m *+job* starting and stopping jobs |job|
-N *+jumplist* |jumplist|
+S *+jumplist* |jumplist|
B *+keymap* |'keymap'|
N *+lambda* |lambda| and |closure|
B *+langmap* |'langmap'|
@@ -438,14 +438,16 @@ N *+title* Setting the window 'title' and 'icon'
N *+toolbar* |gui-toolbar|
N *+user_commands* User-defined commands. |user-commands|
N *+viminfo* |'viminfo'|
-N *+vertsplit* Vertically split windows |:vsplit|
+ *+vertsplit* Vertically split windows |:vsplit|; Always enabled
+ since 8.0.1118.
+ in sync with the |+windows| feature
N *+virtualedit* |'virtualedit'|
S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
N *+visualextra* extra Visual mode commands |blockwise-operators|
N *+vreplace* |gR| and |gr|
N *+wildignore* |'wildignore'|
N *+wildmenu* |'wildmenu'|
-S *+windows* more than one window
+ *+windows* more than one window; Always enabled sinde 8.0.1118.
m *+writebackup* |'writebackup'| is default on
m *+xim* X input method |xim|
*+xfontset* X fontset support |xfontset|
diff --git a/runtime/doc/vim.man b/runtime/doc/vim.man
index cb0057a..64fa795 100644
--- a/runtime/doc/vim.man
+++ b/runtime/doc/vim.man
@@ -3,7 +3,7 @@ VIM(1) General Commands Manual VIM(1)
NAME
- vim - Vi IMproved, a programmers text editor
+ vim - Vi IMproved, a programmer's text editor
SYNOPSIS
vim [options] [file ..]
diff --git a/runtime/doc/visual.txt b/runtime/doc/visual.txt
index 0a91b9f..c799727 100644
--- a/runtime/doc/visual.txt
+++ b/runtime/doc/visual.txt
@@ -1,4 +1,4 @@
-*visual.txt* For Vim version 8.0. Last change: 2014 Mar 23
+*visual.txt* For Vim version 8.0. Last change: 2017 Sep 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -314,8 +314,8 @@ Visual-block Insert *v_b_I*
With a blockwise selection, I{string}<ESC> will insert {string} at the start
of block on every line of the block, provided that the line extends into the
block. Thus lines that are short will remain unmodified. TABs are split to
-retain visual columns.
-See |v_b_I_example|.
+retain visual columns. Works only for adding text to a line, not for
+deletions. See |v_b_I_example|.
Visual-block Append *v_b_A*
With a blockwise selection, A{string}<ESC> will append {string} to the end of
@@ -331,6 +331,7 @@ See |v_b_A_example|.
Note: "I" and "A" behave differently for lines that don't extend into the
selected block. This was done intentionally, so that you can do it the way
you want.
+Works only for adding text to a line, not for deletions.
Visual-block change *v_b_c*
All selected text in the block will be replaced by the same text string. When
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index d3cf69e..be26841 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt* For Vim version 8.0. Last change: 2017 Jul 23
+*windows.txt* For Vim version 8.0. Last change: 2017 Sep 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -344,8 +344,9 @@ CTRL-W CTRL-C *CTRL-W_CTRL-C*
*:hide*
:hid[e]
:{count}hid[e]
- Quit the current window, unless it is the last window on the
- screen. For {count} see |:quit| command.
+ Without {count}: Quit the current window, unless it is the
+ last window on the screen.
+ If {count} is given quit the {count} window.
The buffer becomes hidden (unless there is another window
editing it or 'bufhidden' is "unload", "delete" or "wipe").
@@ -1031,6 +1032,9 @@ list of buffers. |unlisted-buffer|
displayed in a window |hidden-buffer|
- a buffer with 'modifiable' off
= a readonly buffer
+ R a terminal buffer with a running job
+ F a terminal buffer with a finished job
+ ? a terminal buffer without a job: `:terminal NONE`
+ a modified buffer
x a buffer with read errors
diff --git a/runtime/ftplugin/perl.vim b/runtime/ftplugin/perl.vim
index 741cfae..e7acf65 100644
--- a/runtime/ftplugin/perl.vim
+++ b/runtime/ftplugin/perl.vim
@@ -3,7 +3,7 @@
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change: 2013-07-21
+" Last Change: 2015-02-09
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
@@ -33,14 +33,14 @@ endif
setlocal include=\\<\\(use\\\|require\\)\\>
setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
setlocal define=[^A-Za-z_]
+setlocal iskeyword+=:
" The following line changes a global variable but is necessary to make
-" gf and similar commands work. The change to iskeyword was incorrect.
-" Thanks to Andrew Pimlott for pointing out the problem. If this causes a
-" problem for you, add an after/ftplugin/perl.vim file that contains
+" gf and similar commands work. Thanks to Andrew Pimlott for pointing
+" out the problem. If this causes a problem for you, add an
+" after/ftplugin/perl.vim file that contains
" set isfname-=:
set isfname+=:
-set iskeyword+=:
" Set this once, globally.
if !exists("perlpath")
@@ -77,11 +77,12 @@ endif
"---------------------------------------------
" Undo the stuff we changed.
-let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp< path<" .
+let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk< isf< kp< path<" .
\ " | unlet! b:browsefilter"
" proper matching for matchit plugin
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
+let b:match_words = '\<if\>:\<elsif\>:\<else\>'
" Restore the saved compatibility options.
let &cpo = s:save_cpo
diff --git a/runtime/ftplugin/verilog.vim b/runtime/ftplugin/verilog.vim
index 6594f2e..cbf30a3 100644
--- a/runtime/ftplugin/verilog.vim
+++ b/runtime/ftplugin/verilog.vim
@@ -1,8 +1,12 @@
" Vim filetype plugin file
" Language: Verilog HDL
-" Maintainer: Chih-Tsun Huang <cthuang@larc.ee.nthu.edu.tw>
-" Last Change: Wed Sep 3 15:24:49 CST 2008
-" URL: http://larc.ee.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
+" Maintainer: Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
+" Last Change: 2017 Aug 25 by Chih-Tsun Huang
+" URL: http://www.cs.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
+"
+" Credits:
+" Suggestions for improvement, bug reports by
+" Shao <shaominghai2005@163.com>
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -45,11 +49,16 @@ if exists("loaded_matchit")
\ '\<begin\>:\<end\>,' .
\ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
\ '\<module\>:\<endmodule\>,' .
- \ '\<if\>:\<else\>,' .
+ \ '\<if\>:`\@<!\<else\>,' .
\ '\<function\>:\<endfunction\>,' .
- \ '`ifdef\>:`else\>:`endif\>,' .
+ \ '`ifn\?def\>:`elsif\>:`else\>:`endif\>,' .
\ '\<task\>:\<endtask\>,' .
- \ '\<specify\>:\<endspecify\>'
+ \ '\<specify\>:\<endspecify\>,' .
+ \ '\<config\>:\<endconfig\>,' .
+ \ '\<generate\>:\<endgenerate\>,' .
+ \ '\<fork\>:\<join\>,' .
+ \ '\<primitive\>:\<endprimitive\>,' .
+ \ '\<table\>:\<endtable\>'
endif
" Reset 'cpoptions' back to the user's setting
diff --git a/runtime/indent/cmake.vim b/runtime/indent/cmake.vim
index 93a131b..85a9ec4 100644
--- a/runtime/indent/cmake.vim
+++ b/runtime/indent/cmake.vim
@@ -1,14 +1,12 @@
" Vim indent file
-" Program: CMake - Cross-Platform Makefile Generator
-" Module: $RCSfile: cmake-indent.vim,v $
" Language: CMake (ft=cmake)
" Author: Andy Cedilnik <andy.cedilnik@kitware.com>
-" Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
-" Last Change: $Date: 2008-01-16 16:53:53 $
-" Version: $Revision: 1.9 $
+" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
+" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
+" Last Change: 2017 Aug 30
"
" Licence: The CMake license applies to this file. See
-" http://www.cmake.org/HTML/Copyright.html
+" https://cmake.org/licensing
" This implies that distribution with Vim is allowed
if exists("b:did_indent")
@@ -16,6 +14,7 @@ if exists("b:did_indent")
endif
let b:did_indent = 1
+setlocal et
setlocal indentexpr=CMakeGetIndent(v:lnum)
setlocal indentkeys+==ENDIF(,ENDFOREACH(,ENDMACRO(,ELSE(,ELSEIF(,ENDWHILE(
@@ -68,19 +67,19 @@ fun! CMakeGetIndent(lnum)
let ind = ind
else
if previous_line =~? cmake_indent_begin_regex
- let ind = ind + shiftwidth()
+ let ind = ind + &sw
endif
if previous_line =~? cmake_indent_open_regex
- let ind = ind + shiftwidth()
+ let ind = ind + &sw
endif
endif
" Subtract
if this_line =~? cmake_indent_end_regex
- let ind = ind - shiftwidth()
+ let ind = ind - &sw
endif
if previous_line =~? cmake_indent_close_regex
- let ind = ind - shiftwidth()
+ let ind = ind - &sw
endif
return ind
diff --git a/runtime/indent/javascript.vim b/runtime/indent/javascript.vim
index 3b3f3a1..2861716 100644
--- a/runtime/indent/javascript.vim
+++ b/runtime/indent/javascript.vim
@@ -2,7 +2,7 @@
" Language: Javascript
" Maintainer: Chris Paul ( https://github.com/bounceme )
" URL: https://github.com/pangloss/vim-javascript
-" Last Change: March 21, 2017
+" Last Change: September 18, 2017
" Only load this indent file when no other was loaded.
if exists('b:did_indent')
@@ -10,6 +10,10 @@ if exists('b:did_indent')
endif
let b:did_indent = 1
+" indent correctly if inside <script>
+" vim/vim@690afe1 for the switch from cindent
+let b:html_indent_script1 = 'inc'
+
" Now, set up our indentation expression and keys that trigger it.
setlocal indentexpr=GetJavascriptIndent()
setlocal autoindent nolisp nosmartindent
@@ -21,6 +25,13 @@ setlocal indentkeys+=0],0)
let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys<'
+" Regex of syntax group names that are or delimit string or are comments.
+let b:syng_strcom = get(b:,'syng_strcom','string\|comment\|regex\|special\|doc\|template\%(braces\)\@!')
+let b:syng_str = get(b:,'syng_str','string\|template\|special')
+" template strings may want to be excluded when editing graphql:
+" au! Filetype javascript let b:syng_str = '^\%(.*template\)\@!.*string\|special'
+" au! Filetype javascript let b:syng_strcom = '^\%(.*template\)\@!.*string\|comment\|regex\|special\|doc'
+
" Only define the function once.
if exists('*GetJavascriptIndent')
finish
@@ -36,7 +47,7 @@ if exists('*shiftwidth')
endfunction
else
function s:sw()
- return &l:shiftwidth == 0 ? &l:tabstop : &l:shiftwidth
+ return &l:shiftwidth ? &l:shiftwidth : &l:tabstop
endfunction
endif
@@ -44,272 +55,301 @@ endif
" matches before pos.
let s:z = has('patch-7.4.984') ? 'z' : ''
+" Expression used to check whether we should skip a match with searchpair().
+let s:skip_expr = "s:SynAt(line('.'),col('.')) =~? b:syng_strcom"
+let s:in_comm = s:skip_expr[:-14] . "'comment\\|doc'"
+
+let s:rel = has('reltime')
" searchpair() wrapper
-if has('reltime')
- function s:GetPair(start,end,flags,skip,time,...)
- return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 2000,0] + a:000),a:time)
+if s:rel
+ function s:GetPair(start,end,flags,skip)
+ return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1,a:skip ==# 's:SkipFunc()' ? 2000 : 200)
endfunction
else
- function s:GetPair(start,end,flags,skip,...)
- return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 1000,get(a:000,1)]))
+ function s:GetPair(start,end,flags,skip)
+ return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1)
endfunction
endif
-" Regex of syntax group names that are or delimit string or are comments.
-let s:syng_strcom = 'string\|comment\|regex\|special\|doc\|template\%(braces\)\@!'
-let s:syng_str = 'string\|template\|special'
-let s:syng_com = 'comment\|doc'
-" Expression used to check whether we should skip a match with searchpair().
-let s:skip_expr = "synIDattr(synID(line('.'),col('.'),0),'name') =~? '".s:syng_strcom."'"
+function s:SynAt(l,c)
+ let byte = line2byte(a:l) + a:c - 1
+ let pos = index(s:synid_cache[0], byte)
+ if pos == -1
+ let s:synid_cache[:] += [[byte], [synIDattr(synID(a:l, a:c, 0), 'name')]]
+ endif
+ return s:synid_cache[1][pos]
+endfunction
-function s:parse_cino(f) abort
- return float2nr(eval(substitute(substitute(join(split(
- \ matchstr(&cino,'.*'.a:f.'\zs[^,]*'), 's',1), '*'.s:W)
- \ , '^-\=\zs\*','',''), '^-\=\zs\.','0.','')))
+function s:ParseCino(f)
+ let [divider, n, cstr] = [0] + matchlist(&cino,
+ \ '\%(.*,\)\=\%(\%d'.char2nr(a:f).'\(-\)\=\([.s0-9]*\)\)\=')[1:2]
+ for c in split(cstr,'\zs')
+ if c == '.' && !divider
+ let divider = 1
+ elseif c ==# 's'
+ if n !~ '\d'
+ return n . s:sw() + 0
+ endif
+ let n = str2nr(n) * s:sw()
+ break
+ else
+ let [n, divider] .= [c, 0]
+ endif
+ endfor
+ return str2nr(n) / max([str2nr(divider),1])
endfunction
-function s:skip_func()
- if getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$'
- return eval(s:skip_expr)
- elseif s:checkIn || search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn)
- let s:checkIn = eval(s:skip_expr)
+" Optimized {skip} expr, only callable from the search loop which
+" GetJavascriptIndent does to find the containing [[{(] (side-effects)
+function s:SkipFunc()
+ if s:top_col == 1
+ throw 'out of bounds'
endif
- let s:looksyn = line('.')
- return s:checkIn
+ let s:top_col = 0
+ if s:check_in
+ if eval(s:skip_expr)
+ return 1
+ endif
+ let s:check_in = 0
+ elseif getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$'
+ if eval(s:skip_expr)
+ let s:looksyn = a:firstline
+ return 1
+ endif
+ elseif search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn) && eval(s:skip_expr)
+ let s:check_in = 1
+ return 1
+ endif
+ let [s:looksyn, s:top_col] = getpos('.')[1:2]
endfunction
-function s:alternatePair(stop)
- let pos = getpos('.')[1:2]
- let pat = '[][(){};]'
- while search('\m'.pat,'bW',a:stop)
- if s:skip_func() | continue | endif
- let idx = stridx('])};',s:looking_at())
- if idx is 3 | let pat = '[{}()]' | continue | endif
- if idx + 1
- if s:GetPair(['\[','(','{'][idx], '])}'[idx],'bW','s:skip_func()',2000,a:stop) <= 0
+function s:AlternatePair()
+ let [pat, l:for] = ['[][(){};]', 2]
+ while s:SearchLoop(pat,'bW','s:SkipFunc()')
+ if s:LookingAt() == ';'
+ if !l:for
+ if s:GetPair('{','}','bW','s:SkipFunc()')
+ return
+ endif
break
+ else
+ let [pat, l:for] = ['[{}();]', l:for - 1]
endif
else
- return
+ let idx = stridx('])}',s:LookingAt())
+ if idx == -1
+ return
+ elseif !s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:SkipFunc()')
+ break
+ endif
endif
endwhile
- call call('cursor',pos)
+ throw 'out of bounds'
endfunction
-function s:save_pos(f,...)
- let l:pos = getpos('.')[1:2]
- let ret = call(a:f,a:000)
- call call('cursor',l:pos)
- return ret
+function s:Nat(int)
+ return a:int * (a:int > 0)
endfunction
-function s:syn_at(l,c)
- return synIDattr(synID(a:l,a:c,0),'name')
-endfunction
-
-function s:looking_at()
+function s:LookingAt()
return getline('.')[col('.')-1]
endfunction
-function s:token()
- return s:looking_at() =~ '\k' ? expand('<cword>') : s:looking_at()
+function s:Token()
+ return s:LookingAt() =~ '\k' ? expand('<cword>') : s:LookingAt()
endfunction
-function s:previous_token()
- let l:pos = getpos('.')[1:2]
- if search('\m\k\{1,}\zs\k\|\S','bW')
- if (getline('.')[col('.')-2:col('.')-1] == '*/' || line('.') != l:pos[0] &&
- \ getline('.') =~ '\%<'.col('.').'c\/\/') && s:syn_at(line('.'),col('.')) =~? s:syng_com
- while search('\m\S\ze\_s*\/[/*]','bW')
- if s:syn_at(line('.'),col('.')) !~? s:syng_com
- return s:token()
- endif
- endwhile
+function s:PreviousToken()
+ let l:col = col('.')
+ if search('\m\k\{1,}\|\S','ebW')
+ if search('\m\*\%#\/\|\/\/\%<'.a:firstline.'l','nbW',line('.')) && eval(s:in_comm)
+ if s:SearchLoop('\S\ze\_s*\/[/*]','bW',s:in_comm)
+ return s:Token()
+ endif
+ call cursor(a:firstline, l:col)
else
- return s:token()
+ return s:Token()
endif
endif
- call call('cursor',l:pos)
return ''
endfunction
-function s:expr_col()
- if getline('.')[col('.')-2] == ':'
- return 1
- endif
+function s:Pure(f,...)
+ return eval("[call(a:f,a:000),cursor(a:firstline,".col('.').")][0]")
+endfunction
+
+function s:SearchLoop(pat,flags,expr)
+ return s:GetPair(a:pat,'\_$.',a:flags,a:expr)
+endfunction
+
+function s:ExprCol()
let bal = 0
- while search('\m[{}?:;]','bW')
- if eval(s:skip_expr) | continue | endif
- " switch (looking_at())
- exe { '}': "if s:GetPair('{','}','bW',s:skip_expr,200) <= 0 | return | endif",
- \ ';': "return",
- \ '{': "return getpos('.')[1:2] != b:js_cache[1:] && !s:IsBlock()",
- \ ':': "let bal -= getline('.')[max([col('.')-2,0]):col('.')] !~ '::'",
- \ '?': "let bal += 1 | if bal > 0 | return 1 | endif" }[s:looking_at()]
+ while s:SearchLoop('[{}?]\|\_[^:]\zs::\@!','bW',s:skip_expr)
+ if s:LookingAt() == ':'
+ let bal -= 1
+ elseif s:LookingAt() == '?'
+ let bal += 1
+ if bal == 1
+ break
+ endif
+ elseif s:LookingAt() == '{'
+ let bal = !s:IsBlock()
+ break
+ elseif !s:GetPair('{','}','bW',s:skip_expr)
+ break
+ endif
endwhile
+ return s:Nat(bal)
endfunction
" configurable regexes that define continuation lines, not including (, {, or [.
let s:opfirst = '^' . get(g:,'javascript_opfirst',
- \ '\C\%([<>=,?^%|*/&]\|\([-.:+]\)\1\@!\|!=\|in\%(stanceof\)\=\>\)')
+ \ '\C\%([<>=,.?^%|/&]\|\([-:+]\)\1\@!\|\*\+\|!=\|in\%(stanceof\)\=\>\)')
let s:continuation = get(g:,'javascript_continuation',
- \ '\C\%([-+<>=,.~!?/*^%|&:]\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$'
-
-function s:continues(ln,con)
- if !cursor(a:ln, match(' '.a:con,s:continuation))
- let teol = s:looking_at()
- if teol == '/'
- return s:syn_at(line('.'),col('.')) !~? 'regex'
- elseif teol =~ '[-+>]'
- return getline('.')[col('.')-2] != tr(teol,'>','=')
- elseif teol =~ '\l'
- return s:previous_token() != '.'
- elseif teol == ':'
- return s:expr_col()
- endif
- return 1
+ \ '\C\%([<=,.~!?/*^%|&:]\|+\@<!+\|-\@<!-\|=\@<!>\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$'
+
+function s:Continues(ln,con)
+ let tok = matchstr(a:con[-15:],s:continuation)
+ if tok =~ '[a-z:]'
+ call cursor(a:ln, len(a:con))
+ return tok == ':' ? s:ExprCol() : s:PreviousToken() != '.'
+ elseif tok !~ '[/>]'
+ return tok isnot ''
endif
-endfunction
-
-" get the line of code stripped of comments and move cursor to the last
-" non-comment char.
-function s:Trim(ln)
- let pline = substitute(getline(a:ln),'\s*$','','')
- let l:max = max([strridx(pline,'//'), strridx(pline,'/*')])
- while l:max != -1 && s:syn_at(a:ln, strlen(pline)) =~? s:syng_com
- let pline = pline[: l:max]
- let l:max = max([strridx(pline,'//'), strridx(pline,'/*')])
- let pline = substitute(pline[:-2],'\s*$','','')
- endwhile
- return pline is '' || cursor(a:ln,strlen(pline)) ? pline : pline
-endfunction
-
-" Find line above 'lnum' that isn't empty or in a comment
-function s:PrevCodeLine(lnum)
- let [l:pos, l:n] = [getpos('.')[1:2], prevnonblank(a:lnum)]
- while l:n
- if getline(l:n) =~ '^\s*\/[/*]'
- let l:n = prevnonblank(l:n-1)
- elseif stridx(getline(l:n), '*/') + 1 && s:syn_at(l:n,1) =~? s:syng_com
- call cursor(l:n,1)
- keepjumps norm! [*
- let l:n = search('\m\S','nbW')
- else
- break
- endif
- endwhile
- call call('cursor',l:pos)
- return l:n
+ return s:SynAt(a:ln, len(a:con)) !~? (tok == '>' ? 'jsflow\|^html' : 'regex')
endfunction
" Check if line 'lnum' has a balanced amount of parentheses.
function s:Balanced(lnum)
- let l:open = 0
- let l:line = getline(a:lnum)
- let pos = match(l:line, '[][(){}]', 0)
+ let [l:open, l:line] = [0, getline(a:lnum)]
+ let pos = match(l:line, '[][(){}]')
while pos != -1
- if s:syn_at(a:lnum,pos + 1) !~? s:syng_strcom
+ if s:SynAt(a:lnum,pos + 1) !~? b:syng_strcom
let l:open += match(' ' . l:line[pos],'[[({]')
if l:open < 0
return
endif
endif
- let pos = match(l:line, (l:open ?
- \ '['.escape(tr(l:line[pos],'({[]})',')}][{(').l:line[pos],']').']' :
- \ '[][(){}]'), pos + 1)
+ let pos = match(l:line, !l:open ? '[][(){}]' : '()' =~ l:line[pos] ?
+ \ '[()]' : '{}' =~ l:line[pos] ? '[{}]' : '[][]', pos + 1)
endwhile
return !l:open
endfunction
-function s:OneScope(lnum)
- let pline = s:Trim(a:lnum)
- let kw = 'else do'
- if pline[-1:] == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
- if s:previous_token() =~# '^\%(await\|each\)$'
- call s:previous_token()
- let kw = 'for'
- else
- let kw = 'for if let while with'
+function s:OneScope()
+ if s:LookingAt() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr)
+ let tok = s:PreviousToken()
+ return (count(split('for if let while with'),tok) ||
+ \ tok =~# '^await$\|^each$' && s:PreviousToken() ==# 'for') &&
+ \ s:Pure('s:PreviousToken') != '.' && !(tok == 'while' && s:DoWhile())
+ elseif s:Token() =~# '^else$\|^do$'
+ return s:Pure('s:PreviousToken') != '.'
+ endif
+ return strpart(getline('.'),col('.')-2,2) == '=>'
+endfunction
+
+function s:DoWhile()
+ let cpos = searchpos('\m\<','cbW')
+ if s:SearchLoop('\C[{}]\|\<\%(do\|while\)\>','bW',s:skip_expr)
+ if s:{s:LookingAt() == '}' && s:GetPair('{','}','bW',s:skip_expr) ?
+ \ 'Previous' : ''}Token() ==# 'do' && s:IsBlock()
+ return 1
endif
+ call call('cursor',cpos)
endif
- return pline[-2:] == '=>' || index(split(kw),s:token()) + 1 &&
- \ s:save_pos('s:previous_token') != '.'
endfunction
-" returns braceless levels started by 'i' and above lines * shiftwidth().
-" 'num' is the lineNr which encloses the entire context, 'cont' if whether
-" line 'i' + 1 is a continued expression, which could have started in a
-" braceless context
-function s:iscontOne(i,num,cont)
- let [l:i, l:num, bL] = [a:i, a:num + !a:num, 0]
- let pind = a:num ? indent(l:num) + s:W : 0
- let ind = indent(l:i) + (a:cont ? 0 : s:W)
- while l:i >= l:num && (ind > pind || l:i == l:num)
- if indent(l:i) < ind && s:OneScope(l:i)
- let bL += s:W
- let l:i = line('.')
- elseif !a:cont || bL || ind < indent(a:i)
+" returns total offset from braceless contexts. 'num' is the lineNr which
+" encloses the entire context, 'cont' if whether a:firstline is a continued
+" expression, which could have started in a braceless context
+function s:IsContOne(num,cont)
+ let [l:num, b_l] = [a:num + !a:num, 0]
+ let pind = a:num ? indent(a:num) + s:sw() : 0
+ let ind = indent('.') + !a:cont
+ while line('.') > l:num && ind > pind || line('.') == l:num
+ if indent('.') < ind && s:OneScope()
+ let b_l += 1
+ elseif !a:cont || b_l || ind < indent(a:firstline)
+ break
+ else
+ call cursor(0,1)
+ endif
+ let ind = min([ind, indent('.')])
+ if s:PreviousToken() is ''
break
endif
- let ind = min([ind, indent(l:i)])
- let l:i = s:PrevCodeLine(l:i - 1)
endwhile
- return bL
+ return b_l
+endfunction
+
+function s:Class()
+ return (s:Token() ==# 'class' || s:PreviousToken() =~# '^class$\|^extends$') &&
+ \ s:PreviousToken() != '.'
+endfunction
+
+function s:IsSwitch()
+ return s:PreviousToken() !~ '[.*]' &&
+ \ (!s:GetPair('{','}','cbW',s:skip_expr) || s:IsBlock() && !s:Class())
endfunction
" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
function s:IsBlock()
- if s:looking_at() == '{'
- let l:n = line('.')
- let char = s:previous_token()
- if match(s:stack,'\cxml\|jsx') + 1 && s:syn_at(line('.'),col('.')-1) =~? 'xml\|jsx'
- return char != '{'
- elseif char =~ '\k'
- if char ==# 'type'
- return s:previous_token() !~# '^\%(im\|ex\)port$'
- endif
- return index(split('return const let import export extends yield default delete var await void typeof throw case new of in instanceof')
- \ ,char) < (line('.') != l:n) || s:save_pos('s:previous_token') == '.'
- elseif char == '>'
- return getline('.')[col('.')-2] == '=' || s:syn_at(line('.'),col('.')) =~? '^jsflow'
- elseif char == ':'
- return !s:save_pos('s:expr_col')
- elseif char == '/'
- return s:syn_at(line('.'),col('.')) =~? 'regex'
+ let tok = s:PreviousToken()
+ if join(s:stack) =~? 'xml\|jsx' && s:SynAt(line('.'),col('.')-1) =~? 'xml\|jsx'
+ return tok != '{'
+ elseif tok =~ '\k'
+ if tok ==# 'type'
+ return s:Pure('eval',"s:PreviousToken() !~# '^\\%(im\\|ex\\)port$' || s:PreviousToken() == '.'")
+ elseif tok ==# 'of'
+ return s:Pure('eval',"!s:GetPair('[[({]','[])}]','bW',s:skip_expr) || s:LookingAt() != '(' ||"
+ \ ."s:{s:PreviousToken() ==# 'await' ? 'Previous' : ''}Token() !=# 'for' || s:PreviousToken() == '.'")
endif
- return char !~ '[=~!<*,?^%|&([]' &&
- \ (char !~ '[-+]' || l:n != line('.') && getline('.')[col('.')-2] == char)
+ return index(split('return const let import export extends yield default delete var await void typeof throw case new in instanceof')
+ \ ,tok) < (line('.') != a:firstline) || s:Pure('s:PreviousToken') == '.'
+ elseif tok == '>'
+ return getline('.')[col('.')-2] == '=' || s:SynAt(line('.'),col('.')) =~? 'jsflow\|^html'
+ elseif tok == '*'
+ return s:Pure('s:PreviousToken') == ':'
+ elseif tok == ':'
+ return s:Pure('eval',"s:PreviousToken() =~ '^\\K\\k*$' && !s:ExprCol()")
+ elseif tok == '/'
+ return s:SynAt(line('.'),col('.')) =~? 'regex'
+ elseif tok !~ '[=~!<,.?^%|&([]'
+ return tok !~ '[-+]' || line('.') != a:firstline && getline('.')[col('.')-2] == tok
endif
endfunction
function GetJavascriptIndent()
let b:js_cache = get(b:,'js_cache',[0,0,0])
- " Get the current line.
- call cursor(v:lnum,1)
- let l:line = getline('.')
+ let s:synid_cache = [[],[]]
+ let l:line = getline(v:lnum)
" use synstack as it validates syn state and works in an empty line
- let s:stack = map(synstack(v:lnum,1),"synIDattr(v:val,'name')")
- let syns = get(s:stack,-1,'')
+ let s:stack = [''] + map(synstack(v:lnum,1),"synIDattr(v:val,'name')")
" start with strings,comments,etc.
- if syns =~? s:syng_com
+ if s:stack[-1] =~? 'comment\|doc'
if l:line =~ '^\s*\*'
return cindent(v:lnum)
elseif l:line !~ '^\s*\/[/*]'
return -1
endif
- elseif syns =~? s:syng_str
+ elseif s:stack[-1] =~? b:syng_str
if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1)
let b:js_cache[0] = v:lnum
endif
return -1
endif
- let l:lnum = s:PrevCodeLine(v:lnum - 1)
- if !l:lnum
+
+ let s:l1 = max([0,prevnonblank(v:lnum) - (s:rel ? 2000 : 1000),
+ \ get(get(b:,'hi_indent',{}),'blocklnr')])
+ call cursor(v:lnum,1)
+ if s:PreviousToken() is ''
return
endif
+ let [l:lnum, pline] = [line('.'), getline('.')[:col('.')-1]]
let l:line = substitute(l:line,'^\s*','','')
+ let l:line_raw = l:line
if l:line[:1] == '/*'
let l:line = substitute(l:line,'^\%(\/\*.\{-}\*\/\s*\)*','','')
endif
@@ -318,60 +358,91 @@ function GetJavascriptIndent()
endif
" the containing paren, bracket, or curly. Many hacks for performance
+ call cursor(v:lnum,1)
let idx = index([']',')','}'],l:line[0])
- if b:js_cache[0] >= l:lnum && b:js_cache[0] < v:lnum &&
- \ (b:js_cache[0] > l:lnum || s:Balanced(l:lnum))
+ if b:js_cache[0] > l:lnum && b:js_cache[0] < v:lnum ||
+ \ b:js_cache[0] == l:lnum && s:Balanced(l:lnum)
call call('cursor',b:js_cache[1:])
else
- let [s:looksyn, s:checkIn, top] = [v:lnum - 1, 0, (!indent(l:lnum) &&
- \ s:syn_at(l:lnum,1) !~? s:syng_str) * l:lnum]
- if idx + 1
- call s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:skip_func()',2000,top)
- elseif getline(v:lnum) !~ '^\S' && syns =~? 'block'
- call s:GetPair('{','}','bW','s:skip_func()',2000,top)
- else
- call s:alternatePair(top)
- endif
+ let [s:looksyn, s:top_col, s:check_in, s:l1] = [v:lnum - 1,0,0,
+ \ max([s:l1, &smc ? search('\m^.\{'.&smc.',}','nbW',s:l1 + 1) + 1 : 0])]
+ try
+ if idx != -1
+ call s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:SkipFunc()')
+ elseif getline(v:lnum) !~ '^\S' && s:stack[-1] =~? 'block\|^jsobject$'
+ call s:GetPair('{','}','bW','s:SkipFunc()')
+ else
+ call s:AlternatePair()
+ endif
+ catch /^\Cout of bounds$/
+ call cursor(v:lnum,1)
+ endtry
+ let b:js_cache[1:] = line('.') == v:lnum ? [0,0] : getpos('.')[1:2]
endif
- let b:js_cache = [v:lnum] + (line('.') == v:lnum ? [0,0] : getpos('.')[1:2])
- let num = b:js_cache[1]
+ let [b:js_cache[0], num] = [v:lnum, b:js_cache[1]]
- let [s:W, isOp, bL, switch_offset] = [s:sw(),0,0,0]
- if !num || s:IsBlock()
+ let [num_ind, is_op, b_l, l:switch_offset] = [s:Nat(indent(num)),0,0,0]
+ if !num || s:LookingAt() == '{' && s:IsBlock()
let ilnum = line('.')
- let pline = s:save_pos('s:Trim',l:lnum)
- if num && s:looking_at() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
- let num = ilnum == num ? line('.') : num
- if idx < 0 && s:previous_token() ==# 'switch' && s:previous_token() != '.'
- if &cino !~ ':'
- let switch_offset = s:W
- else
- let switch_offset = max([-indent(num),s:parse_cino(':')])
- endif
+ if num && s:LookingAt() == ')' && s:GetPair('(',')','bW',s:skip_expr)
+ if ilnum == num
+ let [num, num_ind] = [line('.'), indent('.')]
+ endif
+ if idx == -1 && s:PreviousToken() ==# 'switch' && s:IsSwitch()
+ let l:switch_offset = &cino !~ ':' ? s:sw() : s:ParseCino(':')
if pline[-1:] != '.' && l:line =~# '^\%(default\|case\)\>'
- return indent(num) + switch_offset
+ return s:Nat(num_ind + l:switch_offset)
+ elseif &cino =~ '='
+ let l:case_offset = s:ParseCino('=')
endif
endif
endif
- if idx < 0 && pline[-1:] !~ '[{;]'
- let isOp = (l:line =~# s:opfirst || s:continues(l:lnum,pline)) * s:W
- let bL = s:iscontOne(l:lnum,b:js_cache[1],isOp)
- let bL -= (bL && l:line[0] == '{') * s:W
+ if idx == -1 && pline[-1:] !~ '[{;]'
+ let sol = matchstr(l:line,s:opfirst)
+ if sol is '' || sol == '/' && s:SynAt(v:lnum,
+ \ 1 + len(getline(v:lnum)) - len(l:line)) =~? 'regex'
+ if s:Continues(l:lnum,pline)
+ let is_op = s:sw()
+ endif
+ elseif num && sol =~# '^\%(in\%(stanceof\)\=\|\*\)$'
+ call call('cursor',b:js_cache[1:])
+ if s:PreviousToken() =~ '\k' && s:Class()
+ return num_ind + s:sw()
+ endif
+ let is_op = s:sw()
+ else
+ let is_op = s:sw()
+ endif
+ call cursor(l:lnum, len(pline))
+ let b_l = s:Nat(s:IsContOne(b:js_cache[1],is_op) - (!is_op && l:line =~ '^{')) * s:sw()
endif
- elseif idx < 0 && getline(b:js_cache[1])[b:js_cache[2]-1] == '(' && &cino =~ '('
- let pval = s:parse_cino('(')
- return !pval ? (s:parse_cino('w') ? 0 : -(!!search('\m\S','W'.s:z,num))) + virtcol('.') :
- \ max([indent('.') + pval + (s:GetPair('(',')','nbrmW',s:skip_expr,100,num) * s:W),0])
+ elseif idx.s:LookingAt().&cino =~ '^-1(.*(' && (search('\m\S','nbW',num) || s:ParseCino('U'))
+ let pval = s:ParseCino('(')
+ if !pval
+ let [Wval, vcol] = [s:ParseCino('W'), virtcol('.')]
+ if search('\m\S','W',num)
+ return s:ParseCino('w') ? vcol : virtcol('.')-1
+ endif
+ return Wval ? s:Nat(num_ind + Wval) : vcol
+ endif
+ return s:Nat(num_ind + pval + searchpair('\m(','','\m)','nbrmW',s:skip_expr,num) * s:sw())
endif
" main return
- if l:line =~ '^\%([])}]\||}\)'
- return max([indent(num),0])
+ if l:line =~ '^[])}]\|^|}'
+ if l:line_raw[0] == ')' && getline(num)[b:js_cache[2]-1] == '('
+ if s:ParseCino('M')
+ return indent(l:lnum)
+ elseif &cino =~# 'm' && !s:ParseCino('m')
+ return virtcol('.') - 1
+ endif
+ endif
+ return num_ind
elseif num
- return indent(num) + s:W + switch_offset + bL + isOp
+ return s:Nat(num_ind + get(l:,'case_offset',s:sw()) + l:switch_offset + b_l + is_op)
endif
- return bL + isOp
+ return b_l + is_op
endfunction
let &cpo = s:cpo_save
diff --git a/runtime/indent/perl.vim b/runtime/indent/perl.vim
index cf256ea..094d1d3 100644
--- a/runtime/indent/perl.vim
+++ b/runtime/indent/perl.vim
@@ -3,7 +3,7 @@
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change: 2017 Jun 13
+" Last Change: 2017-01-04
" Suggestions and improvements by :
" Aaron J. Sherman (use syntax for hints)
@@ -48,11 +48,6 @@ function! GetPerlIndent()
return 0
endif
- " Don't reindent comments on first column
- if cline =~ '^#.'
- return 0
- endif
-
" Get current syntax item at the line's first char
let csynid = ''
if b:indent_use_syntax
@@ -134,6 +129,7 @@ function! GetPerlIndent()
\ || synid == "perlMatchStartEnd"
\ || synid == "perlHereDoc"
\ || synid == "perlBraces"
+ \ || synid == "perlStatementIndirObj"
\ || synid =~ "^perlFiledescStatement"
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
let brace = strpart(line, bracepos, 1)
@@ -151,6 +147,7 @@ function! GetPerlIndent()
if synid == ""
\ || synid == "perlMatchStartEnd"
\ || synid == "perlBraces"
+ \ || synid == "perlStatementIndirObj"
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
let ind = ind - shiftwidth()
endif
diff --git a/runtime/indent/verilog.vim b/runtime/indent/verilog.vim
index 6222dc3..ab3d0ba 100644
--- a/runtime/indent/verilog.vim
+++ b/runtime/indent/verilog.vim
@@ -1,6 +1,6 @@
" Language: Verilog HDL
" Maintainer: Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
-" Last Change: 2017 Feb 24 by Chih-Tsun Huang
+" Last Change: 2017 Aug 25 by Chih-Tsun Huang
" URL: http://www.cs.nthu.edu.tw/~cthuang/vim/indent/verilog.vim
"
" Credits:
@@ -25,7 +25,8 @@ let b:did_indent = 1
setlocal indentexpr=GetVerilogIndent()
setlocal indentkeys=!^F,o,O,0),=begin,=end,=join,=endcase
setlocal indentkeys+==endmodule,=endfunction,=endtask,=endspecify
-setlocal indentkeys+==`else,=`endif
+setlocal indentkeys+==endconfig,=endgenerate,=endprimitive,=endtable
+setlocal indentkeys+==`else,=`elsif,=`endif
" Only define the function once.
if exists("*GetVerilogIndent")
@@ -84,7 +85,9 @@ function GetVerilogIndent()
endif
" Indent after if/else/for/case/always/initial/specify/fork blocks
- elseif last_line =~ '`\@<!\<\(if\|else\)\>' ||
+ " Note: We exclude '`if' or '`else' and consider 'end else'
+ " 'end if' is redundant here
+ elseif last_line =~ '^\s*\(end\)\=\s*`\@<!\<\(if\|else\)\>' ||
\ last_line =~ '^\s*\<\(for\|case\%[[zx]]\)\>' ||
\ last_line =~ '^\s*\<\(always\|initial\)\>' ||
\ last_line =~ '^\s*\<\(specify\|fork\)\>'
@@ -93,8 +96,8 @@ function GetVerilogIndent()
let ind = ind + offset
if vverb | echo vverb_str "Indent after a block statement." | endif
endif
- " Indent after function/task blocks
- elseif last_line =~ '^\s*\<\(function\|task\)\>'
+ " Indent after function/task/config/generate/primitive/table blocks
+ elseif last_line =~ '^\s*\<\(function\|task\|config\|generate\|primitive\|table\)\>'
if last_line !~ '\<end\>\s*' . vlog_comment . '*$' ||
\ last_line =~ '\(//\|/\*\).*\(;\|\<end\>\)\s*' . vlog_comment . '*$'
let ind = ind + offset
@@ -161,11 +164,11 @@ function GetVerilogIndent()
let ind = ind - offset
if vverb | echo vverb_str "De-indent after a close statement." | endif
- " `ifdef and `else
- elseif last_line =~ '^\s*`\<\(ifdef\|else\)\>'
+ " `ifdef or `ifndef or `elsif or `else
+ elseif last_line =~ '^\s*`\<\(ifn\?def\|elsif\|else\)\>'
let ind = ind + offset
if vverb
- echo vverb_str "Indent after a `ifdef or `else statement."
+ echo vverb_str "Indent after a `ifdef or `ifndef or `elsif or `else statement."
endif
endif
@@ -175,7 +178,8 @@ function GetVerilogIndent()
" De-indent on the end of the block
" join/end/endcase/endfunction/endtask/endspecify
if curr_line =~ '^\s*\<\(join\|end\|endcase\)\>' ||
- \ curr_line =~ '^\s*\<\(endfunction\|endtask\|endspecify\)\>'
+ \ curr_line =~ '^\s*\<\(endfunction\|endtask\|endspecify\)\>' ||
+ \ curr_line =~ '^\s*\<\(endconfig\|endgenerate\|endprimitive\|endtable\)\>'
let ind = ind - offset
if vverb | echo vverb_str "De-indent the end of a block." | endif
elseif curr_line =~ '^\s*\<endmodule\>'
@@ -186,7 +190,7 @@ function GetVerilogIndent()
" De-indent on a stand-alone 'begin'
elseif curr_line =~ '^\s*\<begin\>'
- if last_line !~ '^\s*\<\(function\|task\|specify\|module\)\>' &&
+ if last_line !~ '^\s*\<\(function\|task\|specify\|module\|config\|generate\|primitive\|table\)\>' &&
\ last_line !~ '^\s*\()*\s*;\|)\+\)\s*' . vlog_comment . '*$' &&
\ ( last_line =~
\ '\<\(`\@<!if\|`\@<!else\|for\|case\%[[zx]]\|always\|initial\)\>' ||
@@ -208,10 +212,10 @@ function GetVerilogIndent()
echo vverb_str "De-indent the end of a multiple statement."
endif
- " De-indent `else and `endif
- elseif curr_line =~ '^\s*`\<\(else\|endif\)\>'
+ " De-indent `elsif or `else or `endif
+ elseif curr_line =~ '^\s*`\<\(elsif\|else\|endif\)\>'
let ind = ind - offset
- if vverb | echo vverb_str "De-indent `else and `endif statement." | endif
+ if vverb | echo vverb_str "De-indent `elsif or `else or `endif statement." | endif
endif
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index 52f987e..ac70006 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -1,7 +1,7 @@
" These commands create the option window.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2017 Aug 11
+" Last Change: 2017 Sep 10
" If there already is an option window, jump to that one.
let buf = bufnr('option-window')
@@ -510,6 +510,10 @@ if has("terminal")
call append("$", "termkey\tkey that precedes Vim commands in a terminal window")
call append("$", "\t(local to window)")
call <SID>OptionL("tk")
+ if exists("&winptydll")
+ call append("$", "winptydll\tname of the winpty dynamic library")
+ call <SID>OptionG("winptydll", &winptydll)
+ endif
endif
@@ -1221,6 +1225,8 @@ endif
call append("$", "iminsert\tin Insert mode: 1: use :lmap; 2: use IM; 0: neither")
call append("$", "\t(local to window)")
call <SID>OptionL("imi")
+call append("$", "imstyle\tinput method style, 0: on-the-spot, 1: over-the-spot")
+call <SID>OptionG("imst", &imst)
call append("$", "imsearch\tentering a search pattern: 1: use :lmap; 2: use IM; 0: neither")
call append("$", "\t(local to window)")
call <SID>OptionL("ims")
diff --git a/runtime/pack/dist/opt/matchit/plugin/matchit.vim b/runtime/pack/dist/opt/matchit/plugin/matchit.vim
index 4c9b845..5e9df89 100644
--- a/runtime/pack/dist/opt/matchit/plugin/matchit.vim
+++ b/runtime/pack/dist/opt/matchit/plugin/matchit.vim
@@ -1,5 +1,5 @@
" matchit.vim: (global plugin) Extended "%" matching
-" Last Change: 2017 March 26
+" Last Change: 2017 Sep 15
" Maintainer: Benji Fisher PhD <benji@member.AMS.org>
" Version: 1.13.3, for Vim 6.3+
" Fix from Fernando Torres included.
@@ -704,9 +704,8 @@ fun! s:MultiMatch(spflag, mode)
let skip = 's:comment\|string'
endif
let skip = s:ParseSkip(skip)
- " let restore_cursor = line(".") . "G" . virtcol(".") . "|"
- " normal! H
- " let restore_cursor = "normal!" . line(".") . "Gzt" . restore_cursor
+ " save v:count1 variable, might be reset from the restore_cursor command
+ let level = v:count1
let restore_cursor = virtcol(".") . "|"
normal! g0
let restore_cursor = line(".") . "G" . virtcol(".") . "|zs" . restore_cursor
@@ -726,7 +725,6 @@ fun! s:MultiMatch(spflag, mode)
execute "if " . skip . "| let skip = '0' | endif"
endif
mark '
- let level = v:count1
while level
if searchpair(openpat, '', closepat, a:spflag, skip) < 1
call s:CleanUp(restore_options, a:mode, startline, startcol)
diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
new file mode 100644
index 0000000..ba00f01
--- /dev/null
+++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
@@ -0,0 +1,377 @@
+" Debugger plugin using gdb.
+"
+" WORK IN PROGRESS - much doesn't work yet
+"
+" Open two visible terminal windows:
+" 1. run a pty, as with ":term NONE"
+" 2. run gdb, passing the pty
+" The current window is used to view source code and follows gdb.
+"
+" A third terminal window is hidden, it is used for communication with gdb.
+"
+" The communication with gdb uses GDB/MI. See:
+" https://sourceware.org/gdb/current/onlinedocs/gdb/GDB_002fMI.html
+"
+" Author: Bram Moolenaar
+" Copyright: Vim license applies, see ":help license"
+
+" In case this gets loaded twice.
+if exists(':Termdebug')
+ finish
+endif
+
+" The command that starts debugging, e.g. ":Termdebug vim".
+" To end type "quit" in the gdb window.
+command -nargs=* -complete=file Termdebug call s:StartDebug(<q-args>)
+
+" Name of the gdb command, defaults to "gdb".
+if !exists('termdebugger')
+ let termdebugger = 'gdb'
+endif
+
+let s:pc_id = 12
+let s:break_id = 13
+
+if &background == 'light'
+ hi default debugPC term=reverse ctermbg=lightblue guibg=lightblue
+else
+ hi default debugPC term=reverse ctermbg=darkblue guibg=darkblue
+endif
+hi default debugBreakpoint term=reverse ctermbg=red guibg=red
+
+func s:StartDebug(cmd)
+ let s:startwin = win_getid(winnr())
+ let s:startsigncolumn = &signcolumn
+
+ if exists('g:termdebug_wide') && &columns < g:termdebug_wide
+ let s:save_columns = &columns
+ let &columns = g:termdebug_wide
+ let vertical = 1
+ else
+ let s:save_columns = 0
+ let vertical = 0
+ endif
+
+ " Open a terminal window without a job, to run the debugged program
+ let s:ptybuf = term_start('NONE', {
+ \ 'term_name': 'gdb program',
+ \ 'vertical': vertical,
+ \ })
+ if s:ptybuf == 0
+ echoerr 'Failed to open the program terminal window'
+ return
+ endif
+ let pty = job_info(term_getjob(s:ptybuf))['tty_out']
+ let s:ptywin = win_getid(winnr())
+
+ " Create a hidden terminal window to communicate with gdb
+ let s:commbuf = term_start('NONE', {
+ \ 'term_name': 'gdb communication',
+ \ 'out_cb': function('s:CommOutput'),
+ \ 'hidden': 1,
+ \ })
+ if s:commbuf == 0
+ echoerr 'Failed to open the communication terminal window'
+ exe 'bwipe! ' . s:ptybuf
+ return
+ endif
+ let commpty = job_info(term_getjob(s:commbuf))['tty_out']
+
+ " Open a terminal window to run the debugger.
+ let cmd = [g:termdebugger, '-tty', pty, a:cmd]
+ echomsg 'executing "' . join(cmd) . '"'
+ let gdbbuf = term_start(cmd, {
+ \ 'exit_cb': function('s:EndDebug'),
+ \ 'term_finish': 'close',
+ \ })
+ if gdbbuf == 0
+ echoerr 'Failed to open the gdb terminal window'
+ exe 'bwipe! ' . s:ptybuf
+ exe 'bwipe! ' . s:commbuf
+ return
+ endif
+ let s:gdbwin = win_getid(winnr())
+
+ " Connect gdb to the communication pty, using the GDB/MI interface
+ call term_sendkeys(gdbbuf, 'new-ui mi ' . commpty . "\r")
+
+ " Sign used to highlight the line where the program has stopped.
+ " There can be only one.
+ sign define debugPC linehl=debugPC
+
+ " Sign used to indicate a breakpoint.
+ " Can be used multiple times.
+ sign define debugBreakpoint text=>> texthl=debugBreakpoint
+
+ " Install debugger commands in the text window.
+ call win_gotoid(s:startwin)
+ call s:InstallCommands()
+ call win_gotoid(s:gdbwin)
+
+ let s:breakpoints = {}
+
+ augroup TermDebug
+ au BufRead * call s:BufRead()
+ au BufUnload * call s:BufUnloaded()
+ augroup END
+endfunc
+
+func s:EndDebug(job, status)
+ exe 'bwipe! ' . s:ptybuf
+ exe 'bwipe! ' . s:commbuf
+
+ let curwinid = win_getid(winnr())
+
+ call win_gotoid(s:startwin)
+ let &signcolumn = s:startsigncolumn
+ call s:DeleteCommands()
+
+ call win_gotoid(curwinid)
+ if s:save_columns > 0
+ let &columns = s:save_columns
+ endif
+
+ au! TermDebug
+endfunc
+
+" Handle a message received from gdb on the GDB/MI interface.
+func s:CommOutput(chan, msg)
+ let msgs = split(a:msg, "\r")
+
+ for msg in msgs
+ " remove prefixed NL
+ if msg[0] == "\n"
+ let msg = msg[1:]
+ endif
+ if msg != ''
+ if msg =~ '^\(\*stopped\|\*running\|=thread-selected\)'
+ call s:HandleCursor(msg)
+ elseif msg =~ '^\^done,bkpt=' || msg =~ '^=breakpoint-created,'
+ call s:HandleNewBreakpoint(msg)
+ elseif msg =~ '^=breakpoint-deleted,'
+ call s:HandleBreakpointDelete(msg)
+ elseif msg =~ '^\^done,value='
+ call s:HandleEvaluate(msg)
+ elseif msg =~ '^\^error,msg='
+ call s:HandleError(msg)
+ endif
+ endif
+ endfor
+endfunc
+
+" Install commands in the current window to control the debugger.
+func s:InstallCommands()
+ command Break call s:SetBreakpoint()
+ command Delete call s:DeleteBreakpoint()
+ command Step call s:SendCommand('-exec-step')
+ command Over call s:SendCommand('-exec-next')
+ command Finish call s:SendCommand('-exec-finish')
+ command Continue call s:SendCommand('-exec-continue')
+ command -range -nargs=* Evaluate call s:Evaluate(<range>, <q-args>)
+ command Gdb call win_gotoid(s:gdbwin)
+ command Program call win_gotoid(s:ptywin)
+
+ " TODO: can the K mapping be restored?
+ nnoremap K :Evaluate<CR>
+
+ if has('menu')
+ amenu WinBar.Step :Step<CR>
+ amenu WinBar.Next :Over<CR>
+ amenu WinBar.Finish :Finish<CR>
+ amenu WinBar.Cont :Continue<CR>
+ amenu WinBar.Eval :Evaluate<CR>
+ endif
+endfunc
+
+" Delete installed debugger commands in the current window.
+func s:DeleteCommands()
+ delcommand Break
+ delcommand Delete
+ delcommand Step
+ delcommand Over
+ delcommand Finish
+ delcommand Continue
+ delcommand Evaluate
+ delcommand Gdb
+ delcommand Program
+
+ nunmap K
+
+ if has('menu')
+ aunmenu WinBar.Step
+ aunmenu WinBar.Next
+ aunmenu WinBar.Finish
+ aunmenu WinBar.Cont
+ aunmenu WinBar.Eval
+ endif
+
+ exe 'sign unplace ' . s:pc_id
+ for key in keys(s:breakpoints)
+ exe 'sign unplace ' . (s:break_id + key)
+ endfor
+ sign undefine debugPC
+ sign undefine debugBreakpoint
+ unlet s:breakpoints
+endfunc
+
+" :Break - Set a breakpoint at the cursor position.
+func s:SetBreakpoint()
+ call term_sendkeys(s:commbuf, '-break-insert --source '
+ \ . fnameescape(expand('%:p')) . ' --line ' . line('.') . "\r")
+endfunc
+
+" :Delete - Delete a breakpoint at the cursor position.
+func s:DeleteBreakpoint()
+ let fname = fnameescape(expand('%:p'))
+ let lnum = line('.')
+ for [key, val] in items(s:breakpoints)
+ if val['fname'] == fname && val['lnum'] == lnum
+ call term_sendkeys(s:commbuf, '-break-delete ' . key . "\r")
+ " Assume this always wors, the reply is simply "^done".
+ exe 'sign unplace ' . (s:break_id + key)
+ unlet s:breakpoints[key]
+ break
+ endif
+ endfor
+endfunc
+
+" :Next, :Continue, etc - send a command to gdb
+func s:SendCommand(cmd)
+ call term_sendkeys(s:commbuf, a:cmd . "\r")
+endfunc
+
+" :Evaluate - evaluate what is under the cursor
+func s:Evaluate(range, arg)
+ if a:arg != ''
+ let expr = a:arg
+ elseif a:range == 2
+ let pos = getcurpos()
+ let reg = getreg('v', 1, 1)
+ let regt = getregtype('v')
+ normal! gv"vy
+ let expr = @v
+ call setpos('.', pos)
+ call setreg('v', reg, regt)
+ else
+ let expr = expand('<cexpr>')
+ endif
+ call term_sendkeys(s:commbuf, '-data-evaluate-expression "' . expr . "\"\r")
+ let s:evalexpr = expr
+endfunc
+
+" Handle the result of data-evaluate-expression
+func s:HandleEvaluate(msg)
+ let value = substitute(a:msg, '.*value="\(.*\)"', '\1', '')
+ let value = substitute(value, '\\"', '"', 'g')
+ echomsg '"' . s:evalexpr . '": ' . value
+
+ if s:evalexpr[0] != '*' && value =~ '^0x' && value !~ '"$'
+ " Looks like a pointer, also display what it points to.
+ let s:evalexpr = '*' . s:evalexpr
+ call term_sendkeys(s:commbuf, '-data-evaluate-expression "' . s:evalexpr . "\"\r")
+ endif
+endfunc
+
+" Handle an error.
+func s:HandleError(msg)
+ echoerr substitute(a:msg, '.*msg="\(.*\)"', '\1', '')
+endfunc
+
+" Handle stopping and running message from gdb.
+" Will update the sign that shows the current position.
+func s:HandleCursor(msg)
+ let wid = win_getid(winnr())
+
+ if win_gotoid(s:startwin)
+ let fname = substitute(a:msg, '.*fullname="\([^"]*\)".*', '\1', '')
+ if a:msg =~ '^\(\*stopped\|=thread-selected\)' && filereadable(fname)
+ let lnum = substitute(a:msg, '.*line="\([^"]*\)".*', '\1', '')
+ if lnum =~ '^[0-9]*$'
+ if expand('%:p') != fnamemodify(fname, ':p')
+ if &modified
+ " TODO: find existing window
+ exe 'split ' . fnameescape(fname)
+ let s:startwin = win_getid(winnr())
+ else
+ exe 'edit ' . fnameescape(fname)
+ endif
+ endif
+ exe lnum
+ exe 'sign place ' . s:pc_id . ' line=' . lnum . ' name=debugPC file=' . fname
+ setlocal signcolumn=yes
+ endif
+ else
+ exe 'sign unplace ' . s:pc_id
+ endif
+
+ call win_gotoid(wid)
+ endif
+endfunc
+
+" Handle setting a breakpoint
+" Will update the sign that shows the breakpoint
+func s:HandleNewBreakpoint(msg)
+ let nr = substitute(a:msg, '.*number="\([0-9]\)*\".*', '\1', '') + 0
+ if nr == 0
+ return
+ endif
+
+ if has_key(s:breakpoints, nr)
+ let entry = s:breakpoints[nr]
+ else
+ let entry = {}
+ let s:breakpoints[nr] = entry
+ endif
+
+ let fname = substitute(a:msg, '.*fullname="\([^"]*\)".*', '\1', '')
+ let lnum = substitute(a:msg, '.*line="\([^"]*\)".*', '\1', '')
+ let entry['fname'] = fname
+ let entry['lnum'] = lnum
+
+ if bufloaded(fname)
+ call s:PlaceSign(nr, entry)
+ endif
+endfunc
+
+func s:PlaceSign(nr, entry)
+ exe 'sign place ' . (s:break_id + a:nr) . ' line=' . a:entry['lnum'] . ' name=debugBreakpoint file=' . a:entry['fname']
+ let a:entry['placed'] = 1
+endfunc
+
+" Handle deleting a breakpoint
+" Will remove the sign that shows the breakpoint
+func s:HandleBreakpointDelete(msg)
+ let nr = substitute(a:msg, '.*id="\([0-9]*\)\".*', '\1', '') + 0
+ if nr == 0
+ return
+ endif
+ if has_key(s:breakpoints, nr)
+ let entry = s:breakpoints[nr]
+ if has_key(entry, 'placed')
+ exe 'sign unplace ' . (s:break_id + nr)
+ unlet entry['placed']
+ endif
+ unlet s:breakpoints[nr]
+ endif
+endfunc
+
+" Handle a BufRead autocommand event: place any signs.
+func s:BufRead()
+ let fname = expand('<afile>:p')
+ for [nr, entry] in items(s:breakpoints)
+ if entry['fname'] == fname
+ call s:PlaceSign(nr, entry)
+ endif
+ endfor
+endfunc
+
+" Handle a BufUnloaded autocommand event: unplace any signs.
+func s:BufUnloaded()
+ let fname = expand('<afile>:p')
+ for [nr, entry] in items(s:breakpoints)
+ if entry['fname'] == fname
+ let entry['placed'] = 0
+ endif
+ endfor
+endfunc
+
diff --git a/runtime/scripts.vim b/runtime/scripts.vim
index 358d328..9107d6a 100644
--- a/runtime/scripts.vim
+++ b/runtime/scripts.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types in scripts
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last change: 2017 Jun 11
+" Last change: 2017 Aug 27
" This file is called by an autocommand for every file that has just been
" loaded into a buffer. It checks if the type of file can be recognized by
@@ -306,7 +306,7 @@ else
set ft=virata
" Strace
- elseif s:line1 =~# '^\(\[pid \d\+\] \)\=[0-9:.]* *execve(' || s:line1 =~# '^__libc_start_main'
+ elseif s:line1 =~# '[0-9:.]* *execve(' || s:line1 =~# '^__libc_start_main'
set ft=strace
" VSE JCL
diff --git a/runtime/syntax/clojure.vim b/runtime/syntax/clojure.vim
index 2b48146..ffdd5c2 100644
--- a/runtime/syntax/clojure.vim
+++ b/runtime/syntax/clojure.vim
@@ -136,7 +136,7 @@ syntax match clojureRegexpBoundary "[$^]" contained display
syntax match clojureRegexpQuantifier "[?*+][?+]\=" contained display
syntax match clojureRegexpQuantifier "\v\{\d+%(,|,\d+)?}\??" contained display
syntax match clojureRegexpOr "|" contained display
-syntax match clojureRegexpBackRef "\v\\%([1-9]\d*|k\<[a-zA-z]+\>)" contained display
+syntax match clojureRegexpBackRef "\v\\%([1-9]\d*|k\<[a-zA-Z]+\>)" contained display
" Mode modifiers, mode-modified spans, lookaround, regular and atomic
" grouping, and named-capturing.
diff --git a/runtime/syntax/cmake.vim b/runtime/syntax/cmake.vim
index 4cc21da..f7616e4 100644
--- a/runtime/syntax/cmake.vim
+++ b/runtime/syntax/cmake.vim
@@ -1,74 +1,477 @@
" Vim syntax file
" Program: CMake - Cross-Platform Makefile Generator
-" Module: $RCSfile: cmake-syntax.vim,v $
+" Version: cmake version 3.9.20170830-ge0713
" Language: CMake
-" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
-" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
-" Author: Andy Cedilnik <andy.cedilnik@kitware.com>
-" Last Change: 2015 Dec 17
-" Version: $Revision: 1.10 $
+" Author: Andy Cedilnik <andy.cedilnik@kitware.com>,
+" Nicholas Hutchinson <nshutchinson@gmail.com>,
+" Patrick Boettcher <patrick.boettcher@posteo.de>
+" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
+" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
+" Last Change: 2017 Aug 30
"
" Licence: The CMake license applies to this file. See
-" http://www.cmake.org/HTML/Copyright.html
+" https://cmake.org/licensing
" This implies that distribution with Vim is allowed
-" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
-syn case ignore
+syn region cmakeComment start="#" end="$" contains=cmakeTodo,cmakeLuaComment,@Spell
+syn region cmakeLuaComment start="\[\z(=*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell
+
syn match cmakeEscaped /\(\\\\\|\\"\|\\n\|\\t\)/ contained
-syn region cmakeComment start="#" end="$" contains=@Spell,cmakeTodo
-syn region cmakeRegistry start=/\[/ end=/]/
- \ contained oneline contains=CONTAINED,cmakeTodo,cmakeEscaped
-syn region cmakeVariableValue start=/\${/ end=/}/
- \ contained oneline contains=CONTAINED,cmakeTodo
-syn region cmakeEnvironment start=/\$ENV{/ end=/}/
- \ contained oneline contains=CONTAINED,cmakeTodo
-syn region cmakeString start=/"/ end=/"/
- \ contains=CONTAINED,cmakeTodo,cmakeOperators
-syn region cmakeArguments start=/(/ end=/)/
- \ contains=ALLBUT,cmakeArguments,cmakeTodo
-syn keyword cmakeSystemVariables
- \ WIN32 UNIX APPLE CYGWIN BORLAND MINGW MSVC MSVC_IDE MSVC60 MSVC70 MSVC71 MSVC80 MSVC90
-syn keyword cmakeOperators
- \ ABSOLUTE AND BOOL CACHE COMMAND DEFINED DOC EQUAL EXISTS EXT FALSE GREATER INTERNAL LESS MATCHES NAME NAMES NAME_WE NOT OFF ON OR PATH PATHS PROGRAM STREQUAL STRGREATER STRING STRLESS TRUE
- \ contained
-syn keyword cmakeDeprecated ABSTRACT_FILES BUILD_NAME SOURCE_FILES SOURCE_FILES_REMOVE VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WRAP_EXCLUDE_FILES
- \ nextgroup=cmakeArguments
+syn region cmakeRegistry start="\[" end="]" contained oneline contains=cmakeTodo,cmakeEscaped
+
+syn region cmakeGeneratorExpression start="$<" end=">" contained oneline contains=cmakeVariableValue,cmakeProperty,cmakeGeneratorExpressions,cmakeTodo
+
+syn region cmakeString start='"' end='"' contained contains=cmakeTodo,cmakeVariableValue,cmakeEscaped
+
+syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmakeVariable,cmakeTodo
+
+syn region cmakeEnvironment start="$ENV{" end="}" contained oneline contains=cmakeTodo
+
+syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeArguments,cmakeTodo
+
+syn case match
+
+syn keyword cmakeProperty contained
+ \ ABSTRACT ADDITIONAL_MAKE_CLEAN_FILES ADVANCED ALIASED_TARGET ALLOW_DUPLICATE_CUSTOM_TARGETS ANDROID_ANT_ADDITIONAL_OPTIONS ANDROID_API ANDROID_API_MIN ANDROID_ARCH ANDROID_ASSETS_DIRECTORIES ANDROID_GUI ANDROID_JAR_DEPENDENCIES ANDROID_JAR_DIRECTORIES ANDROID_JAVA_SOURCE_DIR ANDROID_NATIVE_LIB_DEPENDENCIES ANDROID_NATIVE_LIB_DIRECTORIES ANDROID_PROCESS_MAX ANDROID_PROGUARD ANDROID_PROGUARD_CONFIG_PATH ANDROID_SECURE_PROPS_PATH ANDROID_SKIP_ANT_STEP ANDROID_STL_TYPE ARCHIVE_OUTPUT_DIRECTORY ARCHIVE_OUTPUT_NAME ATTACHED_FILES ATTACHED_FILES_ON_FAIL AUTOGEN_BUILD_DIR AUTOGEN_SOURCE_GROUP AUTOGEN_TARGETS_FOLDER AUTOGEN_TARGET_DEPENDS AUTOMOC AUTOMOC_DEPEND_FILTERS AUTOMOC_MACRO_NAMES AUTOMOC_MOC_OPTIONS AUTOMOC_SOURCE_GROUP AUTOMOC_TARGETS_FOLDER AUTORCC AUTORCC_OPTIONS AUTORCC_SOURCE_GROUP AUTOUIC AUTOUIC_OPTIONS AUTOUIC_SEARCH_PATHS BINARY_DIR BUILDSYSTEM_TARGETS BUILD_RPATH BUILD_WITH_INSTALL_NAME_DIR BUILD_WITH_INSTALL_RPATH BUNDLE BUNDLE_EXTENSION CACHE_VARIABLES CLEAN_NO_CUSTOM CMAKE_CONFIGURE_DEPENDS CMAKE_CXX_KNOWN_FEATURES CMAKE_C_KNOWN_FEATURES COMPATIBLE_INTERFACE_BOOL COMPATIBLE_INTERFACE_NUMBER_MAX COMPATIBLE_INTERFACE_NUMBER_MIN COMPATIBLE_INTERFACE_STRING COMPILE_DEFINITIONS COMPILE_FEATURES COMPILE_FLAGS COMPILE_OPTIONS COMPILE_PDB_NAME COMPILE_PDB_OUTPUT_DIRECTORY COST CPACK_DESKTOP_SHORTCUTS CPACK_NEVER_OVERWRITE CPACK_PERMANENT CPACK_STARTUP_SHORTCUTS CPACK_START_MENU_SHORTCUTS CPACK_WIX_ACL CROSSCOMPILING_EMULATOR CUDA_EXTENSIONS CUDA_PTX_COMPILATION CUDA_RESOLVE_DEVICE_SYMBOLS CUDA_SEPARABLE_COMPILATION CUDA_STANDARD CUDA_STANDARD_REQUIRED CXX_EXTENSIONS CXX_STANDARD CXX_STANDARD_REQUIRED C_EXTENSIONS C_STANDARD C_STANDARD_REQUIRED DEBUG_CONFIGURATIONS DEBUG_POSTFIX DEFINE_SYMBOL DEFINITIONS DEPENDS DEPLOYMENT_REMOTE_DIRECTORY DISABLED DISABLED_FEATURES ECLIPSE_EXTRA_NATURES ENABLED_FEATURES ENABLED_LANGUAGES ENABLE_EXPORTS ENVIRONMENT EXCLUDE_FROM_ALL EXCLUDE_FROM_DEFAULT_BUILD EXPORT_NAME EXTERNAL_OBJECT EchoString FAIL_REGULAR_EXPRESSION FIND_LIBRARY_USE_LIB32_PATHS FIND_LIBRARY_USE_LIB64_PATHS FIND_LIBRARY_USE_LIBX32_PATHS FIND_LIBRARY_USE_OPENBSD_VERSIONING FIXTURES_CLEANUP FIXTURES_REQUIRED FIXTURES_SETUP FOLDER FRAMEWORK FRAMEWORK_VERSION Fortran_FORMAT Fortran_MODULE_DIRECTORY GENERATED GENERATOR_FILE_NAME GENERATOR_IS_MULTI_CONFIG GLOBAL_DEPENDS_DEBUG_MODE GLOBAL_DEPENDS_NO_CYCLES GNUtoMS HAS_CXX HEADER_FILE_ONLY HELPSTRING IMPLICIT_DEPENDS_INCLUDE_TRANSFORM IMPORTED IMPORTED_CONFIGURATIONS IMPORTED_IMPLIB IMPORTED_LIBNAME IMPORTED_LINK_DEPENDENT_LIBRARIES IMPORTED_LINK_INTERFACE_LANGUAGES IMPORTED_LINK_INTERFACE_LIBRARIES IMPORTED_LINK_INTERFACE_MULTIPLICITY IMPORTED_LOCATION IMPORTED_NO_SONAME IMPORTED_OBJECTS IMPORTED_SONAME IMPORT_PREFIX IMPORT_SUFFIX INCLUDE_DIRECTORIES INCLUDE_REGULAR_EXPRESSION INSTALL_NAME_DIR INSTALL_RPATH INSTALL_RPATH_USE_LINK_PATH INTERFACE_AUTOUIC_OPTIONS INTERFACE_COMPILE_DEFINITIONS INTERFACE_COMPILE_FEATURES INTERFACE_COMPILE_OPTIONS INTERFACE_INCLUDE_DIRECTORIES INTERFACE_LINK_LIBRARIES INTERFACE_POSITION_INDEPENDENT_CODE INTERFACE_SOURCES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES INTERPROCEDURAL_OPTIMIZATION IN_TRY_COMPILE IOS_INSTALL_COMBINED JOB_POOLS JOB_POOL_COMPILE JOB_POOL_LINK KEEP_EXTENSION LABELS LANGUAGE LIBRARY_OUTPUT_DIRECTORY LIBRARY_OUTPUT_NAME LINKER_LANGUAGE LINK_DEPENDS LINK_DEPENDS_NO_SHARED LINK_DIRECTORIES LINK_FLAGS LINK_INTERFACE_LIBRARIES LINK_INTERFACE_MULTIPLICITY LINK_LIBRARIES LINK_SEARCH_END_STATIC LINK_SEARCH_START_STATIC LINK_WHAT_YOU_USE LISTFILE_STACK LOCATION MACOSX_BUNDLE MACOSX_BUNDLE_INFO_PLIST MACOSX_FRAMEWORK_INFO_PLIST MACOSX_PACKAGE_LOCATION MACOSX_RPATH MACROS MANUALLY_ADDED_DEPENDENCIES MEASUREMENT MODIFIED NAME NO_SONAME NO_SYSTEM_FROM_IMPORTED OBJECT_DEPENDS OBJECT_OUTPUTS OSX_ARCHITECTURES OUTPUT_NAME PACKAGES_FOUND PACKAGES_NOT_FOUND PARENT_DIRECTORY PASS_REGULAR_EXPRESSION PDB_NAME PDB_OUTPUT_DIRECTORY POSITION_INDEPENDENT_CODE POST_INSTALL_SCRIPT PREDEFINED_TARGETS_FOLDER PREFIX PRE_INSTALL_SCRIPT PRIVATE_HEADER PROCESSORS PROJECT_LABEL PUBLIC_HEADER REPORT_UNDEFINED_PROPERTIES REQUIRED_FILES RESOURCE RESOURCE_LOCK RULE_LAUNCH_COMPILE RULE_LAUNCH_CUSTOM RULE_LAUNCH_LINK RULE_MESSAGES RUNTIME_OUTPUT_DIRECTORY RUNTIME_OUTPUT_NAME RUN_SERIAL SKIP_AUTOGEN SKIP_AUTOMOC SKIP_AUTORCC SKIP_AUTOUIC SKIP_BUILD_RPATH SKIP_RETURN_CODE SOURCES SOURCE_DIR SOVERSION STATIC_LIBRARY_FLAGS STRINGS SUBDIRECTORIES SUFFIX SYMBOLIC TARGET_ARCHIVES_MAY_BE_SHARED_LIBS TARGET_MESSAGES TARGET_SUPPORTS_SHARED_LIBS TEST_INCLUDE_FILE TEST_INCLUDE_FILES TIMEOUT TIMEOUT_AFTER_MATCH TYPE USE_FOLDERS VALUE VARIABLES VERSION VISIBILITY_INLINES_HIDDEN VS_CONFIGURATION_TYPE VS_COPY_TO_OUT_DIR VS_DEBUGGER_WORKING_DIRECTORY VS_DEPLOYMENT_CONTENT VS_DEPLOYMENT_LOCATION VS_DESKTOP_EXTENSIONS_VERSION VS_DOTNET_REFERENCES VS_DOTNET_REFERENCES_COPY_LOCAL VS_DOTNET_TARGET_FRAMEWORK_VERSION VS_GLOBAL_KEYWORD VS_GLOBAL_PROJECT_TYPES VS_GLOBAL_ROOTNAMESPACE VS_INCLUDE_IN_VSIX VS_IOT_EXTENSIONS_VERSION VS_IOT_STARTUP_TASK VS_KEYWORD VS_MOBILE_EXTENSIONS_VERSION VS_RESOURCE_GENERATOR VS_SCC_AUXPATH VS_SCC_LOCALPATH VS_SCC_PROJECTNAME VS_SCC_PROVIDER VS_SDK_REFERENCES VS_SHADER_ENTRYPOINT VS_SHADER_FLAGS VS_SHADER_MODEL VS_SHADER_TYPE VS_STARTUP_PROJECT VS_TOOL_OVERRIDE VS_USER_PROPS VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION VS_WINRT_COMPONENT VS_WINRT_EXTENSIONS VS_WINRT_REFERENCES VS_XAML_TYPE WILL_FAIL WIN32_EXECUTABLE WINDOWS_EXPORT_ALL_SYMBOLS WORKING_DIRECTORY WRAP_EXCLUDE XCODE_EMIT_EFFECTIVE_PLATFORM_NAME XCODE_EXPLICIT_FILE_TYPE XCODE_FILE_ATTRIBUTES XCODE_LAST_KNOWN_FILE_TYPE XCODE_PRODUCT_TYPE XCTEST
+
+syn keyword cmakeVariable contained
+ \ ANDROID APPLE BORLAND BUILD_SHARED_LIBS CMAKE_ABSOLUTE_DESTINATION_FILES CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS CMAKE_ANDROID_API CMAKE_ANDROID_API_MIN CMAKE_ANDROID_ARCH CMAKE_ANDROID_ARCH_ABI CMAKE_ANDROID_ARM_MODE CMAKE_ANDROID_ARM_NEON CMAKE_ANDROID_ASSETS_DIRECTORIES CMAKE_ANDROID_GUI CMAKE_ANDROID_JAR_DEPENDENCIES CMAKE_ANDROID_JAR_DIRECTORIES CMAKE_ANDROID_JAVA_SOURCE_DIR CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES CMAKE_ANDROID_NDK CMAKE_ANDROID_NDK_DEPRECATED_HEADERS CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION CMAKE_ANDROID_PROCESS_MAX CMAKE_ANDROID_PROGUARD CMAKE_ANDROID_PROGUARD_CONFIG_PATH CMAKE_ANDROID_SECURE_PROPS_PATH CMAKE_ANDROID_SKIP_ANT_STEP CMAKE_ANDROID_STANDALONE_TOOLCHAIN CMAKE_ANDROID_STL_TYPE CMAKE_APPBUNDLE_PATH CMAKE_AR CMAKE_ARCHIVE_OUTPUT_DIRECTORY CMAKE_ARGC CMAKE_ARGV0 CMAKE_AUTOMOC CMAKE_AUTOMOC_DEPEND_FILTERS CMAKE_AUTOMOC_MACRO_NAMES CMAKE_AUTOMOC_MOC_OPTIONS CMAKE_AUTOMOC_RELAXED_MODE CMAKE_AUTORCC CMAKE_AUTORCC_OPTIONS CMAKE_AUTOUIC CMAKE_AUTOUIC_OPTIONS CMAKE_AUTOUIC_SEARCH_PATHS CMAKE_BACKWARDS_COMPATIBILITY CMAKE_BINARY_DIR CMAKE_BUILD_RPATH CMAKE_BUILD_TOOL CMAKE_BUILD_TYPE CMAKE_BUILD_WITH_INSTALL_NAME_DIR CMAKE_BUILD_WITH_INSTALL_RPATH CMAKE_CACHEFILE_DIR CMAKE_CACHE_MAJOR_VERSION CMAKE_CACHE_MINOR_VERSION CMAKE_CACHE_PATCH_VERSION CMAKE_CFG_INTDIR CMAKE_CL_64 CMAKE_CODELITE_USE_TARGETS CMAKE_COLOR_MAKEFILE CMAKE_COMMAND CMAKE_COMPILER_2005 CMAKE_COMPILER_IS_GNUCC CMAKE_COMPILER_IS_GNUCXX CMAKE_COMPILER_IS_GNUG77 CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY CMAKE_CONFIGURATION_TYPES CMAKE_CROSSCOMPILING CMAKE_CROSSCOMPILING_EMULATOR CMAKE_CTEST_COMMAND CMAKE_CUDA_EXTENSIONS CMAKE_CUDA_STANDARD CMAKE_CUDA_STANDARD_REQUIRED CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES CMAKE_CURRENT_BINARY_DIR CMAKE_CURRENT_LIST_DIR CMAKE_CURRENT_LIST_FILE CMAKE_CURRENT_LIST_LINE CMAKE_CURRENT_SOURCE_DIR CMAKE_CXX_COMPILE_FEATURES CMAKE_CXX_EXTENSIONS CMAKE_CXX_STANDARD CMAKE_CXX_STANDARD_REQUIRED CMAKE_C_COMPILE_FEATURES CMAKE_C_EXTENSIONS CMAKE_C_STANDARD CMAKE_C_STANDARD_REQUIRED CMAKE_DEBUG_POSTFIX CMAKE_DEBUG_TARGET_PROPERTIES CMAKE_DEPENDS_IN_PROJECT_ONLY CMAKE_DIRECTORY_LABELS CMAKE_DL_LIBS CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT CMAKE_ECLIPSE_MAKE_ARGUMENTS CMAKE_ECLIPSE_VERSION CMAKE_EDIT_COMMAND CMAKE_ENABLE_EXPORTS CMAKE_ERROR_DEPRECATED CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_EXECUTABLE_SUFFIX CMAKE_EXE_LINKER_FLAGS CMAKE_EXE_LINKER_FLAGS_INIT CMAKE_EXPORT_COMPILE_COMMANDS CMAKE_EXPORT_NO_PACKAGE_REGISTRY CMAKE_EXTRA_GENERATOR CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES CMAKE_FIND_APPBUNDLE CMAKE_FIND_FRAMEWORK CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX CMAKE_FIND_LIBRARY_PREFIXES CMAKE_FIND_LIBRARY_SUFFIXES CMAKE_FIND_NO_INSTALL_PREFIX CMAKE_FIND_PACKAGE_NAME CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY CMAKE_FIND_PACKAGE_SORT_DIRECTION CMAKE_FIND_PACKAGE_SORT_ORDER CMAKE_FIND_PACKAGE_WARN_NO_MODULE CMAKE_FIND_ROOT_PATH CMAKE_FIND_ROOT_PATH_MODE_INCLUDE CMAKE_FIND_ROOT_PATH_MODE_LIBRARY CMAKE_FIND_ROOT_PATH_MODE_PACKAGE CMAKE_FIND_ROOT_PATH_MODE_PROGRAM CMAKE_FRAMEWORK_PATH CMAKE_Fortran_FORMAT CMAKE_Fortran_MODDIR_DEFAULT CMAKE_Fortran_MODDIR_FLAG CMAKE_Fortran_MODOUT_FLAG CMAKE_Fortran_MODULE_DIRECTORY CMAKE_GENERATOR CMAKE_GENERATOR_PLATFORM CMAKE_GENERATOR_TOOLSET CMAKE_GNUtoMS CMAKE_HOME_DIRECTORY CMAKE_HOST_APPLE CMAKE_HOST_SOLARIS CMAKE_HOST_SYSTEM CMAKE_HOST_SYSTEM_NAME CMAKE_HOST_SYSTEM_PROCESSOR CMAKE_HOST_SYSTEM_VERSION CMAKE_HOST_UNIX CMAKE_HOST_WIN32 CMAKE_IGNORE_PATH CMAKE_IMPORT_LIBRARY_PREFIX CMAKE_IMPORT_LIBRARY_SUFFIX CMAKE_INCLUDE_CURRENT_DIR CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE CMAKE_INCLUDE_DIRECTORIES_BEFORE CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE CMAKE_INCLUDE_PATH CMAKE_INSTALL_DEFAULT_COMPONENT_NAME CMAKE_INSTALL_MESSAGE CMAKE_INSTALL_NAME_DIR CMAKE_INSTALL_PREFIX CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT CMAKE_INSTALL_RPATH CMAKE_INSTALL_RPATH_USE_LINK_PATH CMAKE_INTERNAL_PLATFORM_ABI CMAKE_INTERPROCEDURAL_OPTIMIZATION CMAKE_IOS_INSTALL_COMBINED CMAKE_JOB_POOL_COMPILE CMAKE_JOB_POOL_LINK CMAKE_LIBRARY_ARCHITECTURE CMAKE_LIBRARY_ARCHITECTURE_REGEX CMAKE_LIBRARY_OUTPUT_DIRECTORY CMAKE_LIBRARY_PATH CMAKE_LIBRARY_PATH_FLAG CMAKE_LINK_DEF_FILE_FLAG CMAKE_LINK_DEPENDS_NO_SHARED CMAKE_LINK_INTERFACE_LIBRARIES CMAKE_LINK_LIBRARY_FILE_FLAG CMAKE_LINK_LIBRARY_FLAG CMAKE_LINK_LIBRARY_SUFFIX CMAKE_LINK_SEARCH_END_STATIC CMAKE_LINK_SEARCH_START_STATIC CMAKE_LINK_WHAT_YOU_USE CMAKE_MACOSX_BUNDLE CMAKE_MACOSX_RPATH CMAKE_MAJOR_VERSION CMAKE_MAKE_PROGRAM CMAKE_MATCH_COUNT CMAKE_MFC_FLAG CMAKE_MINIMUM_REQUIRED_VERSION CMAKE_MINOR_VERSION CMAKE_MODULE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS_INIT CMAKE_MODULE_PATH CMAKE_MSVCIDE_RUN_PATH CMAKE_NINJA_OUTPUT_PATH_PREFIX CMAKE_NOT_USING_CONFIG_FLAGS CMAKE_NO_BUILTIN_CHRPATH CMAKE_NO_SYSTEM_FROM_IMPORTED CMAKE_OBJECT_PATH_MAX CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT CMAKE_PARENT_LIST_FILE CMAKE_PATCH_VERSION CMAKE_PDB_OUTPUT_DIRECTORY CMAKE_POSITION_INDEPENDENT_CODE CMAKE_PREFIX_PATH CMAKE_PROGRAM_PATH CMAKE_PROJECT_DESCRIPTION CMAKE_PROJECT_NAME CMAKE_RANLIB CMAKE_ROOT CMAKE_RUNTIME_OUTPUT_DIRECTORY CMAKE_SCRIPT_MODE_FILE CMAKE_SHARED_LIBRARY_PREFIX CMAKE_SHARED_LIBRARY_SUFFIX CMAKE_SHARED_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS_INIT CMAKE_SHARED_MODULE_PREFIX CMAKE_SHARED_MODULE_SUFFIX CMAKE_SIZEOF_VOID_P CMAKE_SKIP_BUILD_RPATH CMAKE_SKIP_INSTALL_ALL_DEPENDENCY CMAKE_SKIP_INSTALL_RPATH CMAKE_SKIP_INSTALL_RULES CMAKE_SKIP_RPATH CMAKE_SOURCE_DIR CMAKE_STAGING_PREFIX CMAKE_STATIC_LIBRARY_PREFIX CMAKE_STATIC_LIBRARY_SUFFIX CMAKE_STATIC_LINKER_FLAGS CMAKE_STATIC_LINKER_FLAGS_INIT CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE CMAKE_SYSROOT CMAKE_SYSROOT_COMPILE CMAKE_SYSROOT_LINK CMAKE_SYSTEM CMAKE_SYSTEM_APPBUNDLE_PATH CMAKE_SYSTEM_FRAMEWORK_PATH CMAKE_SYSTEM_IGNORE_PATH CMAKE_SYSTEM_INCLUDE_PATH CMAKE_SYSTEM_LIBRARY_PATH CMAKE_SYSTEM_NAME CMAKE_SYSTEM_PREFIX_PATH CMAKE_SYSTEM_PROCESSOR CMAKE_SYSTEM_PROGRAM_PATH CMAKE_SYSTEM_VERSION CMAKE_Swift_LANGUAGE_VERSION CMAKE_TOOLCHAIN_FILE CMAKE_TRY_COMPILE_CONFIGURATION CMAKE_TRY_COMPILE_PLATFORM_VARIABLES CMAKE_TRY_COMPILE_TARGET_TYPE CMAKE_TWEAK_VERSION CMAKE_USER_MAKE_RULES_OVERRIDE CMAKE_USE_RELATIVE_PATHS CMAKE_VERBOSE_MAKEFILE CMAKE_VERSION CMAKE_VISIBILITY_INLINES_HIDDEN CMAKE_VS_DEVENV_COMMAND CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD CMAKE_VS_INTEL_Fortran_PROJECT_VERSION CMAKE_VS_MSBUILD_COMMAND CMAKE_VS_NsightTegra_VERSION CMAKE_VS_PLATFORM_NAME CMAKE_VS_PLATFORM_TOOLSET CMAKE_VS_PLATFORM_TOOLSET_CUDA CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION CMAKE_WARN_DEPRECATED CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_WIN32_EXECUTABLE CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS CMAKE_XCODE_GENERATE_SCHEME CMAKE_XCODE_PLATFORM_TOOLSET CPACK_ABSOLUTE_DESTINATION_FILES CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CPACK_INCLUDE_TOPLEVEL_DIRECTORY CPACK_INSTALL_SCRIPT CPACK_PACKAGING_INSTALL_PREFIX CPACK_SET_DESTDIR CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CTEST_BINARY_DIRECTORY CTEST_BUILD_COMMAND CTEST_BUILD_NAME CTEST_BZR_COMMAND CTEST_BZR_UPDATE_OPTIONS CTEST_CHANGE_ID CTEST_CHECKOUT_COMMAND CTEST_CONFIGURATION_TYPE CTEST_CONFIGURE_COMMAND CTEST_COVERAGE_COMMAND CTEST_COVERAGE_EXTRA_FLAGS CTEST_CURL_OPTIONS CTEST_CUSTOM_COVERAGE_EXCLUDE CTEST_CUSTOM_ERROR_EXCEPTION CTEST_CUSTOM_ERROR_MATCH CTEST_CUSTOM_ERROR_POST_CONTEXT CTEST_CUSTOM_ERROR_PRE_CONTEXT CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE CTEST_CUSTOM_MEMCHECK_IGNORE CTEST_CUSTOM_POST_MEMCHECK CTEST_CUSTOM_POST_TEST CTEST_CUSTOM_PRE_MEMCHECK CTEST_CUSTOM_PRE_TEST CTEST_CUSTOM_TEST_IGNORE CTEST_CUSTOM_WARNING_EXCEPTION CTEST_CUSTOM_WARNING_MATCH CTEST_CVS_CHECKOUT CTEST_CVS_COMMAND CTEST_CVS_UPDATE_OPTIONS CTEST_DROP_LOCATION CTEST_DROP_METHOD CTEST_DROP_SITE CTEST_DROP_SITE_CDASH CTEST_DROP_SITE_PASSWORD CTEST_DROP_SITE_USER CTEST_EXTRA_COVERAGE_GLOB CTEST_GIT_COMMAND CTEST_GIT_INIT_SUBMODULES CTEST_GIT_UPDATE_CUSTOM CTEST_GIT_UPDATE_OPTIONS CTEST_HG_COMMAND CTEST_HG_UPDATE_OPTIONS CTEST_LABELS_FOR_SUBPROJECTS CTEST_MEMORYCHECK_COMMAND CTEST_MEMORYCHECK_COMMAND_OPTIONS CTEST_MEMORYCHECK_SANITIZER_OPTIONS CTEST_MEMORYCHECK_SUPPRESSIONS_FILE CTEST_MEMORYCHECK_TYPE CTEST_NIGHTLY_START_TIME CTEST_P4_CLIENT CTEST_P4_COMMAND CTEST_P4_OPTIONS CTEST_P4_UPDATE_OPTIONS CTEST_SCP_COMMAND CTEST_SITE CTEST_SOURCE_DIRECTORY CTEST_SVN_COMMAND CTEST_SVN_OPTIONS CTEST_SVN_UPDATE_OPTIONS CTEST_TEST_LOAD CTEST_TEST_TIMEOUT CTEST_TRIGGER_SITE CTEST_UPDATE_COMMAND CTEST_UPDATE_OPTIONS CTEST_UPDATE_VERSION_ONLY CTEST_USE_LAUNCHERS CYGWIN ENV EXECUTABLE_OUTPUT_PATH GHS-MULTI LIBRARY_OUTPUT_PATH MINGW MSVC MSVC10 MSVC11 MSVC12 MSVC14 MSVC60 MSVC70 MSVC71 MSVC80 MSVC90 MSVC_IDE MSVC_VERSION PROJECT_BINARY_DIR PROJECT_DESCRIPTION PROJECT_NAME PROJECT_SOURCE_DIR PROJECT_VERSION PROJECT_VERSION_MAJOR PROJECT_VERSION_MINOR PROJECT_VERSION_PATCH PROJECT_VERSION_TWEAK UNIX WIN32 WINCE WINDOWS_PHONE WINDOWS_STORE XCODE XCODE_VERSION
+
+syn keyword cmakeModule contained
+ \ ExternalProject
+
+syn keyword cmakeKWExternalProject contained
+ \ ALGO AWS BINARY_DIR BUILD_ALWAYS BUILD_BYPRODUCTS BUILD_COMMAND BUILD_IN_SOURCE CMAKE_ARGS CMAKE_CACHE_ARGS CMAKE_CACHE_DEFAULT_ARGS CMAKE_TLS_CAINFO CMAKE_TLS_VERIFY COMMENT CONFIGURE_COMMAND CVS CVSROOT CVS_MODULE CVS_REPOSITORY CVS_TAG DEPENDEES DEPENDERS DEPENDS DOWNLOADED_FILE DOWNLOAD_COMMAND DOWNLOAD_DIR DOWNLOAD_NAME DOWNLOAD_NO_EXTRACT DOWNLOAD_NO_PROGRESS EP_BASE EP_INDEPENDENT_STEP_TARGETS EP_PREFIX EP_STEP_TARGETS EP_UPDATE_DISCONNECTED EXCLUDE_FROM_ALL FORCE GIT_CONFIG GIT_PROGRESS GIT_REMOTE_NAME GIT_REPOSITORY GIT_SHALLOW GIT_SUBMODULES GIT_TAG HG_REPOSITORY HG_TAG HTTP_HEADER HTTP_PASSWORD HTTP_USERNAME INDEPENDENT_STEP_TARGETS INSTALL_COMMAND INSTALL_DIR JOB_POOLS LIST_SEPARATOR LOG_ LOG_BUILD LOG_CONFIGURE LOG_DOWNLOAD LOG_INSTALL LOG_TEST LOG_UPDATE MAKE_EXE NAMES NOTE NO_DEPENDS PATCH_COMMAND PREFIX PROPERTY SOURCE_DIR SOURCE_SUBDIR STAMP_DIR STEP_TARGETS STRING SVN_PASSWORD SVN_REPOSITORY SVN_REVISION SVN_TRUST_CERT SVN_USERNAME TEST_AFTER_INSTALL TEST_BEFORE_INSTALL TEST_COMMAND TEST_EXCLUDE_FROM_MAIN TIMEOUT TLS_CAINFO TLS_VERIFY TMP_DIR TRUE UPDATE_COMMAND UPDATE_DISCONNECTED URL URL_HASH USES_TERMINAL_BUILD USES_TERMINAL_CONFIGURE USES_TERMINAL_DOWNLOAD USES_TERMINAL_INSTALL USES_TERMINAL_TEST USES_TERMINAL_UPDATE WORKING_DIRECTORY
+
+syn keyword cmakeKWadd_compile_options contained
+ \ COMPILE_OPTIONS
+
+syn keyword cmakeKWadd_custom_command contained
+ \ APPEND ARGS BYPRODUCTS CC COMMAND COMMAND_EXPAND_LISTS COMMENT CROSSCOMPILING_EMULATOR DEPENDS DEPFILE GENERATED IMPLICIT_DEPENDS INCLUDE_DIRECTORIES JOIN MAIN_DEPENDENCY NOT OUTPUT POST_BUILD PRE_BUILD PRE_LINK SYMBOLIC TARGET_FILE TARGET_PROPERTY USES_TERMINAL VERBATIM WORKING_DIRECTORY
+
+syn keyword cmakeKWadd_custom_target contained
+ \ ALL BYPRODUCTS CC COMMAND COMMAND_EXPAND_LISTS COMMENT CROSSCOMPILING_EMULATOR DEPENDS GENERATED INCLUDE_DIRECTORIES JOIN SOURCES TARGET_PROPERTY USES_TERMINAL VERBATIM WORKING_DIRECTORY
+
+syn keyword cmakeKWadd_definitions contained
+ \ COMPILE_DEFINITIONS
+
+syn keyword cmakeKWadd_dependencies contained
+ \ DEPENDS OBJECT_DEPENDS
+
+syn keyword cmakeKWadd_executable contained
+ \ ALIAS CONFIG EXCLUDE_FROM_ALL GLOBAL HEADER_FILE_ONLY IMPORTED IMPORTED_ IMPORTED_LOCATION IMPORTED_LOCATION_ MACOSX_BUNDLE OUTPUT_NAME RUNTIME_OUTPUT_DIRECTORY TARGET
+
+syn keyword cmakeKWadd_library contained
+ \ ALIAS ARCHIVE_OUTPUT_DIRECTORY CLI CONFIG DLL EXCLUDE_FROM_ALL FRAMEWORK GLOBAL HEADER_FILE_ONLY IMPORTED IMPORTED_ IMPORTED_LOCATION IMPORTED_LOCATION_ INTERFACE_ LIBRARY_OUTPUT_DIRECTORY MODULE OBJECT ON OUTPUT_NAME POSITION_INDEPENDENT_CODE POST_BUILD PRE_BUILD PRE_LINK RUNTIME_OUTPUT_DIRECTORY SHARED STATIC TARGET_OBJECTS UNKNOWN
+
+syn keyword cmakeKWadd_subdirectory contained
+ \ EXCLUDE_FROM_ALL
+
+syn keyword cmakeKWadd_test contained
+ \ BUILD_TESTING COMMAND CONFIGURATIONS FAIL_REGULAR_EXPRESSION NAME PASS_REGULAR_EXPRESSION TARGET_FILE WILL_FAIL WORKING_DIRECTORY
+
+syn keyword cmakeKWbuild_command contained
+ \ CONFIGURATION TARGET
+
+syn keyword cmakeKWbuild_name contained
+ \ CMAKE_CXX_COMPILER
+
+syn keyword cmakeKWcmake_host_system_information contained
+ \ AVAILABLE_PHYSICAL_MEMORY AVAILABLE_VIRTUAL_MEMORY FQDN HAS_FPU HAS_MMX HAS_MMX_PLUS HAS_SERIAL_NUMBER HAS_SSE HAS_SSE_FP HAS_SSE_MMX HOSTNAME ID NUMBER_OF_LOGICAL_CORES NUMBER_OF_PHYSICAL_CORES OS_NAME OS_PLATFORM OS_RELEASE OS_VERSION PROCESSOR_DESCRIPTION PROCESSOR_NAME PROCESSOR_SERIAL_NUMBER QUERY RESULT TOTAL_PHYSICAL_MEMORY TOTAL_VIRTUAL_MEMORY
+
+syn keyword cmakeKWcmake_minimum_required contained
+ \ FATAL_ERROR VERSION
+
+syn keyword cmakeKWcmake_parse_arguments contained
+ \ ARGN CONFIGURATIONS DESTINATION FALSE FAST FILES MY_INSTALL MY_INSTALL_CONFIGURATIONS MY_INSTALL_DESTINATION MY_INSTALL_FAST MY_INSTALL_OPTIONAL MY_INSTALL_RENAME MY_INSTALL_TARGETS MY_INSTALL_UNPARSED_ARGUMENTS OPTIONAL PARSE_ARGV RENAME TARGETS TRUE _UNPARSED_ARGUMENTS
+
+syn keyword cmakeKWcmake_policy contained
+ \ CMAKE_POLICY_DEFAULT_CMP CMP GET NNNN NO_POLICY_SCOPE OLD POP PUSH SET VERSION
+
+syn keyword cmakeKWconfigure_file contained
+ \ COPYONLY CRLF DOS ESCAPE_QUOTES FOO_ENABLE FOO_STRING LF NEWLINE_STYLE VAR
+
+syn keyword cmakeKWcreate_test_sourcelist contained
+ \ CMAKE_TESTDRIVER_AFTER_TESTMAIN CMAKE_TESTDRIVER_BEFORE_TESTMAIN EXTRA_INCLUDE FUNCTION
+
+syn keyword cmakeKWctest_build contained
+ \ ALL_BUILD APPEND BUILD CAPTURE_CMAKE_ERROR CONFIGURATION CTEST_BUILD_CONFIGURATION CTEST_BUILD_FLAGS CTEST_BUILD_TARGET CTEST_PROJECT_NAME FLAGS NUMBER_ERRORS NUMBER_WARNINGS QUIET RETURN_VALUE TARGET
+
+syn keyword cmakeKWctest_configure contained
+ \ APPEND BUILD CAPTURE_CMAKE_ERROR OPTIONS QUIET RETURN_VALUE SOURCE
+
+syn keyword cmakeKWctest_coverage contained
+ \ APPEND BUILD CAPTURE_CMAKE_ERROR LABELS QUIET RETURN_VALUE
+
+syn keyword cmakeKWctest_memcheck contained
+ \ APPEND BUILD DEFECT_COUNT EXCLUDE EXCLUDE_FIXTURE EXCLUDE_FIXTURE_CLEANUP EXCLUDE_FIXTURE_SETUP EXCLUDE_LABEL INCLUDE INCLUDE_LABEL OFF ON PARALLEL_LEVEL QUIET RETURN_VALUE SCHEDULE_RANDOM START STOP_TIME STRIDE TEST_LOAD
+
+syn keyword cmakeKWctest_run_script contained
+ \ NEW_PROCESS RETURN_VALUE
+
+syn keyword cmakeKWctest_start contained
+ \ APPEND QUIET TAG TRACK
+
+syn keyword cmakeKWctest_submit contained
+ \ API CDASH_UPLOAD CDASH_UPLOAD_TYPE CTEST_EXTRA_SUBMIT_FILES CTEST_NOTES_FILES FILES HTTPHEADER PARTS QUIET RETRY_COUNT RETRY_DELAY RETURN_VALUE
+
+syn keyword cmakeKWctest_test contained
+ \ APPEND BUILD CAPTURE_CMAKE_ERROR CPU EXCLUDE EXCLUDE_FIXTURE EXCLUDE_FIXTURE_CLEANUP EXCLUDE_FIXTURE_SETUP EXCLUDE_LABEL INCLUDE INCLUDE_LABEL OFF ON PARALLEL_LEVEL QUIET RETURN_VALUE SCHEDULE_RANDOM START STOP_TIME STRIDE TEST_LOAD
+
+syn keyword cmakeKWctest_update contained
+ \ QUIET RETURN_VALUE SOURCE
+
+syn keyword cmakeKWctest_upload contained
+ \ CAPTURE_CMAKE_ERROR FILES QUIET
+
+syn keyword cmakeKWdefine_property contained
+ \ BRIEF_DOCS CACHED_VARIABLE DIRECTORY FULL_DOCS GLOBAL INHERITED PROPERTY SOURCE TARGET TEST VARIABLE
+
+syn keyword cmakeKWenable_language contained
+ \ OPTIONAL
+
+syn keyword cmakeKWexec_program contained
+ \ ARGS OUTPUT_VARIABLE RETURN_VALUE
+
+syn keyword cmakeKWexecute_process contained
+ \ ANSI AUTO COMMAND ENCODING ERROR_FILE ERROR_QUIET ERROR_STRIP_TRAILING_WHITESPACE ERROR_VARIABLE INPUT_FILE NONE OEM OUTPUT_FILE OUTPUT_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE RESULTS_VARIABLE RESULT_VARIABLE TIMEOUT UTF VERBATIM WORKING_DIRECTORY
+
+syn keyword cmakeKWexport contained
+ \ ANDROID_MK APPEND CONFIG EXPORT EXPORT_LINK_INTERFACE_LIBRARIES FILE IMPORTED IMPORTED_ NAMESPACE NDK OLD PACKAGE TARGETS
+
+syn keyword cmakeKWexport_library_dependencies contained
+ \ APPEND EXPORT INCLUDE LINK_INTERFACE_LIBRARIES SET
+
+syn keyword cmakeKWfile contained
+ \ ALGO APPEND ASCII CMAKE_TLS_CAINFO CMAKE_TLS_VERIFY CONDITION CONFIG CONTENT COPY CR DESTINATION DIRECTORY_PERMISSIONS DOWNLOAD ENCODING EXCLUDE EXPECTED_HASH FILES_MATCHING FILE_PERMISSIONS FOLLOW_SYMLINKS FUNCTION GENERATE GLOB GLOB_RECURSE GUARD HASH HEX HTTPHEADER INACTIVITY_TIMEOUT INSTALL LENGTH_MAXIMUM LENGTH_MINIMUM LF LIMIT LIMIT_COUNT LIMIT_INPUT LIMIT_OUTPUT LIST_DIRECTORIES LOCK LOG MAKE_DIRECTORY NEWLINE_CONSUME NO_HEX_CONVERSION NO_SOURCE_PERMISSIONS OFFSET OLD PATTERN PROCESS READ REGEX RELATIVE RELATIVE_PATH RELEASE REMOVE REMOVE_RECURSE RENAME RESULT_VARIABLE SHOW_PROGRESS SSL STATUS STRINGS TIMESTAMP TLS_CAINFO TLS_VERIFY TO_CMAKE_PATH TO_NATIVE_PATH UPLOAD USERPWD USE_SOURCE_PERMISSIONS UTC UTF WRITE
+
+syn keyword cmakeKWfind_file contained
+ \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS INCLUDE NAMES NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR
+
+syn keyword cmakeKWfind_library contained
+ \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS LIB NAMES NAMES_PER_DIR NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR
+
+syn keyword cmakeKWfind_package contained
+ \ CMAKE_DISABLE_FIND_PACKAGE_ CMAKE_FIND_ROOT_PATH_BOTH COMPONENTS CONFIG CONFIGS DEC DVAR EXACT HINTS MODULE NAMES NATURAL NO_CMAKE_BUILDS_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PACKAGE_REGISTRY NO_CMAKE_PATH NO_CMAKE_SYSTEM_PACKAGE_REGISTRY NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_MODULE NO_POLICY_SCOPE NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OPTIONAL_COMPONENTS OS PACKAGE_FIND_NAME PACKAGE_FIND_VERSION PACKAGE_FIND_VERSION_COUNT PACKAGE_FIND_VERSION_MAJOR PACKAGE_FIND_VERSION_MINOR PACKAGE_FIND_VERSION_PATCH PACKAGE_FIND_VERSION_TWEAK PACKAGE_VERSION PACKAGE_VERSION_COMPATIBLE PACKAGE_VERSION_EXACT PACKAGE_VERSION_UNSUITABLE PATHS PATH_SUFFIXES QUIET REQUIRED SET TRUE _CONFIG _CONSIDERED_CONFIGS _CONSIDERED_VERSIONS _DIR _FIND_COMPONENTS _FIND_QUIETLY _FIND_REQUIRED _FIND_REQUIRED_ _FIND_VERSION_EXACT _FOUND
+
+syn keyword cmakeKWfind_path contained
+ \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS INCLUDE NAMES NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR
+
+syn keyword cmakeKWfind_program contained
+ \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS NAMES NAMES_PER_DIR NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR
+
+syn keyword cmakeKWfltk_wrap_ui contained
+ \ FLTK
+
+syn keyword cmakeKWforeach contained
+ \ ARGS IN ITEMS LISTS RANGE
+
+syn keyword cmakeKWfunction contained
+ \ ARGC ARGN ARGS ARGV PARENT_SCOPE
+
+syn keyword cmakeKWget_cmake_property contained
+ \ COMPONENTS GLOBAL MACROS VAR VARIABLES
+
+syn keyword cmakeKWget_directory_property contained
+ \ DEFINITION DIRECTORY
+
+syn keyword cmakeKWget_filename_component contained
+ \ ABSOLUTE ARG_VAR BASE_DIR CACHE COMP DIRECTORY EXT NAME NAME_WE PATH PROGRAM PROGRAM_ARGS REALPATH VAR
+
+syn keyword cmakeKWget_property contained
+ \ BRIEF_DOCS CACHE DEFINED DIRECTORY FULL_DOCS GLOBAL INSTALL PROPERTY SET SOURCE TARGET TEST VARIABLE
+
+syn keyword cmakeKWget_source_file_property contained
+ \ LOCATION VAR
+
+syn keyword cmakeKWget_target_property contained
+ \ VAR
+
+syn keyword cmakeKWget_test_property contained
+ \ VAR
+
+syn keyword cmakeKWif contained
+ \ ARGS CMAKE_MATCH_ CMP COMMAND DEFINED EQUAL EXISTS FALSE GREATER GREATER_EQUAL IGNORE IN_LIST IS_ABSOLUTE IS_DIRECTORY IS_NEWER_THAN IS_SYMLINK LESS LESS_EQUAL MATCHES NNNN NOT OFF OR POLICY STREQUAL STRGREATER STRGREATER_EQUAL STRLESS STRLESS_EQUAL TARGET TEST THEN TRUE VERSION_EQUAL VERSION_GREATER VERSION_GREATER_EQUAL VERSION_LESS VERSION_LESS_EQUAL YES
+
+syn keyword cmakeKWinclude contained
+ \ NO_POLICY_SCOPE OPTIONAL RESULT_VARIABLE
-" The keywords are generated as: cmake --help-command-list | tr "\n" " "
-syn keyword cmakeStatement
- \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ELSEIF ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDFUNCTION ENDIF ENDMACRO ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH FUNCTION GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN UNSET USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE
+syn keyword cmakeKWinclude_directories contained
+ \ AFTER BEFORE INCLUDE_DIRECTORIES ON SYSTEM
+
+syn keyword cmakeKWinclude_external_msproject contained
+ \ GUID MAP_IMPORTED_CONFIG_ PLATFORM TYPE WIX
+
+syn keyword cmakeKWinclude_guard contained
+ \ DIRECTORY GLOBAL TRUE __CURRENT_FILE_VAR__
+
+syn keyword cmakeKWinstall contained
+ \ ARCHIVE BUNDLE CODE COMPONENT CONFIGURATIONS CVS DESTDIR DESTINATION DIRECTORY DIRECTORY_PERMISSIONS DLL EXCLUDE_FROM_ALL EXPORT EXPORT_ANDROID_MK EXPORT_LINK_INTERFACE_LIBRARIES FILES FILES_MATCHING FILE_PERMISSIONS FRAMEWORK GROUP_EXECUTE GROUP_READ GROUP_WRITE IMPORTED_ INCLUDES INSTALL_PREFIX INTERFACE_INCLUDE_DIRECTORIES LIBRARY MACOSX_BUNDLE MESSAGE_NEVER NAMELINK_ONLY NAMELINK_SKIP NAMESPACE NDK OBJECTS OPTIONAL OWNER_EXECUTE OWNER_READ OWNER_WRITE PATTERN PERMISSIONS POST_INSTALL_SCRIPT PRE_INSTALL_SCRIPT PRIVATE_HEADER PROGRAMS PUBLIC_HEADER REGEX RENAME RESOURCE RUNTIME SCRIPT SETGID SETUID SOVERSION TARGETS TRUE USE_SOURCE_PERMISSIONS VERSION WORLD_EXECUTE WORLD_READ WORLD_WRITE
+
+syn keyword cmakeKWinstall_files contained
+ \ FILES GLOB
+
+syn keyword cmakeKWinstall_programs contained
+ \ FILES GLOB PROGRAMS TARGETS
+
+syn keyword cmakeKWinstall_targets contained
+ \ DLL RUNTIME_DIRECTORY TARGETS
+
+syn keyword cmakeKWlist contained
+ \ APPEND CACHE EXCLUDE FILTER FIND GET INCLUDE INSERT INTERNAL LENGTH LIST NOTES PARENT_SCOPE REGEX REMOVE_AT REMOVE_DUPLICATES REMOVE_ITEM REVERSE SORT
+
+syn keyword cmakeKWload_cache contained
+ \ EXCLUDE INCLUDE_INTERNALS READ_WITH_PREFIX
+
+syn keyword cmakeKWload_command contained
+ \ CMAKE_LOADED_COMMAND_ COMMAND_NAME
+
+syn keyword cmakeKWmacro contained
+ \ ARGC ARGN ARGS ARGV DEFINED GREATER LISTS NOT _BAR _FOO
+
+syn keyword cmakeKWmake_directory contained
+ \ MAKE_DIRECTORY
+
+syn keyword cmakeKWmark_as_advanced contained
+ \ CLEAR FORCE VAR
+
+syn keyword cmakeKWmath contained
+ \ EXPR
+
+syn keyword cmakeKWmessage contained
+ \ AUTHOR_WARNING DEPRECATION FATAL_ERROR GUI SEND_ERROR STATUS WARNING
+
+syn keyword cmakeKWoption contained
+ \ OFF ON
+
+syn keyword cmakeKWproject contained
+ \ CMAKE_PROJECT_ DESCRIPTION LANGUAGES NAME NONE PROJECT VERSION _BINARY_DIR _INCLUDE _SOURCE_DIR _VERSION _VERSION_MAJOR _VERSION_MINOR _VERSION_PATCH _VERSION_TWEAK
+
+syn keyword cmakeKWremove contained
+ \ REMOVE_ITEM VALUE VAR
+
+syn keyword cmakeKWseparate_arguments contained
+ \ MSDN NATIVE NATIVE_COMMAND UNIX_COMMAND WINDOWS WINDOWS_COMMAND _COMMAND
+
+syn keyword cmakeKWset contained
+ \ BOOL CACHE FILEPATH FORCE INTERNAL OFF ON PARENT_SCOPE STRING STRINGS
+
+syn keyword cmakeKWset_directory_properties contained
+ \ PROPERTIES
+
+syn keyword cmakeKWset_property contained
+ \ APPEND APPEND_STRING CACHE DIRECTORY GLOBAL INSTALL PROPERTY SOURCE TARGET TEST WIX
+
+syn keyword cmakeKWset_source_files_properties contained
+ \ PROPERTIES
+
+syn keyword cmakeKWset_target_properties contained
+ \ PROPERTIES
+
+syn keyword cmakeKWset_tests_properties contained
+ \ PROPERTIES
+
+syn keyword cmakeKWsource_group contained
+ \ FILES PREFIX REGULAR_EXPRESSION TREE
+
+syn keyword cmakeKWstring contained
+ \ ALPHABET APPEND ASCII CMAKE_MATCH_ COMPARE CONCAT CONFIGURE EQUAL ESCAPE_QUOTES FIND GENEX_STRIP GREATER GREATER_EQUAL GUID HASH LENGTH LESS LESS_EQUAL MAKE_C_IDENTIFIER MATCH MATCHALL MATCHES NAMESPACE NOTEQUAL ONLY PREPEND RANDOM RANDOM_SEED REGEX REPLACE REVERSE RFC SHA SOURCE_DATE_EPOCH STRIP SUBSTRING SZ TIMESTAMP TOLOWER TOUPPER TYPE US UTC UUID
+
+syn keyword cmakeKWsubdirs contained
+ \ EXCLUDE_FROM_ALL PREORDER
+
+syn keyword cmakeKWtarget_compile_definitions contained
+ \ COMPILE_DEFINITIONS INTERFACE INTERFACE_COMPILE_DEFINITIONS PRIVATE PUBLIC
+
+syn keyword cmakeKWtarget_compile_features contained
+ \ COMPILE_FEATURES IMPORTED INTERFACE INTERFACE_COMPILE_FEATURES PRIVATE PUBLIC
+
+syn keyword cmakeKWtarget_compile_options contained
+ \ BEFORE COMPILE_OPTIONS IMPORTED INTERFACE INTERFACE_COMPILE_OPTIONS PRIVATE PUBLIC
+
+syn keyword cmakeKWtarget_include_directories contained
+ \ BEFORE BUILD_INTERFACE IMPORTED INCLUDE_DIRECTORIES INSTALL_INTERFACE INTERFACE INTERFACE_INCLUDE_DIRECTORIES INTERFACE_LINK_LIBRARIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES PRIVATE PUBLIC SYSTEM
+
+syn keyword cmakeKWtarget_link_libraries contained
+ \ ALIAS DAG DEBUG_CONFIGURATIONS IMPORTED IMPORTED_NO_SONAME INTERFACE INTERFACE_LINK_LIBRARIES LINK_FLAGS LINK_INTERFACE_LIBRARIES LINK_INTERFACE_LIBRARIES_DEBUG LINK_INTERFACE_MULTIPLICITY LINK_PRIVATE LINK_PUBLIC OLD OSX PRIVATE PUBLIC STATIC
+
+syn keyword cmakeKWtarget_sources contained
+ \ IMPORTED INTERFACE INTERFACE_SOURCES PRIVATE PUBLIC SOURCES
+
+syn keyword cmakeKWtry_compile contained
+ \ ALL_BUILD CMAKE_FLAGS COMPILE_DEFINITIONS COPY_FILE COPY_FILE_ERROR CUDA_EXTENSIONS CUDA_STANDARD CUDA_STANDARD_REQUIRED CXX_EXTENSIONS CXX_STANDARD CXX_STANDARD_REQUIRED C_EXTENSIONS C_STANDARD C_STANDARD_REQUIRED DEFINED DLINK_LIBRARIES DVAR FALSE INCLUDE_DIRECTORIES LANG LINK_DIRECTORIES LINK_LIBRARIES NOT OUTPUT_VARIABLE RESULT_VAR SOURCES TRUE TYPE VALUE _EXTENSIONS _STANDARD _STANDARD_REQUIRED
+
+syn keyword cmakeKWtry_run contained
+ \ ARGS CMAKE_FLAGS COMPILE_DEFINITIONS COMPILE_OUTPUT_VARIABLE COMPILE_RESULT_VAR DLINK_LIBRARIES DVAR FAILED_TO_RUN FALSE INCLUDE_DIRECTORIES LINK_DIRECTORIES LINK_LIBRARIES RUN_OUTPUT_VARIABLE RUN_RESULT_VAR TRUE TYPE VALUE __TRYRUN_OUTPUT
+
+syn keyword cmakeKWunset contained
+ \ CACHE LD_LIBRARY_PATH PARENT_SCOPE
+
+syn keyword cmakeKWuse_mangled_mesa contained
+ \ GL OUTPUT_DIRECTORY PATH_TO_MESA
+
+syn keyword cmakeKWvariable_requires contained
+ \ RESULT_VARIABLE TEST_VARIABLE
+
+syn keyword cmakeKWvariable_watch contained
+ \ COMMAND
+
+syn keyword cmakeKWwhile contained
+ \ ARGS
+
+syn keyword cmakeKWwrite_file contained
+ \ APPEND CONFIGURE_FILE NOTE WRITE
+
+
+syn keyword cmakeGeneratorExpressions contained
+ \ LINK_LIBRARIES INCLUDE_DIRECTORIES COMPILE_DEFINITIONS CONFIG DEBUG_MODE BOOL AND NOT IF STREQUAL MAP_IMPORTED_CONFIG_ PLATFORM_ID C_COMPILER_ID CXX_COMPILER_ID VERSION_LESS VERSION_GREATER VERSION_EQUAL VERSION_LESS_EQUAL VERSION_GREATER_EQUAL C_COMPILER_VERSION CXX_COMPILER_VERSION TARGET_POLICY COMPILE_FEATURES C_STANDARD CXX_STANDARD COMPILE_LANGUAGE PRIVATE PUBLIC COMPILING_CXX GNU OLD_COMPILER CMAKE_CXX_COMPILER_VERSION CONFIGURATION TARGET_FILE TARGET_FILE_NAME TARGET_FILE_DIR TARGET_LINKER_FILE TARGET_LINKER_FILE_NAME TARGET_LINKER_FILE_DIR TARGET_SONAME_FILE TARGET_SONAME_FILE_NAME TARGET_SONAME_FILE_DIR TARGET_PDB_FILE PDB_NAME PDB_OUTPUT_DIRECTORY PDB_NAME_ PDB_OUTPUT_DIRECTORY_ TARGET_PDB_FILE_NAME TARGET_PDB_FILE_DIR TARGET_BUNDLE_DIR TARGET_BUNDLE_CONTENT_DIR SDK TARGET_PROPERTY INSTALL_PREFIX EXPORT JOIN ANGLE COMMA SEMICOLON TARGET_NAME LINK_ONLY INTERFACE_LINK_LIBRARIES INSTALL_INTERFACE BUILD_INTERFACE LOWER_CASE UPPER_CASE MAKE_C_IDENTIFIER TARGET_OBJECTS OBJECT_LIBRARY SHELL_PATH MSYS
+
+syn case ignore
+
+syn keyword cmakeCommand
+ \ add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue create_test_sourcelist ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload define_property enable_language enable_testing endfunction endmacro execute_process export file find_file find_library find_package find_path find_program fltk_wrap_ui function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property include include_directories include_external_msproject include_guard include_regular_expression install link_directories list load_cache load_command macro mark_as_advanced math message option project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_libraries target_sources try_compile try_run unset variable_watch
+ \ nextgroup=cmakeArguments
+
+syn keyword cmakeCommandConditional
+ \ else elseif endif if
\ nextgroup=cmakeArguments
+
+syn keyword cmakeCommandRepeat
+ \ endforeach endwhile foreach while
+ \ nextgroup=cmakeArguments
+
+syn keyword cmakeCommandDeprecated
+ \ build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file
+ \ nextgroup=cmakeArguments
+
+syn case match
+
syn keyword cmakeTodo
\ TODO FIXME XXX
\ contained
-" Define the default highlighting.
-" Only when an item doesn't have highlighting yet
-
-hi def link cmakeStatement Statement
+hi def link cmakeCommand Function
+hi def link cmakeCommandConditional Conditional
+hi def link cmakeCommandDeprecated WarningMsg
+hi def link cmakeCommandRepeat Repeat
hi def link cmakeComment Comment
-hi def link cmakeString String
-hi def link cmakeVariableValue Type
-hi def link cmakeRegistry Underlined
-hi def link cmakeArguments Identifier
-hi def link cmakeArgument Constant
hi def link cmakeEnvironment Special
-hi def link cmakeOperators Operator
-hi def link cmakeMacro PreProc
-hi def link cmakeError Error
-hi def link cmakeTodo TODO
hi def link cmakeEscaped Special
+hi def link cmakeGeneratorExpression WarningMsg
+hi def link cmakeGeneratorExpressions Constant
+hi def link cmakeLuaComment Comment
+hi def link cmakeModule Include
+hi def link cmakeProperty Constant
+hi def link cmakeRegistry Underlined
+hi def link cmakeString String
+hi def link cmakeTodo TODO
+hi def link cmakeVariableValue Type
+hi def link cmakeVariable Identifier
+hi def link cmakeKWExternalProject ModeMsg
+hi def link cmakeKWadd_compile_options ModeMsg
+hi def link cmakeKWadd_custom_command ModeMsg
+hi def link cmakeKWadd_custom_target ModeMsg
+hi def link cmakeKWadd_definitions ModeMsg
+hi def link cmakeKWadd_dependencies ModeMsg
+hi def link cmakeKWadd_executable ModeMsg
+hi def link cmakeKWadd_library ModeMsg
+hi def link cmakeKWadd_subdirectory ModeMsg
+hi def link cmakeKWadd_test ModeMsg
+hi def link cmakeKWbuild_command ModeMsg
+hi def link cmakeKWbuild_name ModeMsg
+hi def link cmakeKWcmake_host_system_information ModeMsg
+hi def link cmakeKWcmake_minimum_required ModeMsg
+hi def link cmakeKWcmake_parse_arguments ModeMsg
+hi def link cmakeKWcmake_policy ModeMsg
+hi def link cmakeKWconfigure_file ModeMsg
+hi def link cmakeKWcreate_test_sourcelist ModeMsg
+hi def link cmakeKWctest_build ModeMsg
+hi def link cmakeKWctest_configure ModeMsg
+hi def link cmakeKWctest_coverage ModeMsg
+hi def link cmakeKWctest_memcheck ModeMsg
+hi def link cmakeKWctest_run_script ModeMsg
+hi def link cmakeKWctest_start ModeMsg
+hi def link cmakeKWctest_submit ModeMsg
+hi def link cmakeKWctest_test ModeMsg
+hi def link cmakeKWctest_update ModeMsg
+hi def link cmakeKWctest_upload ModeMsg
+hi def link cmakeKWdefine_property ModeMsg
+hi def link cmakeKWenable_language ModeMsg
+hi def link cmakeKWexec_program ModeMsg
+hi def link cmakeKWexecute_process ModeMsg
+hi def link cmakeKWexport ModeMsg
+hi def link cmakeKWexport_library_dependencies ModeMsg
+hi def link cmakeKWfile ModeMsg
+hi def link cmakeKWfind_file ModeMsg
+hi def link cmakeKWfind_library ModeMsg
+hi def link cmakeKWfind_package ModeMsg
+hi def link cmakeKWfind_path ModeMsg
+hi def link cmakeKWfind_program ModeMsg
+hi def link cmakeKWfltk_wrap_ui ModeMsg
+hi def link cmakeKWforeach ModeMsg
+hi def link cmakeKWfunction ModeMsg
+hi def link cmakeKWget_cmake_property ModeMsg
+hi def link cmakeKWget_directory_property ModeMsg
+hi def link cmakeKWget_filename_component ModeMsg
+hi def link cmakeKWget_property ModeMsg
+hi def link cmakeKWget_source_file_property ModeMsg
+hi def link cmakeKWget_target_property ModeMsg
+hi def link cmakeKWget_test_property ModeMsg
+hi def link cmakeKWif ModeMsg
+hi def link cmakeKWinclude ModeMsg
+hi def link cmakeKWinclude_directories ModeMsg
+hi def link cmakeKWinclude_external_msproject ModeMsg
+hi def link cmakeKWinclude_guard ModeMsg
+hi def link cmakeKWinstall ModeMsg
+hi def link cmakeKWinstall_files ModeMsg
+hi def link cmakeKWinstall_programs ModeMsg
+hi def link cmakeKWinstall_targets ModeMsg
+hi def link cmakeKWlist ModeMsg
+hi def link cmakeKWload_cache ModeMsg
+hi def link cmakeKWload_command ModeMsg
+hi def link cmakeKWmacro ModeMsg
+hi def link cmakeKWmake_directory ModeMsg
+hi def link cmakeKWmark_as_advanced ModeMsg
+hi def link cmakeKWmath ModeMsg
+hi def link cmakeKWmessage ModeMsg
+hi def link cmakeKWoption ModeMsg
+hi def link cmakeKWproject ModeMsg
+hi def link cmakeKWremove ModeMsg
+hi def link cmakeKWseparate_arguments ModeMsg
+hi def link cmakeKWset ModeMsg
+hi def link cmakeKWset_directory_properties ModeMsg
+hi def link cmakeKWset_property ModeMsg
+hi def link cmakeKWset_source_files_properties ModeMsg
+hi def link cmakeKWset_target_properties ModeMsg
+hi def link cmakeKWset_tests_properties ModeMsg
+hi def link cmakeKWsource_group ModeMsg
+hi def link cmakeKWstring ModeMsg
+hi def link cmakeKWsubdirs ModeMsg
+hi def link cmakeKWtarget_compile_definitions ModeMsg
+hi def link cmakeKWtarget_compile_features ModeMsg
+hi def link cmakeKWtarget_compile_options ModeMsg
+hi def link cmakeKWtarget_include_directories ModeMsg
+hi def link cmakeKWtarget_link_libraries ModeMsg
+hi def link cmakeKWtarget_sources ModeMsg
+hi def link cmakeKWtry_compile ModeMsg
+hi def link cmakeKWtry_run ModeMsg
+hi def link cmakeKWunset ModeMsg
+hi def link cmakeKWuse_mangled_mesa ModeMsg
+hi def link cmakeKWvariable_requires ModeMsg
+hi def link cmakeKWvariable_watch ModeMsg
+hi def link cmakeKWwhile ModeMsg
+hi def link cmakeKWwrite_file ModeMsg
let b:current_syntax = "cmake"
let &cpo = s:keepcpo
unlet s:keepcpo
-"EOF"
+" vim: set nowrap:
diff --git a/runtime/syntax/debcontrol.vim b/runtime/syntax/debcontrol.vim
index b1bc9f8..1131c9e 100644
--- a/runtime/syntax/debcontrol.vim
+++ b/runtime/syntax/debcontrol.vim
@@ -3,7 +3,7 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
-" Last Change: 2016 Aug 30
+" Last Change: 2017 Aug 18
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debcontrol.vim
" Standard syntax initialization
@@ -21,8 +21,8 @@ syn case match
syn match debcontrolElse "^.*$"
" Common seperators
-syn match debControlComma ", *"
-syn match debControlSpace " "
+syn match debControlComma ",[ \t]*"
+syn match debControlSpace "[ \t]"
let s:kernels = '\%(linux\|hurd\|kfreebsd\|knetbsd\|kopensolaris\|netbsd\)'
let s:archs = '\%(alpha\|amd64\|armeb\|armel\|armhf\|arm64\|avr32\|hppa\|i386'
@@ -38,7 +38,7 @@ unlet s:kernels s:archs s:pairs
syn match debcontrolMultiArch contained "\%(no\|foreign\|allowed\|same\)"
syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
-syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java|javascript|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|rust|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
+syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java%(script)=|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|rust|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
syn match debcontrolPackageType contained "u\?deb"
syn match debcontrolVariable contained "\${.\{-}}"
syn match debcontrolDmUpload contained "\cyes"
@@ -60,7 +60,7 @@ syn match debcontrolComment "^#.*$" contains=@Spell
syn case ignore
" List of all legal keys
-syn match debcontrolKey contained "^\%(Source\|Package\|Section\|Priority\|\%(XSBC-Original-\)\=Maintainer\|Uploaders\|Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|Standards-Version\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Essential\|Architecture\|Multi-Arch\|Description\|Bugs\|Origin\|X[SB]-Python-Version\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|\%(XC-\)\=Package-Type\): *"
+syn match debcontrolKey contained "^\%(Source\|Package\|Section\|Priority\|\%(XSBC-Original-\)\=Maintainer\|Uploaders\|Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|Standards-Version\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Essential\|Architecture\|Multi-Arch\|Description\|Bugs\|Origin\|X[SB]-Python-Version\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|\%(XC-\)\=Package-Type\|\%(XS-\)\=Testsuite\): *"
syn match debcontrolDeprecatedKey contained "^\%(\%(XS-\)\=DM-Upload-Allowed\): *"
@@ -79,9 +79,9 @@ syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Git" end="$" contains=deb
syn region debcontrolStrictField start="^\%(XS-\)\=DM-Upload-Allowed" end="$" contains=debcontrolDeprecatedKey,debcontrolDmUpload oneline
" Catch-all for the other legal fields
-syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
-syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ #]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
-syn region debcontrolMultiFieldSpell start="^\%(Description\):" skip="^ " end="^$"me=s-1 end="^[^ #]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
+syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
+syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Uploaders\|Description\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
+syn region debcontrolMultiFieldSpell start="^\%(Description\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
" Associate our matches and regions with pretty colours
hi def link debcontrolKey Keyword
diff --git a/runtime/syntax/form.vim b/runtime/syntax/form.vim
index b8cb87c..9718480 100644
--- a/runtime/syntax/form.vim
+++ b/runtime/syntax/form.vim
@@ -85,7 +85,7 @@ syn match formComment "\;\ *\*.*$" contains=formTodo
syn region formString start=+"+ end=+"+ contains=formSpecial
syn region formString start=+'+ end=+'+
syn region formNestedString start=+`+ end=+'+ contains=formNestedString
-syn match formPreProc "^\=\#[a-zA-z][a-zA-Z0-9]*\>"
+syn match formPreProc "^\=\#[a-zA-Z][a-zA-Z0-9]*\>"
syn match formNumber "\<\d\+\>"
syn match formNumber "\<\d\+\.\d*\>"
syn match formNumber "\.\d\+\>"
@@ -94,13 +94,13 @@ syn match formNumber "-\.\d" contains=Number
syn match formNumber "i_\+\>"
syn match formNumber "fac_\+\>"
" pattern matching wildcards
-syn match formNumber "?[A-z0-9]*"
+syn match formNumber "?[a-zA-Z0-9]*"
" dollar-variables (new in 3.x)
-syn match formNumber "\\$[A-z0-9]*"
+syn match formNumber "\\$[a-zA-Z0-9]*"
" scalar products
-syn match formNumber "^\=[a-zA-z][a-zA-Z0-9]*\.[a-zA-z][a-zA-Z0-9]*\>"
+syn match formNumber "^\=[a-zA-Z][a-zA-Z0-9]*\.[a-zA-Z][a-zA-Z0-9]*\>"
-syn match formDirective "^\=\.[a-zA-z][a-zA-Z0-9]*\>"
+syn match formDirective "^\=\.[a-zA-Z][a-zA-Z0-9]*\>"
" hi User Labels
syn sync ccomment formComment minlines=10
diff --git a/runtime/syntax/mason.vim b/runtime/syntax/mason.vim
index 6789e11..f087def 100644
--- a/runtime/syntax/mason.vim
+++ b/runtime/syntax/mason.vim
@@ -1,15 +1,13 @@
" Vim syntax file
-" Language: Mason (Perl embedded in HTML)
-" Maintainer: Andrew Smith <andrewdsmith@yahoo.com>
-" Last change: 2003 May 11
-" URL: http://www.masonhq.com/editors/mason.vim
+" Language: Mason (Perl embedded in HTML)
+" Maintainer: vim-perl <vim-perl@googlegroups.com>
+" Homepage: http://github.com/vim-perl/vim-perl/tree/master
+" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
+" Last Change: 2017-09-12
+" Contributors: Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
+" Andrew Smith <andrewdsmith@yahoo.com>
"
-" This seems to work satisfactorily with html.vim and perl.vim for version 5.5.
-" Please mail any fixes or improvements to the above address. Things that need
-" doing include:
-"
-" - Add match for component names in <& &> blocks.
-" - Add match for component names in <%def> and <%method> block delimiters.
+" TODO:
" - Fix <%text> blocks to show HTML tags but ignore Mason tags.
"
@@ -34,30 +32,38 @@ syn cluster htmlPreproc add=@masonTop
" Now pull in the Perl syntax.
"
syn include @perlTop syntax/perl.vim
+unlet b:current_syntax
+syn include @podTop syntax/pod.vim
" It's hard to reduce down to the correct sub-set of Perl to highlight in some
" of these cases so I've taken the safe option of just using perlTop in all of
" them. If you have any suggestions, please let me know.
"
-syn region masonLine matchgroup=Delimiter start="^%" end="$" contains=@perlTop
-syn region masonExpr matchgroup=Delimiter start="<%" end="%>" contains=@perlTop
-syn region masonPerl matchgroup=Delimiter start="<%perl>" end="</%perl>" contains=@perlTop
-syn region masonComp keepend matchgroup=Delimiter start="<&" end="&>" contains=@perlTop
+syn region masonPod start="^=[a-z]" end="^=cut" keepend contained contains=@podTop
+syn cluster perlTop remove=perlBraces
+syn region masonLine matchgroup=Delimiter start="^%" end="$" keepend contains=@perlTop
+syn region masonPerlComment start="#" end="\%(%>\)\@=\|$" contained contains=perlTodo,@Spell
+syn region masonExpr matchgroup=Delimiter start="<%" end="%>" contains=@perlTop,masonPerlComment
+syn region masonPerl matchgroup=Delimiter start="<%perl>" end="</%perl>" contains=masonPod,@perlTop
+syn region masonComp keepend matchgroup=Delimiter start="<&\s*\%([-._/[:alnum:]]\+:\)\?[-._/[:alnum:]]*" end="&>" contains=@perlTop
+syn region masonComp keepend matchgroup=Delimiter skipnl start="<&|\s*\%([-._/[:alnum:]]\+:\)\?[-._/[:alnum:]]*" end="&>" contains=@perlTop nextgroup=masonCompContent
+syn region masonCompContent matchgroup=Delimiter start="" end="</&>" contained contains=@masonTop
-syn region masonArgs matchgroup=Delimiter start="<%args>" end="</%args>" contains=@perlTop
+syn region masonArgs matchgroup=Delimiter start="<%args>" end="</%args>" contains=masonPod,@perlTop
-syn region masonInit matchgroup=Delimiter start="<%init>" end="</%init>" contains=@perlTop
-syn region masonCleanup matchgroup=Delimiter start="<%cleanup>" end="</%cleanup>" contains=@perlTop
-syn region masonOnce matchgroup=Delimiter start="<%once>" end="</%once>" contains=@perlTop
-syn region masonShared matchgroup=Delimiter start="<%shared>" end="</%shared>" contains=@perlTop
+syn region masonInit matchgroup=Delimiter start="<%init>" end="</%init>" contains=masonPod,@perlTop
+syn region masonCleanup matchgroup=Delimiter start="<%cleanup>" end="</%cleanup>" contains=masonPod,@perlTop
+syn region masonOnce matchgroup=Delimiter start="<%once>" end="</%once>" contains=masonPod,@perlTop
+syn region masonClass matchgroup=Delimiter start="<%class>" end="</%class>" contains=masonPod,@perlTop
+syn region masonShared matchgroup=Delimiter start="<%shared>" end="</%shared>" contains=masonPod,@perlTop
-syn region masonDef matchgroup=Delimiter start="<%def[^>]*>" end="</%def>" contains=@htmlTop
-syn region masonMethod matchgroup=Delimiter start="<%method[^>]*>" end="</%method>" contains=@htmlTop
+syn region masonDef matchgroup=Delimiter start="<%def\s*[-._/[:alnum:]]\+\s*>" end="</%def>" contains=@htmlTop
+syn region masonMethod matchgroup=Delimiter start="<%method\s*[-._/[:alnum:]]\+\s*>" end="</%method>" contains=@htmlTop
-syn region masonFlags matchgroup=Delimiter start="<%flags>" end="</%flags>" contains=@perlTop
-syn region masonAttr matchgroup=Delimiter start="<%attr>" end="</%attr>" contains=@perlTop
+syn region masonFlags matchgroup=Delimiter start="<%flags>" end="</%flags>" contains=masonPod,@perlTop
+syn region masonAttr matchgroup=Delimiter start="<%attr>" end="</%attr>" contains=masonPod,@perlTop
-syn region masonFilter matchgroup=Delimiter start="<%filter>" end="</%filter>" contains=@perlTop
+syn region masonFilter matchgroup=Delimiter start="<%filter>" end="</%filter>" contains=masonPod,@perlTop
syn region masonDoc matchgroup=Delimiter start="<%doc>" end="</%doc>"
syn region masonText matchgroup=Delimiter start="<%text>" end="</%text>"
@@ -67,6 +73,8 @@ syn cluster masonTop contains=masonLine,masonExpr,masonPerl,masonComp,masonArgs,
" Set up default highlighting. Almost all of this is done in the included
" syntax files.
hi def link masonDoc Comment
+hi def link masonPod Comment
+hi def link masonPerlComment perlComment
let b:current_syntax = "mason"
diff --git a/runtime/syntax/murphi.vim b/runtime/syntax/murphi.vim
index 5620010..b2faa8c 100644
--- a/runtime/syntax/murphi.vim
+++ b/runtime/syntax/murphi.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Murphi model checking language
" Maintainer: Matthew Fernandez <matthew.fernandez@gmail.com>
-" Last Change: 2017 May 3
+" Last Change: 2017 Aug 27
" Version: 2
" Remark: Originally authored by Diego Ongaro <ongaro@cs.stanford.edu>
@@ -105,23 +105,23 @@ syn region murphiComment start="--" end="$" contains=murphiTodo
syn region murphiComment start="/\*" end="\*/" contains=murphiTodo
" Link the rules to some groups.
-highlight link murphiComment Comment
-highlight link murphiString String
-highlight link murphiNumber Number
-highlight link murphiBoolean Boolean
-highlight link murphiIdentifier Identifier
-highlight link murphiFunction Function
-highlight link murphiStatement Statement
-highlight link murphiConditional Conditional
-highlight link murphiRepeat Repeat
-highlight link murphiLabel Label
-highlight link murphiOperator Operator
-highlight link murphiKeyword Keyword
-highlight link murphiType Type
-highlight link murphiStructure Structure
-highlight link murphiSpecial Special
-highlight link murphiDelimiter Delimiter
-highlight link murphiError Error
-highlight link murphiTodo Todo
+hi def link murphiComment Comment
+hi def link murphiString String
+hi def link murphiNumber Number
+hi def link murphiBoolean Boolean
+hi def link murphiIdentifier Identifier
+hi def link murphiFunction Function
+hi def link murphiStatement Statement
+hi def link murphiConditional Conditional
+hi def link murphiRepeat Repeat
+hi def link murphiLabel Label
+hi def link murphiOperator Operator
+hi def link murphiKeyword Keyword
+hi def link murphiType Type
+hi def link murphiStructure Structure
+hi def link murphiSpecial Special
+hi def link murphiDelimiter Delimiter
+hi def link murphiError Error
+hi def link murphiTodo Todo
let b:current_syntax = "murphi"
diff --git a/runtime/syntax/n1ql.vim b/runtime/syntax/n1ql.vim
new file mode 100644
index 0000000..bef65d8
--- /dev/null
+++ b/runtime/syntax/n1ql.vim
@@ -0,0 +1,434 @@
+" Vim syntax file
+" Language: N1QL / Couchbase Server
+" Maintainer: Eugene Ciurana <n1ql AT cime.net>
+" Version: 1.0
+" Source: https://github.com/pr3d4t0r/n1ql-vim-syntax
+"
+" License: Vim is Charityware. n1ql.vim syntax is Charityware.
+" (c) Copyright 2017 by Eugene Ciurana / pr3d4t0r. Licensed
+" under the standard VIM LICENSE - Vim command :help uganda.txt
+" for details.
+"
+" Questions, comments: <n1ql AT cime.net>
+" https://ciurana.eu/pgp, https://keybase.io/pr3d4t0r
+"
+" vim: set fileencoding=utf-8:
+
+
+if exists("b:current_syntax")
+ finish
+endif
+
+
+syn case ignore
+
+syn keyword n1qlSpecial DATASTORES
+syn keyword n1qlSpecial DUAL
+syn keyword n1qlSpecial FALSE
+syn keyword n1qlSpecial INDEXES
+syn keyword n1qlSpecial KEYSPACES
+syn keyword n1qlSpecial MISSING
+syn keyword n1qlSpecial NAMESPACES
+syn keyword n1qlSpecial NULL
+syn keyword n1qlSpecial TRUE
+
+
+"
+" *** keywords ***
+"
+syn keyword n1qlKeyword ALL
+syn keyword n1qlKeyword ANY
+syn keyword n1qlKeyword ASC
+syn keyword n1qlKeyword BEGIN
+syn keyword n1qlKeyword BETWEEN
+syn keyword n1qlKeyword BREAK
+syn keyword n1qlKeyword BUCKET
+syn keyword n1qlKeyword CALL
+syn keyword n1qlKeyword CASE
+syn keyword n1qlKeyword CAST
+syn keyword n1qlKeyword CLUSTER
+syn keyword n1qlKeyword COLLATE
+syn keyword n1qlKeyword COLLECTION
+syn keyword n1qlKeyword CONNECT
+syn keyword n1qlKeyword CONTINUE
+syn keyword n1qlKeyword CORRELATE
+syn keyword n1qlKeyword COVER
+syn keyword n1qlKeyword DATABASE
+syn keyword n1qlKeyword DATASET
+syn keyword n1qlKeyword DATASTORE
+syn keyword n1qlKeyword DECLARE
+syn keyword n1qlKeyword DECREMENT
+syn keyword n1qlKeyword DERIVED
+syn keyword n1qlKeyword DESC
+syn keyword n1qlKeyword DESCRIBE
+syn keyword n1qlKeyword DO
+syn keyword n1qlKeyword EACH
+syn keyword n1qlKeyword ELEMENT
+syn keyword n1qlKeyword ELSE
+syn keyword n1qlKeyword END
+syn keyword n1qlKeyword EVERY
+syn keyword n1qlKeyword EXCLUDE
+syn keyword n1qlKeyword EXISTS
+syn keyword n1qlKeyword FETCH
+syn keyword n1qlKeyword FIRST
+syn keyword n1qlKeyword FLATTEN
+syn keyword n1qlKeyword FOR
+syn keyword n1qlKeyword FORCE
+syn keyword n1qlKeyword FROM
+syn keyword n1qlKeyword FUNCTION
+syn keyword n1qlKeyword GROUP
+syn keyword n1qlKeyword GSI
+syn keyword n1qlKeyword HAVING
+syn keyword n1qlKeyword IF
+syn keyword n1qlKeyword IGNORE
+syn keyword n1qlKeyword INCLUDE
+syn keyword n1qlKeyword INCREMENT
+syn keyword n1qlKeyword INDEX
+syn keyword n1qlKeyword INITIAL
+syn keyword n1qlKeyword INLINE
+syn keyword n1qlKeyword INNER
+syn keyword n1qlKeyword INTO
+syn keyword n1qlKeyword KEY
+syn keyword n1qlKeyword KEYS
+syn keyword n1qlKeyword KEYSPACE
+syn keyword n1qlKeyword KNOWN
+syn keyword n1qlKeyword LAST
+syn keyword n1qlKeyword LET
+syn keyword n1qlKeyword LETTING
+syn keyword n1qlKeyword LIMIT
+syn keyword n1qlKeyword LOOP
+syn keyword n1qlKeyword LSM
+syn keyword n1qlKeyword MAP
+syn keyword n1qlKeyword MAPPING
+syn keyword n1qlKeyword MATCHED
+syn keyword n1qlKeyword MATERIALIZED
+syn keyword n1qlKeyword MERGE
+syn keyword n1qlKeyword NAMESPACE
+syn keyword n1qlKeyword NEST
+syn keyword n1qlKeyword OPTION
+syn keyword n1qlKeyword ORDER
+syn keyword n1qlKeyword OUTER
+syn keyword n1qlKeyword OVER
+syn keyword n1qlKeyword PARSE
+syn keyword n1qlKeyword PARTITION
+syn keyword n1qlKeyword PASSWORD
+syn keyword n1qlKeyword PATH
+syn keyword n1qlKeyword POOL
+syn keyword n1qlKeyword PRIMARY
+syn keyword n1qlKeyword PRIVATE
+syn keyword n1qlKeyword PRIVILEGE
+syn keyword n1qlKeyword PROCEDURE
+syn keyword n1qlKeyword PUBLIC
+syn keyword n1qlKeyword REALM
+syn keyword n1qlKeyword REDUCE
+syn keyword n1qlKeyword RETURN
+syn keyword n1qlKeyword RETURNING
+syn keyword n1qlKeyword ROLE
+syn keyword n1qlKeyword SATISFIES
+syn keyword n1qlKeyword SCHEMA
+syn keyword n1qlKeyword SELF
+syn keyword n1qlKeyword SEMI
+syn keyword n1qlKeyword SHOW
+syn keyword n1qlKeyword START
+syn keyword n1qlKeyword STATISTICS
+syn keyword n1qlKeyword SYSTEM
+syn keyword n1qlKeyword THEN
+syn keyword n1qlKeyword TRANSACTION
+syn keyword n1qlKeyword TRIGGER
+syn keyword n1qlKeyword UNDER
+syn keyword n1qlKeyword UNKNOWN
+syn keyword n1qlKeyword UNSET
+syn keyword n1qlKeyword USE
+syn keyword n1qlKeyword USER
+syn keyword n1qlKeyword USING
+syn keyword n1qlKeyword VALIDATE
+syn keyword n1qlKeyword VALUE
+syn keyword n1qlKeyword VALUED
+syn keyword n1qlKeyword VALUES
+syn keyword n1qlKeyword VIEW
+syn keyword n1qlKeyword WHEN
+syn keyword n1qlKeyword WHERE
+syn keyword n1qlKeyword WHILE
+syn keyword n1qlKeyword WITHIN
+syn keyword n1qlKeyword WORK
+
+
+"
+" *** functions ***
+"
+syn keyword n1qlOperator ABS
+syn keyword n1qlOperator ACOS
+syn keyword n1qlOperator ARRAY_AGG
+syn keyword n1qlOperator ARRAY_APPEND
+syn keyword n1qlOperator ARRAY_AVG
+syn keyword n1qlOperator ARRAY_CONCAT
+syn keyword n1qlOperator ARRAY_CONTAINS
+syn keyword n1qlOperator ARRAY_COUNT
+syn keyword n1qlOperator ARRAY_DISTINCT
+syn keyword n1qlOperator ARRAY_FLATTEN
+syn keyword n1qlOperator ARRAY_IFNULL
+syn keyword n1qlOperator ARRAY_INSERT
+syn keyword n1qlOperator ARRAY_INTERSECT
+syn keyword n1qlOperator ARRAY_LENGTH
+syn keyword n1qlOperator ARRAY_MAX
+syn keyword n1qlOperator ARRAY_MIN
+syn keyword n1qlOperator ARRAY_POSITION
+syn keyword n1qlOperator ARRAY_PREPEND
+syn keyword n1qlOperator ARRAY_PUT
+syn keyword n1qlOperator ARRAY_RANGE
+syn keyword n1qlOperator ARRAY_REMOVE
+syn keyword n1qlOperator ARRAY_REPEAT
+syn keyword n1qlOperator ARRAY_REPLACE
+syn keyword n1qlOperator ARRAY_REVERSE
+syn keyword n1qlOperator ARRAY_SORT
+syn keyword n1qlOperator ARRAY_START
+syn keyword n1qlOperator ARRAY_SUM
+syn keyword n1qlOperator ARRAY_SYMDIFF
+syn keyword n1qlOperator ARRAY_UNION
+syn keyword n1qlOperator ASIN
+syn keyword n1qlOperator ATAN
+syn keyword n1qlOperator ATAN2
+syn keyword n1qlOperator AVG
+syn keyword n1qlOperator BASE64
+syn keyword n1qlOperator BASE64_DECODE
+syn keyword n1qlOperator BASE64_ENCODE
+syn keyword n1qlOperator CEIL
+syn keyword n1qlOperator CLOCK_LOCAL
+syn keyword n1qlOperator CLOCK_STR
+syn keyword n1qlOperator CLOCK_TZ
+syn keyword n1qlOperator CLOCK_UTC
+syn keyword n1qlOperator CLOCL_MILLIS
+syn keyword n1qlOperator CONTAINS
+syn keyword n1qlOperator COS
+syn keyword n1qlOperator COUNT
+syn keyword n1qlOperator DATE_ADD_MILLIS
+syn keyword n1qlOperator DATE_ADD_STR
+syn keyword n1qlOperator DATE_DIFF_MILLIS
+syn keyword n1qlOperator DATE_DIFF_STR
+syn keyword n1qlOperator DATE_FORMAT_STR
+syn keyword n1qlOperator DATE_PART_MILLIS
+syn keyword n1qlOperator DATE_PART_STR
+syn keyword n1qlOperator DATE_RANGE_MILLIS
+syn keyword n1qlOperator DATE_RANGE_STR
+syn keyword n1qlOperator DATE_TRUC_STR
+syn keyword n1qlOperator DATE_TRUNC_MILLIS
+syn keyword n1qlOperator DECODE_JSON
+syn keyword n1qlOperator DEGREES
+syn keyword n1qlOperator DURATION_TO_STR
+syn keyword n1qlOperator E
+syn keyword n1qlOperator ENCODED_SIZE
+syn keyword n1qlOperator ENCODE_JSON
+syn keyword n1qlOperator EXP
+syn keyword n1qlOperator FLOOR
+syn keyword n1qlOperator GREATEST
+syn keyword n1qlOperator IFINF
+syn keyword n1qlOperator IFMISSING
+syn keyword n1qlOperator IFMISSINGORNULL
+syn keyword n1qlOperator IFNAN
+syn keyword n1qlOperator IFNANORINF
+syn keyword n1qlOperator IFNULL
+syn keyword n1qlOperator INITCAP
+syn keyword n1qlOperator ISARRAY
+syn keyword n1qlOperator ISATOM
+syn keyword n1qlOperator ISBOOLEAN
+syn keyword n1qlOperator ISNUMBER
+syn keyword n1qlOperator ISOBJECT
+syn keyword n1qlOperator ISSTRING
+syn keyword n1qlOperator LEAST
+syn keyword n1qlOperator LENGTH
+syn keyword n1qlOperator LN
+syn keyword n1qlOperator LOG
+syn keyword n1qlOperator LOWER
+syn keyword n1qlOperator LTRIM
+syn keyword n1qlOperator MAX
+syn keyword n1qlOperator META
+syn keyword n1qlOperator MILLIS
+syn keyword n1qlOperator MILLIS_TO_LOCAL
+syn keyword n1qlOperator MILLIS_TO_STR
+syn keyword n1qlOperator MILLIS_TO_TZ
+syn keyword n1qlOperator MILLIS_TO_UTC
+syn keyword n1qlOperator MILLIS_TO_ZONE_NAME
+syn keyword n1qlOperator MIN
+syn keyword n1qlOperator MISSINGIF
+syn keyword n1qlOperator NANIF
+syn keyword n1qlOperator NEGINFIF
+syn keyword n1qlOperator NOW_LOCAL
+syn keyword n1qlOperator NOW_MILLIS
+syn keyword n1qlOperator NOW_STR
+syn keyword n1qlOperator NOW_TZ
+syn keyword n1qlOperator NOW_UTC
+syn keyword n1qlOperator NULLIF
+syn keyword n1qlOperator OBJECT_ADD
+syn keyword n1qlOperator OBJECT_CONCAT
+syn keyword n1qlOperator OBJECT_INNER_PAIRS
+syn keyword n1qlOperator OBJECT_INNER_VALUES
+syn keyword n1qlOperator OBJECT_LENGTH
+syn keyword n1qlOperator OBJECT_NAMES
+syn keyword n1qlOperator OBJECT_PAIRS
+syn keyword n1qlOperator OBJECT_PUT
+syn keyword n1qlOperator OBJECT_REMOVE
+syn keyword n1qlOperator OBJECT_RENAME
+syn keyword n1qlOperator OBJECT_REPLACE
+syn keyword n1qlOperator OBJECT_UNWRAP
+syn keyword n1qlOperator OBJECT_VALUES
+syn keyword n1qlOperator PI
+syn keyword n1qlOperator POLY_LENGTH
+syn keyword n1qlOperator POSINIF
+syn keyword n1qlOperator POSITION
+syn keyword n1qlOperator POWER
+syn keyword n1qlOperator RADIANS
+syn keyword n1qlOperator RANDOM
+syn keyword n1qlOperator REGEXP_CONTAINS
+syn keyword n1qlOperator REGEXP_LIKE
+syn keyword n1qlOperator REGEXP_POSITION
+syn keyword n1qlOperator REGEXP_REPLACE
+syn keyword n1qlOperator REPEAT
+syn keyword n1qlOperator REPLACE
+syn keyword n1qlOperator REVERSE
+syn keyword n1qlOperator ROUND
+syn keyword n1qlOperator RTRIM
+syn keyword n1qlOperator SIGN
+syn keyword n1qlOperator SIN
+syn keyword n1qlOperator SPLIT
+syn keyword n1qlOperator SQRT
+syn keyword n1qlOperator STR_TO_DURATION
+syn keyword n1qlOperator STR_TO_MILLIS
+syn keyword n1qlOperator STR_TO_TZ
+syn keyword n1qlOperator STR_TO_UTC
+syn keyword n1qlOperator STR_TO_ZONE_NAME
+syn keyword n1qlOperator SUBSTR
+syn keyword n1qlOperator SUFFIXES
+syn keyword n1qlOperator SUM
+syn keyword n1qlOperator TAN
+syn keyword n1qlOperator TITLE
+syn keyword n1qlOperator TOARRAY
+syn keyword n1qlOperator TOATOM
+syn keyword n1qlOperator TOBOOLEAN
+syn keyword n1qlOperator TOKENS
+syn keyword n1qlOperator TONUMBER
+syn keyword n1qlOperator TOOBJECT
+syn keyword n1qlOperator TOSTRING
+syn keyword n1qlOperator TRIM
+syn keyword n1qlOperator TRUNC
+syn keyword n1qlOperator TYPE
+syn keyword n1qlOperator UPPER
+syn keyword n1qlOperator UUID
+syn keyword n1qlOperator WEEKDAY_MILLIS
+syn keyword n1qlOperator WEEKDAY_STR
+
+
+"
+" *** operators ***
+"
+syn keyword n1qlOperator AND
+syn keyword n1qlOperator AS
+syn keyword n1qlOperator BY
+syn keyword n1qlOperator DISTINCT
+syn keyword n1qlOperator EXCEPT
+syn keyword n1qlOperator ILIKE
+syn keyword n1qlOperator IN
+syn keyword n1qlOperator INTERSECT
+syn keyword n1qlOperator IS
+syn keyword n1qlOperator JOIN
+syn keyword n1qlOperator LEFT
+syn keyword n1qlOperator LIKE
+syn keyword n1qlOperator MINUS
+syn keyword n1qlOperator NEST
+syn keyword n1qlOperator NESTING
+syn keyword n1qlOperator NOT
+syn keyword n1qlOperator OFFSET
+syn keyword n1qlOperator ON
+syn keyword n1qlOperator OR
+syn keyword n1qlOperator OUT
+syn keyword n1qlOperator RIGHT
+syn keyword n1qlOperator SOME
+syn keyword n1qlOperator TO
+syn keyword n1qlOperator UNION
+syn keyword n1qlOperator UNIQUE
+syn keyword n1qlOperator UNNEST
+syn keyword n1qlOperator VIA
+syn keyword n1qlOperator WITH
+syn keyword n1qlOperator XOR
+
+
+"
+" *** statements ***
+"
+syn keyword n1qlStatement ALTER
+syn keyword n1qlStatement ANALYZE
+syn keyword n1qlStatement BUILD
+syn keyword n1qlStatement COMMIT
+syn keyword n1qlStatement CREATE
+syn keyword n1qlStatement DELETE
+syn keyword n1qlStatement DROP
+syn keyword n1qlStatement EXECUTE
+syn keyword n1qlStatement EXPLAIN
+syn keyword n1qlStatement GRANT
+syn keyword n1qlStatement INFER
+syn keyword n1qlStatement INSERT
+syn keyword n1qlStatement MERGE
+syn keyword n1qlStatement PREPARE
+syn keyword n1qlStatement RENAME
+syn keyword n1qlStatement REVOKE
+syn keyword n1qlStatement ROLLBACK
+syn keyword n1qlStatement SELECT
+syn keyword n1qlStatement SET
+syn keyword n1qlStatement TRUNCATE
+syn keyword n1qlStatement UPDATE
+syn keyword n1qlStatement UPSERT
+
+
+"
+" *** types ***
+"
+syn keyword n1qlType ARRAY
+syn keyword n1qlType BINARY
+syn keyword n1qlType BOOLEAN
+syn keyword n1qlType NUMBER
+syn keyword n1qlType OBJECT
+syn keyword n1qlType RAW
+syn keyword n1qlType STRING
+
+
+"
+" *** strings and characters ***
+"
+syn region n1qlString start=+"+ skip=+\\\\\|\\"+ end=+"+
+syn region n1qlString start=+'+ skip=+\\\\\|\\'+ end=+'+
+syn region n1qlBucketSpec start=+`+ skip=+\\\\\|\\'+ end=+`+
+
+
+"
+" *** numbers ***
+"
+syn match n1qlNumber "-\=\<\d*\.\=[0-9_]\>"
+
+
+"
+" *** comments ***
+"
+syn region n1qlComment start="/\*" end="\*/" contains=n1qlTODO
+syn match n1qlComment "--.*$" contains=n1qlTODO
+syn sync ccomment n1qlComment
+
+
+"
+" *** TODO ***
+"
+syn keyword n1qlTODO contained TODO FIXME XXX DEBUG NOTE
+
+
+"
+" *** enable ***
+"
+hi def link n1qlBucketSpec Underlined
+hi def link n1qlComment Comment
+hi def link n1qlKeyword Macro
+hi def link n1qlOperator Function
+hi def link n1qlSpecial Special
+hi def link n1qlStatement Statement
+hi def link n1qlString String
+hi def link n1qlTODO Todo
+hi def link n1qlType Type
+
+let b:current_syntax = "n1ql"
diff --git a/runtime/syntax/perl.vim b/runtime/syntax/perl.vim
index 6ab6cd8..6ac28f6 100644
--- a/runtime/syntax/perl.vim
+++ b/runtime/syntax/perl.vim
@@ -3,7 +3,7 @@
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl/tree/master
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change: 2013-07-23
+" Last Change: 2017-09-12
" Contributors: Andy Lester <andy@petdance.com>
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
" Lukas Mai <l.mai.web.de>
@@ -28,8 +28,9 @@
" unlet perl_fold
" unlet perl_fold_blocks
" unlet perl_nofold_packages
-" let perl_nofold_subs = 1
+" unlet perl_nofold_subs
" unlet perl_fold_anonymous_subs
+" unlet perl_no_subprototype_error
if exists("b:current_syntax")
finish
@@ -38,11 +39,6 @@ endif
let s:cpo_save = &cpo
set cpo&vim
-if exists('&regexpengine')
- let s:regexpengine=&regexpengine
- set regexpengine=1
-endif
-
" POD starts with ^=<word> and ends with ^=cut
if !exists("perl_include_pod") || perl_include_pod == 1
@@ -83,7 +79,7 @@ syn match perlControl "\<\%(BEGIN\|CHECK\|INIT\|END\|UNITCHECK\)\>\_s*" nextgr
syn match perlStatementStorage "\<\%(my\|our\|local\|state\)\>"
syn match perlStatementControl "\<\%(return\|last\|next\|redo\|goto\|break\)\>"
-syn match perlStatementScalar "\<\%(chom\=p\|chr\|crypt\|r\=index\|lc\%(first\)\=\|length\|ord\|pack\|sprintf\|substr\|uc\%(first\)\=\)\>"
+syn match perlStatementScalar "\<\%(chom\=p\|chr\|crypt\|r\=index\|lc\%(first\)\=\|length\|ord\|pack\|sprintf\|substr\|fc\|uc\%(first\)\=\)\>"
syn match perlStatementRegexp "\<\%(pos\|quotemeta\|split\|study\)\>"
syn match perlStatementNumeric "\<\%(abs\|atan2\|cos\|exp\|hex\|int\|log\|oct\|rand\|sin\|sqrt\|srand\)\>"
syn match perlStatementList "\<\%(splice\|unshift\|shift\|push\|pop\|join\|reverse\|grep\|map\|sort\|unpack\)\>"
@@ -94,9 +90,9 @@ syn match perlStatementFiledesc "\<\%(fcntl\|flock\|ioctl\|open\%(dir\)\=\|read
syn match perlStatementVector "\<vec\>"
syn match perlStatementFiles "\<\%(ch\%(dir\|mod\|own\|root\)\|glob\|link\|mkdir\|readlink\|rename\|rmdir\|symlink\|umask\|unlink\|utime\)\>"
syn match perlStatementFiles "-[rwxoRWXOezsfdlpSbctugkTBMAC]\>"
-syn match perlStatementFlow "\<\%(caller\|die\|dump\|eval\|exit\|wantarray\)\>"
-syn match perlStatementInclude "\<\%(require\|import\)\>"
-syn match perlStatementInclude "\<\%(use\|no\)\s\+\%(\%(attributes\|attrs\|autouse\|parent\|base\|big\%(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\%(::warnings\)\=\|feature\|fields\|filetest\|if\|integer\|less\|lib\|locale\|mro\|open\|ops\|overload\|re\|sigtrap\|sort\|strict\|subs\|threads\%(::shared\)\=\|utf8\|vars\|version\|vmsish\|warnings\%(::register\)\=\)\>\)\="
+syn match perlStatementFlow "\<\%(caller\|die\|dump\|eval\|exit\|wantarray\|evalbytes\)\>"
+syn match perlStatementInclude "\<\%(require\|import\|unimport\)\>"
+syn match perlStatementInclude "\<\%(use\|no\)\s\+\%(\%(attributes\|attrs\|autodie\|autouse\|parent\|base\|big\%(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\%(::warnings\)\=\|feature\|fields\|filetest\|if\|integer\|less\|lib\|locale\|mro\|open\|ops\|overload\|overloading\|re\|sigtrap\|sort\|strict\|subs\|threads\%(::shared\)\=\|utf8\|vars\|version\|vmsish\|warnings\%(::register\)\=\)\>\)\="
syn match perlStatementProc "\<\%(alarm\|exec\|fork\|get\%(pgrp\|ppid\|priority\)\|kill\|pipe\|set\%(pgrp\|priority\)\|sleep\|system\|times\|wait\%(pid\)\=\)\>"
syn match perlStatementSocket "\<\%(accept\|bind\|connect\|get\%(peername\|sock\%(name\|opt\)\)\|listen\|recv\|send\|setsockopt\|shutdown\|socket\%(pair\)\=\)\>"
syn match perlStatementIPC "\<\%(msg\%(ctl\|get\|rcv\|snd\)\|sem\%(ctl\|get\|op\)\|shm\%(ctl\|get\|read\|write\)\)\>"
@@ -108,7 +104,7 @@ syn match perlStatementMisc "\<\%(warn\|format\|formline\|reset\|scalar\|protot
syn keyword perlTodo TODO TODO: TBD TBD: FIXME FIXME: XXX XXX: NOTE NOTE: contained
-syn region perlStatementIndirObjWrap matchgroup=perlStatementIndirObj start="\<\%(map\|grep\|sort\|printf\=\|say\|system\|exec\)\>\s*{" end="}" contains=@perlTop,perlBraces extend
+syn region perlStatementIndirObjWrap matchgroup=perlStatementIndirObj start="\%(\<\%(map\|grep\|sort\|printf\=\|say\|system\|exec\)\>\s*\)\@<={" end="}" transparent extend
syn match perlLabel "^\s*\h\w*\s*::\@!\%(\<v\d\+\s*:\)\@<!"
@@ -125,7 +121,7 @@ syn match perlLabel "^\s*\h\w*\s*::\@!\%(\<v\d\+\s*:\)\@<!"
" Special variables first ($^A, ...) and ($|, $', ...)
syn match perlVarPlain "$^[ACDEFHILMNOPRSTVWX]\="
syn match perlVarPlain "$[\\\"\[\]'&`+*.,;=%~!?@#$<>(-]"
-syn match perlVarPlain "%+"
+syn match perlVarPlain "@[-+]"
syn match perlVarPlain "$\%(0\|[1-9]\d*\)"
" Same as above, but avoids confusion in $::foo (equivalent to $main::foo)
syn match perlVarPlain "$::\@!"
@@ -143,41 +139,46 @@ syn match perlPackageRef "[$@#%*&]\%(\%(::\|'\)\=\I\i*\%(\%(::\|'\)\I\i*\)*\)\
" just set the variable "perl_no_extended_vars"...
if !exists("perl_no_scope_in_variables")
- syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
- syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef
- syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
+ syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
+ syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
+ syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
else
- syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
- syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)"
- syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
+ syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
+ syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
+ syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
endif
+syn match perlVarPlain2 "%[-+]"
+
if !exists("perl_no_extended_vars")
syn cluster perlExpr contains=perlStatementIndirObjWrap,perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarPlain2,perlVarNotInMatches,perlVarSlash,perlVarBlock,perlVarBlock2,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ,perlArrow,perlBraces
- syn region perlArrow matchgroup=perlArrow start="->\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
- syn region perlArrow matchgroup=perlArrow start="->\s*\[" end="\]" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
- syn region perlArrow matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
- syn match perlArrow "->\s*{\s*\I\i*\s*}" contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
- syn region perlArrow matchgroup=perlArrow start="->\s*\$*\I\i*\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
- syn region perlVarBlock matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
- syn region perlVarBlock2 matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
- syn match perlVarPlain2 "[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
- syn match perlVarPlain "\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
- syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
- syn match perlVarSimpleMember "\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contains=perlVarSimpleMemberName contained extend
+ syn region perlArrow matchgroup=perlArrow start="->\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
+ syn region perlArrow matchgroup=perlArrow start="->\s*\[" end="\]" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
+ syn region perlArrow matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
+ syn match perlArrow "->\s*{\s*\I\i*\s*}" contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
+ syn region perlArrow matchgroup=perlArrow start="->\s*\$*\I\i*\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contained
+ syn region perlVarBlock matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
+ syn region perlVarBlock2 matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
+ syn match perlVarPlain2 "[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
+ syn match perlVarPlain "\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
+ syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
+ syn match perlVarSimpleMember "\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref contains=perlVarSimpleMemberName contained extend
syn match perlVarSimpleMemberName "\I\i*" contained
- syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
- syn match perlPackageConst "__PACKAGE__" nextgroup=perlMethod
- syn match perlMethod "->\$*\I\i*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod
+ syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref extend
+ syn match perlPackageConst "__PACKAGE__" nextgroup=perlMethod,perlPostDeref
+ syn match perlMethod "->\$*\I\i*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
+ syn match perlPostDeref "->\%($#\|[$@%&*]\)\*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
+ syn region perlPostDeref start="->\%($#\|[$@%&*]\)\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
+ syn region perlPostDeref matchgroup=perlPostDeref start="->\%($#\|[$@%&*]\){" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
endif
" File Descriptors
syn match perlFiledescRead "<\h\w*>"
-syn match perlFiledescStatementComma "(\=\s*\u\w*\s*,"me=e-1 transparent contained contains=perlFiledescStatement
-syn match perlFiledescStatementNocomma "(\=\s*\u\w*\s*[^, \t]"me=e-1 transparent contained contains=perlFiledescStatement
+syn match perlFiledescStatementComma "(\=\s*\<\u\w*\>\s*,"me=e-1 transparent contained contains=perlFiledescStatement
+syn match perlFiledescStatementNocomma "(\=\s*\<\u\w*\>\s*[^, \t]"me=e-1 transparent contained contains=perlFiledescStatement
-syn match perlFiledescStatement "\u\w*" contained
+syn match perlFiledescStatement "\<\u\w*\>" contained
" Special characters in strings and matches
syn match perlSpecialString "\\\%(\o\{1,3}\|x\%({\x\+}\|\x\{1,2}\)\|c.\|[^cx]\)" contained extend
@@ -241,20 +242,18 @@ syn region perlAnglesDQ start=+<+ end=+>+ extend contained contains=perlAnglesD
" Simple version of searches and matches
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[msixpodualgc]*+ contains=@perlInterpMatch keepend extend
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[msixpodualgc]*+ contains=@perlInterpMatch keepend extend
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[msixpodualgc]*+ contains=@perlInterpSQ keepend extend
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash keepend extend
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[msixpodualgc]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
-
-" A special case for m{}, m<> and m[] which allows for comments and extra whitespace in the pattern
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[msixpodualgc]*+ contains=@perlInterpMatch,perlComment,perlBracesDQ extend
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[msixpodualgc]*+ contains=@perlInterpMatch,perlAnglesDQ keepend extend
-syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][msixpodualgc]*+ contains=@perlInterpMatch,perlComment,perlBracketsDQ keepend extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[msixpodualgcn]*+ contains=@perlInterpMatch keepend extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[msixpodualgcn]*+ contains=@perlInterpMatch keepend extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[msixpodualgcn]*+ contains=@perlInterpSQ keepend extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[msixpodualgcn]*+ contains=@perlInterpSlash keepend extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[msixpodualgcn]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[msixpodualgcn]*+ contains=@perlInterpMatch,perlBracesDQ extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[msixpodualgcn]*+ contains=@perlInterpMatch,perlAnglesDQ keepend extend
+syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][msixpodualgcn]*+ contains=@perlInterpMatch,perlBracketsDQ keepend extend
" Below some hacks to recognise the // variant. This is virtually impossible to catch in all
" cases as the / is used in so many other ways, but these should be the most obvious ones.
-syn region perlMatch matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash extend
+syn region perlMatch matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[msixpodualgcn]*+ contains=@perlInterpSlash extend
" Substitutions
@@ -267,12 +266,12 @@ syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*<+ end=+>+ contains=@perlInterpMatch,perlAnglesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*\[+ end=+\]+ contains=@perlInterpMatch,perlBracketsDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*{+ end=+}+ contains=@perlInterpMatch,perlBracesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
-syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[msixpodualgcer]*+ keepend contained contains=@perlInterpDQ extend
-syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+(+ end=+)[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlParensDQ keepend extend
-syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend extend
-syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+{+ end=+}[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend extend extend
-syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+<+ end=+>[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend extend
-syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[msixpodualgcer]*+ contained contains=@perlInterpSQ keepend extend
+syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[msixpodualgcern]*+ keepend contained contains=@perlInterpDQ extend
+syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+(+ end=+)[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlParensDQ keepend extend
+syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][msixpodualgcern]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend extend
+syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+{+ end=+}[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend extend extend
+syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+<+ end=+>[msixpodualgcern]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend extend
+syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[msixpodualgcern]*+ contained contains=@perlInterpSQ keepend extend
" Translations
" perlMatch is the first part, perlTranslation* is the second, translator part.
@@ -314,35 +313,40 @@ syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend extend
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\>\s*\z([^[:space:]#([{<'/]\)+ end=+\z1[imosx]*+ contains=@perlInterpMatch keepend extend
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*/+ end=+/[imosx]*+ contains=@perlInterpSlash keepend extend
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr#+ end=+#[imosx]*+ contains=@perlInterpMatch keepend extend
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*'+ end=+'[imosx]*+ contains=@perlInterpSQ keepend extend
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*(+ end=+)[imosx]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\>\s*\z([^[:space:]#([{<'/]\)+ end=+\z1[imosxdual]*+ contains=@perlInterpMatch keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*/+ end=+/[imosxdual]*+ contains=@perlInterpSlash keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr#+ end=+#[imosxdual]*+ contains=@perlInterpMatch keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*'+ end=+'[imosxdual]*+ contains=@perlInterpSQ keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*(+ end=+)[imosxdual]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
" A special case for qr{}, qr<> and qr[] which allows for comments and extra whitespace in the pattern
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*{+ end=+}[imosx]*+ contains=@perlInterpMatch,perlBracesDQ,perlComment keepend extend
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*<+ end=+>[imosx]*+ contains=@perlInterpMatch,perlAnglesDQ,perlComment keepend extend
-syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*\[+ end=+\][imosx]*+ contains=@perlInterpMatch,perlBracketsDQ,perlComment keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*{+ end=+}[imosxdual]*+ contains=@perlInterpMatch,perlBracesDQ,perlComment keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*<+ end=+>[imosxdual]*+ contains=@perlInterpMatch,perlAnglesDQ,perlComment keepend extend
+syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*\[+ end=+\][imosxdual]*+ contains=@perlInterpMatch,perlBracketsDQ,perlComment keepend extend
" Constructs such as print <<EOF [...] EOF, 'here' documents
"
" XXX Any statements after the identifier are in perlString colour (i.e.
" 'if $a' in 'print <<EOF if $a'). This is almost impossible to get right it
" seems due to the 'auto-extending nature' of regions.
+syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+ end=+$+ contains=@perlTop oneline
+syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+$+ contains=@perlTop oneline
+syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+$+ contains=@perlTop oneline
+syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*""+ end=+$+ contains=@perlTop oneline
+syn region perlHereDocStart matchgroup=perlStringStartEnd start=+<<\s*''+ end=+$+ contains=@perlTop oneline
if exists("perl_fold")
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\).*+ end=+^\z1$+ contains=@perlInterpDQ fold extend
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+^\z1$+ contains=@perlInterpDQ fold extend
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+^\z1$+ contains=@perlInterpSQ fold extend
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine fold extend
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine fold extend
+ syn region perlHereDoc start=+<<\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ fold extend
+ syn region perlHereDoc start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ fold extend
+ syn region perlHereDoc start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpSQ fold extend
+ syn region perlHereDoc start=+<<\s*""+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine fold extend
+ syn region perlHereDoc start=+<<\s*''+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpSQ,perlNotEmptyLine fold extend
syn region perlAutoload matchgroup=perlStringStartEnd start=+<<\s*\(['"]\=\)\z(END_\%(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL fold extend
else
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\).*+ end=+^\z1$+ contains=@perlInterpDQ
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+^\z1$+ contains=@perlInterpDQ
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+^\z1$+ contains=@perlInterpSQ
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine
- syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine
+ syn region perlHereDoc start=+<<\z(\I\i*\)+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ
+ syn region perlHereDoc start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpDQ
+ syn region perlHereDoc start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ matchgroup=perlStringStartEnd end=+^\z1$+ contains=perlHereDocStart,@perlInterpSQ
+ syn region perlHereDoc start=+<<\s*""+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine
+ syn region perlHereDoc start=+<<\s*''+ matchgroup=perlStringStartEnd end=+^$+ contains=perlHereDocStart,@perlInterpSQ,perlNotEmptyLine
syn region perlAutoload matchgroup=perlStringStartEnd start=+<<\s*\(['"]\=\)\z(END_\%(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL
endif
@@ -356,27 +360,21 @@ syn keyword perlStatementPackage package contained
" sub [name] [(prototype)] {
"
syn match perlSubError "[^[:space:];{#]" contained
-if v:version == 701 && !has('patch221') " XXX I hope that's the right one
- syn match perlSubAttributes ":" contained
+syn match perlSubAttributesCont "\h\w*\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained
+syn region perlSubAttributesCont matchgroup=perlSubAttributesCont start="\h\w*(" end=")\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained contains=@perlInterpSQ,perlParensSQ
+syn cluster perlSubAttrMaybe contains=perlSubAttributesCont,perlSubError,perlFakeGroup
+syn match perlSubAttributes "" contained nextgroup=perlSubError
+syn match perlSubAttributes ":\_s*" contained nextgroup=@perlSubAttrMaybe
+if get(g:, "perl_sub_signatures", 0)
+ syn match perlSignature +(\_[^)]*)\_s*+ nextgroup=perlSubAttributes,perlComment contained
else
- syn match perlSubAttributesCont "\h\w*\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained
- syn region perlSubAttributesCont matchgroup=perlSubAttributesCont start="\h\w*(" end=")\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained contains=@perlInterpSQ,perlParensSQ
- syn cluster perlSubAttrMaybe contains=perlSubAttributesCont,perlSubError,perlFakeGroup
- syn match perlSubAttributes "" contained nextgroup=perlSubError
- syn match perlSubAttributes ":\_s*" contained nextgroup=@perlSubAttrMaybe
+ syn match perlSubPrototypeError "(\%(\_s*\%(\%(\\\%([$@%&*]\|\[[$@%&*]\+\]\)\|[$&*]\|[@%]\%(\_s*)\)\@=\|;\%(\_s*[)$@%&*\\]\)\@=\|_\%(\_s*[);]\)\@=\)\_s*\)*\)\@>\zs\_[^)]\+" contained
+ syn match perlSubPrototype +(\_[^)]*)\_s*+ nextgroup=perlSubAttributes,perlComment contained contains=perlSubPrototypeError
endif
-syn match perlSubPrototypeError "(\%(\_s*\%(\%(\\\%([$@%&*]\|\[[$@%&*]\+\]\)\|[$&*]\|[@%]\%(\_s*)\)\@=\|;\%(\_s*[)$@%&*\\]\)\@=\|_\%(\_s*[);]\)\@=\)\_s*\)*\)\@>\zs\_[^)]\+" contained
-syn match perlSubPrototype +(\_[^)]*)\_s*\|+ nextgroup=perlSubAttributes,perlComment contained contains=perlSubPrototypeError
-syn match perlSubName +\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|+ contained nextgroup=perlSubPrototype,perlComment
-syn match perlFunction +\<sub\>\_s*+ nextgroup=perlSubName
+syn match perlSubName +\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|+ contained nextgroup=perlSubPrototype,perlSignature,perlSubAttributes,perlComment
-if !exists("perl_no_scope_in_variables")
- syn match perlFunctionPRef "\h\w*::" contained
- syn match perlFunctionName "\h\w*[^:]" contained
-else
- syn match perlFunctionName "\h[[:alnum:]_:]*" contained
-endif
+syn match perlFunction +\<sub\>\_s*+ nextgroup=perlSubName
" The => operator forces a bareword to the left of it to be interpreted as
" a string
@@ -397,10 +395,10 @@ syn match perlFormatField "@$" contained
" __END__ and __DATA__ clauses
if exists("perl_fold")
- syntax region perlDATA start="^__DATA__$" skip="." end="." fold
+ syntax region perlDATA start="^__DATA__$" skip="." end="." contains=@perlDATA fold
syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA fold
else
- syntax region perlDATA start="^__DATA__$" skip="." end="."
+ syntax region perlDATA start="^__DATA__$" skip="." end="." contains=@perlDATA
syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA
endif
@@ -414,9 +412,9 @@ if exists("perl_fold")
syn region perlPackageFold start="^package \S\+;\s*\%(#.*\)\=$" end="^1;\=\s*\%(#.*\)\=$" end="\n\+package"me=s-1 transparent fold keepend
endif
if !exists("perl_nofold_subs")
- if exists("perl_fold_anonymous_subs") && perl_fold_anonymous_subs
- syn region perlSubFold start="\<sub\>[^\n;]*{" end="}" transparent fold keepend extend
- syn region perlSubFold start="\<\%(BEGIN\|END\|CHECK\|INIT\)\>\s*{" end="}" transparent fold keepend
+ if get(g:, "perl_fold_anonymous_subs", 0)
+ syn region perlSubFold start="\<sub\>[^{]*{" end="}" transparent fold keepend extend
+ syn region perlSubFold start="\<\%(BEGIN\|END\|CHECK\|INIT\)\>\s*{" end="}" transparent fold keepend
else
syn region perlSubFold start="^\z(\s*\)\<sub\>.*[^};]$" end="^\z1}\s*\%(#.*\)\=$" transparent fold keepend
syn region perlSubFold start="^\z(\s*\)\<\%(BEGIN\|END\|CHECK\|INIT\|UNITCHECK\)\>.*[^};]$" end="^\z1}\s*$" transparent fold keepend
@@ -424,7 +422,7 @@ if exists("perl_fold")
endif
if exists("perl_fold_blocks")
- syn region perlBlockFold start="^\z(\s*\)\%(if\|elsif\|unless\|for\|while\|until\|given\)\s*(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" start="^\z(\s*\)foreach\s*\%(\%(my\|our\)\=\s*\S\+\s*\)\=(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
+ syn region perlBlockFold start="^\z(\s*\)\%(if\|elsif\|unless\|for\|while\|until\|given\)\s*(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" start="^\z(\s*\)for\%(each\)\=\s*\%(\%(my\|our\)\=\s*\S\+\s*\)\=(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
syn region perlBlockFold start="^\z(\s*\)\%(do\|else\)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*while" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
endif
@@ -435,7 +433,6 @@ else
syn sync minlines=0
endif
-
" NOTE: If you're linking new highlight groups to perlString, please also put
" them into b:match_skip in ftplugin/perl.vim.
@@ -458,6 +455,7 @@ hi def link perlOperator Operator
hi def link perlFunction Keyword
hi def link perlSubName Function
hi def link perlSubPrototype Type
+hi def link perlSignature Type
hi def link perlSubAttributes PreProc
hi def link perlSubAttributesCont perlSubAttributes
hi def link perlComment Comment
@@ -516,8 +514,11 @@ hi def link perlStatementMisc perlStatement
hi def link perlStatementIndirObj perlStatement
hi def link perlFunctionName perlIdentifier
hi def link perlMethod perlIdentifier
+hi def link perlPostDeref perlIdentifier
hi def link perlFunctionPRef perlType
-hi def link perlPOD perlComment
+if !get(g:, 'perl_include_pod', 1)
+ hi def link perlPOD perlComment
+endif
hi def link perlShellCommand perlString
hi def link perlSpecialAscii perlSpecial
hi def link perlSpecialDollar perlSpecial
@@ -548,7 +549,6 @@ hi def link perlElseIfError Error
hi def link perlSubPrototypeError Error
hi def link perlSubError Error
-
" Syncing to speed up processing
"
if !exists("perl_no_sync_on_sub")
@@ -575,11 +575,6 @@ syn sync match perlSyncPOD grouphere NONE "^=cut"
let b:current_syntax = "perl"
-if exists('&regexpengine')
- let &regexpengine=s:regexpengine
- unlet s:regexpengine
-endif
-
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/syntax/pod.vim b/runtime/syntax/pod.vim
index 7c65a84..6047132 100644
--- a/runtime/syntax/pod.vim
+++ b/runtime/syntax/pod.vim
@@ -4,7 +4,7 @@
" Previously: Scott Bigham <dsb@killerbunnies.org>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change: 2013-07-21
+" Last Change: 2017-09-12
" To add embedded POD documentation highlighting to your syntax file, add
" the commands:
@@ -68,7 +68,7 @@ syn match podEscape2 "\d\+>"me=e-1 contained contains=@NoSpell
hi def link podCommand Statement
hi def link podCmdText String
-hi def link podOverIndent Number
+hi def link podOverIndent Number
hi def link podForKeywd Identifier
hi def link podFormat Identifier
hi def link podVerbatimLine PreProc
@@ -76,7 +76,6 @@ hi def link podSpecial Identifier
hi def link podEscape String
hi def link podEscape2 Number
-
if exists("perl_pod_spellcheck_headings")
" Spell-check headings
syn clear podCmdText
diff --git a/runtime/syntax/readline.vim b/runtime/syntax/readline.vim
index 2ec0c8e..b50b9c6 100644
--- a/runtime/syntax/readline.vim
+++ b/runtime/syntax/readline.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: readline(3) configuration file
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2012-04-25
+" Latest Revision: 2017-06-25
" readline_has_bash - if defined add support for bash specific
" settings/functions
@@ -119,6 +119,7 @@ syn keyword readlineVariable contained
\ nextgroup=readlineBoolean
\ skipwhite
\ bind-tty-special-chars
+ \ colored-stats
\ completion-ignore-case
\ completion-map-case
\ convert-meta
@@ -142,6 +143,7 @@ syn keyword readlineVariable contained
\ revert-all-at-newline
\ show-all-if-ambiguous
\ show-all-if-unmodified
+ \ show-mode-in-prompt
\ skip-completed-text
\ visible-stats
@@ -158,6 +160,7 @@ syn keyword readlineVariable contained
\ completion-prefix-display-length
\ completion-query-items
\ history-size
+ \ keyseq-timeout
syn keyword readlineVariable contained
\ nextgroup=readlineEditingMode
diff --git a/runtime/syntax/sas.vim b/runtime/syntax/sas.vim
index 82ffe60..fad6066 100644
--- a/runtime/syntax/sas.vim
+++ b/runtime/syntax/sas.vim
@@ -3,7 +3,7 @@
" Maintainer: Zhen-Huan Hu <wildkeny@gmail.com>
" Original Maintainer: James Kidd <james.kidd@covance.com>
" Version: 3.0.0
-" Last Change: Mar 10, 2017
+" Last Change: Aug 26, 2017
"
" 2017 Mar 7
"
@@ -120,7 +120,7 @@ syn match sasDataStepStatement '\v%(^|;)\s*\zs%(dcl|declare)>' display contained
syn match sasDataStepStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty
syn match sasDataStepStatement '\v%(^|;)\s*\zs%(format|informat|input|put)>' display contained contains=sasDataStepStatementKeyword nextgroup=sasFormatContext skipwhite skipnl skipempty
syn match sasDataStepStatement '\v%(^|;)\s*\zs%(cards|datalines|lines)4=\s*;' display contained contains=sasDataStepStatementKeyword nextgroup=sasDataLine skipwhite skipnl skipempty
-syn region sasDataLine start='^' end='^;'me=s-1 contained
+syn region sasDataLine start='^' end='^\s*;'me=s-1 contained
syn region sasDataStep matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsdata>' end='\v%(^|;)\s*%(run|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,@sasDataStepSyntax
syn cluster sasDataStepSyntax contains=sasDataStepFunction,sasDataStepHashOperator,sasDataStepHashAttribute,sasDataStepHashMethod,sasDataStepControl,sasDataStepStatement
diff --git a/runtime/syntax/tap.vim b/runtime/syntax/tap.vim
new file mode 100644
index 0000000..db37bb8
--- /dev/null
+++ b/runtime/syntax/tap.vim
@@ -0,0 +1,97 @@
+" Vim syntax file
+" Language: Verbose TAP Output
+" Maintainer: Rufus Cable <rufus@threebytesfull.com>
+" Remark: Simple syntax highlighting for TAP output
+" License:
+" Copyright: (c) 2008-2013 Rufus Cable
+" Last Change: 2014-12-13
+
+if exists("b:current_syntax")
+ finish
+endif
+
+syn match tapTestDiag /^ *#.*/ contains=tapTestTodo
+syn match tapTestTime /^ *\[\d\d:\d\d:\d\d\].*/ contains=tapTestFile
+syn match tapTestFile /\w\+\/[^. ]*/ contained
+syn match tapTestFileWithDot /\w\+\/[^ ]*/ contained
+
+syn match tapTestPlan /^ *\d\+\.\.\d\+$/
+
+" tapTest is a line like 'ok 1', 'not ok 2', 'ok 3 - xxxx'
+syn match tapTest /^ *\(not \)\?ok \d\+.*/ contains=tapTestStatusOK,tapTestStatusNotOK,tapTestLine
+
+" tapTestLine is the line without the ok/not ok status - i.e. number and
+" optional message
+syn match tapTestLine /\d\+\( .*\|$\)/ contains=tapTestNumber,tapTestLoadMessage,tapTestTodo,tapTestSkip contained
+
+" turn ok/not ok messages green/red respectively
+syn match tapTestStatusOK /ok/ contained
+syn match tapTestStatusNotOK /not ok/ contained
+
+" highlight todo tests
+syn match tapTestTodo /\(# TODO\|Failed (TODO)\) .*$/ contained contains=tapTestTodoRev
+syn match tapTestTodoRev /\<TODO\>/ contained
+
+" highlight skipped tests
+syn match tapTestSkip /# skip .*$/ contained contains=tapTestSkipTag
+syn match tapTestSkipTag /\(# \)\@<=skip\>/ contained
+
+" look behind so "ok 123" and "not ok 124" match test number
+syn match tapTestNumber /\(ok \)\@<=\d\d*/ contained
+syn match tapTestLoadMessage /\*\*\*.*\*\*\*/ contained contains=tapTestThreeStars,tapTestFileWithDot
+syn match tapTestThreeStars /\*\*\*/ contained
+
+syn region tapTestRegion start=/^ *\(not \)\?ok.*$/me=e+1 end=/^\(\(not \)\?ok\|# Looks like you planned \|All tests successful\|Bailout called\)/me=s-1 fold transparent excludenl
+syn region tapTestResultsOKRegion start=/^\(All tests successful\|Result: PASS\)/ end=/$/
+syn region tapTestResultsNotOKRegion start=/^\(# Looks like you planned \|Bailout called\|# Looks like you failed \|Result: FAIL\)/ end=/$/
+syn region tapTestResultsSummaryRegion start=/^Test Summary Report/ end=/^Files=.*$/ contains=tapTestResultsSummaryHeading,tapTestResultsSummaryNotOK
+
+syn region tapTestResultsSummaryHeading start=/^Test Summary Report/ end=/^-\+$/ contained
+syn region tapTestResultsSummaryNotOK start=/TODO passed:/ end=/$/ contained
+
+syn region tapTestInstructionsRegion start=/\%1l/ end=/^$/
+
+set foldtext=TAPTestLine_foldtext()
+function! TAPTestLine_foldtext()
+ let line = getline(v:foldstart)
+ let sub = substitute(line, '/\*\|\*/\|{{{\d\=', '', 'g')
+ return sub
+endfunction
+
+set foldminlines=5
+set foldcolumn=2
+set foldenable
+set foldmethod=syntax
+syn sync fromstart
+
+if !exists("did_tapverboseoutput_syntax_inits")
+ let did_tapverboseoutput_syntax_inits = 1
+
+ hi tapTestStatusOK term=bold ctermfg=green guifg=Green
+ hi tapTestStatusNotOK term=reverse ctermfg=black ctermbg=red guifg=Black guibg=Red
+ hi tapTestTodo term=bold ctermfg=yellow ctermbg=black guifg=Yellow guibg=Black
+ hi tapTestTodoRev term=reverse ctermfg=black ctermbg=yellow guifg=Black guibg=Yellow
+ hi tapTestSkip term=bold ctermfg=lightblue guifg=LightBlue
+ hi tapTestSkipTag term=reverse ctermfg=black ctermbg=lightblue guifg=Black guibg=LightBlue
+ hi tapTestTime term=bold ctermfg=blue guifg=Blue
+ hi tapTestFile term=reverse ctermfg=black ctermbg=yellow guibg=Black guifg=Yellow
+ hi tapTestLoadedFile term=bold ctermfg=black ctermbg=cyan guibg=Cyan guifg=Black
+ hi tapTestThreeStars term=reverse ctermfg=blue guifg=Blue
+ hi tapTestPlan term=bold ctermfg=yellow guifg=Yellow
+
+ hi link tapTestFileWithDot tapTestLoadedFile
+ hi link tapTestNumber Number
+ hi link tapTestDiag Comment
+
+ hi tapTestRegion ctermbg=green
+
+ hi tapTestResultsOKRegion ctermbg=green ctermfg=black
+ hi tapTestResultsNotOKRegion ctermbg=red ctermfg=black
+
+ hi tapTestResultsSummaryHeading ctermbg=blue ctermfg=white
+ hi tapTestResultsSummaryNotOK ctermbg=red ctermfg=black
+
+ hi tapTestInstructionsRegion ctermbg=lightmagenta ctermfg=black
+endif
+
+let b:current_syntax="tapVerboseOutput"
diff --git a/runtime/syntax/tt2.vim b/runtime/syntax/tt2.vim
index 5321e27..6432b85 100644
--- a/runtime/syntax/tt2.vim
+++ b/runtime/syntax/tt2.vim
@@ -3,10 +3,10 @@
" Author: Moriki, Atsushi <4woods+vim@gmail.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
-" Last Change: 2013-07-21
+" Last Change: 2015-04-25
"
-" Instration:
-" put tt2.vim and tt2html.vim in to your syntax diretory.
+" Installation:
+" put tt2.vim and tt2html.vim in to your syntax directory.
"
" add below in your filetype.vim.
" au BufNewFile,BufRead *.tt2 setf tt2
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 52df919..3e982b8 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -78,7 +78,7 @@ syn case match
" Function Names {{{2
syn keyword vimFuncName contained abs append argv assert_fails assert_notequal atan2 buflisted bufwinid byteidxcomp ch_close_in ch_getjob ch_open ch_sendraw char2nr complete copy cscope_connection did_filetype escape execute expand filewritable float2nr fnamemodify foldtext function getbufline getcharsearch getcmdwintype getfontname getftype getpid getregtype getwininfo glob has_key histdel hlexists index inputrestore invert items job_start js_decode json_encode libcall line2byte log map match matcharg matchlist max mode nr2char perleval printf pyeval reltime remote_expr remote_read rename reverse screenchar search searchpairpos serverlist setcmdpos setloclist setqflist settabwinvar shellescape sin soundfold split str2nr strdisplaywidth stridx strpart strwidth synID synconcealed systemlist tabpagewinnr tan test_alloc_fail test_garbagecollect_now test_null_job test_null_string timer_pause timer_stopall tr undofile values wildmenumode win_gotoid winbufnr winline winrestview wordcount
-syn keyword vimFuncName contained acos argc asin assert_false assert_notmatch browse bufloaded bufwinnr call ch_evalexpr ch_info ch_read ch_setoptions cindent complete_add cos cursor diff_filler eval exepath extend filter floor foldclosed foldtextresult garbagecollect getbufvar getcmdline getcompletion getfperm getline getpos gettabinfo getwinposx glob2regpat haslocaldir histget hostname input inputsave isdirectory job_getchannel job_status js_encode keys libcallnr lispindent log10 maparg matchadd matchdelete matchstr min mzeval or pow pumvisible range reltimefloat remote_foreground remote_send repeat round screencol searchdecl searchpos setbufvar setfperm setmatches setreg setwinvar shiftwidth sinh spellbadword sqrt strcharpart strftime string strridx submatch synIDattr synstack tabpagebuflist tagfiles tanh test_autochdir test_null_channel test_null_list test_settime timer_start tolower trunc undotree virtcol win_findbuf win_id2tabwin wincol winnr winsaveview writefile
+syn keyword vimFuncName contained acos argc asin assert_false assert_notmatch browse bufloaded bufwinnr call ch_evalexpr ch_info ch_read ch_setoptions cindent complete_add cos cursor diff_filler eval exepath extend filter floor foldclosed foldtextresult garbagecollect getbufvar getcmdline getcompletion getfperm getline getpos gettabinfo getwinposx glob2regpat haslocaldir histget hostname input inputsave isdirectory job_getchannel job_status js_encode keys libcallnr lispindent log10 maparg matchadd matchdelete matchstr min mzeval or pow pumvisible range reltimefloat remote_foreground remote_send repeat round screencol searchdecl searchpos setbufline setbufvar setfperm setmatches setreg setwinvar shiftwidth sinh spellbadword sqrt strcharpart strftime string strridx submatch synIDattr synstack tabpagebuflist tagfiles tanh test_autochdir test_null_channel test_null_list test_settime timer_start tolower trunc undotree virtcol win_findbuf win_id2tabwin wincol winnr winsaveview writefile
syn keyword vimFuncName contained add argidx assert_equal assert_inrange assert_true browsedir bufname byte2line ceil ch_evalraw ch_log ch_readraw ch_status clearmatches complete_check cosh deepcopy diff_hlID eventhandler exists feedkeys finddir fmod foldclosedend foreground get getchar getcmdpos getcurpos getfsize getloclist getqflist gettabvar getwinposy globpath hasmapto histnr iconv inputdialog inputsecret islocked job_info job_stop json_decode len line localtime luaeval mapcheck matchaddpos matchend matchstrpos mkdir nextnonblank pathshorten prevnonblank py3eval readfile reltimestr remote_peek remove resolve screenattr screenrow searchpair server2client setcharsearch setline setpos settabvar sha256 simplify sort spellsuggest str2float strchars strgetchar strlen strtrans substitute synIDtrans system tabpagenr taglist tempname test_disable_char_avail test_null_dict test_null_partial timer_info timer_stop toupper type uniq visualmode win_getid win_id2win winheight winrestcmd winwidth xor
syn keyword vimFuncName contained and arglistid assert_exception assert_match atan bufexists bufnr byteidx ch_close ch_getbufnr ch_logfile ch_sendexpr changenr col confirm count delete empty executable exp filereadable findfile fnameescape foldlevel funcref getbufinfo getcharmod getcmdtype getcwd getftime getmatches getreg gettabwinvar getwinvar has histadd hlID indent inputlist insert isnan job_setoptions join
@@ -560,7 +560,7 @@ syn match vimHiBang contained "!" skipwhite nextgroup=@vimHighlightCluster
syn match vimHiGroup contained "\i\+"
syn case ignore
-syn keyword vimHiAttrib contained none bold inverse italic reverse standout underline undercurl
+syn keyword vimHiAttrib contained none bold inverse italic reverse standout underline undercurl nocombine
syn keyword vimFgBgAttrib contained none bg background fg foreground
syn case match
syn match vimHiAttribList contained "\i\+" contains=vimHiAttrib
diff --git a/runtime/syntax/xs.vim b/runtime/syntax/xs.vim
index d4ac9d1..3e658b4 100644
--- a/runtime/syntax/xs.vim
+++ b/runtime/syntax/xs.vim
@@ -3,20 +3,19 @@
" Author: Autogenerated from perl headers, on an original basis of Michael W. Dodge <sarge@pobox.com>
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Previous: Vincent Pit <perl@profvince.com>
-" Last Change: 2013-05-12
+" Last Change: 2017-09-12
-" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
-" Read the C syntax to start with
runtime! syntax/c.vim
-let xs_superseded = 1 " mark C functions superseded by Perl replacements
-let xs_not_core = 1 " mark private core functions
+" Configuration:
+" let xs_superseded = 0 " mark C functions superseded by Perl replacements (ex. memcpy vs Copy)
+" let xs_not_core = 0 " mark private core functions
-if exists("xs_superseded") && xs_superseded
+if get(g:, 'xs_superseded', 0)
syn keyword xsSuperseded atof atol calloc clearerr exit fclose feof ferror
syn keyword xsSuperseded fflush fgetc fgetpos fgets fopen fprintf fputc fputs
syn keyword xsSuperseded fread free freopen fseek fsetpos fwrite getc getenv
@@ -28,45 +27,78 @@ syn keyword xsSuperseded strcat strcmp strcpy strdup strlen strncat strncmp
syn keyword xsSuperseded strncpy strstr strtod strtol strtoul system tolower
syn keyword xsSuperseded toupper ungetc
endif
-if exists("xs_not_core") && xs_not_core
+if get(g:, 'xs_not_core', 0)
syn keyword xsPrivate F0convert Perl__add_range_to_invlist
-syn keyword xsPrivate Perl__core_swash_init Perl__invlist_contents
+syn keyword xsPrivate Perl__core_swash_init Perl__get_encoding
+syn keyword xsPrivate Perl__get_swash_invlist Perl__invlist_contents
+syn keyword xsPrivate Perl__invlist_dump
syn keyword xsPrivate Perl__invlist_intersection_maybe_complement_2nd
-syn keyword xsPrivate Perl__invlist_invert Perl__invlist_invert_prop
-syn keyword xsPrivate Perl__invlist_populate_swatch
+syn keyword xsPrivate Perl__invlist_invert Perl__invlist_populate_swatch
+syn keyword xsPrivate Perl__invlist_search
syn keyword xsPrivate Perl__invlist_union_maybe_complement_2nd
-syn keyword xsPrivate Perl__is_utf8__perl_idstart Perl__new_invlist
-syn keyword xsPrivate Perl__swash_inversion_hash Perl__swash_to_invlist
-syn keyword xsPrivate Perl__to_fold_latin1 Perl_av_reify Perl_emulate_cop_io
-syn keyword xsPrivate Perl_find_rundefsvoffset Perl_get_re_arg
-syn keyword xsPrivate Perl_is_utf8_X_L Perl_is_utf8_X_LV Perl_is_utf8_X_LVT
-syn keyword xsPrivate Perl_is_utf8_X_LV_LVT_V Perl_is_utf8_X_T
-syn keyword xsPrivate Perl_is_utf8_X_V Perl_is_utf8_X_begin
-syn keyword xsPrivate Perl_is_utf8_X_extend Perl_is_utf8_X_non_hangul
-syn keyword xsPrivate Perl_is_utf8_X_prepend Perl_is_utf8_char
-syn keyword xsPrivate Perl_new_warnings_bitfield Perl_op_clear
-syn keyword xsPrivate Perl_ptr_table_clear Perl_qerror Perl_reg_named_buff
-syn keyword xsPrivate Perl_reg_named_buff_iter Perl_reg_numbered_buff_fetch
+syn keyword xsPrivate Perl__load_PL_utf8_foldclosures Perl__new_invlist
+syn keyword xsPrivate Perl__setup_canned_invlist Perl__swash_inversion_hash
+syn keyword xsPrivate Perl__swash_to_invlist Perl__to_fold_latin1
+syn keyword xsPrivate Perl__warn_problematic_locale Perl_av_reify
+syn keyword xsPrivate Perl_current_re_engine Perl_cv_ckproto_len_flags
+syn keyword xsPrivate Perl_emulate_cop_io Perl_find_rundefsvoffset
+syn keyword xsPrivate Perl_get_re_arg Perl_grok_atoUV Perl_isALNUM_lazy
+syn keyword xsPrivate Perl_isIDFIRST_lazy Perl_is_uni_alnum
+syn keyword xsPrivate Perl_is_uni_alnum_lc Perl_is_uni_alnumc
+syn keyword xsPrivate Perl_is_uni_alnumc_lc Perl_is_uni_alpha
+syn keyword xsPrivate Perl_is_uni_alpha_lc Perl_is_uni_ascii
+syn keyword xsPrivate Perl_is_uni_ascii_lc Perl_is_uni_blank
+syn keyword xsPrivate Perl_is_uni_blank_lc Perl_is_uni_cntrl
+syn keyword xsPrivate Perl_is_uni_cntrl_lc Perl_is_uni_digit
+syn keyword xsPrivate Perl_is_uni_digit_lc Perl_is_uni_graph
+syn keyword xsPrivate Perl_is_uni_graph_lc Perl_is_uni_idfirst
+syn keyword xsPrivate Perl_is_uni_idfirst_lc Perl_is_uni_lower
+syn keyword xsPrivate Perl_is_uni_lower_lc Perl_is_uni_print
+syn keyword xsPrivate Perl_is_uni_print_lc Perl_is_uni_punct
+syn keyword xsPrivate Perl_is_uni_punct_lc Perl_is_uni_space
+syn keyword xsPrivate Perl_is_uni_space_lc Perl_is_uni_upper
+syn keyword xsPrivate Perl_is_uni_upper_lc Perl_is_uni_xdigit
+syn keyword xsPrivate Perl_is_uni_xdigit_lc Perl_is_utf8_alnum
+syn keyword xsPrivate Perl_is_utf8_alnumc Perl_is_utf8_alpha
+syn keyword xsPrivate Perl_is_utf8_ascii Perl_is_utf8_blank Perl_is_utf8_char
+syn keyword xsPrivate Perl_is_utf8_cntrl Perl_is_utf8_digit
+syn keyword xsPrivate Perl_is_utf8_graph Perl_is_utf8_idcont
+syn keyword xsPrivate Perl_is_utf8_idfirst Perl_is_utf8_lower
+syn keyword xsPrivate Perl_is_utf8_mark Perl_is_utf8_perl_space
+syn keyword xsPrivate Perl_is_utf8_perl_word Perl_is_utf8_posix_digit
+syn keyword xsPrivate Perl_is_utf8_print Perl_is_utf8_punct
+syn keyword xsPrivate Perl_is_utf8_space Perl_is_utf8_upper
+syn keyword xsPrivate Perl_is_utf8_xdigit Perl_is_utf8_xidcont
+syn keyword xsPrivate Perl_is_utf8_xidfirst Perl_mg_find_mglob Perl_mg_length
+syn keyword xsPrivate Perl_multideref_stringify Perl_new_warnings_bitfield
+syn keyword xsPrivate Perl_op_clear Perl_ptr_table_clear Perl_qerror
+syn keyword xsPrivate Perl_reg_named_buff Perl_reg_named_buff_iter
+syn keyword xsPrivate Perl_reg_numbered_buff_fetch
syn keyword xsPrivate Perl_reg_numbered_buff_length
syn keyword xsPrivate Perl_reg_numbered_buff_store Perl_reg_qr_package
syn keyword xsPrivate Perl_reg_temp_copy Perl_regprop Perl_report_uninit
-syn keyword xsPrivate Perl_sv_compile_2op Perl_sv_setsv_cow
-syn keyword xsPrivate Perl_try_amagic_bin Perl_try_amagic_un
-syn keyword xsPrivate Perl_utf8_to_uvchr Perl_utf8_to_uvuni
-syn keyword xsPrivate Perl_vivify_defelem Perl_yylex S_F0convert S_Slab_to_rw
-syn keyword xsPrivate S__append_range_to_invlist S__new_invlist_C_array
-syn keyword xsPrivate S_add_alternate S_add_data S_add_utf16_textfilter
-syn keyword xsPrivate S_adjust_stack_on_leave S_amagic_cmp
+syn keyword xsPrivate Perl_sv_magicext_mglob Perl_sv_setsv_cow
+syn keyword xsPrivate Perl_to_uni_lower_lc Perl_to_uni_title_lc
+syn keyword xsPrivate Perl_to_uni_upper_lc Perl_try_amagic_bin
+syn keyword xsPrivate Perl_try_amagic_un Perl_utf8_to_uvchr
+syn keyword xsPrivate Perl_utf8_to_uvuni Perl_utf8_to_uvuni_buf
+syn keyword xsPrivate Perl_valid_utf8_to_uvuni Perl_validate_proto
+syn keyword xsPrivate Perl_vivify_defelem Perl_yylex S_F0convert
+syn keyword xsPrivate S__append_range_to_invlist S__make_exactf_invlist
+syn keyword xsPrivate S_add_above_Latin1_folds S_add_data S_add_multi_match
+syn keyword xsPrivate S_add_utf16_textfilter S_adjust_size_and_find_bucket
+syn keyword xsPrivate S_advance_one_SB S_advance_one_WB S_amagic_cmp
syn keyword xsPrivate S_amagic_cmp_locale S_amagic_i_ncmp S_amagic_ncmp
syn keyword xsPrivate S_anonymise_cv_maybe S_ao S_apply_attrs
syn keyword xsPrivate S_apply_attrs_my S_assert_uft8_cache_coherent
-syn keyword xsPrivate S_bad_type_pv S_bad_type_sv S_bytes_to_uni
+syn keyword xsPrivate S_assignment_type S_backup_one_SB S_backup_one_WB
+syn keyword xsPrivate S_bad_type_gv S_bad_type_pv
syn keyword xsPrivate S_check_locale_boundary_crossing S_check_type_and_open
-syn keyword xsPrivate S_check_uni S_checkcomma S_checkposixcc S_ckwarn_common
-syn keyword xsPrivate S_cl_and S_cl_anything S_cl_init S_cl_is_anything
-syn keyword xsPrivate S_cl_or S_clear_placeholders S_closest_cop S_cop_free
-syn keyword xsPrivate S_core_regclass_swash S_cr_textfilter S_curmad S_curse
-syn keyword xsPrivate S_cv_dump S_deb_curcv S_deb_stack_n S_debprof
+syn keyword xsPrivate S_check_uni S_checkcomma S_ckwarn_common
+syn keyword xsPrivate S_clear_placeholders S_clear_special_blocks
+syn keyword xsPrivate S_cntrl_to_mnemonic S_construct_ahocorasick_from_trie
+syn keyword xsPrivate S_cop_free S_could_it_be_a_POSIX_class S_cr_textfilter
+syn keyword xsPrivate S_curse S_cv_dump S_deb_curcv S_deb_stack_n S_debprof
syn keyword xsPrivate S_debug_start_match S_del_sv
syn keyword xsPrivate S_deprecate_commaless_var_list S_destroy_matcher
syn keyword xsPrivate S_div128 S_do_chomp S_do_delete_local S_do_oddball
@@ -82,103 +114,116 @@ syn keyword xsPrivate S_dump_trie_interim_table S_dumpuntil S_dup_attrlist
syn keyword xsPrivate S_exec_failed S_expect_number S_filter_gets
syn keyword xsPrivate S_finalize_op S_find_and_forget_pmops
syn keyword xsPrivate S_find_array_subscript S_find_beginning S_find_byclass
-syn keyword xsPrivate S_find_hash_subscript S_find_in_my_stash
-syn keyword xsPrivate S_find_uninit_var S_first_symbol S_fold_constants
-syn keyword xsPrivate S_forbid_setid S_force_ident S_force_list S_force_next
-syn keyword xsPrivate S_force_strict_version S_force_version S_force_word
-syn keyword xsPrivate S_forget_pmop S_gen_constant_list S_get_aux_mg
-syn keyword xsPrivate S_get_num S_glob_2number S_glob_assign_glob
-syn keyword xsPrivate S_glob_assign_ref S_grok_bslash_c S_grok_bslash_o
-syn keyword xsPrivate S_group_end S_gv_ename S_gv_get_super_pkg
-syn keyword xsPrivate S_gv_init_svtype S_gv_magicalize_isa
-syn keyword xsPrivate S_gv_magicalize_overload S_hfreeentries S_hsplit
-syn keyword xsPrivate S_hv_auxinit S_hv_delete_common S_hv_free_ent_ret
-syn keyword xsPrivate S_hv_magic_check S_hv_notallowed S_incline S_incpush
-syn keyword xsPrivate S_incpush_if_exists S_incpush_use_sep S_ingroup
-syn keyword xsPrivate S_init_ids S_init_interp S_init_main_stash
-syn keyword xsPrivate S_init_perllib S_init_postdump_symbols
-syn keyword xsPrivate S_init_predump_symbols S_inplace_aassign
-syn keyword xsPrivate S_intuit_method S_intuit_more S_invlist_extend
-syn keyword xsPrivate S_invlist_iternext S_invlist_search
-syn keyword xsPrivate S_invoke_exception_hook S_is_an_int
-syn keyword xsPrivate S_is_handle_constructor S_is_list_assignment
-syn keyword xsPrivate S_is_utf8_char_slow S_is_utf8_common S_isa_lookup
-syn keyword xsPrivate S_join_exact S_listkids S_looks_like_bool
-syn keyword xsPrivate S_magic_methcall1 S_make_matcher S_make_trie
-syn keyword xsPrivate S_make_trie_failtable S_matcher_matches_sv
+syn keyword xsPrivate S_find_default_stash S_find_hash_subscript
+syn keyword xsPrivate S_find_in_my_stash S_find_uninit_var S_first_symbol
+syn keyword xsPrivate S_fixup_errno_string S_fold_constants S_forbid_setid
+syn keyword xsPrivate S_force_ident S_force_ident_maybe_lex S_force_list
+syn keyword xsPrivate S_force_next S_force_strict_version S_force_version
+syn keyword xsPrivate S_force_word S_forget_pmop S_form_short_octal_warning
+syn keyword xsPrivate S_gen_constant_list S_get_ANYOF_cp_list_for_ssc
+syn keyword xsPrivate S_get_aux_mg S_get_num S_glob_2number
+syn keyword xsPrivate S_glob_assign_glob S_grok_bslash_N S_grok_bslash_c
+syn keyword xsPrivate S_grok_bslash_o S_group_end S_gv_init_svtype
+syn keyword xsPrivate S_gv_is_in_main S_gv_magicalize S_gv_magicalize_isa
+syn keyword xsPrivate S_handle_regex_sets S_hfreeentries S_hsplit
+syn keyword xsPrivate S_hv_auxinit S_hv_auxinit_internal S_hv_delete_common
+syn keyword xsPrivate S_hv_free_ent_ret S_hv_magic_check S_hv_notallowed
+syn keyword xsPrivate S_incline S_incpush S_incpush_if_exists
+syn keyword xsPrivate S_incpush_use_sep S_ingroup S_init_ids S_init_interp
+syn keyword xsPrivate S_init_main_stash S_init_perllib
+syn keyword xsPrivate S_init_postdump_symbols S_init_predump_symbols
+syn keyword xsPrivate S_inplace_aassign S_intuit_method S_intuit_more
+syn keyword xsPrivate S_invlist_extend S_invlist_iternext
+syn keyword xsPrivate S_invoke_exception_hook S_isFOO_lc S_isFOO_utf8_lc
+syn keyword xsPrivate S_isGCB S_isSB S_isWB S_is_an_int
+syn keyword xsPrivate S_is_handle_constructor S_is_ssc_worth_it S_isa_lookup
+syn keyword xsPrivate S_join_exact S_leave_common S_listkids
+syn keyword xsPrivate S_looks_like_bool S_magic_methcall1 S_make_matcher
+syn keyword xsPrivate S_make_trie S_matcher_matches_sv S_maybe_multimagic_gv
syn keyword xsPrivate S_mayberelocate S_measure_struct S_mem_log_common
-syn keyword xsPrivate S_mess_alloc S_method_common S_minus_v S_missingterm
-syn keyword xsPrivate S_modkids S_more_sv S_mro_clean_isarev
+syn keyword xsPrivate S_mess_alloc S_minus_v S_missingterm S_modkids
+syn keyword xsPrivate S_more_sv S_move_proto_attr S_mro_clean_isarev
syn keyword xsPrivate S_mro_gather_and_rename S_mro_get_linear_isa_dfs
-syn keyword xsPrivate S_mul128 S_mulexp10 S_my_exit_jump S_my_kid S_need_utf8
-syn keyword xsPrivate S_newDEFSVOP S_newGIVWHENOP S_new_constant S_new_he
-syn keyword xsPrivate S_new_logop S_next_symbol S_nextchar
+syn keyword xsPrivate S_mul128 S_mulexp10 S_my_bytes_to_utf8 S_my_exit_jump
+syn keyword xsPrivate S_my_kid S_need_utf8 S_newGIVWHENOP S_new_constant
+syn keyword xsPrivate S_new_he S_new_logop S_next_symbol S_nextchar
syn keyword xsPrivate S_no_bareword_allowed S_no_fh_allowed S_no_op
-syn keyword xsPrivate S_not_a_number S_nuke_stacks S_num_overflow
-syn keyword xsPrivate S_open_script S_opt_scalarhv S_pack_rec
-syn keyword xsPrivate S_pad_alloc_name S_pad_check_dup S_pad_findlex
-syn keyword xsPrivate S_pad_reset S_parse_body S_path_is_absolute S_pidgone
-syn keyword xsPrivate S_pm_description S_pmtrans S_printbuf
-syn keyword xsPrivate S_process_special_blocks S_ptr_table_find S_put_byte
-syn keyword xsPrivate S_qsortsvu S_re_croak2 S_readpipe_override
-syn keyword xsPrivate S_ref_array_or_hash S_refcounted_he_value S_refkids
-syn keyword xsPrivate S_refto S_reg S_reg_check_named_buff_matched
-syn keyword xsPrivate S_reg_namedseq S_reg_node S_reg_recode S_reg_scan_name
-syn keyword xsPrivate S_reg_skipcomment S_reganode S_regatom S_regbranch
-syn keyword xsPrivate S_regclass S_regcppop S_regcppush S_regdump_extflags
-syn keyword xsPrivate S_reghop3 S_reghop4 S_reghopmaybe3 S_reginclass
-syn keyword xsPrivate S_reginsert S_regmatch S_regpiece S_regpposixcc
-syn keyword xsPrivate S_regrepeat S_regtail S_regtail_study S_regtry S_reguni
-syn keyword xsPrivate S_regwhite S_require_tie_mod S_restore_magic S_run_body
-syn keyword xsPrivate S_run_user_filter S_rxres_free S_rxres_restore
-syn keyword xsPrivate S_save_hek_flags S_save_lines S_save_magic
-syn keyword xsPrivate S_save_pushptri32ptr S_save_scalar_at S_scalar_mod_type
-syn keyword xsPrivate S_scalarboolean S_scalarkids S_scalarseq S_scan_commit
-syn keyword xsPrivate S_scan_const S_scan_formline S_scan_heredoc
-syn keyword xsPrivate S_scan_ident S_scan_inputsymbol S_scan_pat S_scan_str
-syn keyword xsPrivate S_scan_subst S_scan_trans S_scan_word S_search_const
-syn keyword xsPrivate S_sequence_num S_set_regclass_bit_fold
-syn keyword xsPrivate S_share_hek_flags S_simplify_sort S_skipspace
-syn keyword xsPrivate S_skipspace0 S_skipspace1 S_skipspace2 S_sortcv
-syn keyword xsPrivate S_sortcv_stacked S_sortcv_xsub
-syn keyword xsPrivate S_space_join_names_mortal S_start_force S_stdize_locale
-syn keyword xsPrivate S_strip_return S_study_chunk S_sublex_done
-syn keyword xsPrivate S_sublex_push S_sublex_start S_sv_2iuv_common
-syn keyword xsPrivate S_sv_2iuv_non_preserve S_sv_add_arena S_sv_dup_common
+syn keyword xsPrivate S_not_a_number S_not_incrementable S_nuke_stacks
+syn keyword xsPrivate S_num_overflow S_open_script S_openn_cleanup
+syn keyword xsPrivate S_openn_setup S_pack_rec S_pad_alloc_name
+syn keyword xsPrivate S_pad_check_dup S_pad_findlex S_pad_reset S_parse_body
+syn keyword xsPrivate S_parse_gv_stash_name S_parse_ident
+syn keyword xsPrivate S_parse_lparen_question_flags S_pending_ident S_pidgone
+syn keyword xsPrivate S_pm_description S_pmtrans
+syn keyword xsPrivate S_populate_ANYOF_from_invlist S_printbuf
+syn keyword xsPrivate S_process_special_blocks S_ptr_table_find
+syn keyword xsPrivate S_put_charclass_bitmap_innards S_put_code_point
+syn keyword xsPrivate S_put_range S_qsortsvu S_re_croak2 S_ref_array_or_hash
+syn keyword xsPrivate S_refcounted_he_value S_refkids S_refto S_reg
+syn keyword xsPrivate S_reg2Lanode S_reg_check_named_buff_matched S_reg_node
+syn keyword xsPrivate S_reg_recode S_reg_scan_name S_reganode S_regatom
+syn keyword xsPrivate S_regbranch S_regclass S_regcppop S_regcppush
+syn keyword xsPrivate S_regdump_extflags S_regdump_intflags
+syn keyword xsPrivate S_regex_set_precedence S_reghop3 S_reghop4
+syn keyword xsPrivate S_reghopmaybe3 S_reginclass S_reginsert S_regmatch
+syn keyword xsPrivate S_regnode_guts S_regpatws S_regpiece S_regrepeat
+syn keyword xsPrivate S_regtail S_regtail_study S_regtry S_require_tie_mod
+syn keyword xsPrivate S_restore_magic S_run_body S_run_user_filter
+syn keyword xsPrivate S_rxres_free S_rxres_restore S_save_hek_flags
+syn keyword xsPrivate S_save_lines S_save_magic_flags S_save_pushptri32ptr
+syn keyword xsPrivate S_save_scalar_at S_scalar_mod_type S_scalarboolean
+syn keyword xsPrivate S_scalarkids S_scalarseq S_scan_commit S_scan_const
+syn keyword xsPrivate S_scan_formline S_scan_heredoc S_scan_ident
+syn keyword xsPrivate S_scan_inputsymbol S_scan_pat S_scan_str S_scan_subst
+syn keyword xsPrivate S_scan_trans S_scan_word S_search_const S_sequence_num
+syn keyword xsPrivate S_set_ANYOF_arg S_share_hek_flags S_simplify_sort
+syn keyword xsPrivate S_skipspace_flags S_sortcv S_sortcv_stacked
+syn keyword xsPrivate S_sortcv_xsub S_space_join_names_mortal S_ssc_and
+syn keyword xsPrivate S_ssc_anything S_ssc_finalize S_ssc_init
+syn keyword xsPrivate S_ssc_is_anything S_ssc_is_cp_posixl_init S_ssc_or
+syn keyword xsPrivate S_stdize_locale S_strip_return S_study_chunk
+syn keyword xsPrivate S_sublex_done S_sublex_push S_sublex_start
+syn keyword xsPrivate S_sv_2iuv_common S_sv_2iuv_non_preserve S_sv_add_arena
+syn keyword xsPrivate S_sv_buf_to_rw S_sv_display S_sv_dup_common
syn keyword xsPrivate S_sv_dup_inc_multiple S_sv_exp_grow S_sv_i_ncmp
syn keyword xsPrivate S_sv_ncmp S_sv_pos_b2u_midway S_sv_pos_u2b_cached
syn keyword xsPrivate S_sv_pos_u2b_forwards S_sv_pos_u2b_midway
-syn keyword xsPrivate S_sv_release_COW S_swallow_bom S_swatch_get
-syn keyword xsPrivate S_to_byte_substr S_to_lower_latin1 S_to_utf8_substr
-syn keyword xsPrivate S_tokenize_use S_tokeq S_tokereport
-syn keyword xsPrivate S_too_few_arguments_pv S_too_few_arguments_sv
-syn keyword xsPrivate S_too_many_arguments_pv S_too_many_arguments_sv
+syn keyword xsPrivate S_sv_release_COW S_swallow_bom S_swash_scan_list_line
+syn keyword xsPrivate S_swatch_get S_to_byte_substr S_to_lower_latin1
+syn keyword xsPrivate S_to_utf8_substr S_tokenize_use S_tokeq S_tokereport
+syn keyword xsPrivate S_too_few_arguments_pv S_too_many_arguments_pv
syn keyword xsPrivate S_uiv_2buf S_unpack_rec S_unreferenced_to_tmp_stack
syn keyword xsPrivate S_unshare_hek_or_pvn S_unwind_handler_stack
syn keyword xsPrivate S_update_debugger_info S_usage S_utf16_textfilter
syn keyword xsPrivate S_utf8_mg_len_cache_update S_utf8_mg_pos_cache_update
syn keyword xsPrivate S_validate_suid S_visit S_with_queued_errors
-syn keyword xsPrivate S_write_no_mem S_xmldump_attr S_yywarn Slab_to_rw
-syn keyword xsPrivate _add_range_to_invlist _append_range_to_invlist
-syn keyword xsPrivate _core_swash_init _invlist_array_init _invlist_contents
+syn keyword xsPrivate S_xs_version_bootcheck S_yywarn _add_range_to_invlist
+syn keyword xsPrivate _append_range_to_invlist _core_swash_init _get_encoding
+syn keyword xsPrivate _get_swash_invlist _invlist_array_init
+syn keyword xsPrivate _invlist_contains_cp _invlist_contents _invlist_dump
syn keyword xsPrivate _invlist_intersection
syn keyword xsPrivate _invlist_intersection_maybe_complement_2nd
-syn keyword xsPrivate _invlist_invert _invlist_invert_prop
-syn keyword xsPrivate _invlist_populate_swatch _invlist_subtract
-syn keyword xsPrivate _invlist_union _invlist_union_maybe_complement_2nd
-syn keyword xsPrivate _is_utf8__perl_idstart _new_invlist
-syn keyword xsPrivate _new_invlist_C_array _swash_inversion_hash
-syn keyword xsPrivate _swash_to_invlist _to_fold_latin1 add_alternate
-syn keyword xsPrivate add_cp_to_invlist add_data add_utf16_textfilter
-syn keyword xsPrivate adjust_stack_on_leave amagic_cmp amagic_cmp_locale
+syn keyword xsPrivate _invlist_invert _invlist_len _invlist_populate_swatch
+syn keyword xsPrivate _invlist_search _invlist_subtract _invlist_union
+syn keyword xsPrivate _invlist_union_maybe_complement_2nd
+syn keyword xsPrivate _load_PL_utf8_foldclosures _make_exactf_invlist
+syn keyword xsPrivate _new_invlist _setup_canned_invlist
+syn keyword xsPrivate _swash_inversion_hash _swash_to_invlist _to_fold_latin1
+syn keyword xsPrivate _warn_problematic_locale add_above_Latin1_folds
+syn keyword xsPrivate add_cp_to_invlist add_data add_multi_match
+syn keyword xsPrivate add_utf16_textfilter adjust_size_and_find_bucket
+syn keyword xsPrivate advance_one_SB advance_one_WB
+syn keyword xsPrivate alloc_maybe_populate_EXACT amagic_cmp amagic_cmp_locale
syn keyword xsPrivate amagic_i_ncmp amagic_ncmp anonymise_cv_maybe ao
syn keyword xsPrivate apply_attrs apply_attrs_my assert_uft8_cache_coherent
-syn keyword xsPrivate av_reify bad_type_pv bad_type_sv bytes_to_uni
-syn keyword xsPrivate check_locale_boundary_crossing check_type_and_open
-syn keyword xsPrivate check_uni checkcomma checkposixcc ckwarn_common cl_and
-syn keyword xsPrivate cl_anything cl_init cl_is_anything cl_or
-syn keyword xsPrivate clear_placeholders closest_cop cop_free
-syn keyword xsPrivate core_regclass_swash cr_textfilter curmad curse cv_dump
+syn keyword xsPrivate assignment_type av_reify backup_one_SB backup_one_WB
+syn keyword xsPrivate bad_type_gv bad_type_pv check_locale_boundary_crossing
+syn keyword xsPrivate check_type_and_open check_uni checkcomma ckwarn_common
+syn keyword xsPrivate clear_placeholders clear_special_blocks
+syn keyword xsPrivate cntrl_to_mnemonic compute_EXACTish
+syn keyword xsPrivate construct_ahocorasick_from_trie cop_free
+syn keyword xsPrivate could_it_be_a_POSIX_class cr_textfilter
+syn keyword xsPrivate current_re_engine curse cv_ckproto_len_flags cv_dump
syn keyword xsPrivate deb_curcv deb_stack_n debprof debug_start_match del_sv
syn keyword xsPrivate deprecate_commaless_var_list destroy_matcher div128
syn keyword xsPrivate do_aexec do_chomp do_delete_local do_exec do_oddball
@@ -192,274 +237,342 @@ syn keyword xsPrivate dump_trie_interim_list dump_trie_interim_table
syn keyword xsPrivate dumpuntil dup_attrlist exec_failed expect_number
syn keyword xsPrivate filter_gets finalize_op find_and_forget_pmops
syn keyword xsPrivate find_array_subscript find_beginning find_byclass
-syn keyword xsPrivate find_hash_subscript find_in_my_stash
+syn keyword xsPrivate find_default_stash find_hash_subscript find_in_my_stash
syn keyword xsPrivate find_rundefsvoffset find_uninit_var first_symbol
-syn keyword xsPrivate fold_constants forbid_setid force_ident force_list
-syn keyword xsPrivate force_next force_strict_version force_version
-syn keyword xsPrivate force_word gen_constant_list get_aux_mg
-syn keyword xsPrivate get_invlist_iter_addr get_invlist_len_addr
-syn keyword xsPrivate get_invlist_version_id_addr get_invlist_zero_addr
-syn keyword xsPrivate get_num glob_2number glob_assign_glob glob_assign_ref
-syn keyword xsPrivate grok_bslash_c grok_bslash_o group_end gv_ename
-syn keyword xsPrivate gv_get_super_pkg gv_init_svtype gv_magicalize_isa
-syn keyword xsPrivate gv_magicalize_overload hfreeentries hsplit hv_auxinit
-syn keyword xsPrivate hv_delete_common hv_free_ent_ret hv_magic_check
-syn keyword xsPrivate hv_notallowed incline incpush incpush_if_exists
-syn keyword xsPrivate incpush_use_sep ingroup init_ids init_interp
-syn keyword xsPrivate init_main_stash init_perllib init_postdump_symbols
-syn keyword xsPrivate init_predump_symbols inplace_aassign intuit_method
-syn keyword xsPrivate intuit_more invlist_array invlist_clone invlist_extend
-syn keyword xsPrivate invlist_iterinit invlist_iternext invlist_len
-syn keyword xsPrivate invlist_max invlist_search invlist_set_len invlist_trim
-syn keyword xsPrivate invoke_exception_hook is_an_int is_handle_constructor
-syn keyword xsPrivate is_list_assignment is_utf8_X_L is_utf8_X_LV
-syn keyword xsPrivate is_utf8_X_LVT is_utf8_X_LV_LVT_V is_utf8_X_T
-syn keyword xsPrivate is_utf8_X_V is_utf8_X_begin is_utf8_X_extend
-syn keyword xsPrivate is_utf8_X_non_hangul is_utf8_X_prepend is_utf8_char
-syn keyword xsPrivate is_utf8_char_slow is_utf8_common isa_lookup join_exact
-syn keyword xsPrivate listkids looks_like_bool magic_methcall1 make_matcher
-syn keyword xsPrivate make_trie make_trie_failtable matcher_matches_sv
-syn keyword xsPrivate mayberelocate measure_struct mem_log_common mess_alloc
-syn keyword xsPrivate method_common minus_v missingterm modkids more_sv
-syn keyword xsPrivate mro_clean_isarev mro_gather_and_rename
-syn keyword xsPrivate mro_get_linear_isa_dfs mul128 mulexp10 my_exit_jump
-syn keyword xsPrivate my_kid need_utf8 newDEFSVOP newGIVWHENOP new_he
-syn keyword xsPrivate new_logop next_symbol nextchar no_bareword_allowed
-syn keyword xsPrivate no_fh_allowed no_op not_a_number nuke_stacks
-syn keyword xsPrivate num_overflow op_clear open_script opt_scalarhv pack_rec
-syn keyword xsPrivate pad_alloc_name pad_check_dup pad_findlex pad_reset
-syn keyword xsPrivate parse_body path_is_absolute pidgone pm_description
-syn keyword xsPrivate pmtrans printbuf process_special_blocks ptr_table_clear
-syn keyword xsPrivate ptr_table_find put_byte qerror qsortsvu re_croak2
-syn keyword xsPrivate readpipe_override ref_array_or_hash refcounted_he_value
-syn keyword xsPrivate refkids refto reg reg_check_named_buff_matched
-syn keyword xsPrivate reg_named_buff reg_named_buff_iter reg_namedseq
-syn keyword xsPrivate reg_node reg_numbered_buff_fetch
+syn keyword xsPrivate fixup_errno_string fold_constants forbid_setid
+syn keyword xsPrivate force_ident force_ident_maybe_lex force_list force_next
+syn keyword xsPrivate force_strict_version force_version force_word
+syn keyword xsPrivate forget_pmop form_short_octal_warning free_c_backtrace
+syn keyword xsPrivate gen_constant_list get_ANYOF_cp_list_for_ssc get_aux_mg
+syn keyword xsPrivate get_invlist_iter_addr get_invlist_offset_addr
+syn keyword xsPrivate get_invlist_previous_index_addr get_num glob_2number
+syn keyword xsPrivate glob_assign_glob grok_atoUV grok_bslash_N grok_bslash_c
+syn keyword xsPrivate grok_bslash_o grok_bslash_x group_end gv_init_svtype
+syn keyword xsPrivate gv_is_in_main gv_magicalize gv_magicalize_isa
+syn keyword xsPrivate handle_regex_sets hfreeentries hsplit hv_auxinit
+syn keyword xsPrivate hv_auxinit_internal hv_delete_common hv_free_ent_ret
+syn keyword xsPrivate hv_magic_check hv_notallowed incline incpush
+syn keyword xsPrivate incpush_if_exists incpush_use_sep ingroup init_ids
+syn keyword xsPrivate init_interp init_main_stash init_perllib
+syn keyword xsPrivate init_postdump_symbols init_predump_symbols
+syn keyword xsPrivate inplace_aassign intuit_method intuit_more invlist_array
+syn keyword xsPrivate invlist_clone invlist_extend invlist_highest
+syn keyword xsPrivate invlist_is_iterating invlist_iterfinish
+syn keyword xsPrivate invlist_iterinit invlist_iternext invlist_max
+syn keyword xsPrivate invlist_previous_index invlist_set_len
+syn keyword xsPrivate invlist_set_previous_index invlist_trim
+syn keyword xsPrivate invoke_exception_hook isALNUM_lazy isFOO_lc
+syn keyword xsPrivate isFOO_utf8_lc isGCB isIDFIRST_lazy isSB isWB is_an_int
+syn keyword xsPrivate is_handle_constructor is_ssc_worth_it is_uni_alnum
+syn keyword xsPrivate is_uni_alnum_lc is_uni_alnumc is_uni_alnumc_lc
+syn keyword xsPrivate is_uni_alpha is_uni_alpha_lc is_uni_ascii
+syn keyword xsPrivate is_uni_ascii_lc is_uni_blank is_uni_blank_lc
+syn keyword xsPrivate is_uni_cntrl is_uni_cntrl_lc is_uni_digit
+syn keyword xsPrivate is_uni_digit_lc is_uni_graph is_uni_graph_lc
+syn keyword xsPrivate is_uni_idfirst is_uni_idfirst_lc is_uni_lower
+syn keyword xsPrivate is_uni_lower_lc is_uni_print is_uni_print_lc
+syn keyword xsPrivate is_uni_punct is_uni_punct_lc is_uni_space
+syn keyword xsPrivate is_uni_space_lc is_uni_upper is_uni_upper_lc
+syn keyword xsPrivate is_uni_xdigit is_uni_xdigit_lc is_utf8_alnum
+syn keyword xsPrivate is_utf8_alnumc is_utf8_alpha is_utf8_ascii
+syn keyword xsPrivate is_utf8_blank is_utf8_char is_utf8_cntrl is_utf8_digit
+syn keyword xsPrivate is_utf8_graph is_utf8_idcont is_utf8_idfirst
+syn keyword xsPrivate is_utf8_lower is_utf8_mark is_utf8_perl_space
+syn keyword xsPrivate is_utf8_perl_word is_utf8_posix_digit is_utf8_print
+syn keyword xsPrivate is_utf8_punct is_utf8_space is_utf8_upper
+syn keyword xsPrivate is_utf8_xdigit is_utf8_xidcont is_utf8_xidfirst
+syn keyword xsPrivate isa_lookup join_exact leave_common listkids
+syn keyword xsPrivate looks_like_bool magic_methcall1 make_matcher make_trie
+syn keyword xsPrivate matcher_matches_sv maybe_multimagic_gv mayberelocate
+syn keyword xsPrivate measure_struct mem_log_common mess_alloc mg_find_mglob
+syn keyword xsPrivate mg_length minus_v missingterm modkids more_sv
+syn keyword xsPrivate move_proto_attr mro_clean_isarev mro_gather_and_rename
+syn keyword xsPrivate mro_get_linear_isa_dfs mul128 mulexp10
+syn keyword xsPrivate multideref_stringify my_bytes_to_utf8 my_exit_jump
+syn keyword xsPrivate my_kid need_utf8 newGIVWHENOP new_he new_logop
+syn keyword xsPrivate next_symbol nextchar no_bareword_allowed no_fh_allowed
+syn keyword xsPrivate no_op not_a_number not_incrementable nuke_stacks
+syn keyword xsPrivate num_overflow op_clear open_script openn_cleanup
+syn keyword xsPrivate openn_setup pack_rec pad_alloc_name pad_check_dup
+syn keyword xsPrivate pad_findlex pad_reset parse_body parse_gv_stash_name
+syn keyword xsPrivate parse_ident parse_lparen_question_flags pending_ident
+syn keyword xsPrivate pidgone pm_description pmtrans
+syn keyword xsPrivate populate_ANYOF_from_invlist printbuf
+syn keyword xsPrivate process_special_blocks ptr_table_clear ptr_table_find
+syn keyword xsPrivate put_charclass_bitmap_innards put_code_point put_range
+syn keyword xsPrivate qerror qsortsvu re_croak2 ref_array_or_hash
+syn keyword xsPrivate refcounted_he_value refkids refto reg reg2Lanode
+syn keyword xsPrivate reg_check_named_buff_matched reg_named_buff
+syn keyword xsPrivate reg_named_buff_iter reg_node reg_numbered_buff_fetch
syn keyword xsPrivate reg_numbered_buff_length reg_numbered_buff_store
syn keyword xsPrivate reg_qr_package reg_recode reg_scan_name reg_skipcomment
syn keyword xsPrivate reg_temp_copy reganode regatom regbranch regclass
-syn keyword xsPrivate regcppop regcppush regcurly regdump_extflags reghop3
-syn keyword xsPrivate reghop4 reghopmaybe3 reginclass reginsert regmatch
-syn keyword xsPrivate regpiece regpposixcc regprop regrepeat regtail
-syn keyword xsPrivate regtail_study regtry reguni regwhite report_uninit
-syn keyword xsPrivate require_tie_mod restore_magic run_body run_user_filter
-syn keyword xsPrivate rxres_free rxres_restore save_hek_flags save_lines
-syn keyword xsPrivate save_magic save_pushptri32ptr save_scalar_at
+syn keyword xsPrivate regcppop regcppush regcurly regdump_extflags
+syn keyword xsPrivate regdump_intflags regex_set_precedence reghop3 reghop4
+syn keyword xsPrivate reghopmaybe3 reginclass reginsert regmatch regnode_guts
+syn keyword xsPrivate regpatws regpiece regpposixcc regprop regrepeat regtail
+syn keyword xsPrivate regtail_study regtry report_uninit require_tie_mod
+syn keyword xsPrivate restore_magic run_body run_user_filter rxres_free
+syn keyword xsPrivate rxres_restore save_hek_flags save_lines
+syn keyword xsPrivate save_magic_flags save_pushptri32ptr save_scalar_at
syn keyword xsPrivate scalar_mod_type scalarboolean scalarkids scalarseq
syn keyword xsPrivate scan_commit scan_const scan_formline scan_heredoc
syn keyword xsPrivate scan_ident scan_inputsymbol scan_pat scan_str
syn keyword xsPrivate scan_subst scan_trans scan_word search_const
-syn keyword xsPrivate sequence_num set_regclass_bit set_regclass_bit_fold
-syn keyword xsPrivate share_hek_flags simplify_sort skipspace skipspace0
-syn keyword xsPrivate skipspace1 skipspace2 sortcv sortcv_stacked sortcv_xsub
-syn keyword xsPrivate space_join_names_mortal start_force stdize_locale
+syn keyword xsPrivate sequence_num set_ANYOF_arg share_hek_flags
+syn keyword xsPrivate simplify_sort skipspace_flags sortcv sortcv_stacked
+syn keyword xsPrivate sortcv_xsub space_join_names_mortal ssc_add_range
+syn keyword xsPrivate ssc_and ssc_anything ssc_clear_locale ssc_cp_and
+syn keyword xsPrivate ssc_finalize ssc_init ssc_intersection ssc_is_anything
+syn keyword xsPrivate ssc_is_cp_posixl_init ssc_or ssc_union stdize_locale
syn keyword xsPrivate strip_return study_chunk sublex_done sublex_push
syn keyword xsPrivate sublex_start sv_2iuv_common sv_2iuv_non_preserve
-syn keyword xsPrivate sv_add_arena sv_compile_2op sv_dup_common
-syn keyword xsPrivate sv_dup_inc_multiple sv_exp_grow sv_i_ncmp sv_ncmp
-syn keyword xsPrivate sv_pos_b2u_midway sv_pos_u2b_cached sv_pos_u2b_forwards
-syn keyword xsPrivate sv_pos_u2b_midway sv_release_COW sv_setsv_cow
-syn keyword xsPrivate swallow_bom swatch_get to_byte_substr to_lower_latin1
+syn keyword xsPrivate sv_add_arena sv_buf_to_rw sv_copypv sv_display
+syn keyword xsPrivate sv_dup_common sv_dup_inc_multiple sv_exp_grow sv_i_ncmp
+syn keyword xsPrivate sv_magicext_mglob sv_ncmp sv_only_taint_gmagic
+syn keyword xsPrivate sv_or_pv_pos_u2b sv_pos_b2u_midway sv_pos_u2b_cached
+syn keyword xsPrivate sv_pos_u2b_forwards sv_pos_u2b_midway sv_release_COW
+syn keyword xsPrivate sv_setsv_cow swallow_bom swash_scan_list_line
+syn keyword xsPrivate swatch_get to_byte_substr to_lower_latin1
+syn keyword xsPrivate to_uni_lower_lc to_uni_title_lc to_uni_upper_lc
syn keyword xsPrivate to_utf8_substr tokenize_use tokeq tokereport
-syn keyword xsPrivate too_few_arguments_pv too_few_arguments_sv
-syn keyword xsPrivate too_many_arguments_pv too_many_arguments_sv uiv_2buf
+syn keyword xsPrivate too_few_arguments_pv too_many_arguments_pv uiv_2buf
syn keyword xsPrivate unpack_rec unreferenced_to_tmp_stack unshare_hek_or_pvn
syn keyword xsPrivate unwind_handler_stack update_debugger_info usage
syn keyword xsPrivate utf16_textfilter utf8_mg_len_cache_update
syn keyword xsPrivate utf8_mg_pos_cache_update utf8_to_uvchr utf8_to_uvuni
-syn keyword xsPrivate visit vivify_defelem with_queued_errors write_no_mem
-syn keyword xsPrivate xmldump_attr yylex yywarn
+syn keyword xsPrivate utf8_to_uvuni_buf valid_utf8_to_uvuni validate_proto
+syn keyword xsPrivate visit vivify_defelem with_queued_errors yylex yywarn
endif
syn keyword xsType AMT AMTS ANY AV BHK BINOP BLOCK CHECKPOINT CLONE_PARAMS
syn keyword xsType COP COPHH CV DB_Hash_t DB_Prefix_t DEBUG_t Direntry_t
-syn keyword xsType Fpos_t Free_t GP GV Gid_t Groups_t HE HEK HV I16 I32 I64
-syn keyword xsType I8 IO IV Int64 JMPENV LISTOP LOGOP LOOP MADPROP MAGIC MGS
-syn keyword xsType MGVTBL Malloc_t Mmap_t Mode_t NEXTTOKE NV Netdb_hlen_t
-syn keyword xsType Netdb_host_t Netdb_name_t Netdb_net_t OP OPCODE OP_4tree
-syn keyword xsType Off_t Optype PAD PADLIST PADOFFSET PADOP PERL_CONTEXT
-syn keyword xsType PERL_SI PMOP PTR_TBL_ENT_t PTR_TBL_t PVOP PerlIO
-syn keyword xsType PerlIO_funcs PerlIO_list_s PerlIO_list_t PerlIOl
-syn keyword xsType PerlInterpreter Pid_t Quad_t REGEXP Rand_seed_t SSize_t
-syn keyword xsType STRLEN STRUCT_SV SUBLEXINFO SV SVOP Select_fd_set_t
-syn keyword xsType Shmat_t Signal_t Sigsave_t Size_t Sock_size_t Stat_t TM64
-syn keyword xsType TOKEN Time64_T Time_t U16 U32 U64 U8 UNOP UV Uid_t Uquad_t
-syn keyword xsType XOP XPV XPVAV XPVBM XPVCV XPVFM XPVGV XPVHV XPVIO XPVIV
-syn keyword xsType XPVLV XPVMG XPVNV XPVUV Year _PerlIO _PerlIO_funcs
-syn keyword xsType _pMY_CXT _pTHX _reg_ac_data _reg_trie_data _reg_trie_state
-syn keyword xsType _reg_trie_trans _reg_trie_trans_list_elem _sublex_info
-syn keyword xsType _xhvnameu _xivu _xmgu _xnvu am_table am_table_short
-syn keyword xsType block_eval block_format block_givwhen block_hooks
-syn keyword xsType block_loop block_sub bool clone_params custom_op
-syn keyword xsType cv_flags_t expectation gccbug_semun line_t madprop magic
-syn keyword xsType mem_log_type mgvtbl mro_alg mro_meta my_cxt_t opcode p5rx
-syn keyword xsType pMY_CXT pMY_CXT_ pTHX pTHX_ padtidy_type perl_cond
-syn keyword xsType perl_debug_pad perl_key perl_memory_debug_header
-syn keyword xsType perl_mstats perl_mstats_t perl_mutex perl_os_thread
-syn keyword xsType perl_phase perl_vars perl_wait_queue pthread_addr_t
-syn keyword xsType ptr_tbl ptr_tbl_ent re_save_state refcounted_he
-syn keyword xsType reg_ac_data reg_data reg_substr_data reg_substr_datum
-syn keyword xsType reg_trie_data reg_trie_state reg_trie_trans
-syn keyword xsType reg_trie_trans_le regex_charset regnode regnode_1
-syn keyword xsType regnode_2 regnode_2L regnode_charclass
-syn keyword xsType regnode_charclass_class regnode_string semun shared_he
-syn keyword xsType svtype thread_intern ufuncs xpv xpvav xpvcv xpvfm xpvgv
-syn keyword xsType xpvhv xpvhv_aux xpvio xpviv xpvlv xpvmg xpvnv xpvuv
+syn keyword xsType Fpos_t Free_t GCB_enum GP GV Gid_t Groups_t HE HEK HV I16
+syn keyword xsType I32 I64 I8 IO IV Int64 JMPENV LISTOP LOGOP LOOP MAGIC
+syn keyword xsType METHOP MGS MGVTBL Malloc_t Mmap_t Mode_t NV Netdb_hlen_t
+syn keyword xsType Netdb_host_t Netdb_name_t Netdb_net_t OP OPCODE OPSLAB
+syn keyword xsType OPSLOT Off_t Optype PAD PADLIST PADNAME PADNAMELIST
+syn keyword xsType PADOFFSET PADOP PERL_CONTEXT PERL_DRAND48_T PERL_SI PMOP
+syn keyword xsType PTR_TBL_ENT_t PTR_TBL_t PVOP PerlHandShakeInterpreter
+syn keyword xsType PerlIO PerlIO_funcs PerlIO_list_s PerlIO_list_t PerlIOl
+syn keyword xsType PerlInterpreter Pid_t Quad_t REGEXP RExC_state_t
+syn keyword xsType Rand_seed_t SB_enum SSize_t STRLEN STRUCT_SV SUBLEXINFO SV
+syn keyword xsType SVOP Select_fd_set_t Shmat_t Signal_t Sigsave_t Size_t
+syn keyword xsType Sock_size_t Stat_t TM64 Time64_T Time_t U16 U32 U64 U8
+syn keyword xsType UNOP UNOP_AUX UV Uid_t Uquad_t WB_enum XINVLIST XOP XPV
+syn keyword xsType XPVAV XPVBM XPVCV XPVFM XPVGV XPVHV XPVIO XPVIV XPVLV
+syn keyword xsType XPVMG XPVNV XPVUV Year _PerlIO _PerlIO_funcs
+syn keyword xsType _char_class_number _pMY_CXT _pTHX _reg_ac_data
+syn keyword xsType _reg_trie_data _reg_trie_state _reg_trie_trans
+syn keyword xsType _reg_trie_trans_list_elem _sublex_info _xhvnameu _xivu
+syn keyword xsType _xmgu _xnvu am_table am_table_short block_eval
+syn keyword xsType block_format block_givwhen block_hooks block_loop
+syn keyword xsType block_sub bound_type clone_params custom_op cv_flags_t
+syn keyword xsType expectation gccbug_semun line_t magic mem_log_type methop
+syn keyword xsType mgvtbl mro_alg mro_meta my_cxt_t opcode opslab opslot p5rx
+syn keyword xsType pMY_CXT pMY_CXT_ pTHX pTHX_ padlist padname
+syn keyword xsType padname_with_str padnamelist padtidy_type perl_cond
+syn keyword xsType perl_debug_pad perl_drand48_t perl_key
+syn keyword xsType perl_memory_debug_header perl_mstats perl_mstats_t
+syn keyword xsType perl_mutex perl_os_thread perl_phase perl_vars
+syn keyword xsType pthread_addr_t ptr_tbl ptr_tbl_ent refcounted_he
+syn keyword xsType reg_ac_data reg_code_block reg_data reg_substr_data
+syn keyword xsType reg_substr_datum reg_trie_data reg_trie_state
+syn keyword xsType reg_trie_trans reg_trie_trans_le regex_charset regnode
+syn keyword xsType regnode_1 regnode_2 regnode_2L regnode_charclass
+syn keyword xsType regnode_charclass_class regnode_charclass_posixl
+syn keyword xsType regnode_ssc regnode_string semun shared_he svtype ufuncs
+syn keyword xsType unop_aux xop_flags_enum xpv xpvav xpvcv xpvfm xpvgv xpvhv
+syn keyword xsType xpvhv_aux xpvinvlist xpvio xpviv xpvlv xpvmg xpvnv xpvuv
syn keyword xsType yytokentype
syn keyword xsString IVdf NVef NVff NVgf SVf SVf256 SVf32 SVf_ UVof UVuf UVxf
syn keyword xsConstant CXt_BLOCK CXt_EVAL CXt_FORMAT CXt_GIVEN CXt_LOOP_FOR
syn keyword xsConstant CXt_LOOP_LAZYIV CXt_LOOP_LAZYSV CXt_LOOP_PLAIN
-syn keyword xsConstant CXt_NULL CXt_SUB CXt_SUBST CXt_WHEN FALSE G_ARRAY
-syn keyword xsConstant G_DISCARD G_EVAL G_FAKINGEVAL G_KEEPERR G_METHOD
-syn keyword xsConstant G_NOARGS G_NODEBUG G_SCALAR G_UNDEF_FILL G_VOID G_WANT
-syn keyword xsConstant G_WARN_ALL_MASK G_WARN_ALL_OFF G_WARN_ALL_ON
-syn keyword xsConstant G_WARN_OFF G_WARN_ON G_WARN_ONCE G_WRITING_TO_STDERR
-syn keyword xsConstant OA_AVREF OA_BASEOP OA_BASEOP_OR_UNOP OA_BINOP
-syn keyword xsConstant OA_CLASS_MASK OA_COP OA_CVREF OA_DANGEROUS OA_DEFGV
-syn keyword xsConstant OA_FILEREF OA_FILESTATOP OA_FOLDCONST OA_HVREF OA_LIST
-syn keyword xsConstant OA_LISTOP OA_LOGOP OA_LOOP OA_LOOPEXOP OA_MARK
+syn keyword xsConstant CXt_NULL CXt_SUB CXt_SUBST CXt_WHEN GCB_BOUND GCB_CR
+syn keyword xsConstant GCB_Control GCB_EDGE GCB_Extend GCB_L GCB_LF GCB_LV
+syn keyword xsConstant GCB_LVT GCB_Other GCB_Prepend GCB_Regional_Indicator
+syn keyword xsConstant GCB_SpacingMark GCB_T GCB_V G_ARRAY G_DISCARD G_EVAL
+syn keyword xsConstant G_FAKINGEVAL G_KEEPERR G_METHOD G_METHOD_NAMED
+syn keyword xsConstant G_NOARGS G_NODEBUG G_RE_REPARSING G_SCALAR
+syn keyword xsConstant G_UNDEF_FILL G_VOID G_WANT G_WARN_ALL_MASK
+syn keyword xsConstant G_WARN_ALL_OFF G_WARN_ALL_ON G_WARN_OFF G_WARN_ON
+syn keyword xsConstant G_WARN_ONCE G_WRITING_TO_STDERR OA_AVREF OA_BASEOP
+syn keyword xsConstant OA_BASEOP_OR_UNOP OA_BINOP OA_CLASS_MASK OA_COP
+syn keyword xsConstant OA_CVREF OA_DANGEROUS OA_DEFGV OA_FILEREF
+syn keyword xsConstant OA_FILESTATOP OA_FOLDCONST OA_HVREF OA_LIST OA_LISTOP
+syn keyword xsConstant OA_LOGOP OA_LOOP OA_LOOPEXOP OA_MARK OA_METHOP
syn keyword xsConstant OA_OPTIONAL OA_OTHERINT OA_PADOP OA_PMOP
syn keyword xsConstant OA_PVOP_OR_SVOP OA_RETSCALAR OA_SCALAR OA_SCALARREF
-syn keyword xsConstant OA_SVOP OA_TARGET OA_TARGLEX OA_UNOP OP_AASSIGN OP_ABS
-syn keyword xsConstant OP_ACCEPT OP_ADD OP_AEACH OP_AELEM OP_AELEMFAST
-syn keyword xsConstant OP_AELEMFAST_LEX OP_AKEYS OP_ALARM OP_AND OP_ANDASSIGN
-syn keyword xsConstant OP_ANONCODE OP_ANONHASH OP_ANONLIST OP_ASLICE OP_ATAN2
-syn keyword xsConstant OP_AV2ARYLEN OP_AVALUES OP_BACKTICK OP_BIND OP_BINMODE
-syn keyword xsConstant OP_BIT_AND OP_BIT_OR OP_BIT_XOR OP_BLESS OP_BOOLKEYS
-syn keyword xsConstant OP_BREAK OP_CALLER OP_CHDIR OP_CHMOD OP_CHOMP OP_CHOP
-syn keyword xsConstant OP_CHOWN OP_CHR OP_CHROOT OP_CLOSE OP_CLOSEDIR
-syn keyword xsConstant OP_COMPLEMENT OP_CONCAT OP_COND_EXPR OP_CONNECT
-syn keyword xsConstant OP_CONST OP_CONTINUE OP_COREARGS OP_COS OP_CRYPT
-syn keyword xsConstant OP_CUSTOM OP_DBMCLOSE OP_DBMOPEN OP_DBSTATE OP_DEFINED
-syn keyword xsConstant OP_DELETE OP_DIE OP_DIVIDE OP_DOFILE OP_DOR
-syn keyword xsConstant OP_DORASSIGN OP_DUMP OP_EACH OP_EGRENT OP_EHOSTENT
-syn keyword xsConstant OP_ENETENT OP_ENTER OP_ENTEREVAL OP_ENTERGIVEN
-syn keyword xsConstant OP_ENTERITER OP_ENTERLOOP OP_ENTERSUB OP_ENTERTRY
-syn keyword xsConstant OP_ENTERWHEN OP_ENTERWRITE OP_EOF OP_EPROTOENT
-syn keyword xsConstant OP_EPWENT OP_EQ OP_ESERVENT OP_EXEC OP_EXISTS OP_EXIT
-syn keyword xsConstant OP_EXP OP_FC OP_FCNTL OP_FILENO OP_FLIP OP_FLOCK
-syn keyword xsConstant OP_FLOP OP_FORK OP_FORMLINE OP_FTATIME OP_FTBINARY
-syn keyword xsConstant OP_FTBLK OP_FTCHR OP_FTCTIME OP_FTDIR OP_FTEEXEC
-syn keyword xsConstant OP_FTEOWNED OP_FTEREAD OP_FTEWRITE OP_FTFILE OP_FTIS
-syn keyword xsConstant OP_FTLINK OP_FTMTIME OP_FTPIPE OP_FTREXEC OP_FTROWNED
-syn keyword xsConstant OP_FTRREAD OP_FTRWRITE OP_FTSGID OP_FTSIZE OP_FTSOCK
-syn keyword xsConstant OP_FTSUID OP_FTSVTX OP_FTTEXT OP_FTTTY OP_FTZERO OP_GE
-syn keyword xsConstant OP_GELEM OP_GETC OP_GETLOGIN OP_GETPEERNAME OP_GETPGRP
-syn keyword xsConstant OP_GETPPID OP_GETPRIORITY OP_GETSOCKNAME OP_GGRENT
-syn keyword xsConstant OP_GGRGID OP_GGRNAM OP_GHBYADDR OP_GHBYNAME
-syn keyword xsConstant OP_GHOSTENT OP_GLOB OP_GMTIME OP_GNBYADDR OP_GNBYNAME
-syn keyword xsConstant OP_GNETENT OP_GOTO OP_GPBYNAME OP_GPBYNUMBER
-syn keyword xsConstant OP_GPROTOENT OP_GPWENT OP_GPWNAM OP_GPWUID
-syn keyword xsConstant OP_GREPSTART OP_GREPWHILE OP_GSBYNAME OP_GSBYPORT
-syn keyword xsConstant OP_GSERVENT OP_GSOCKOPT OP_GT OP_GV OP_GVSV OP_HELEM
-syn keyword xsConstant OP_HEX OP_HINTSEVAL OP_HSLICE OP_INDEX OP_INT OP_IOCTL
-syn keyword xsConstant OP_ITER OP_I_ADD OP_I_DIVIDE OP_I_EQ OP_I_GE OP_I_GT
-syn keyword xsConstant OP_I_LE OP_I_LT OP_I_MODULO OP_I_MULTIPLY OP_I_NCMP
-syn keyword xsConstant OP_I_NE OP_I_NEGATE OP_I_POSTDEC OP_I_POSTINC
-syn keyword xsConstant OP_I_PREDEC OP_I_PREINC OP_I_SUBTRACT OP_JOIN OP_KEYS
-syn keyword xsConstant OP_KILL OP_LAST OP_LC OP_LCFIRST OP_LE OP_LEAVE
-syn keyword xsConstant OP_LEAVEEVAL OP_LEAVEGIVEN OP_LEAVELOOP OP_LEAVESUB
-syn keyword xsConstant OP_LEAVESUBLV OP_LEAVETRY OP_LEAVEWHEN OP_LEAVEWRITE
-syn keyword xsConstant OP_LEFT_SHIFT OP_LENGTH OP_LINESEQ OP_LINK OP_LIST
-syn keyword xsConstant OP_LISTEN OP_LOCALTIME OP_LOCK OP_LOG OP_LSLICE
-syn keyword xsConstant OP_LSTAT OP_LT OP_MAPSTART OP_MAPWHILE OP_MATCH
-syn keyword xsConstant OP_METHOD OP_METHOD_NAMED OP_MKDIR OP_MODULO OP_MSGCTL
-syn keyword xsConstant OP_MSGGET OP_MSGRCV OP_MSGSND OP_MULTIPLY OP_NCMP
-syn keyword xsConstant OP_NE OP_NEGATE OP_NEXT OP_NEXTSTATE OP_NOT OP_NULL
-syn keyword xsConstant OP_OCT OP_ONCE OP_OPEN OP_OPEN_DIR OP_OR OP_ORASSIGN
-syn keyword xsConstant OP_ORD OP_PACK OP_PADANY OP_PADAV OP_PADHV OP_PADSV
-syn keyword xsConstant OP_PIPE_OP OP_POP OP_POS OP_POSTDEC OP_POSTINC OP_POW
-syn keyword xsConstant OP_PREDEC OP_PREINC OP_PRINT OP_PROTOTYPE OP_PRTF
-syn keyword xsConstant OP_PUSH OP_PUSHMARK OP_PUSHRE OP_QR OP_QUOTEMETA
-syn keyword xsConstant OP_RAND OP_RANGE OP_RCATLINE OP_REACH OP_READ
-syn keyword xsConstant OP_READDIR OP_READLINE OP_READLINK OP_RECV OP_REDO
-syn keyword xsConstant OP_REF OP_REFGEN OP_REGCMAYBE OP_REGCOMP OP_REGCRESET
-syn keyword xsConstant OP_RENAME OP_REPEAT OP_REQUIRE OP_RESET OP_RETURN
-syn keyword xsConstant OP_REVERSE OP_REWINDDIR OP_RIGHT_SHIFT OP_RINDEX
-syn keyword xsConstant OP_RKEYS OP_RMDIR OP_RUNCV OP_RV2AV OP_RV2CV OP_RV2GV
-syn keyword xsConstant OP_RV2HV OP_RV2SV OP_RVALUES OP_SASSIGN OP_SAY
-syn keyword xsConstant OP_SCALAR OP_SCHOMP OP_SCHOP OP_SCMP OP_SCOPE OP_SEEK
-syn keyword xsConstant OP_SEEKDIR OP_SELECT OP_SEMCTL OP_SEMGET OP_SEMOP
-syn keyword xsConstant OP_SEND OP_SEQ OP_SETPGRP OP_SETPRIORITY OP_SGE
-syn keyword xsConstant OP_SGRENT OP_SGT OP_SHIFT OP_SHMCTL OP_SHMGET
-syn keyword xsConstant OP_SHMREAD OP_SHMWRITE OP_SHOSTENT OP_SHUTDOWN OP_SIN
-syn keyword xsConstant OP_SLE OP_SLEEP OP_SLT OP_SMARTMATCH OP_SNE OP_SNETENT
-syn keyword xsConstant OP_SOCKET OP_SOCKPAIR OP_SORT OP_SPLICE OP_SPLIT
-syn keyword xsConstant OP_SPRINTF OP_SPROTOENT OP_SPWENT OP_SQRT OP_SRAND
-syn keyword xsConstant OP_SREFGEN OP_SSELECT OP_SSERVENT OP_SSOCKOPT OP_STAT
-syn keyword xsConstant OP_STRINGIFY OP_STUB OP_STUDY OP_SUBST OP_SUBSTCONT
-syn keyword xsConstant OP_SUBSTR OP_SUBTRACT OP_SYMLINK OP_SYSCALL OP_SYSOPEN
-syn keyword xsConstant OP_SYSREAD OP_SYSSEEK OP_SYSTEM OP_SYSWRITE OP_TELL
-syn keyword xsConstant OP_TELLDIR OP_TIE OP_TIED OP_TIME OP_TMS OP_TRANS
-syn keyword xsConstant OP_TRANSR OP_TRUNCATE OP_UC OP_UCFIRST OP_UMASK
-syn keyword xsConstant OP_UNDEF OP_UNLINK OP_UNPACK OP_UNSHIFT OP_UNSTACK
-syn keyword xsConstant OP_UNTIE OP_UTIME OP_VALUES OP_VEC OP_WAIT OP_WAITPID
-syn keyword xsConstant OP_WANTARRAY OP_WARN OP_XOR OP_max OPf_KIDS OPf_KNOW
-syn keyword xsConstant OPf_LIST OPf_MOD OPf_PARENS OPf_REF OPf_SPECIAL
-syn keyword xsConstant OPf_STACKED OPf_WANT OPf_WANT_LIST OPf_WANT_SCALAR
-syn keyword xsConstant OPf_WANT_VOID OPpALLOW_FAKE OPpASSIGN_BACKWARDS
-syn keyword xsConstant OPpASSIGN_COMMON OPpASSIGN_CV_TO_GV OPpCONST_BARE
-syn keyword xsConstant OPpCONST_ENTERED OPpCONST_NOVER OPpCONST_SHORTCIRCUIT
-syn keyword xsConstant OPpCONST_STRICT OPpCONST_WARNING OPpCOREARGS_DEREF1
-syn keyword xsConstant OPpCOREARGS_DEREF2 OPpCOREARGS_PUSHMARK
-syn keyword xsConstant OPpCOREARGS_SCALARMOD OPpDEREF OPpDEREF_AV OPpDEREF_HV
-syn keyword xsConstant OPpDEREF_SV OPpDONT_INIT_GV OPpEARLY_CV
-syn keyword xsConstant OPpENTERSUB_AMPER OPpENTERSUB_DB OPpENTERSUB_HASTARG
-syn keyword xsConstant OPpENTERSUB_INARGS OPpENTERSUB_LVAL_MASK
-syn keyword xsConstant OPpENTERSUB_NOPAREN OPpEVAL_BYTES OPpEVAL_COPHH
-syn keyword xsConstant OPpEVAL_HAS_HH OPpEVAL_UNICODE OPpEXISTS_SUB
-syn keyword xsConstant OPpEXIT_VMSISH OPpFLIP_LINENUM OPpFT_ACCESS
-syn keyword xsConstant OPpFT_AFTER_t OPpFT_STACKED OPpFT_STACKING OPpGREP_LEX
-syn keyword xsConstant OPpHUSH_VMSISH OPpITER_DEF OPpITER_REVERSED
-syn keyword xsConstant OPpLIST_GUESSED OPpLVAL_DEFER OPpLVAL_INTRO
-syn keyword xsConstant OPpMAYBE_LVSUB OPpMAY_RETURN_CONSTANT OPpOFFBYONE
-syn keyword xsConstant OPpOPEN_IN_CRLF OPpOPEN_IN_RAW OPpOPEN_OUT_CRLF
-syn keyword xsConstant OPpOPEN_OUT_RAW OPpOUR_INTRO OPpPAD_STATE
-syn keyword xsConstant OPpPV_IS_UTF8 OPpREFCOUNTED OPpREPEAT_DOLIST
-syn keyword xsConstant OPpREVERSE_INPLACE OPpRUNTIME OPpSLICE OPpSORT_DESCEND
+syn keyword xsConstant OA_SVOP OA_TARGET OA_TARGLEX OA_UNOP OA_UNOP_AUX
+syn keyword xsConstant OP_AASSIGN OP_ABS OP_ACCEPT OP_ADD OP_AEACH OP_AELEM
+syn keyword xsConstant OP_AELEMFAST OP_AELEMFAST_LEX OP_AKEYS OP_ALARM OP_AND
+syn keyword xsConstant OP_ANDASSIGN OP_ANONCODE OP_ANONCONST OP_ANONHASH
+syn keyword xsConstant OP_ANONLIST OP_ASLICE OP_ATAN2 OP_AV2ARYLEN OP_AVALUES
+syn keyword xsConstant OP_BACKTICK OP_BIND OP_BINMODE OP_BIT_AND OP_BIT_OR
+syn keyword xsConstant OP_BIT_XOR OP_BLESS OP_BREAK OP_CALLER OP_CHDIR
+syn keyword xsConstant OP_CHMOD OP_CHOMP OP_CHOP OP_CHOWN OP_CHR OP_CHROOT
+syn keyword xsConstant OP_CLONECV OP_CLOSE OP_CLOSEDIR OP_COMPLEMENT
+syn keyword xsConstant OP_CONCAT OP_COND_EXPR OP_CONNECT OP_CONST OP_CONTINUE
+syn keyword xsConstant OP_COREARGS OP_COS OP_CRYPT OP_CUSTOM OP_DBMCLOSE
+syn keyword xsConstant OP_DBMOPEN OP_DBSTATE OP_DEFINED OP_DELETE OP_DIE
+syn keyword xsConstant OP_DIVIDE OP_DOFILE OP_DOR OP_DORASSIGN OP_DUMP
+syn keyword xsConstant OP_EACH OP_EGRENT OP_EHOSTENT OP_ENETENT OP_ENTER
+syn keyword xsConstant OP_ENTEREVAL OP_ENTERGIVEN OP_ENTERITER OP_ENTERLOOP
+syn keyword xsConstant OP_ENTERSUB OP_ENTERTRY OP_ENTERWHEN OP_ENTERWRITE
+syn keyword xsConstant OP_EOF OP_EPROTOENT OP_EPWENT OP_EQ OP_ESERVENT
+syn keyword xsConstant OP_EXEC OP_EXISTS OP_EXIT OP_EXP OP_FC OP_FCNTL
+syn keyword xsConstant OP_FILENO OP_FLIP OP_FLOCK OP_FLOP OP_FORK OP_FORMLINE
+syn keyword xsConstant OP_FTATIME OP_FTBINARY OP_FTBLK OP_FTCHR OP_FTCTIME
+syn keyword xsConstant OP_FTDIR OP_FTEEXEC OP_FTEOWNED OP_FTEREAD OP_FTEWRITE
+syn keyword xsConstant OP_FTFILE OP_FTIS OP_FTLINK OP_FTMTIME OP_FTPIPE
+syn keyword xsConstant OP_FTREXEC OP_FTROWNED OP_FTRREAD OP_FTRWRITE
+syn keyword xsConstant OP_FTSGID OP_FTSIZE OP_FTSOCK OP_FTSUID OP_FTSVTX
+syn keyword xsConstant OP_FTTEXT OP_FTTTY OP_FTZERO OP_GE OP_GELEM OP_GETC
+syn keyword xsConstant OP_GETLOGIN OP_GETPEERNAME OP_GETPGRP OP_GETPPID
+syn keyword xsConstant OP_GETPRIORITY OP_GETSOCKNAME OP_GGRENT OP_GGRGID
+syn keyword xsConstant OP_GGRNAM OP_GHBYADDR OP_GHBYNAME OP_GHOSTENT OP_GLOB
+syn keyword xsConstant OP_GMTIME OP_GNBYADDR OP_GNBYNAME OP_GNETENT OP_GOTO
+syn keyword xsConstant OP_GPBYNAME OP_GPBYNUMBER OP_GPROTOENT OP_GPWENT
+syn keyword xsConstant OP_GPWNAM OP_GPWUID OP_GREPSTART OP_GREPWHILE
+syn keyword xsConstant OP_GSBYNAME OP_GSBYPORT OP_GSERVENT OP_GSOCKOPT OP_GT
+syn keyword xsConstant OP_GV OP_GVSV OP_HELEM OP_HEX OP_HINTSEVAL OP_HSLICE
+syn keyword xsConstant OP_INDEX OP_INT OP_INTROCV OP_IOCTL OP_ITER OP_I_ADD
+syn keyword xsConstant OP_I_DIVIDE OP_I_EQ OP_I_GE OP_I_GT OP_I_LE OP_I_LT
+syn keyword xsConstant OP_I_MODULO OP_I_MULTIPLY OP_I_NCMP OP_I_NE
+syn keyword xsConstant OP_I_NEGATE OP_I_POSTDEC OP_I_POSTINC OP_I_PREDEC
+syn keyword xsConstant OP_I_PREINC OP_I_SUBTRACT OP_JOIN OP_KEYS OP_KILL
+syn keyword xsConstant OP_KVASLICE OP_KVHSLICE OP_LAST OP_LC OP_LCFIRST OP_LE
+syn keyword xsConstant OP_LEAVE OP_LEAVEEVAL OP_LEAVEGIVEN OP_LEAVELOOP
+syn keyword xsConstant OP_LEAVESUB OP_LEAVESUBLV OP_LEAVETRY OP_LEAVEWHEN
+syn keyword xsConstant OP_LEAVEWRITE OP_LEFT_SHIFT OP_LENGTH OP_LINESEQ
+syn keyword xsConstant OP_LINK OP_LIST OP_LISTEN OP_LOCALTIME OP_LOCK OP_LOG
+syn keyword xsConstant OP_LSLICE OP_LSTAT OP_LT OP_LVAVREF OP_LVREF
+syn keyword xsConstant OP_LVREFSLICE OP_MAPSTART OP_MAPWHILE OP_MATCH
+syn keyword xsConstant OP_METHOD OP_METHOD_NAMED OP_METHOD_REDIR
+syn keyword xsConstant OP_METHOD_REDIR_SUPER OP_METHOD_SUPER OP_MKDIR
+syn keyword xsConstant OP_MODULO OP_MSGCTL OP_MSGGET OP_MSGRCV OP_MSGSND
+syn keyword xsConstant OP_MULTIDEREF OP_MULTIPLY OP_NBIT_AND OP_NBIT_OR
+syn keyword xsConstant OP_NBIT_XOR OP_NCMP OP_NCOMPLEMENT OP_NE OP_NEGATE
+syn keyword xsConstant OP_NEXT OP_NEXTSTATE OP_NOT OP_NULL OP_OCT OP_ONCE
+syn keyword xsConstant OP_OPEN OP_OPEN_DIR OP_OR OP_ORASSIGN OP_ORD OP_PACK
+syn keyword xsConstant OP_PADANY OP_PADAV OP_PADCV OP_PADHV OP_PADRANGE
+syn keyword xsConstant OP_PADSV OP_PIPE_OP OP_POP OP_POS OP_POSTDEC
+syn keyword xsConstant OP_POSTINC OP_POW OP_PREDEC OP_PREINC OP_PRINT
+syn keyword xsConstant OP_PROTOTYPE OP_PRTF OP_PUSH OP_PUSHMARK OP_PUSHRE
+syn keyword xsConstant OP_QR OP_QUOTEMETA OP_RAND OP_RANGE OP_RCATLINE
+syn keyword xsConstant OP_REACH OP_READ OP_READDIR OP_READLINE OP_READLINK
+syn keyword xsConstant OP_RECV OP_REDO OP_REF OP_REFASSIGN OP_REFGEN
+syn keyword xsConstant OP_REGCMAYBE OP_REGCOMP OP_REGCRESET OP_RENAME
+syn keyword xsConstant OP_REPEAT OP_REQUIRE OP_RESET OP_RETURN OP_REVERSE
+syn keyword xsConstant OP_REWINDDIR OP_RIGHT_SHIFT OP_RINDEX OP_RKEYS
+syn keyword xsConstant OP_RMDIR OP_RUNCV OP_RV2AV OP_RV2CV OP_RV2GV OP_RV2HV
+syn keyword xsConstant OP_RV2SV OP_RVALUES OP_SASSIGN OP_SAY OP_SBIT_AND
+syn keyword xsConstant OP_SBIT_OR OP_SBIT_XOR OP_SCALAR OP_SCHOMP OP_SCHOP
+syn keyword xsConstant OP_SCMP OP_SCOMPLEMENT OP_SCOPE OP_SEEK OP_SEEKDIR
+syn keyword xsConstant OP_SELECT OP_SEMCTL OP_SEMGET OP_SEMOP OP_SEND OP_SEQ
+syn keyword xsConstant OP_SETPGRP OP_SETPRIORITY OP_SGE OP_SGRENT OP_SGT
+syn keyword xsConstant OP_SHIFT OP_SHMCTL OP_SHMGET OP_SHMREAD OP_SHMWRITE
+syn keyword xsConstant OP_SHOSTENT OP_SHUTDOWN OP_SIN OP_SLE OP_SLEEP OP_SLT
+syn keyword xsConstant OP_SMARTMATCH OP_SNE OP_SNETENT OP_SOCKET OP_SOCKPAIR
+syn keyword xsConstant OP_SORT OP_SPLICE OP_SPLIT OP_SPRINTF OP_SPROTOENT
+syn keyword xsConstant OP_SPWENT OP_SQRT OP_SRAND OP_SREFGEN OP_SSELECT
+syn keyword xsConstant OP_SSERVENT OP_SSOCKOPT OP_STAT OP_STRINGIFY OP_STUB
+syn keyword xsConstant OP_STUDY OP_SUBST OP_SUBSTCONT OP_SUBSTR OP_SUBTRACT
+syn keyword xsConstant OP_SYMLINK OP_SYSCALL OP_SYSOPEN OP_SYSREAD OP_SYSSEEK
+syn keyword xsConstant OP_SYSTEM OP_SYSWRITE OP_TELL OP_TELLDIR OP_TIE
+syn keyword xsConstant OP_TIED OP_TIME OP_TMS OP_TRANS OP_TRANSR OP_TRUNCATE
+syn keyword xsConstant OP_UC OP_UCFIRST OP_UMASK OP_UNDEF OP_UNLINK OP_UNPACK
+syn keyword xsConstant OP_UNSHIFT OP_UNSTACK OP_UNTIE OP_UTIME OP_VALUES
+syn keyword xsConstant OP_VEC OP_WAIT OP_WAITPID OP_WANTARRAY OP_WARN OP_XOR
+syn keyword xsConstant OP_max OPf_FOLDED OPf_KIDS OPf_KNOW OPf_LIST OPf_MOD
+syn keyword xsConstant OPf_PARENS OPf_REF OPf_SPECIAL OPf_STACKED OPf_WANT
+syn keyword xsConstant OPf_WANT_LIST OPf_WANT_SCALAR OPf_WANT_VOID
+syn keyword xsConstant OPpALLOW_FAKE OPpARG1_MASK OPpARG2_MASK OPpARG3_MASK
+syn keyword xsConstant OPpARG4_MASK OPpASSIGN_BACKWARDS OPpASSIGN_COMMON
+syn keyword xsConstant OPpASSIGN_CV_TO_GV OPpCONST_BARE OPpCONST_ENTERED
+syn keyword xsConstant OPpCONST_NOVER OPpCONST_SHORTCIRCUIT OPpCONST_STRICT
+syn keyword xsConstant OPpCOREARGS_DEREF1 OPpCOREARGS_DEREF2
+syn keyword xsConstant OPpCOREARGS_PUSHMARK OPpCOREARGS_SCALARMOD OPpDEREF
+syn keyword xsConstant OPpDEREF_AV OPpDEREF_HV OPpDEREF_SV OPpDONT_INIT_GV
+syn keyword xsConstant OPpEARLY_CV OPpENTERSUB_AMPER OPpENTERSUB_DB
+syn keyword xsConstant OPpENTERSUB_HASTARG OPpENTERSUB_INARGS
+syn keyword xsConstant OPpENTERSUB_LVAL_MASK OPpENTERSUB_NOPAREN
+syn keyword xsConstant OPpEVAL_BYTES OPpEVAL_COPHH OPpEVAL_HAS_HH
+syn keyword xsConstant OPpEVAL_RE_REPARSING OPpEVAL_UNICODE OPpEXISTS_SUB
+syn keyword xsConstant OPpFLIP_LINENUM OPpFT_ACCESS OPpFT_AFTER_t
+syn keyword xsConstant OPpFT_STACKED OPpFT_STACKING OPpGREP_LEX
+syn keyword xsConstant OPpHINT_STRICT_REFS OPpHUSH_VMSISH OPpITER_DEF
+syn keyword xsConstant OPpITER_REVERSED OPpLIST_GUESSED OPpLVALUE
+syn keyword xsConstant OPpLVAL_DEFER OPpLVAL_INTRO OPpLVREF_AV OPpLVREF_CV
+syn keyword xsConstant OPpLVREF_ELEM OPpLVREF_HV OPpLVREF_ITER OPpLVREF_SV
+syn keyword xsConstant OPpLVREF_TYPE OPpMAYBE_LVSUB OPpMAYBE_TRUEBOOL
+syn keyword xsConstant OPpMAY_RETURN_CONSTANT OPpMULTIDEREF_DELETE
+syn keyword xsConstant OPpMULTIDEREF_EXISTS OPpOFFBYONE OPpOPEN_IN_CRLF
+syn keyword xsConstant OPpOPEN_IN_RAW OPpOPEN_OUT_CRLF OPpOPEN_OUT_RAW
+syn keyword xsConstant OPpOUR_INTRO OPpPADRANGE_COUNTMASK
+syn keyword xsConstant OPpPADRANGE_COUNTSHIFT OPpPAD_STATE OPpPV_IS_UTF8
+syn keyword xsConstant OPpREFCOUNTED OPpREPEAT_DOLIST OPpREVERSE_INPLACE
+syn keyword xsConstant OPpRUNTIME OPpSLICE OPpSLICEWARNING OPpSORT_DESCEND
syn keyword xsConstant OPpSORT_INPLACE OPpSORT_INTEGER OPpSORT_NUMERIC
syn keyword xsConstant OPpSORT_QSORT OPpSORT_REVERSE OPpSORT_STABLE
-syn keyword xsConstant OPpSUBSTR_REPL_FIRST OPpTARGET_MY OPpTRANS_ALL
-syn keyword xsConstant OPpTRANS_COMPLEMENT OPpTRANS_DELETE OPpTRANS_FROM_UTF
-syn keyword xsConstant OPpTRANS_GROWS OPpTRANS_IDENTICAL OPpTRANS_SQUASH
-syn keyword xsConstant OPpTRANS_TO_UTF PERL_MAGIC_READONLY_ACCEPTABLE
+syn keyword xsConstant OPpSPLIT_IMPLIM OPpSUBSTR_REPL_FIRST OPpTARGET_MY
+syn keyword xsConstant OPpTRANS_ALL OPpTRANS_COMPLEMENT OPpTRANS_DELETE
+syn keyword xsConstant OPpTRANS_FROM_UTF OPpTRANS_GROWS OPpTRANS_IDENTICAL
+syn keyword xsConstant OPpTRANS_SQUASH OPpTRANS_TO_UTF OPpTRUEBOOL
+syn keyword xsConstant PERL_MAGIC_READONLY_ACCEPTABLE
syn keyword xsConstant PERL_MAGIC_TYPE_IS_VALUE_MAGIC
syn keyword xsConstant PERL_MAGIC_TYPE_READONLY_ACCEPTABLE
syn keyword xsConstant PERL_MAGIC_UTF8_CACHESIZE PERL_MAGIC_VALUE_MAGIC
syn keyword xsConstant PERL_MAGIC_VTABLE_MASK PERL_MAGIC_arylen
syn keyword xsConstant PERL_MAGIC_arylen_p PERL_MAGIC_backref PERL_MAGIC_bm
syn keyword xsConstant PERL_MAGIC_checkcall PERL_MAGIC_collxfrm
-syn keyword xsConstant PERL_MAGIC_dbfile PERL_MAGIC_dbline PERL_MAGIC_defelem
-syn keyword xsConstant PERL_MAGIC_env PERL_MAGIC_envelem PERL_MAGIC_ext
-syn keyword xsConstant PERL_MAGIC_fm PERL_MAGIC_hints PERL_MAGIC_hintselem
-syn keyword xsConstant PERL_MAGIC_isa PERL_MAGIC_isaelem PERL_MAGIC_nkeys
-syn keyword xsConstant PERL_MAGIC_overload PERL_MAGIC_overload_elem
+syn keyword xsConstant PERL_MAGIC_dbfile PERL_MAGIC_dbline
+syn keyword xsConstant PERL_MAGIC_debugvar PERL_MAGIC_defelem PERL_MAGIC_env
+syn keyword xsConstant PERL_MAGIC_envelem PERL_MAGIC_ext PERL_MAGIC_fm
+syn keyword xsConstant PERL_MAGIC_hints PERL_MAGIC_hintselem PERL_MAGIC_isa
+syn keyword xsConstant PERL_MAGIC_isaelem PERL_MAGIC_lvref PERL_MAGIC_nkeys
syn keyword xsConstant PERL_MAGIC_overload_table PERL_MAGIC_pos PERL_MAGIC_qr
syn keyword xsConstant PERL_MAGIC_regdata PERL_MAGIC_regdatum
syn keyword xsConstant PERL_MAGIC_regex_global PERL_MAGIC_rhash
syn keyword xsConstant PERL_MAGIC_shared PERL_MAGIC_shared_scalar
-syn keyword xsConstant PERL_MAGIC_sig PERL_MAGIC_sigelem PERL_MAGIC_study
-syn keyword xsConstant PERL_MAGIC_substr PERL_MAGIC_sv PERL_MAGIC_symtab
-syn keyword xsConstant PERL_MAGIC_taint PERL_MAGIC_tied PERL_MAGIC_tiedelem
+syn keyword xsConstant PERL_MAGIC_sig PERL_MAGIC_sigelem PERL_MAGIC_substr
+syn keyword xsConstant PERL_MAGIC_sv PERL_MAGIC_symtab PERL_MAGIC_taint
+syn keyword xsConstant PERL_MAGIC_tied PERL_MAGIC_tiedelem
syn keyword xsConstant PERL_MAGIC_tiedscalar PERL_MAGIC_utf8 PERL_MAGIC_uvar
syn keyword xsConstant PERL_MAGIC_uvar_elem PERL_MAGIC_vec PERL_MAGIC_vstring
syn keyword xsConstant REGEX_ASCII_MORE_RESTRICTED_CHARSET
syn keyword xsConstant REGEX_ASCII_RESTRICTED_CHARSET REGEX_DEPENDS_CHARSET
-syn keyword xsConstant REGEX_LOCALE_CHARSET REGEX_UNICODE_CHARSET SVfARG
+syn keyword xsConstant REGEX_LOCALE_CHARSET REGEX_UNICODE_CHARSET SB_ATerm
+syn keyword xsConstant SB_BOUND SB_CR SB_Close SB_EDGE SB_Extend SB_Format
+syn keyword xsConstant SB_LF SB_Lower SB_Numeric SB_OLetter SB_Other
+syn keyword xsConstant SB_SContinue SB_STerm SB_Sep SB_Sp SB_Upper SVfARG
syn keyword xsConstant SVf_AMAGIC SVf_BREAK SVf_FAKE SVf_IOK SVf_IVisUV
-syn keyword xsConstant SVf_NOK SVf_OK SVf_OOK SVf_POK SVf_READONLY SVf_ROK
-syn keyword xsConstant SVf_THINKFIRST SVf_UTF8 SVp_IOK SVp_NOK SVp_POK
-syn keyword xsConstant SVp_SCREAM SVpad_NAME SVpad_OUR SVpad_STATE
+syn keyword xsConstant SVf_IsCOW SVf_NOK SVf_OK SVf_OOK SVf_POK SVf_PROTECT
+syn keyword xsConstant SVf_READONLY SVf_ROK SVf_THINKFIRST SVf_UTF8 SVp_IOK
+syn keyword xsConstant SVp_NOK SVp_POK SVp_SCREAM SVpad_OUR SVpad_STATE
syn keyword xsConstant SVpad_TYPED SVpav_REAL SVpav_REIFY SVpbm_TAIL
syn keyword xsConstant SVpbm_VALID SVpgv_GP SVphv_CLONEABLE SVphv_HASKFLAGS
-syn keyword xsConstant SVphv_LAZYDEL SVphv_REHASH SVphv_SHAREKEYS
-syn keyword xsConstant SVprv_PCS_IMPORTED SVprv_WEAKREF SVs_GMG SVs_OBJECT
-syn keyword xsConstant SVs_PADMY SVs_PADSTALE SVs_PADTMP SVs_RMG SVs_SMG
-syn keyword xsConstant SVs_TEMP SVt_BIND SVt_IV SVt_LAST SVt_NULL SVt_NV
-syn keyword xsConstant SVt_PV SVt_PVAV SVt_PVBM SVt_PVCV SVt_PVFM SVt_PVGV
-syn keyword xsConstant SVt_PVHV SVt_PVIO SVt_PVIV SVt_PVLV SVt_PVMG SVt_PVNV
-syn keyword xsConstant SVt_REGEXP SVt_RV TRUE XATTRBLOCK XATTRTERM XBLOCK
-syn keyword xsConstant XOPERATOR XREF XSTATE XTERM XTERMBLOCK XTERMORDORDOR
-syn keyword xsConstant padtidy_FORMAT padtidy_SUB padtidy_SUBCLONE
+syn keyword xsConstant SVphv_LAZYDEL SVphv_SHAREKEYS SVprv_PCS_IMPORTED
+syn keyword xsConstant SVprv_WEAKREF SVs_GMG SVs_OBJECT SVs_PADMY
+syn keyword xsConstant SVs_PADSTALE SVs_PADTMP SVs_RMG SVs_SMG SVs_TEMP
+syn keyword xsConstant SVt_INVLIST SVt_IV SVt_LAST SVt_NULL SVt_NV SVt_PV
+syn keyword xsConstant SVt_PVAV SVt_PVBM SVt_PVCV SVt_PVFM SVt_PVGV SVt_PVHV
+syn keyword xsConstant SVt_PVIO SVt_PVIV SVt_PVLV SVt_PVMG SVt_PVNV
+syn keyword xsConstant SVt_REGEXP SVt_RV TRADITIONAL_BOUND WB_ALetter
+syn keyword xsConstant WB_BOUND WB_CR WB_Double_Quote WB_EDGE WB_Extend
+syn keyword xsConstant WB_ExtendNumLet WB_Format WB_Hebrew_Letter WB_Katakana
+syn keyword xsConstant WB_LF WB_MidLetter WB_MidNum WB_MidNumLet WB_Newline
+syn keyword xsConstant WB_Numeric WB_Other WB_Regional_Indicator
+syn keyword xsConstant WB_Single_Quote WB_UNKNOWN XATTRBLOCK XATTRTERM XBLOCK
+syn keyword xsConstant XBLOCKTERM XOPERATOR XOPe_xop_class XOPe_xop_desc
+syn keyword xsConstant XOPe_xop_name XOPe_xop_peep XOPe_xop_ptr XPOSTDEREF
+syn keyword xsConstant XREF XSTATE XTERM XTERMBLOCK XTERMORDORDOR
+syn keyword xsConstant _CC_ENUM_ALPHA _CC_ENUM_ALPHANUMERIC _CC_ENUM_ASCII
+syn keyword xsConstant _CC_ENUM_BLANK _CC_ENUM_CASED _CC_ENUM_CNTRL
+syn keyword xsConstant _CC_ENUM_DIGIT _CC_ENUM_GRAPH _CC_ENUM_LOWER
+syn keyword xsConstant _CC_ENUM_PRINT _CC_ENUM_PUNCT _CC_ENUM_SPACE
+syn keyword xsConstant _CC_ENUM_UPPER _CC_ENUM_VERTSPACE _CC_ENUM_WORDCHAR
+syn keyword xsConstant _CC_ENUM_XDIGIT padtidy_FORMAT padtidy_SUB
+syn keyword xsConstant padtidy_SUBCLONE
syn keyword xsException XCPT_CATCH XCPT_RETHROW XCPT_TRY_END XCPT_TRY_START
syn keyword xsException dXCPT
syn keyword xsKeyword ALIAS: BOOT: CASE: CLEANUP: CODE: C_ARGS: DISABLE
@@ -485,11 +598,19 @@ syn keyword xsFunction Perl_PerlIO_read Perl_PerlIO_seek Perl_PerlIO_set_cnt
syn keyword xsFunction Perl_PerlIO_set_ptrcnt Perl_PerlIO_setlinebuf
syn keyword xsFunction Perl_PerlIO_stderr Perl_PerlIO_stdin
syn keyword xsFunction Perl_PerlIO_stdout Perl_PerlIO_tell Perl_PerlIO_unread
-syn keyword xsFunction Perl_PerlIO_write Perl_Slab_Alloc Perl_Slab_Free
-syn keyword xsFunction Perl__is_utf8_quotemeta Perl__to_uni_fold_flags
+syn keyword xsFunction Perl_PerlIO_write Perl__get_regclass_nonbitmap_data
+syn keyword xsFunction Perl__is_cur_LC_category_utf8
+syn keyword xsFunction Perl__is_in_locale_category Perl__is_uni_FOO
+syn keyword xsFunction Perl__is_uni_perl_idcont Perl__is_uni_perl_idstart
+syn keyword xsFunction Perl__is_utf8_FOO Perl__is_utf8_idcont
+syn keyword xsFunction Perl__is_utf8_idstart Perl__is_utf8_mark
+syn keyword xsFunction Perl__is_utf8_perl_idcont Perl__is_utf8_perl_idstart
+syn keyword xsFunction Perl__is_utf8_xidcont Perl__is_utf8_xidstart
+syn keyword xsFunction Perl__new_invlist_C_array Perl__to_uni_fold_flags
syn keyword xsFunction Perl__to_utf8_fold_flags Perl__to_utf8_lower_flags
syn keyword xsFunction Perl__to_utf8_title_flags Perl__to_utf8_upper_flags
-syn keyword xsFunction Perl_amagic_call Perl_amagic_deref_call Perl_any_dup
+syn keyword xsFunction Perl_alloccopstash Perl_amagic_call
+syn keyword xsFunction Perl_amagic_deref_call Perl_any_dup
syn keyword xsFunction Perl_apply_attrs_string Perl_atfork_lock
syn keyword xsFunction Perl_atfork_unlock Perl_av_arylen_p Perl_av_clear
syn keyword xsFunction Perl_av_create_and_push Perl_av_create_and_unshift_one
@@ -497,13 +618,14 @@ syn keyword xsFunction Perl_av_delete Perl_av_exists Perl_av_extend
syn keyword xsFunction Perl_av_fetch Perl_av_fill Perl_av_iter_p Perl_av_len
syn keyword xsFunction Perl_av_make Perl_av_pop Perl_av_push Perl_av_shift
syn keyword xsFunction Perl_av_store Perl_av_undef Perl_av_unshift
-syn keyword xsFunction Perl_block_gimme Perl_blockhook_register
-syn keyword xsFunction Perl_bytes_cmp_utf8 Perl_bytes_from_utf8
-syn keyword xsFunction Perl_bytes_to_utf8 Perl_call_argv Perl_call_atexit
-syn keyword xsFunction Perl_call_list Perl_call_method Perl_call_pv
-syn keyword xsFunction Perl_call_sv Perl_caller_cx Perl_calloc Perl_cast_i32
-syn keyword xsFunction Perl_cast_iv Perl_cast_ulong Perl_cast_uv
-syn keyword xsFunction Perl_ck_entersub_args_list Perl_ck_entersub_args_proto
+syn keyword xsFunction Perl_block_end Perl_block_gimme Perl_block_start
+syn keyword xsFunction Perl_blockhook_register Perl_bytes_cmp_utf8
+syn keyword xsFunction Perl_bytes_from_utf8 Perl_bytes_to_utf8 Perl_call_argv
+syn keyword xsFunction Perl_call_atexit Perl_call_list Perl_call_method
+syn keyword xsFunction Perl_call_pv Perl_call_sv Perl_caller_cx Perl_calloc
+syn keyword xsFunction Perl_cast_i32 Perl_cast_iv Perl_cast_ulong
+syn keyword xsFunction Perl_cast_uv Perl_ck_entersub_args_list
+syn keyword xsFunction Perl_ck_entersub_args_proto
syn keyword xsFunction Perl_ck_entersub_args_proto_or_list Perl_ck_warner
syn keyword xsFunction Perl_ck_warner_d Perl_ckwarn Perl_ckwarn_d
syn keyword xsFunction Perl_clone_params_del Perl_clone_params_new
@@ -511,38 +633,39 @@ syn keyword xsFunction Perl_cop_fetch_label Perl_cop_store_label Perl_croak
syn keyword xsFunction Perl_croak_no_modify Perl_croak_nocontext
syn keyword xsFunction Perl_croak_sv Perl_croak_xs_usage Perl_csighandler
syn keyword xsFunction Perl_custom_op_desc Perl_custom_op_name
-syn keyword xsFunction Perl_custom_op_register Perl_custom_op_xop
-syn keyword xsFunction Perl_cv_clone Perl_cv_const_sv
-syn keyword xsFunction Perl_cv_get_call_checker Perl_cv_set_call_checker
-syn keyword xsFunction Perl_cv_undef Perl_cx_dump Perl_cx_dup Perl_cxinc
-syn keyword xsFunction Perl_deb Perl_deb_nocontext Perl_debop
-syn keyword xsFunction Perl_debprofdump Perl_debstack Perl_debstackptrs
-syn keyword xsFunction Perl_delimcpy Perl_despatch_signals Perl_die
-syn keyword xsFunction Perl_die_nocontext Perl_die_sv Perl_dirp_dup
-syn keyword xsFunction Perl_do_aspawn Perl_do_binmode Perl_do_close
-syn keyword xsFunction Perl_do_gv_dump Perl_do_gvgv_dump Perl_do_hv_dump
-syn keyword xsFunction Perl_do_join Perl_do_magic_dump Perl_do_op_dump
-syn keyword xsFunction Perl_do_open9 Perl_do_openn Perl_do_pmop_dump
-syn keyword xsFunction Perl_do_spawn Perl_do_spawn_nowait Perl_do_sprintf
-syn keyword xsFunction Perl_do_sv_dump Perl_doing_taint Perl_doref
-syn keyword xsFunction Perl_dounwind Perl_dowantarray Perl_dump_all
-syn keyword xsFunction Perl_dump_eval Perl_dump_fds Perl_dump_form
-syn keyword xsFunction Perl_dump_indent Perl_dump_mstats Perl_dump_packsubs
-syn keyword xsFunction Perl_dump_sub Perl_dump_vindent Perl_eval_pv
-syn keyword xsFunction Perl_eval_sv Perl_fbm_compile Perl_fbm_instr
-syn keyword xsFunction Perl_filter_add Perl_filter_del Perl_filter_read
-syn keyword xsFunction Perl_find_runcv Perl_find_rundefsv Perl_foldEQ
-syn keyword xsFunction Perl_foldEQ_latin1 Perl_foldEQ_locale
-syn keyword xsFunction Perl_foldEQ_utf8_flags Perl_form Perl_form_nocontext
-syn keyword xsFunction Perl_fp_dup Perl_fprintf_nocontext
+syn keyword xsFunction Perl_custom_op_register Perl_cv_clone Perl_cv_const_sv
+syn keyword xsFunction Perl_cv_get_call_checker Perl_cv_name
+syn keyword xsFunction Perl_cv_set_call_checker
+syn keyword xsFunction Perl_cv_set_call_checker_flags Perl_cv_undef
+syn keyword xsFunction Perl_cx_dump Perl_cx_dup Perl_cxinc Perl_deb
+syn keyword xsFunction Perl_deb_nocontext Perl_debop Perl_debprofdump
+syn keyword xsFunction Perl_debstack Perl_debstackptrs Perl_delimcpy
+syn keyword xsFunction Perl_despatch_signals Perl_die Perl_die_nocontext
+syn keyword xsFunction Perl_die_sv Perl_dirp_dup Perl_do_aspawn
+syn keyword xsFunction Perl_do_binmode Perl_do_close Perl_do_gv_dump
+syn keyword xsFunction Perl_do_gvgv_dump Perl_do_hv_dump Perl_do_join
+syn keyword xsFunction Perl_do_magic_dump Perl_do_op_dump Perl_do_open9
+syn keyword xsFunction Perl_do_openn Perl_do_pmop_dump Perl_do_spawn
+syn keyword xsFunction Perl_do_spawn_nowait Perl_do_sprintf Perl_do_sv_dump
+syn keyword xsFunction Perl_doing_taint Perl_doref Perl_dounwind
+syn keyword xsFunction Perl_dowantarray Perl_dump_all Perl_dump_c_backtrace
+syn keyword xsFunction Perl_dump_eval Perl_dump_form Perl_dump_indent
+syn keyword xsFunction Perl_dump_mstats Perl_dump_packsubs Perl_dump_sub
+syn keyword xsFunction Perl_dump_vindent Perl_eval_pv Perl_eval_sv
+syn keyword xsFunction Perl_fbm_compile Perl_fbm_instr Perl_filter_add
+syn keyword xsFunction Perl_filter_del Perl_filter_read Perl_find_runcv
+syn keyword xsFunction Perl_find_rundefsv Perl_foldEQ Perl_foldEQ_latin1
+syn keyword xsFunction Perl_foldEQ_locale Perl_foldEQ_utf8_flags Perl_form
+syn keyword xsFunction Perl_form_nocontext Perl_fp_dup Perl_fprintf_nocontext
syn keyword xsFunction Perl_free_global_struct Perl_free_tmps Perl_get_av
-syn keyword xsFunction Perl_get_context Perl_get_cv Perl_get_cvn_flags
-syn keyword xsFunction Perl_get_hv Perl_get_mstats Perl_get_op_descs
-syn keyword xsFunction Perl_get_op_names Perl_get_ppaddr Perl_get_sv
-syn keyword xsFunction Perl_get_vtbl Perl_getcwd_sv Perl_gp_dup Perl_gp_free
-syn keyword xsFunction Perl_gp_ref Perl_grok_bin Perl_grok_hex
-syn keyword xsFunction Perl_grok_number Perl_grok_numeric_radix Perl_grok_oct
-syn keyword xsFunction Perl_gv_add_by_type Perl_gv_autoload_pv
+syn keyword xsFunction Perl_get_c_backtrace_dump Perl_get_context Perl_get_cv
+syn keyword xsFunction Perl_get_cvn_flags Perl_get_hv Perl_get_mstats
+syn keyword xsFunction Perl_get_op_descs Perl_get_op_names Perl_get_ppaddr
+syn keyword xsFunction Perl_get_sv Perl_get_vtbl Perl_getcwd_sv Perl_gp_dup
+syn keyword xsFunction Perl_gp_free Perl_gp_ref Perl_grok_bin Perl_grok_hex
+syn keyword xsFunction Perl_grok_infnan Perl_grok_number
+syn keyword xsFunction Perl_grok_number_flags Perl_grok_numeric_radix
+syn keyword xsFunction Perl_grok_oct Perl_gv_add_by_type Perl_gv_autoload_pv
syn keyword xsFunction Perl_gv_autoload_pvn Perl_gv_autoload_sv Perl_gv_check
syn keyword xsFunction Perl_gv_const_sv Perl_gv_dump Perl_gv_efullname
syn keyword xsFunction Perl_gv_efullname4 Perl_gv_fetchfile
@@ -567,72 +690,50 @@ syn keyword xsFunction Perl_hv_eiter_set Perl_hv_fill Perl_hv_free_ent
syn keyword xsFunction Perl_hv_iterinit Perl_hv_iterkey Perl_hv_iterkeysv
syn keyword xsFunction Perl_hv_iternext_flags Perl_hv_iternextsv
syn keyword xsFunction Perl_hv_iterval Perl_hv_ksplit Perl_hv_name_set
-syn keyword xsFunction Perl_hv_placeholders_get Perl_hv_placeholders_p
-syn keyword xsFunction Perl_hv_placeholders_set Perl_hv_riter_p
-syn keyword xsFunction Perl_hv_riter_set Perl_hv_scalar
-syn keyword xsFunction Perl_init_global_struct Perl_init_i18nl10n
-syn keyword xsFunction Perl_init_i18nl14n Perl_init_stacks Perl_init_tm
-syn keyword xsFunction Perl_instr Perl_is_ascii_string Perl_is_lvalue_sub
-syn keyword xsFunction Perl_is_uni_alnum Perl_is_uni_alnum_lc
-syn keyword xsFunction Perl_is_uni_alpha Perl_is_uni_alpha_lc
-syn keyword xsFunction Perl_is_uni_ascii Perl_is_uni_ascii_lc
-syn keyword xsFunction Perl_is_uni_cntrl Perl_is_uni_cntrl_lc
-syn keyword xsFunction Perl_is_uni_digit Perl_is_uni_digit_lc
-syn keyword xsFunction Perl_is_uni_graph Perl_is_uni_graph_lc
-syn keyword xsFunction Perl_is_uni_idfirst Perl_is_uni_idfirst_lc
-syn keyword xsFunction Perl_is_uni_lower Perl_is_uni_lower_lc
-syn keyword xsFunction Perl_is_uni_print Perl_is_uni_print_lc
-syn keyword xsFunction Perl_is_uni_punct Perl_is_uni_punct_lc
-syn keyword xsFunction Perl_is_uni_space Perl_is_uni_space_lc
-syn keyword xsFunction Perl_is_uni_upper Perl_is_uni_upper_lc
-syn keyword xsFunction Perl_is_uni_xdigit Perl_is_uni_xdigit_lc
-syn keyword xsFunction Perl_is_utf8_alnum Perl_is_utf8_alpha
-syn keyword xsFunction Perl_is_utf8_ascii Perl_is_utf8_char_buf
-syn keyword xsFunction Perl_is_utf8_cntrl Perl_is_utf8_digit
-syn keyword xsFunction Perl_is_utf8_graph Perl_is_utf8_idcont
-syn keyword xsFunction Perl_is_utf8_idfirst Perl_is_utf8_lower
-syn keyword xsFunction Perl_is_utf8_mark Perl_is_utf8_perl_space
-syn keyword xsFunction Perl_is_utf8_perl_word Perl_is_utf8_posix_digit
-syn keyword xsFunction Perl_is_utf8_print Perl_is_utf8_punct
-syn keyword xsFunction Perl_is_utf8_space Perl_is_utf8_string
-syn keyword xsFunction Perl_is_utf8_string_loclen Perl_is_utf8_upper
-syn keyword xsFunction Perl_is_utf8_xdigit Perl_is_utf8_xidcont
-syn keyword xsFunction Perl_is_utf8_xidfirst Perl_leave_scope
-syn keyword xsFunction Perl_lex_bufutf8 Perl_lex_discard_to
-syn keyword xsFunction Perl_lex_grow_linestr Perl_lex_next_chunk
-syn keyword xsFunction Perl_lex_peek_unichar Perl_lex_read_space
-syn keyword xsFunction Perl_lex_read_to Perl_lex_read_unichar Perl_lex_start
-syn keyword xsFunction Perl_lex_stuff_pv Perl_lex_stuff_pvn Perl_lex_stuff_sv
-syn keyword xsFunction Perl_lex_unstuff Perl_load_module
-syn keyword xsFunction Perl_load_module_nocontext Perl_looks_like_number
-syn keyword xsFunction Perl_magic_dump Perl_malloc Perl_markstack_grow
-syn keyword xsFunction Perl_mess Perl_mess_nocontext Perl_mess_sv Perl_mfree
-syn keyword xsFunction Perl_mg_clear Perl_mg_copy Perl_mg_dup Perl_mg_find
-syn keyword xsFunction Perl_mg_findext Perl_mg_free Perl_mg_free_type
-syn keyword xsFunction Perl_mg_get Perl_mg_length Perl_mg_magical Perl_mg_set
-syn keyword xsFunction Perl_mg_size Perl_mini_mktime Perl_moreswitches
-syn keyword xsFunction Perl_mro_get_from_name Perl_mro_get_linear_isa
-syn keyword xsFunction Perl_mro_get_private_data Perl_mro_method_changed_in
-syn keyword xsFunction Perl_mro_register Perl_mro_set_mro
-syn keyword xsFunction Perl_mro_set_private_data Perl_my_atof Perl_my_atof2
-syn keyword xsFunction Perl_my_bcopy Perl_my_bzero Perl_my_chsize
-syn keyword xsFunction Perl_my_cxt_index Perl_my_cxt_init Perl_my_dirfd
-syn keyword xsFunction Perl_my_exit Perl_my_failure_exit Perl_my_fflush_all
-syn keyword xsFunction Perl_my_fork Perl_my_htonl Perl_my_memcmp
-syn keyword xsFunction Perl_my_memset Perl_my_ntohl Perl_my_pclose
-syn keyword xsFunction Perl_my_popen Perl_my_popen_list Perl_my_setenv
+syn keyword xsFunction Perl_hv_placeholders_get Perl_hv_placeholders_set
+syn keyword xsFunction Perl_hv_rand_set Perl_hv_riter_p Perl_hv_riter_set
+syn keyword xsFunction Perl_hv_scalar Perl_init_global_struct
+syn keyword xsFunction Perl_init_i18nl10n Perl_init_i18nl14n Perl_init_stacks
+syn keyword xsFunction Perl_init_tm Perl_instr Perl_intro_my
+syn keyword xsFunction Perl_is_invariant_string Perl_is_lvalue_sub
+syn keyword xsFunction Perl_is_utf8_string Perl_is_utf8_string_loclen
+syn keyword xsFunction Perl_isinfnan Perl_leave_scope Perl_lex_bufutf8
+syn keyword xsFunction Perl_lex_discard_to Perl_lex_grow_linestr
+syn keyword xsFunction Perl_lex_next_chunk Perl_lex_peek_unichar
+syn keyword xsFunction Perl_lex_read_space Perl_lex_read_to
+syn keyword xsFunction Perl_lex_read_unichar Perl_lex_start Perl_lex_stuff_pv
+syn keyword xsFunction Perl_lex_stuff_pvn Perl_lex_stuff_sv Perl_lex_unstuff
+syn keyword xsFunction Perl_load_module Perl_load_module_nocontext
+syn keyword xsFunction Perl_looks_like_number Perl_magic_dump Perl_malloc
+syn keyword xsFunction Perl_markstack_grow Perl_mess Perl_mess_nocontext
+syn keyword xsFunction Perl_mess_sv Perl_mfree Perl_mg_clear Perl_mg_copy
+syn keyword xsFunction Perl_mg_dup Perl_mg_find Perl_mg_findext Perl_mg_free
+syn keyword xsFunction Perl_mg_free_type Perl_mg_get Perl_mg_magical
+syn keyword xsFunction Perl_mg_set Perl_mg_size Perl_mini_mktime
+syn keyword xsFunction Perl_moreswitches Perl_mro_get_from_name
+syn keyword xsFunction Perl_mro_get_linear_isa Perl_mro_get_private_data
+syn keyword xsFunction Perl_mro_method_changed_in Perl_mro_register
+syn keyword xsFunction Perl_mro_set_mro Perl_mro_set_private_data
+syn keyword xsFunction Perl_my_atof Perl_my_atof2 Perl_my_bcopy Perl_my_bzero
+syn keyword xsFunction Perl_my_chsize Perl_my_cxt_index Perl_my_cxt_init
+syn keyword xsFunction Perl_my_dirfd Perl_my_exit Perl_my_failure_exit
+syn keyword xsFunction Perl_my_fflush_all Perl_my_fork Perl_my_memcmp
+syn keyword xsFunction Perl_my_memset Perl_my_pclose Perl_my_popen
+syn keyword xsFunction Perl_my_popen_list Perl_my_setenv Perl_my_setlocale
syn keyword xsFunction Perl_my_snprintf Perl_my_socketpair Perl_my_sprintf
-syn keyword xsFunction Perl_my_strftime Perl_my_strlcat Perl_my_strlcpy
-syn keyword xsFunction Perl_my_swap Perl_my_vsnprintf Perl_newANONATTRSUB
+syn keyword xsFunction Perl_my_strerror Perl_my_strftime Perl_my_strlcat
+syn keyword xsFunction Perl_my_strlcpy Perl_my_vsnprintf Perl_newANONATTRSUB
syn keyword xsFunction Perl_newANONHASH Perl_newANONLIST Perl_newANONSUB
-syn keyword xsFunction Perl_newASSIGNOP Perl_newATTRSUB Perl_newAVREF
-syn keyword xsFunction Perl_newBINOP Perl_newCONDOP Perl_newCONSTSUB
-syn keyword xsFunction Perl_newCONSTSUB_flags Perl_newCVREF Perl_newFORM
+syn keyword xsFunction Perl_newASSIGNOP Perl_newAVREF Perl_newBINOP
+syn keyword xsFunction Perl_newCONDOP Perl_newCONSTSUB Perl_newCONSTSUB_flags
+syn keyword xsFunction Perl_newCVREF Perl_newDEFSVOP Perl_newFORM
syn keyword xsFunction Perl_newFOROP Perl_newGIVENOP Perl_newGVOP
syn keyword xsFunction Perl_newGVREF Perl_newGVgen_flags Perl_newHVREF
syn keyword xsFunction Perl_newHVhv Perl_newLISTOP Perl_newLOGOP
-syn keyword xsFunction Perl_newLOOPEX Perl_newLOOPOP Perl_newMYSUB
-syn keyword xsFunction Perl_newNULLLIST Perl_newOP Perl_newPADOP Perl_newPMOP
+syn keyword xsFunction Perl_newLOOPEX Perl_newLOOPOP Perl_newMETHOP
+syn keyword xsFunction Perl_newMETHOP_named Perl_newMYSUB Perl_newNULLLIST
+syn keyword xsFunction Perl_newOP Perl_newPADNAMELIST Perl_newPADNAMEouter
+syn keyword xsFunction Perl_newPADNAMEpvn Perl_newPADOP Perl_newPMOP
syn keyword xsFunction Perl_newPROG Perl_newPVOP Perl_newRANGE Perl_newRV
syn keyword xsFunction Perl_newRV_noinc Perl_newSLICEOP Perl_newSTATEOP
syn keyword xsFunction Perl_newSV Perl_newSVOP Perl_newSVREF Perl_newSV_type
@@ -640,21 +741,24 @@ syn keyword xsFunction Perl_newSVhek Perl_newSViv Perl_newSVnv Perl_newSVpv
syn keyword xsFunction Perl_newSVpv_share Perl_newSVpvf
syn keyword xsFunction Perl_newSVpvf_nocontext Perl_newSVpvn
syn keyword xsFunction Perl_newSVpvn_flags Perl_newSVpvn_share Perl_newSVrv
-syn keyword xsFunction Perl_newSVsv Perl_newSVuv Perl_newUNOP Perl_newWHENOP
-syn keyword xsFunction Perl_newWHILEOP Perl_newXS Perl_newXS_flags
-syn keyword xsFunction Perl_new_collate Perl_new_ctype Perl_new_numeric
-syn keyword xsFunction Perl_new_stackinfo Perl_new_version Perl_ninstr
-syn keyword xsFunction Perl_nothreadhook Perl_op_append_elem
-syn keyword xsFunction Perl_op_append_list Perl_op_contextualize Perl_op_dump
-syn keyword xsFunction Perl_op_free Perl_op_linklist Perl_op_null
-syn keyword xsFunction Perl_op_prepend_elem Perl_op_refcnt_lock
-syn keyword xsFunction Perl_op_refcnt_unlock Perl_op_scope Perl_pack_cat
+syn keyword xsFunction Perl_newSVsv Perl_newSVuv Perl_newUNOP
+syn keyword xsFunction Perl_newUNOP_AUX Perl_newWHENOP Perl_newWHILEOP
+syn keyword xsFunction Perl_newXS Perl_newXS_flags Perl_new_collate
+syn keyword xsFunction Perl_new_ctype Perl_new_numeric Perl_new_stackinfo
+syn keyword xsFunction Perl_new_version Perl_ninstr Perl_nothreadhook
+syn keyword xsFunction Perl_op_append_elem Perl_op_append_list
+syn keyword xsFunction Perl_op_contextualize Perl_op_convert_list
+syn keyword xsFunction Perl_op_dump Perl_op_free Perl_op_linklist
+syn keyword xsFunction Perl_op_null Perl_op_parent Perl_op_prepend_elem
+syn keyword xsFunction Perl_op_refcnt_lock Perl_op_refcnt_unlock
+syn keyword xsFunction Perl_op_scope Perl_op_sibling_splice Perl_pack_cat
syn keyword xsFunction Perl_packlist Perl_pad_add_anon Perl_pad_add_name_pv
syn keyword xsFunction Perl_pad_add_name_pvn Perl_pad_add_name_sv
syn keyword xsFunction Perl_pad_alloc Perl_pad_compname_type
syn keyword xsFunction Perl_pad_findmy_pv Perl_pad_findmy_pvn
syn keyword xsFunction Perl_pad_findmy_sv Perl_pad_new Perl_pad_setsv
-syn keyword xsFunction Perl_pad_sv Perl_pad_tidy Perl_parse_arithexpr
+syn keyword xsFunction Perl_pad_sv Perl_pad_tidy Perl_padnamelist_fetch
+syn keyword xsFunction Perl_padnamelist_store Perl_parse_arithexpr
syn keyword xsFunction Perl_parse_barestmt Perl_parse_block
syn keyword xsFunction Perl_parse_fullexpr Perl_parse_fullstmt
syn keyword xsFunction Perl_parse_label Perl_parse_listexpr
@@ -666,7 +770,9 @@ syn keyword xsFunction Perl_ptr_table_fetch Perl_ptr_table_free
syn keyword xsFunction Perl_ptr_table_new Perl_ptr_table_split
syn keyword xsFunction Perl_ptr_table_store Perl_push_scope Perl_pv_display
syn keyword xsFunction Perl_pv_escape Perl_pv_pretty Perl_pv_uni_display
-syn keyword xsFunction Perl_re_compile Perl_re_dup_guts Perl_re_intuit_start
+syn keyword xsFunction Perl_quadmath_format_needed
+syn keyword xsFunction Perl_quadmath_format_single Perl_re_compile
+syn keyword xsFunction Perl_re_dup_guts Perl_re_intuit_start
syn keyword xsFunction Perl_re_intuit_string Perl_realloc Perl_reentrant_free
syn keyword xsFunction Perl_reentrant_init Perl_reentrant_retry
syn keyword xsFunction Perl_reentrant_size Perl_reg_named_buff_all
@@ -700,37 +806,38 @@ syn keyword xsFunction Perl_savesharedpv Perl_savesharedpvn
syn keyword xsFunction Perl_savesharedsvpv Perl_savestack_grow
syn keyword xsFunction Perl_savestack_grow_cnt Perl_savesvpv Perl_scan_bin
syn keyword xsFunction Perl_scan_hex Perl_scan_num Perl_scan_oct
-syn keyword xsFunction Perl_scan_version Perl_scan_vstring Perl_screaminstr
-syn keyword xsFunction Perl_seed Perl_set_context Perl_set_numeric_local
+syn keyword xsFunction Perl_scan_version Perl_scan_vstring Perl_seed
+syn keyword xsFunction Perl_set_context Perl_set_numeric_local
syn keyword xsFunction Perl_set_numeric_radix Perl_set_numeric_standard
syn keyword xsFunction Perl_setdefout Perl_share_hek Perl_si_dup Perl_sortsv
syn keyword xsFunction Perl_sortsv_flags Perl_ss_dup Perl_stack_grow
-syn keyword xsFunction Perl_start_subparse Perl_stashpv_hvname_match
-syn keyword xsFunction Perl_str_to_version Perl_sv_2bool_flags Perl_sv_2cv
-syn keyword xsFunction Perl_sv_2io Perl_sv_2iv_flags Perl_sv_2mortal
-syn keyword xsFunction Perl_sv_2nv_flags Perl_sv_2pv_flags Perl_sv_2pvbyte
-syn keyword xsFunction Perl_sv_2pvutf8 Perl_sv_2uv_flags Perl_sv_backoff
-syn keyword xsFunction Perl_sv_bless Perl_sv_cat_decode Perl_sv_catpv
-syn keyword xsFunction Perl_sv_catpv_flags Perl_sv_catpv_mg Perl_sv_catpvf
-syn keyword xsFunction Perl_sv_catpvf_mg Perl_sv_catpvf_mg_nocontext
-syn keyword xsFunction Perl_sv_catpvf_nocontext Perl_sv_catpvn_flags
-syn keyword xsFunction Perl_sv_catsv_flags Perl_sv_chop Perl_sv_clear
-syn keyword xsFunction Perl_sv_cmp Perl_sv_cmp_flags Perl_sv_cmp_locale
-syn keyword xsFunction Perl_sv_cmp_locale_flags Perl_sv_collxfrm_flags
-syn keyword xsFunction Perl_sv_copypv Perl_sv_dec Perl_sv_dec_nomg
-syn keyword xsFunction Perl_sv_derived_from Perl_sv_derived_from_pv
-syn keyword xsFunction Perl_sv_derived_from_pvn Perl_sv_derived_from_sv
-syn keyword xsFunction Perl_sv_destroyable Perl_sv_does Perl_sv_does_pv
-syn keyword xsFunction Perl_sv_does_pvn Perl_sv_does_sv Perl_sv_dump
-syn keyword xsFunction Perl_sv_dup Perl_sv_dup_inc Perl_sv_eq_flags
-syn keyword xsFunction Perl_sv_force_normal_flags Perl_sv_free Perl_sv_gets
-syn keyword xsFunction Perl_sv_grow Perl_sv_inc Perl_sv_inc_nomg
-syn keyword xsFunction Perl_sv_insert_flags Perl_sv_isa Perl_sv_isobject
-syn keyword xsFunction Perl_sv_iv Perl_sv_len Perl_sv_len_utf8 Perl_sv_magic
-syn keyword xsFunction Perl_sv_magicext Perl_sv_mortalcopy Perl_sv_newmortal
-syn keyword xsFunction Perl_sv_newref Perl_sv_nosharing Perl_sv_nounlocking
-syn keyword xsFunction Perl_sv_nv Perl_sv_peek Perl_sv_pos_b2u
-syn keyword xsFunction Perl_sv_pos_u2b Perl_sv_pos_u2b_flags Perl_sv_pvbyten
+syn keyword xsFunction Perl_start_subparse Perl_str_to_version
+syn keyword xsFunction Perl_sv_2bool_flags Perl_sv_2cv Perl_sv_2io
+syn keyword xsFunction Perl_sv_2iv_flags Perl_sv_2mortal Perl_sv_2nv_flags
+syn keyword xsFunction Perl_sv_2pv_flags Perl_sv_2pvbyte Perl_sv_2pvutf8
+syn keyword xsFunction Perl_sv_2uv_flags Perl_sv_backoff Perl_sv_bless
+syn keyword xsFunction Perl_sv_cat_decode Perl_sv_catpv Perl_sv_catpv_flags
+syn keyword xsFunction Perl_sv_catpv_mg Perl_sv_catpvf Perl_sv_catpvf_mg
+syn keyword xsFunction Perl_sv_catpvf_mg_nocontext Perl_sv_catpvf_nocontext
+syn keyword xsFunction Perl_sv_catpvn_flags Perl_sv_catsv_flags Perl_sv_chop
+syn keyword xsFunction Perl_sv_clear Perl_sv_cmp Perl_sv_cmp_flags
+syn keyword xsFunction Perl_sv_cmp_locale Perl_sv_cmp_locale_flags
+syn keyword xsFunction Perl_sv_collxfrm_flags Perl_sv_copypv_flags
+syn keyword xsFunction Perl_sv_dec Perl_sv_dec_nomg Perl_sv_derived_from
+syn keyword xsFunction Perl_sv_derived_from_pv Perl_sv_derived_from_pvn
+syn keyword xsFunction Perl_sv_derived_from_sv Perl_sv_destroyable
+syn keyword xsFunction Perl_sv_does Perl_sv_does_pv Perl_sv_does_pvn
+syn keyword xsFunction Perl_sv_does_sv Perl_sv_dump Perl_sv_dup
+syn keyword xsFunction Perl_sv_dup_inc Perl_sv_eq_flags
+syn keyword xsFunction Perl_sv_force_normal_flags Perl_sv_free
+syn keyword xsFunction Perl_sv_get_backrefs Perl_sv_gets Perl_sv_grow
+syn keyword xsFunction Perl_sv_inc Perl_sv_inc_nomg Perl_sv_insert_flags
+syn keyword xsFunction Perl_sv_isa Perl_sv_isobject Perl_sv_iv Perl_sv_len
+syn keyword xsFunction Perl_sv_len_utf8 Perl_sv_magic Perl_sv_magicext
+syn keyword xsFunction Perl_sv_newmortal Perl_sv_newref Perl_sv_nosharing
+syn keyword xsFunction Perl_sv_nounlocking Perl_sv_nv Perl_sv_peek
+syn keyword xsFunction Perl_sv_pos_b2u Perl_sv_pos_b2u_flags Perl_sv_pos_u2b
+syn keyword xsFunction Perl_sv_pos_u2b_flags Perl_sv_pvbyten
syn keyword xsFunction Perl_sv_pvbyten_force Perl_sv_pvn
syn keyword xsFunction Perl_sv_pvn_force_flags Perl_sv_pvn_nomg
syn keyword xsFunction Perl_sv_pvutf8n Perl_sv_pvutf8n_force
@@ -751,67 +858,74 @@ syn keyword xsFunction Perl_sv_usepvn_flags Perl_sv_utf8_decode
syn keyword xsFunction Perl_sv_utf8_downgrade Perl_sv_utf8_encode
syn keyword xsFunction Perl_sv_utf8_upgrade_flags_grow Perl_sv_uv
syn keyword xsFunction Perl_sv_vcatpvf Perl_sv_vcatpvf_mg Perl_sv_vcatpvfn
-syn keyword xsFunction Perl_sv_vsetpvf Perl_sv_vsetpvf_mg Perl_sv_vsetpvfn
-syn keyword xsFunction Perl_swash_fetch Perl_swash_init Perl_sys_init
+syn keyword xsFunction Perl_sv_vcatpvfn_flags Perl_sv_vsetpvf
+syn keyword xsFunction Perl_sv_vsetpvf_mg Perl_sv_vsetpvfn Perl_swash_fetch
+syn keyword xsFunction Perl_swash_init Perl_sync_locale Perl_sys_init
syn keyword xsFunction Perl_sys_init3 Perl_sys_intern_clear
syn keyword xsFunction Perl_sys_intern_dup Perl_sys_intern_init Perl_sys_term
-syn keyword xsFunction Perl_taint_env Perl_taint_proper Perl_tmps_grow
-syn keyword xsFunction Perl_to_uni_lower Perl_to_uni_lower_lc
-syn keyword xsFunction Perl_to_uni_title Perl_to_uni_title_lc
-syn keyword xsFunction Perl_to_uni_upper Perl_to_uni_upper_lc
-syn keyword xsFunction Perl_to_utf8_case Perl_unlnk Perl_unpack_str
-syn keyword xsFunction Perl_unpackstring Perl_unsharepvn Perl_upg_version
-syn keyword xsFunction Perl_utf16_to_utf8 Perl_utf16_to_utf8_reversed
-syn keyword xsFunction Perl_utf8_distance Perl_utf8_hop Perl_utf8_length
-syn keyword xsFunction Perl_utf8_to_bytes Perl_utf8_to_uvchr_buf
-syn keyword xsFunction Perl_utf8_to_uvuni_buf Perl_utf8n_to_uvchr
-syn keyword xsFunction Perl_utf8n_to_uvuni Perl_uvchr_to_utf8
-syn keyword xsFunction Perl_uvchr_to_utf8_flags Perl_uvuni_to_utf8_flags
-syn keyword xsFunction Perl_valid_utf8_to_uvchr Perl_valid_utf8_to_uvuni
+syn keyword xsFunction Perl_taint_env Perl_taint_proper Perl_to_uni_lower
+syn keyword xsFunction Perl_to_uni_title Perl_to_uni_upper Perl_to_utf8_case
+syn keyword xsFunction Perl_unlnk Perl_unpack_str Perl_unpackstring
+syn keyword xsFunction Perl_unsharepvn Perl_upg_version Perl_utf16_to_utf8
+syn keyword xsFunction Perl_utf16_to_utf8_reversed Perl_utf8_distance
+syn keyword xsFunction Perl_utf8_hop Perl_utf8_length Perl_utf8_to_bytes
+syn keyword xsFunction Perl_utf8n_to_uvchr Perl_utf8n_to_uvuni
+syn keyword xsFunction Perl_uvoffuni_to_utf8_flags Perl_uvuni_to_utf8
+syn keyword xsFunction Perl_uvuni_to_utf8_flags Perl_valid_utf8_to_uvchr
syn keyword xsFunction Perl_vcmp Perl_vcroak Perl_vdeb Perl_vform
syn keyword xsFunction Perl_vload_module Perl_vmess Perl_vnewSVpvf
syn keyword xsFunction Perl_vnormal Perl_vnumify Perl_vstringify Perl_vverify
syn keyword xsFunction Perl_vwarn Perl_vwarner Perl_warn Perl_warn_nocontext
syn keyword xsFunction Perl_warn_sv Perl_warner Perl_warner_nocontext
syn keyword xsFunction Perl_whichsig_pv Perl_whichsig_pvn Perl_whichsig_sv
-syn keyword xsFunction Perl_wrap_op_checker Slab_Alloc Slab_Free
-syn keyword xsFunction _is_utf8_quotemeta _to_uni_fold_flags
-syn keyword xsFunction _to_utf8_fold_flags _to_utf8_lower_flags
-syn keyword xsFunction _to_utf8_title_flags _to_utf8_upper_flags amagic_call
-syn keyword xsFunction amagic_deref_call any_dup apply_attrs_string
-syn keyword xsFunction atfork_lock atfork_unlock av_clear av_delete av_exists
-syn keyword xsFunction av_extend av_fetch av_fill av_len av_make av_pop
-syn keyword xsFunction av_push av_shift av_store av_undef av_unshift
-syn keyword xsFunction block_gimme bytes_cmp_utf8 bytes_from_utf8
-syn keyword xsFunction bytes_to_utf8 call_argv call_atexit call_list
-syn keyword xsFunction call_method call_pv call_sv caller_cx cast_i32 cast_iv
-syn keyword xsFunction cast_ulong cast_uv ck_entersub_args_list
-syn keyword xsFunction ck_entersub_args_proto ck_entersub_args_proto_or_list
-syn keyword xsFunction ck_warner ck_warner_d croak croak_no_modify
+syn keyword xsFunction Perl_wrap_op_checker _get_regclass_nonbitmap_data
+syn keyword xsFunction _is_cur_LC_category_utf8 _is_in_locale_category
+syn keyword xsFunction _is_uni_FOO _is_uni_perl_idcont _is_uni_perl_idstart
+syn keyword xsFunction _is_utf8_FOO _is_utf8_char_slow _is_utf8_idcont
+syn keyword xsFunction _is_utf8_idstart _is_utf8_mark _is_utf8_perl_idcont
+syn keyword xsFunction _is_utf8_perl_idstart _is_utf8_xidcont
+syn keyword xsFunction _is_utf8_xidstart _new_invlist_C_array
+syn keyword xsFunction _to_uni_fold_flags _to_utf8_fold_flags
+syn keyword xsFunction _to_utf8_lower_flags _to_utf8_title_flags
+syn keyword xsFunction _to_utf8_upper_flags alloccopstash amagic_call
+syn keyword xsFunction amagic_deref_call any_dup append_utf8_from_native_byte
+syn keyword xsFunction apply_attrs_string atfork_lock atfork_unlock av_clear
+syn keyword xsFunction av_delete av_exists av_extend av_fetch av_fill av_len
+syn keyword xsFunction av_make av_pop av_push av_shift av_store av_top_index
+syn keyword xsFunction av_undef av_unshift block_end block_gimme block_start
+syn keyword xsFunction bytes_cmp_utf8 bytes_from_utf8 bytes_to_utf8 call_argv
+syn keyword xsFunction call_atexit call_list call_method call_pv call_sv
+syn keyword xsFunction caller_cx cast_i32 cast_iv cast_ulong cast_uv
+syn keyword xsFunction ck_entersub_args_list ck_entersub_args_proto
+syn keyword xsFunction ck_entersub_args_proto_or_list ck_warner ck_warner_d
+syn keyword xsFunction croak croak_memory_wrap croak_no_modify
syn keyword xsFunction croak_nocontext croak_sv croak_xs_usage csighandler
syn keyword xsFunction custom_op_desc custom_op_name cv_clone cv_const_sv
-syn keyword xsFunction cv_get_call_checker cv_set_call_checker cv_undef
-syn keyword xsFunction cx_dump cx_dup cxinc deb deb_nocontext debop
-syn keyword xsFunction debprofdump debstack debstackptrs delimcpy
-syn keyword xsFunction despatch_signals die die_nocontext die_sv dirp_dup
-syn keyword xsFunction do_aspawn do_binmode do_close do_gv_dump do_gvgv_dump
-syn keyword xsFunction do_hv_dump do_join do_magic_dump do_op_dump do_open9
-syn keyword xsFunction do_openn do_pmop_dump do_spawn do_spawn_nowait
-syn keyword xsFunction do_sprintf do_sv_dump doing_taint doref dounwind
-syn keyword xsFunction dowantarray dump_all dump_eval dump_fds dump_form
+syn keyword xsFunction cv_get_call_checker cv_name cv_set_call_checker
+syn keyword xsFunction cv_set_call_checker_flags cv_undef cx_dump cx_dup
+syn keyword xsFunction cxinc deb deb_nocontext debop debprofdump debstack
+syn keyword xsFunction debstackptrs delimcpy despatch_signals die
+syn keyword xsFunction die_nocontext die_sv dirp_dup do_aspawn do_binmode
+syn keyword xsFunction do_close do_gv_dump do_gvgv_dump do_hv_dump do_join
+syn keyword xsFunction do_magic_dump do_op_dump do_open9 do_openn
+syn keyword xsFunction do_pmop_dump do_spawn do_spawn_nowait do_sprintf
+syn keyword xsFunction do_sv_dump doing_taint doref dounwind dowantarray
+syn keyword xsFunction dump_all dump_c_backtrace dump_eval dump_form
syn keyword xsFunction dump_indent dump_mstats dump_packsubs dump_sub
syn keyword xsFunction dump_vindent eval_pv eval_sv fbm_compile fbm_instr
syn keyword xsFunction filter_add filter_del filter_read find_runcv
syn keyword xsFunction find_rundefsv foldEQ foldEQ_latin1 foldEQ_locale
syn keyword xsFunction foldEQ_utf8_flags form form_nocontext fp_dup
syn keyword xsFunction fprintf_nocontext free_global_struct free_tmps get_av
-syn keyword xsFunction get_context get_cv get_cvn_flags get_hv get_mstats
-syn keyword xsFunction get_op_descs get_op_names get_ppaddr get_sv get_vtbl
-syn keyword xsFunction getcwd_sv gp_dup gp_free gp_ref grok_bin grok_hex
-syn keyword xsFunction grok_number grok_numeric_radix grok_oct gv_add_by_type
-syn keyword xsFunction gv_autoload_pv gv_autoload_pvn gv_autoload_sv gv_check
-syn keyword xsFunction gv_const_sv gv_dump gv_efullname gv_efullname4
-syn keyword xsFunction gv_fetchfile gv_fetchfile_flags gv_fetchmeth_pv
+syn keyword xsFunction get_c_backtrace_dump get_context get_cv get_cvn_flags
+syn keyword xsFunction get_hv get_mstats get_op_descs get_op_names get_ppaddr
+syn keyword xsFunction get_sv get_vtbl getcwd_sv gp_dup gp_free gp_ref
+syn keyword xsFunction grok_bin grok_hex grok_infnan grok_number
+syn keyword xsFunction grok_number_flags grok_numeric_radix grok_oct
+syn keyword xsFunction gv_add_by_type gv_autoload_pv gv_autoload_pvn
+syn keyword xsFunction gv_autoload_sv gv_check gv_const_sv gv_dump
+syn keyword xsFunction gv_efullname gv_efullname4 gv_fetchfile
+syn keyword xsFunction gv_fetchfile_flags gv_fetchmeth_pv
syn keyword xsFunction gv_fetchmeth_pv_autoload gv_fetchmeth_pvn
syn keyword xsFunction gv_fetchmeth_pvn_autoload gv_fetchmeth_sv
syn keyword xsFunction gv_fetchmeth_sv_autoload gv_fetchmethod_autoload
@@ -824,118 +938,106 @@ syn keyword xsFunction hv_clear hv_clear_placeholders hv_common
syn keyword xsFunction hv_common_key_len hv_copy_hints_hv hv_delayfree_ent
syn keyword xsFunction hv_free_ent hv_iterinit hv_iterkey hv_iterkeysv
syn keyword xsFunction hv_iternext_flags hv_iternextsv hv_iterval hv_ksplit
-syn keyword xsFunction hv_name_set hv_scalar init_global_struct init_i18nl10n
-syn keyword xsFunction init_i18nl14n init_stacks init_tm instr
-syn keyword xsFunction is_ascii_string is_lvalue_sub is_uni_alnum
-syn keyword xsFunction is_uni_alnum_lc is_uni_alpha is_uni_alpha_lc
-syn keyword xsFunction is_uni_ascii is_uni_ascii_lc is_uni_cntrl
-syn keyword xsFunction is_uni_cntrl_lc is_uni_digit is_uni_digit_lc
-syn keyword xsFunction is_uni_graph is_uni_graph_lc is_uni_idfirst
-syn keyword xsFunction is_uni_idfirst_lc is_uni_lower is_uni_lower_lc
-syn keyword xsFunction is_uni_print is_uni_print_lc is_uni_punct
-syn keyword xsFunction is_uni_punct_lc is_uni_space is_uni_space_lc
-syn keyword xsFunction is_uni_upper is_uni_upper_lc is_uni_xdigit
-syn keyword xsFunction is_uni_xdigit_lc is_utf8_alnum is_utf8_alpha
-syn keyword xsFunction is_utf8_ascii is_utf8_char_buf is_utf8_cntrl
-syn keyword xsFunction is_utf8_digit is_utf8_graph is_utf8_idcont
-syn keyword xsFunction is_utf8_idfirst is_utf8_lower is_utf8_mark
-syn keyword xsFunction is_utf8_perl_space is_utf8_perl_word
-syn keyword xsFunction is_utf8_posix_digit is_utf8_print is_utf8_punct
-syn keyword xsFunction is_utf8_space is_utf8_string is_utf8_string_loclen
-syn keyword xsFunction is_utf8_upper is_utf8_xdigit is_utf8_xidcont
-syn keyword xsFunction is_utf8_xidfirst leave_scope lex_bufutf8
-syn keyword xsFunction lex_discard_to lex_grow_linestr lex_next_chunk
-syn keyword xsFunction lex_peek_unichar lex_read_space lex_read_to
-syn keyword xsFunction lex_read_unichar lex_start lex_stuff_pv lex_stuff_pvn
-syn keyword xsFunction lex_stuff_sv lex_unstuff load_module
-syn keyword xsFunction load_module_nocontext looks_like_number magic_dump
-syn keyword xsFunction markstack_grow mess mess_nocontext mess_sv mg_clear
-syn keyword xsFunction mg_copy mg_dup mg_find mg_findext mg_free mg_free_type
-syn keyword xsFunction mg_get mg_length mg_magical mg_set mg_size mini_mktime
-syn keyword xsFunction moreswitches mro_get_linear_isa mro_method_changed_in
-syn keyword xsFunction my_atof my_atof2 my_bcopy my_bzero my_chsize my_dirfd
-syn keyword xsFunction my_exit my_failure_exit my_fflush_all my_fork my_htonl
-syn keyword xsFunction my_memcmp my_memset my_ntohl my_pclose my_popen
-syn keyword xsFunction my_popen_list my_setenv my_socketpair my_strftime
-syn keyword xsFunction my_swap newANONATTRSUB newANONHASH newANONLIST
-syn keyword xsFunction newANONSUB newASSIGNOP newATTRSUB newAVREF newBINOP
-syn keyword xsFunction newCONDOP newCONSTSUB newCONSTSUB_flags newCVREF
-syn keyword xsFunction newFORM newFOROP newGIVENOP newGVOP newGVREF
-syn keyword xsFunction newGVgen_flags newHVREF newHVhv newLISTOP newLOGOP
-syn keyword xsFunction newLOOPEX newLOOPOP newMYSUB newNULLLIST newOP
-syn keyword xsFunction newPADOP newPMOP newPROG newPVOP newRANGE newRV
-syn keyword xsFunction newRV_noinc newSLICEOP newSTATEOP newSV newSVOP
-syn keyword xsFunction newSVREF newSV_type newSVhek newSViv newSVnv newSVpv
+syn keyword xsFunction hv_name_set hv_rand_set hv_scalar init_global_struct
+syn keyword xsFunction init_i18nl10n init_i18nl14n init_stacks init_tm instr
+syn keyword xsFunction intro_my is_invariant_string is_lvalue_sub
+syn keyword xsFunction is_safe_syscall is_utf8_string is_utf8_string_loclen
+syn keyword xsFunction isinfnan leave_scope lex_bufutf8 lex_discard_to
+syn keyword xsFunction lex_grow_linestr lex_next_chunk lex_peek_unichar
+syn keyword xsFunction lex_read_space lex_read_to lex_read_unichar lex_start
+syn keyword xsFunction lex_stuff_pv lex_stuff_pvn lex_stuff_sv lex_unstuff
+syn keyword xsFunction load_module load_module_nocontext looks_like_number
+syn keyword xsFunction magic_dump markstack_grow mess mess_nocontext mess_sv
+syn keyword xsFunction mg_clear mg_copy mg_dup mg_find mg_findext mg_free
+syn keyword xsFunction mg_free_type mg_get mg_magical mg_set mg_size
+syn keyword xsFunction mini_mktime moreswitches mro_get_linear_isa
+syn keyword xsFunction mro_method_changed_in my_atof my_atof2 my_bcopy
+syn keyword xsFunction my_bzero my_chsize my_dirfd my_exit my_failure_exit
+syn keyword xsFunction my_fflush_all my_fork my_memcmp my_memset my_pclose
+syn keyword xsFunction my_popen my_popen_list my_setenv my_setlocale
+syn keyword xsFunction my_socketpair my_strerror my_strftime newANONATTRSUB
+syn keyword xsFunction newANONHASH newANONLIST newANONSUB newASSIGNOP
+syn keyword xsFunction newAVREF newBINOP newCONDOP newCONSTSUB
+syn keyword xsFunction newCONSTSUB_flags newCVREF newDEFSVOP newFORM newFOROP
+syn keyword xsFunction newGIVENOP newGVOP newGVREF newGVgen_flags newHVREF
+syn keyword xsFunction newHVhv newLISTOP newLOGOP newLOOPEX newLOOPOP
+syn keyword xsFunction newMETHOP newMETHOP_named newMYSUB newNULLLIST newOP
+syn keyword xsFunction newPADNAMELIST newPADNAMEouter newPADNAMEpvn newPADOP
+syn keyword xsFunction newPMOP newPROG newPVOP newRANGE newRV newRV_noinc
+syn keyword xsFunction newSLICEOP newSTATEOP newSV newSVOP newSVREF
+syn keyword xsFunction newSV_type newSVhek newSViv newSVnv newSVpv
syn keyword xsFunction newSVpv_share newSVpvf newSVpvf_nocontext newSVpvn
syn keyword xsFunction newSVpvn_flags newSVpvn_share newSVrv newSVsv newSVuv
-syn keyword xsFunction newUNOP newWHENOP newWHILEOP newXS newXS_flags
-syn keyword xsFunction new_collate new_ctype new_numeric new_stackinfo
-syn keyword xsFunction new_version ninstr nothreadhook op_append_elem
-syn keyword xsFunction op_append_list op_contextualize op_dump op_free
-syn keyword xsFunction op_linklist op_null op_prepend_elem op_refcnt_lock
-syn keyword xsFunction op_refcnt_unlock op_scope pack_cat packlist
-syn keyword xsFunction pad_add_anon pad_add_name_pv pad_add_name_pvn
+syn keyword xsFunction newUNOP newUNOP_AUX newWHENOP newWHILEOP newXS
+syn keyword xsFunction newXS_flags new_collate new_ctype new_numeric
+syn keyword xsFunction new_stackinfo new_version ninstr nothreadhook
+syn keyword xsFunction op_append_elem op_append_list op_contextualize
+syn keyword xsFunction op_convert_list op_dump op_free op_linklist op_null
+syn keyword xsFunction op_parent op_prepend_elem op_refcnt_lock
+syn keyword xsFunction op_refcnt_unlock op_scope op_sibling_splice pack_cat
+syn keyword xsFunction packlist pad_add_anon pad_add_name_pv pad_add_name_pvn
syn keyword xsFunction pad_add_name_sv pad_alloc pad_compname_type
syn keyword xsFunction pad_findmy_pv pad_findmy_pvn pad_findmy_sv pad_new
-syn keyword xsFunction pad_setsv pad_sv pad_tidy parse_arithexpr
-syn keyword xsFunction parse_barestmt parse_block parse_fullexpr
-syn keyword xsFunction parse_fullstmt parse_label parse_listexpr
-syn keyword xsFunction parse_stmtseq parse_termexpr parser_dup pmop_dump
-syn keyword xsFunction pop_scope pregcomp pregexec pregfree pregfree2
-syn keyword xsFunction prescan_version printf_nocontext ptr_table_fetch
-syn keyword xsFunction ptr_table_free ptr_table_new ptr_table_split
-syn keyword xsFunction ptr_table_store push_scope pv_display pv_escape
-syn keyword xsFunction pv_pretty pv_uni_display re_compile re_dup_guts
-syn keyword xsFunction re_intuit_start re_intuit_string reentrant_free
-syn keyword xsFunction reentrant_init reentrant_retry reentrant_size
-syn keyword xsFunction reg_named_buff_all reg_named_buff_exists
-syn keyword xsFunction reg_named_buff_fetch reg_named_buff_firstkey
-syn keyword xsFunction reg_named_buff_nextkey reg_named_buff_scalar
-syn keyword xsFunction regclass_swash regdump regdupe_internal regexec_flags
-syn keyword xsFunction regfree_internal reginitcolors regnext repeatcpy
-syn keyword xsFunction require_pv rninstr rsignal rsignal_state runops_debug
-syn keyword xsFunction runops_standard rv2cv_op_cv rvpv_dup safesyscalloc
-syn keyword xsFunction safesysfree safesysmalloc safesysrealloc save_I16
-syn keyword xsFunction save_I32 save_I8 save_adelete save_aelem_flags
-syn keyword xsFunction save_alloc save_aptr save_ary save_bool save_clearsv
-syn keyword xsFunction save_delete save_destructor save_destructor_x
-syn keyword xsFunction save_generic_pvref save_generic_svref save_gp
-syn keyword xsFunction save_hash save_hdelete save_helem_flags save_hints
-syn keyword xsFunction save_hptr save_int save_item save_iv save_list
-syn keyword xsFunction save_long save_nogv save_padsv_and_mortalize save_pptr
-syn keyword xsFunction save_pushi32ptr save_pushptr save_pushptrptr
-syn keyword xsFunction save_re_context save_scalar save_set_svflags
-syn keyword xsFunction save_shared_pvref save_sptr save_svref save_vptr
-syn keyword xsFunction savepv savepvn savesharedpv savesharedpvn
-syn keyword xsFunction savesharedsvpv savestack_grow savestack_grow_cnt
-syn keyword xsFunction savesvpv scan_bin scan_hex scan_num scan_oct
-syn keyword xsFunction scan_version scan_vstring screaminstr seed set_context
-syn keyword xsFunction set_numeric_local set_numeric_radix
+syn keyword xsFunction pad_setsv pad_sv pad_tidy padnamelist_fetch
+syn keyword xsFunction padnamelist_store parse_arithexpr parse_barestmt
+syn keyword xsFunction parse_block parse_fullexpr parse_fullstmt parse_label
+syn keyword xsFunction parse_listexpr parse_stmtseq parse_termexpr parser_dup
+syn keyword xsFunction pmop_dump pop_scope pregcomp pregexec pregfree
+syn keyword xsFunction pregfree2 prescan_version printf_nocontext
+syn keyword xsFunction ptr_table_fetch ptr_table_free ptr_table_new
+syn keyword xsFunction ptr_table_split ptr_table_store push_scope pv_display
+syn keyword xsFunction pv_escape pv_pretty pv_uni_display
+syn keyword xsFunction quadmath_format_needed quadmath_format_single
+syn keyword xsFunction re_compile re_dup_guts re_intuit_start
+syn keyword xsFunction re_intuit_string reentrant_free reentrant_init
+syn keyword xsFunction reentrant_retry reentrant_size reg_named_buff_all
+syn keyword xsFunction reg_named_buff_exists reg_named_buff_fetch
+syn keyword xsFunction reg_named_buff_firstkey reg_named_buff_nextkey
+syn keyword xsFunction reg_named_buff_scalar regclass_swash regdump
+syn keyword xsFunction regdupe_internal regexec_flags regfree_internal
+syn keyword xsFunction reginitcolors regnext repeatcpy require_pv rninstr
+syn keyword xsFunction rsignal rsignal_state runops_debug runops_standard
+syn keyword xsFunction rv2cv_op_cv rvpv_dup safesyscalloc safesysfree
+syn keyword xsFunction safesysmalloc safesysrealloc save_I16 save_I32 save_I8
+syn keyword xsFunction save_adelete save_aelem_flags save_alloc save_aptr
+syn keyword xsFunction save_ary save_bool save_clearsv save_delete
+syn keyword xsFunction save_destructor save_destructor_x save_generic_pvref
+syn keyword xsFunction save_generic_svref save_gp save_hash save_hdelete
+syn keyword xsFunction save_helem_flags save_hints save_hptr save_int
+syn keyword xsFunction save_item save_iv save_list save_long save_nogv
+syn keyword xsFunction save_padsv_and_mortalize save_pptr save_pushi32ptr
+syn keyword xsFunction save_pushptr save_pushptrptr save_re_context
+syn keyword xsFunction save_scalar save_set_svflags save_shared_pvref
+syn keyword xsFunction save_sptr save_svref save_vptr savepv savepvn
+syn keyword xsFunction savesharedpv savesharedpvn savesharedsvpv
+syn keyword xsFunction savestack_grow savestack_grow_cnt savesvpv scan_bin
+syn keyword xsFunction scan_hex scan_num scan_oct scan_version scan_vstring
+syn keyword xsFunction seed set_context set_numeric_local set_numeric_radix
syn keyword xsFunction set_numeric_standard setdefout share_hek si_dup sortsv
syn keyword xsFunction sortsv_flags ss_dup stack_grow start_subparse
-syn keyword xsFunction stashpv_hvname_match str_to_version sv_2bool_flags
-syn keyword xsFunction sv_2cv sv_2io sv_2iv_flags sv_2mortal sv_2nv_flags
-syn keyword xsFunction sv_2pv_flags sv_2pvbyte sv_2pvutf8 sv_2uv_flags
-syn keyword xsFunction sv_backoff sv_bless sv_cat_decode sv_catpv
-syn keyword xsFunction sv_catpv_flags sv_catpv_mg sv_catpvf sv_catpvf_mg
-syn keyword xsFunction sv_catpvf_mg_nocontext sv_catpvf_nocontext
-syn keyword xsFunction sv_catpvn_flags sv_catsv_flags sv_chop sv_clear
-syn keyword xsFunction sv_cmp_flags sv_cmp_locale_flags sv_collxfrm_flags
-syn keyword xsFunction sv_copypv sv_dec sv_dec_nomg sv_derived_from
-syn keyword xsFunction sv_derived_from_pv sv_derived_from_pvn
+syn keyword xsFunction str_to_version sv_2bool_flags sv_2cv sv_2io
+syn keyword xsFunction sv_2iv_flags sv_2mortal sv_2nv_flags sv_2pv_flags
+syn keyword xsFunction sv_2pvbyte sv_2pvutf8 sv_2uv_flags sv_backoff sv_bless
+syn keyword xsFunction sv_cat_decode sv_catpv sv_catpv_flags sv_catpv_mg
+syn keyword xsFunction sv_catpvf sv_catpvf_mg sv_catpvf_mg_nocontext
+syn keyword xsFunction sv_catpvf_nocontext sv_catpvn_flags sv_catsv_flags
+syn keyword xsFunction sv_chop sv_clear sv_cmp_flags sv_cmp_locale_flags
+syn keyword xsFunction sv_collxfrm_flags sv_copypv_flags sv_dec sv_dec_nomg
+syn keyword xsFunction sv_derived_from sv_derived_from_pv sv_derived_from_pvn
syn keyword xsFunction sv_derived_from_sv sv_destroyable sv_does sv_does_pv
syn keyword xsFunction sv_does_pvn sv_does_sv sv_dump sv_dup sv_dup_inc
-syn keyword xsFunction sv_eq_flags sv_force_normal_flags sv_free sv_gets
-syn keyword xsFunction sv_grow sv_inc sv_inc_nomg sv_insert_flags sv_isa
-syn keyword xsFunction sv_isobject sv_iv sv_len sv_len_utf8 sv_magic
-syn keyword xsFunction sv_magicext sv_mortalcopy sv_newmortal sv_newref
-syn keyword xsFunction sv_nosharing sv_nounlocking sv_nv sv_peek sv_pos_b2u
-syn keyword xsFunction sv_pos_u2b sv_pos_u2b_flags sv_pvbyten
-syn keyword xsFunction sv_pvbyten_force sv_pvn sv_pvn_force_flags sv_pvn_nomg
-syn keyword xsFunction sv_pvutf8n sv_pvutf8n_force sv_recode_to_utf8
-syn keyword xsFunction sv_reftype sv_replace sv_report_used sv_reset
-syn keyword xsFunction sv_rvweaken sv_setiv sv_setiv_mg sv_setnv sv_setnv_mg
-syn keyword xsFunction sv_setpv sv_setpv_mg sv_setpvf sv_setpvf_mg
+syn keyword xsFunction sv_eq_flags sv_force_normal_flags sv_free
+syn keyword xsFunction sv_get_backrefs sv_gets sv_grow sv_inc sv_inc_nomg
+syn keyword xsFunction sv_insert_flags sv_isa sv_isobject sv_iv sv_len
+syn keyword xsFunction sv_len_utf8 sv_magic sv_magicext sv_newmortal
+syn keyword xsFunction sv_newref sv_nosharing sv_nounlocking sv_nv sv_peek
+syn keyword xsFunction sv_pos_b2u sv_pos_b2u_flags sv_pos_u2b
+syn keyword xsFunction sv_pos_u2b_flags sv_pvbyten sv_pvbyten_force sv_pvn
+syn keyword xsFunction sv_pvn_force_flags sv_pvn_nomg sv_pvutf8n
+syn keyword xsFunction sv_pvutf8n_force sv_recode_to_utf8 sv_reftype
+syn keyword xsFunction sv_replace sv_report_used sv_reset sv_rvweaken
+syn keyword xsFunction sv_setiv sv_setiv_mg sv_setnv sv_setnv_mg sv_setpv
+syn keyword xsFunction sv_setpv_mg sv_setpvf sv_setpvf_mg
syn keyword xsFunction sv_setpvf_mg_nocontext sv_setpvf_nocontext sv_setpviv
syn keyword xsFunction sv_setpviv_mg sv_setpvn sv_setpvn_mg sv_setref_iv
syn keyword xsFunction sv_setref_nv sv_setref_pv sv_setref_pvn sv_setref_uv
@@ -944,18 +1046,16 @@ syn keyword xsFunction sv_tainted sv_true sv_uni_display sv_unmagic
syn keyword xsFunction sv_unmagicext sv_unref_flags sv_untaint sv_upgrade
syn keyword xsFunction sv_usepvn_flags sv_utf8_decode sv_utf8_downgrade
syn keyword xsFunction sv_utf8_encode sv_utf8_upgrade_flags_grow sv_uv
-syn keyword xsFunction sv_vcatpvf sv_vcatpvf_mg sv_vcatpvfn sv_vsetpvf
-syn keyword xsFunction sv_vsetpvf_mg sv_vsetpvfn swash_fetch swash_init
-syn keyword xsFunction sys_intern_clear sys_intern_dup sys_intern_init
-syn keyword xsFunction taint_env taint_proper tmps_grow to_uni_lower
-syn keyword xsFunction to_uni_lower_lc to_uni_title to_uni_title_lc
-syn keyword xsFunction to_uni_upper to_uni_upper_lc to_utf8_case unlnk
+syn keyword xsFunction sv_vcatpvf sv_vcatpvf_mg sv_vcatpvfn sv_vcatpvfn_flags
+syn keyword xsFunction sv_vsetpvf sv_vsetpvf_mg sv_vsetpvfn swash_fetch
+syn keyword xsFunction swash_init sync_locale sys_intern_clear sys_intern_dup
+syn keyword xsFunction sys_intern_init taint_env taint_proper to_uni_lower
+syn keyword xsFunction to_uni_title to_uni_upper to_utf8_case unlnk
syn keyword xsFunction unpack_str unpackstring unsharepvn upg_version
syn keyword xsFunction utf16_to_utf8 utf16_to_utf8_reversed utf8_distance
-syn keyword xsFunction utf8_hop utf8_length utf8_to_bytes utf8_to_uvchr_buf
-syn keyword xsFunction utf8_to_uvuni_buf utf8n_to_uvchr utf8n_to_uvuni
-syn keyword xsFunction uvchr_to_utf8 uvchr_to_utf8_flags uvuni_to_utf8_flags
-syn keyword xsFunction valid_utf8_to_uvchr valid_utf8_to_uvuni vcmp vcroak
+syn keyword xsFunction utf8_hop utf8_length utf8_to_bytes utf8n_to_uvchr
+syn keyword xsFunction utf8n_to_uvuni uvoffuni_to_utf8_flags uvuni_to_utf8
+syn keyword xsFunction uvuni_to_utf8_flags valid_utf8_to_uvchr vcmp vcroak
syn keyword xsFunction vdeb vform vload_module vmess vnewSVpvf vnormal
syn keyword xsFunction vnumify vstringify vverify vwarn vwarner warn
syn keyword xsFunction warn_nocontext warn_sv warner warner_nocontext
@@ -964,149 +1064,165 @@ syn keyword xsVariable MARK MY_CXT ORIGMARK PL_I PL_No PL_Vars PL_VarsPtr
syn keyword xsVariable PL_Yes PL_a2e PL_bincompat_options PL_bitcount
syn keyword xsVariable PL_block_type PL_bufend PL_bufptr PL_charclass
syn keyword xsVariable PL_check PL_copline PL_core_reg_engine PL_cshname
-syn keyword xsVariable PL_curforce PL_e2a PL_e2utf PL_endwhite PL_error_count
-syn keyword xsVariable PL_expect PL_faketokens PL_fold PL_fold_latin1
-syn keyword xsVariable PL_fold_locale PL_force_link_funcs PL_freq
-syn keyword xsVariable PL_global_struct_size PL_hexdigit PL_in_my
-syn keyword xsVariable PL_in_my_stash PL_interp_size PL_interp_size_5_16_0
-syn keyword xsVariable PL_last_lop PL_last_lop_op PL_last_uni PL_lasttoke
-syn keyword xsVariable PL_latin1_lc PL_lex_allbrackets PL_lex_brackets
-syn keyword xsVariable PL_lex_brackstack PL_lex_casemods PL_lex_casestack
-syn keyword xsVariable PL_lex_defer PL_lex_dojoin PL_lex_expect
-syn keyword xsVariable PL_lex_fakeeof PL_lex_formbrack PL_lex_inpat
-syn keyword xsVariable PL_lex_inwhat PL_lex_op PL_lex_repl PL_lex_starts
-syn keyword xsVariable PL_lex_state PL_lex_stuff PL_linestart PL_linestr
-syn keyword xsVariable PL_magic_data PL_magic_vtable_names PL_memory_wrap
-syn keyword xsVariable PL_mod_latin1_uc PL_multi_close PL_multi_end
-syn keyword xsVariable PL_multi_open PL_multi_start PL_nexttoke PL_nexttype
-syn keyword xsVariable PL_nextval PL_nextwhite PL_no_aelem PL_no_dir_func
+syn keyword xsVariable PL_e2a PL_e2utf PL_error_count PL_expect PL_fold
+syn keyword xsVariable PL_fold_latin1 PL_fold_locale PL_force_link_funcs
+syn keyword xsVariable PL_freq PL_global_struct_size PL_hexdigit PL_in_my
+syn keyword xsVariable PL_in_my_stash PL_interp_size PL_interp_size_5_18_0
+syn keyword xsVariable PL_last_lop PL_last_lop_op PL_last_uni PL_latin1_lc
+syn keyword xsVariable PL_lex_allbrackets PL_lex_brackets PL_lex_brackstack
+syn keyword xsVariable PL_lex_casemods PL_lex_casestack PL_lex_defer
+syn keyword xsVariable PL_lex_dojoin PL_lex_fakeeof PL_lex_formbrack
+syn keyword xsVariable PL_lex_inpat PL_lex_inwhat PL_lex_op PL_lex_repl
+syn keyword xsVariable PL_lex_starts PL_lex_state PL_lex_stuff PL_linestart
+syn keyword xsVariable PL_linestr PL_magic_data PL_magic_vtable_names
+syn keyword xsVariable PL_memory_wrap PL_mod_latin1_uc PL_multi_close
+syn keyword xsVariable PL_multi_end PL_multi_open PL_multi_start PL_nexttoke
+syn keyword xsVariable PL_nexttype PL_nextval PL_no_aelem PL_no_dir_func
syn keyword xsVariable PL_no_func PL_no_helem_sv PL_no_localize_ref PL_no_mem
syn keyword xsVariable PL_no_modify PL_no_myglob PL_no_security
syn keyword xsVariable PL_no_sock_func PL_no_symref PL_no_symref_sv
syn keyword xsVariable PL_no_usym PL_no_wrongref PL_oldbufptr PL_oldoldbufptr
-syn keyword xsVariable PL_op_desc PL_op_name PL_opargs PL_pending_ident
+syn keyword xsVariable PL_op_desc PL_op_name PL_op_private_bitdef_ix
+syn keyword xsVariable PL_op_private_bitdefs PL_op_private_bitfields
+syn keyword xsVariable PL_op_private_labels PL_op_private_valid PL_opargs
syn keyword xsVariable PL_phase_names PL_ppaddr PL_preambled
-syn keyword xsVariable PL_realtokenstart PL_reg_extflags_name PL_reg_name
+syn keyword xsVariable PL_reg_extflags_name PL_reg_intflags_name PL_reg_name
syn keyword xsVariable PL_regkind PL_revision PL_rsfp PL_rsfp_filters
syn keyword xsVariable PL_runops_dbg PL_runops_std PL_sh_path PL_sig_name
-syn keyword xsVariable PL_sig_num PL_simple PL_simple_bitmask PL_skipwhite
-syn keyword xsVariable PL_sublex_info PL_subversion PL_thisclose PL_thismad
-syn keyword xsVariable PL_thisopen PL_thisstuff PL_thistoken PL_thiswhite
-syn keyword xsVariable PL_tokenbuf PL_utf2e PL_utf8skip PL_uudmap PL_uuemap
-syn keyword xsVariable PL_valid_types_IVX PL_valid_types_IV_set
-syn keyword xsVariable PL_valid_types_NVX PL_valid_types_NV_set
-syn keyword xsVariable PL_valid_types_PVX PL_valid_types_RV PL_varies
-syn keyword xsVariable PL_varies_bitmask PL_version PL_warn_nl PL_warn_nosemi
-syn keyword xsVariable PL_warn_reserved PL_warn_uninit PL_warn_uninit_sv
-syn keyword xsVariable RETVAL SP TARG _aMY_CXT _aTHX aMY_CXT aMY_CXT_ aTHX
-syn keyword xsVariable aTHX_ items
+syn keyword xsVariable PL_sig_num PL_simple PL_simple_bitmask PL_sublex_info
+syn keyword xsVariable PL_subversion PL_tokenbuf PL_utf2e PL_utf8skip
+syn keyword xsVariable PL_uudmap PL_uuemap PL_valid_types_IVX
+syn keyword xsVariable PL_valid_types_IV_set PL_valid_types_NVX
+syn keyword xsVariable PL_valid_types_NV_set PL_valid_types_PVX
+syn keyword xsVariable PL_valid_types_RV PL_varies PL_varies_bitmask
+syn keyword xsVariable PL_version PL_warn_nl PL_warn_nosemi PL_warn_reserved
+syn keyword xsVariable PL_warn_uninit PL_warn_uninit_sv RETVAL SP TARG
+syn keyword xsVariable _aMY_CXT _aTHX aMY_CXT aMY_CXT_ aTHX aTHX_ items
syn keyword xsMacro ABORT ACCEPT ADDOP AHOCORASICK AHOCORASICKC
-syn keyword xsMacro ALLOC_THREAD_KEY ALNUM ALNUMA ALNUML ALNUMU AMG_CALLun
-syn keyword xsMacro AMG_CALLunary AMGf_assign AMGf_noleft AMGf_noright
-syn keyword xsMacro AMGf_numeric AMGf_set AMGf_unary AMGfallNEVER AMGfallNO
+syn keyword xsMacro ALLOC_THREAD_KEY AMG_CALLun AMG_CALLunary AMGf_assign
+syn keyword xsMacro AMGf_noleft AMGf_noright AMGf_numarg AMGf_numeric
+syn keyword xsMacro AMGf_set AMGf_unary AMGf_want_list AMGfallNEVER AMGfallNO
syn keyword xsMacro AMGfallYES AMT_AMAGIC AMT_AMAGIC_off AMT_AMAGIC_on
-syn keyword xsMacro AMT_OVERLOADED AMT_OVERLOADED_off AMT_OVERLOADED_on
-syn keyword xsMacro AMTf_AMAGIC AMTf_OVERLOADED ANDAND ANDOP ANONSUB ANYOF
-syn keyword xsMacro ANYOFV ANYOF_ALNUM ANYOF_ALNUMC ANYOF_ALNUML ANYOF_ALPHA
-syn keyword xsMacro ANYOF_ASCII ANYOF_BIT ANYOF_BITMAP ANYOF_BITMAP_BYTE
-syn keyword xsMacro ANYOF_BITMAP_CLEAR ANYOF_BITMAP_CLEARALL ANYOF_BITMAP_SET
+syn keyword xsMacro AMTf_AMAGIC ANDAND ANDOP ANGSTROM_SIGN ANONSUB ANYOF
+syn keyword xsMacro ANYOFL ANYOF_ALNUM ANYOF_ALNUML ANYOF_ALPHA
+syn keyword xsMacro ANYOF_ALPHANUMERIC ANYOF_ASCII ANYOF_BIT ANYOF_BITMAP
+syn keyword xsMacro ANYOF_BITMAP_BYTE ANYOF_BITMAP_CLEAR
+syn keyword xsMacro ANYOF_BITMAP_CLEARALL ANYOF_BITMAP_SET
syn keyword xsMacro ANYOF_BITMAP_SETALL ANYOF_BITMAP_SIZE ANYOF_BITMAP_TEST
-syn keyword xsMacro ANYOF_BITMAP_TESTALLSET ANYOF_BITMAP_ZERO ANYOF_BLANK
-syn keyword xsMacro ANYOF_CLASS ANYOF_CLASSBITMAP_SIZE ANYOF_CLASS_BYTE
-syn keyword xsMacro ANYOF_CLASS_CLEAR ANYOF_CLASS_SET ANYOF_CLASS_SETALL
-syn keyword xsMacro ANYOF_CLASS_SIZE ANYOF_CLASS_SKIP ANYOF_CLASS_TEST
+syn keyword xsMacro ANYOF_BITMAP_ZERO ANYOF_BLANK ANYOF_CASED
+syn keyword xsMacro ANYOF_CLASS_CLEAR ANYOF_CLASS_OR ANYOF_CLASS_SET
+syn keyword xsMacro ANYOF_CLASS_SETALL ANYOF_CLASS_TEST
syn keyword xsMacro ANYOF_CLASS_TEST_ANY_SET ANYOF_CLASS_ZERO ANYOF_CNTRL
-syn keyword xsMacro ANYOF_DIGIT ANYOF_EOS ANYOF_FLAGS ANYOF_FLAGS_ALL
-syn keyword xsMacro ANYOF_FOLD_SHARP_S ANYOF_GRAPH ANYOF_HORIZWS ANYOF_INVERT
-syn keyword xsMacro ANYOF_IS_SYNTHETIC ANYOF_LARGE ANYOF_LOCALE
-syn keyword xsMacro ANYOF_LOC_NONBITMAP_FOLD ANYOF_LOWER ANYOF_MAX
-syn keyword xsMacro ANYOF_NALNUM ANYOF_NALNUMC ANYOF_NALNUML ANYOF_NALPHA
-syn keyword xsMacro ANYOF_NASCII ANYOF_NBLANK ANYOF_NCNTRL ANYOF_NDIGIT
-syn keyword xsMacro ANYOF_NGRAPH ANYOF_NHORIZWS ANYOF_NLOWER ANYOF_NONBITMAP
-syn keyword xsMacro ANYOF_NONBITMAP_EMPTY ANYOF_NONBITMAP_NON_UTF8
-syn keyword xsMacro ANYOF_NON_UTF8_LATIN1_ALL ANYOF_NPRINT ANYOF_NPSXSPC
-syn keyword xsMacro ANYOF_NPUNCT ANYOF_NSPACE ANYOF_NSPACEL ANYOF_NUPPER
-syn keyword xsMacro ANYOF_NVERTWS ANYOF_NXDIGIT ANYOF_PRINT ANYOF_PSXSPC
-syn keyword xsMacro ANYOF_PUNCT ANYOF_SIZE ANYOF_SKIP ANYOF_SPACE
-syn keyword xsMacro ANYOF_SPACEL ANYOF_UNICODE_ALL ANYOF_UPPER ANYOF_VERTWS
-syn keyword xsMacro ANYOF_XDIGIT ARCHLIB ARCHLIB_EXP ARCHNAME ARG ARG1
-syn keyword xsMacro ARG1_LOC ARG1_SET ARG2 ARG2L ARG2L_LOC ARG2L_SET ARG2_LOC
-syn keyword xsMacro ARG2_SET ARGTARG ARG_LOC ARG_SET ARG_VALUE ARG__SET ARROW
+syn keyword xsMacro ANYOF_COMMON_FLAGS ANYOF_DIGIT ANYOF_FLAGS
+syn keyword xsMacro ANYOF_FLAGS_ALL ANYOF_FOLD_SHARP_S ANYOF_GRAPH
+syn keyword xsMacro ANYOF_HAS_NONBITMAP_NON_UTF8_MATCHES
+syn keyword xsMacro ANYOF_HAS_UTF8_NONBITMAP_MATCHES ANYOF_HORIZWS
+syn keyword xsMacro ANYOF_INVERT ANYOF_LOCALE_FLAGS ANYOF_LOC_FOLD
+syn keyword xsMacro ANYOF_LOWER ANYOF_MATCHES_ALL_ABOVE_BITMAP
+syn keyword xsMacro ANYOF_MATCHES_ALL_NON_UTF8_NON_ASCII ANYOF_MATCHES_POSIXL
+syn keyword xsMacro ANYOF_MAX ANYOF_NALNUM ANYOF_NALNUML ANYOF_NALPHA
+syn keyword xsMacro ANYOF_NALPHANUMERIC ANYOF_NASCII ANYOF_NBLANK
+syn keyword xsMacro ANYOF_NCASED ANYOF_NCNTRL ANYOF_NDIGIT ANYOF_NGRAPH
+syn keyword xsMacro ANYOF_NHORIZWS ANYOF_NLOWER ANYOF_NPRINT ANYOF_NPUNCT
+syn keyword xsMacro ANYOF_NSPACE ANYOF_NSPACEL ANYOF_NUPPER ANYOF_NVERTWS
+syn keyword xsMacro ANYOF_NWORDCHAR ANYOF_NXDIGIT ANYOF_ONLY_HAS_BITMAP
+syn keyword xsMacro ANYOF_POSIXL_AND ANYOF_POSIXL_CLEAR ANYOF_POSIXL_MAX
+syn keyword xsMacro ANYOF_POSIXL_OR ANYOF_POSIXL_SET ANYOF_POSIXL_SETALL
+syn keyword xsMacro ANYOF_POSIXL_SKIP ANYOF_POSIXL_SSC_TEST_ALL_SET
+syn keyword xsMacro ANYOF_POSIXL_SSC_TEST_ANY_SET ANYOF_POSIXL_TEST
+syn keyword xsMacro ANYOF_POSIXL_TEST_ALL_SET ANYOF_POSIXL_TEST_ANY_SET
+syn keyword xsMacro ANYOF_POSIXL_ZERO ANYOF_PRINT ANYOF_PUNCT ANYOF_SKIP
+syn keyword xsMacro ANYOF_SPACE ANYOF_SPACEL ANYOF_UNIPROP ANYOF_UPPER
+syn keyword xsMacro ANYOF_VERTWS ANYOF_WARN_SUPER ANYOF_WORDCHAR ANYOF_XDIGIT
+syn keyword xsMacro ARCHLIB ARCHLIB_EXP ARCHNAME ARG ARG1 ARG1_LOC ARG1_SET
+syn keyword xsMacro ARG2 ARG2L ARG2L_LOC ARG2L_SET ARG2_LOC ARG2_SET ARGTARG
+syn keyword xsMacro ARG_LOC ARG_SET ARG_VALUE ARG__SET ARROW
syn keyword xsMacro ASCII_MORE_RESTRICT_PAT_MODS ASCII_RESTRICT_PAT_MOD
-syn keyword xsMacro ASCII_RESTRICT_PAT_MODS ASCII_TO_NATIVE ASCII_TO_NEED
-syn keyword xsMacro ASCTIME_R_PROTO ASSERT_CURPAD_ACTIVE ASSERT_CURPAD_LEGAL
-syn keyword xsMacro ASSIGNOP Atof Atol Atoul AvALLOC AvARRAY AvARYLEN AvFILL
-syn keyword xsMacro AvFILLp AvMAX AvREAL AvREALISH AvREAL_off AvREAL_on
-syn keyword xsMacro AvREAL_only AvREIFY AvREIFY_off AvREIFY_on AvREIFY_only
-syn keyword xsMacro BACK BADVERSION BASEOP BHKf_bhk_eval BHKf_bhk_post_end
-syn keyword xsMacro BHKf_bhk_pre_end BHKf_bhk_start BIN BIN_EXP BITANDOP
-syn keyword xsMacro BITMAP_BYTE BITMAP_TEST BITOROP BIT_BUCKET BIT_DIGITS BOL
-syn keyword xsMacro BOUND BOUNDA BOUNDL BOUNDU BRANCH BRANCHJ BRANCH_next
-syn keyword xsMacro BRANCH_next_fail BSD_GETPGRP BSD_SETPGRP BSDish BUFSIZ
-syn keyword xsMacro BYTEORDER BhkDISABLE BhkENABLE BhkENTRY BhkENTRY_set
-syn keyword xsMacro BhkFLAGS Bit BmFLAGS BmPREVIOUS BmRARE BmUSEFUL
-syn keyword xsMacro CALLREGCOMP CALLREGCOMP_ENG CALLREGDUPE CALLREGDUPE_PVT
-syn keyword xsMacro CALLREGEXEC CALLREGFREE CALLREGFREE_PVT
-syn keyword xsMacro CALLREG_INTUIT_START CALLREG_INTUIT_STRING
-syn keyword xsMacro CALLREG_NAMED_BUFF_ALL CALLREG_NAMED_BUFF_CLEAR
-syn keyword xsMacro CALLREG_NAMED_BUFF_COUNT CALLREG_NAMED_BUFF_DELETE
-syn keyword xsMacro CALLREG_NAMED_BUFF_EXISTS CALLREG_NAMED_BUFF_FETCH
-syn keyword xsMacro CALLREG_NAMED_BUFF_FIRSTKEY CALLREG_NAMED_BUFF_NEXTKEY
-syn keyword xsMacro CALLREG_NAMED_BUFF_SCALAR CALLREG_NAMED_BUFF_STORE
-syn keyword xsMacro CALLREG_NUMBUF_FETCH CALLREG_NUMBUF_LENGTH
-syn keyword xsMacro CALLREG_NUMBUF_STORE CALLREG_PACKAGE CALLRUNOPS
-syn keyword xsMacro CALL_BLOCK_HOOKS CALL_FPTR CANY CAN_COW_FLAGS
+syn keyword xsMacro ASCII_RESTRICT_PAT_MODS ASCII_TO_NATIVE ASCTIME_R_PROTO
+syn keyword xsMacro ASSERT_CURPAD_ACTIVE ASSERT_CURPAD_LEGAL ASSIGNOP ASSUME
+syn keyword xsMacro Atof Atol Atoul AvALLOC AvARRAY AvARYLEN AvFILL AvFILLp
+syn keyword xsMacro AvMAX AvREAL AvREALISH AvREAL_off AvREAL_on AvREAL_only
+syn keyword xsMacro AvREIFY AvREIFY_off AvREIFY_on AvREIFY_only BADVERSION
+syn keyword xsMacro BASEOP BHKf_bhk_eval BHKf_bhk_post_end BHKf_bhk_pre_end
+syn keyword xsMacro BHKf_bhk_start BIN BIN_EXP BITANDOP BITMAP_BYTE
+syn keyword xsMacro BITMAP_TEST BITOROP BIT_BUCKET BIT_DIGITS BOL
+syn keyword xsMacro BOM_UTF8_FIRST_BYTE BOM_UTF8_TAIL BOUND BOUNDA BOUNDL
+syn keyword xsMacro BOUNDU BRANCH BRANCHJ BRANCH_next BRANCH_next_fail
+syn keyword xsMacro BSD_GETPGRP BSD_SETPGRP BSDish BUFSIZ BYTEORDER
+syn keyword xsMacro BhkDISABLE BhkENABLE BhkENTRY BhkENTRY_set BhkFLAGS Bit
+syn keyword xsMacro BmFLAGS BmPREVIOUS BmRARE BmUSEFUL CALLREGCOMP
+syn keyword xsMacro CALLREGCOMP_ENG CALLREGDUPE CALLREGDUPE_PVT CALLREGEXEC
+syn keyword xsMacro CALLREGFREE CALLREGFREE_PVT CALLREG_INTUIT_START
+syn keyword xsMacro CALLREG_INTUIT_STRING CALLREG_NAMED_BUFF_ALL
+syn keyword xsMacro CALLREG_NAMED_BUFF_CLEAR CALLREG_NAMED_BUFF_COUNT
+syn keyword xsMacro CALLREG_NAMED_BUFF_DELETE CALLREG_NAMED_BUFF_EXISTS
+syn keyword xsMacro CALLREG_NAMED_BUFF_FETCH CALLREG_NAMED_BUFF_FIRSTKEY
+syn keyword xsMacro CALLREG_NAMED_BUFF_NEXTKEY CALLREG_NAMED_BUFF_SCALAR
+syn keyword xsMacro CALLREG_NAMED_BUFF_STORE CALLREG_NUMBUF_FETCH
+syn keyword xsMacro CALLREG_NUMBUF_LENGTH CALLREG_NUMBUF_STORE
+syn keyword xsMacro CALLREG_PACKAGE CALLRUNOPS CALL_BLOCK_HOOKS
+syn keyword xsMacro CALL_CHECKER_REQUIRE_GV CALL_FPTR CANY CAN_COW_FLAGS
syn keyword xsMacro CAN_COW_MASK CAN_PROTOTYPE CAN_VAPROTO
syn keyword xsMacro CASE_STD_PMMOD_FLAGS_PARSE_SET CASTFLAGS CASTNEGFLOAT
-syn keyword xsMacro CAT2 CATCH_GET CATCH_SET CHARBITS CHARSET_PAT_MODS
-syn keyword xsMacro CHECK_MALLOC_TAINT CHECK_MALLOC_TOO_LATE_FOR
-syn keyword xsMacro CHECK_MALLOC_TOO_LATE_FOR_ CLEAR_ARGARRAY CLEAR_ERRSV
-syn keyword xsMacro CLONEf_CLONE_HOST CLONEf_COPY_STACKS CLONEf_JOIN_IN
-syn keyword xsMacro CLONEf_KEEP_PTR_TABLE CLOSE CLUMP CLUMP_2IV CLUMP_2UV
-syn keyword xsMacro COLONATTR COMMIT COMMIT_next COMMIT_next_fail
-syn keyword xsMacro COND_BROADCAST COND_DESTROY COND_INIT COND_SIGNAL
-syn keyword xsMacro COND_WAIT CONTINUE CONTINUE_PAT_MOD COPHH_KEY_UTF8
-syn keyword xsMacro COP_SEQ_RANGE_HIGH COP_SEQ_RANGE_LOW CPERLarg CPERLarg_
-syn keyword xsMacro CPERLscope CPPLAST CPPMINUS CPPRUN CPPSTDIN CRYPT_R_PROTO
-syn keyword xsMacro CSH CTERMID_R_PROTO CTIME_R_PROTO CTYPE256 CURLY CURLYM
+syn keyword xsMacro CAT2 CATCH_GET CATCH_SET CHANGE_MULTICALL_FLAGS CHARBITS
+syn keyword xsMacro CHARSET_PAT_MODS CHECK_MALLOC_TAINT
+syn keyword xsMacro CHECK_MALLOC_TOO_LATE_FOR CHECK_MALLOC_TOO_LATE_FOR_
+syn keyword xsMacro CLEAR_ARGARRAY CLEAR_ERRSV CLONEf_CLONE_HOST
+syn keyword xsMacro CLONEf_COPY_STACKS CLONEf_JOIN_IN CLONEf_KEEP_PTR_TABLE
+syn keyword xsMacro CLOSE CLUMP CLUMP_2IV CLUMP_2UV COLONATTR
+syn keyword xsMacro COMBINING_GRAVE_ACCENT_UTF8 COMMIT COMMIT_next
+syn keyword xsMacro COMMIT_next_fail COND_BROADCAST COND_DESTROY COND_INIT
+syn keyword xsMacro COND_SIGNAL COND_WAIT CONTINUE CONTINUE_PAT_MOD
+syn keyword xsMacro COPHH_KEY_UTF8 COP_SEQMAX_INC COP_SEQ_RANGE_HIGH
+syn keyword xsMacro COP_SEQ_RANGE_LOW CPERLarg CPERLarg_ CPERLscope CPPLAST
+syn keyword xsMacro CPPMINUS CPPRUN CPPSTDIN CRYPT_R_PROTO CR_NATIVE CSH
+syn keyword xsMacro CTERMID_R_PROTO CTIME_R_PROTO CTYPE256 CURLY CURLYM
syn keyword xsMacro CURLYM_A CURLYM_A_fail CURLYM_B CURLYM_B_fail CURLYN
syn keyword xsMacro CURLYX CURLYX_end CURLYX_end_fail CURLY_B_max
syn keyword xsMacro CURLY_B_max_fail CURLY_B_min CURLY_B_min_fail
syn keyword xsMacro CURLY_B_min_known CURLY_B_min_known_fail
syn keyword xsMacro CURRENT_FEATURE_BUNDLE CURRENT_HINTS CUTGROUP
-syn keyword xsMacro CUTGROUP_next CUTGROUP_next_fail CVf_ANON CVf_AUTOLOAD
+syn keyword xsMacro CUTGROUP_next CUTGROUP_next_fail CV_NAME_NOTQUAL
+syn keyword xsMacro CV_UNDEF_KEEP_NAME CVf_ANON CVf_ANONCONST CVf_AUTOLOAD
syn keyword xsMacro CVf_BUILTIN_ATTRS CVf_CLONE CVf_CLONED CVf_CONST
-syn keyword xsMacro CVf_CVGV_RC CVf_DYNFILE CVf_ISXSUB CVf_LVALUE CVf_METHOD
-syn keyword xsMacro CVf_NODEBUG CVf_UNIQUE CVf_WEAKOUTSIDE CXINC CXTYPEMASK
-syn keyword xsMacro CX_CURPAD_SAVE CX_CURPAD_SV CXp_FOR_DEF CXp_HASARGS
-syn keyword xsMacro CXp_MULTICALL CXp_ONCE CXp_REAL CXp_TRYBLOCK C_ARRAY_END
-syn keyword xsMacro C_ARRAY_LENGTH C_FAC_POSIX CopFILE CopFILEAV CopFILEAVx
-syn keyword xsMacro CopFILEGV CopFILEGV_set CopFILESV CopFILE_free
-syn keyword xsMacro CopFILE_set CopFILE_setn CopHINTHASH_get CopHINTHASH_set
-syn keyword xsMacro CopHINTS_get CopHINTS_set CopLABEL CopLABEL_alloc
-syn keyword xsMacro CopLABEL_len CopLABEL_len_flags CopLINE CopLINE_dec
-syn keyword xsMacro CopLINE_inc CopLINE_set CopSTASH CopSTASHPV
-syn keyword xsMacro CopSTASHPV_set CopSTASH_eq CopSTASH_free CopSTASH_len
-syn keyword xsMacro CopSTASH_len_set CopSTASH_ne CopSTASH_set Copy CopyD Ctl
-syn keyword xsMacro CvANON CvANON_off CvANON_on CvAUTOLOAD CvAUTOLOAD_off
+syn keyword xsMacro CVf_CVGV_RC CVf_DYNFILE CVf_HASEVAL CVf_ISXSUB
+syn keyword xsMacro CVf_LEXICAL CVf_LVALUE CVf_METHOD CVf_NAMED CVf_NODEBUG
+syn keyword xsMacro CVf_SLABBED CVf_UNIQUE CVf_WEAKOUTSIDE CXINC CXTYPEMASK
+syn keyword xsMacro CX_CURPAD_SAVE CX_CURPAD_SV CXp_FOR_DEF CXp_FOR_LVREF
+syn keyword xsMacro CXp_HASARGS CXp_MULTICALL CXp_ONCE CXp_REAL CXp_SUB_RE
+syn keyword xsMacro CXp_SUB_RE_FAKE CXp_TRYBLOCK C_ARRAY_END C_ARRAY_LENGTH
+syn keyword xsMacro C_FAC_POSIX CopFILE CopFILEAV CopFILEAVx CopFILEGV
+syn keyword xsMacro CopFILEGV_set CopFILESV CopFILE_free CopFILE_set
+syn keyword xsMacro CopFILE_setn CopHINTHASH_get CopHINTHASH_set CopHINTS_get
+syn keyword xsMacro CopHINTS_set CopLABEL CopLABEL_alloc CopLABEL_len
+syn keyword xsMacro CopLABEL_len_flags CopLINE CopLINE_dec CopLINE_inc
+syn keyword xsMacro CopLINE_set CopSTASH CopSTASHPV CopSTASHPV_set
+syn keyword xsMacro CopSTASH_eq CopSTASH_ne CopSTASH_set Copy CopyD CowREFCNT
+syn keyword xsMacro Ctl CvANON CvANONCONST CvANONCONST_off CvANONCONST_on
+syn keyword xsMacro CvANON_off CvANON_on CvAUTOLOAD CvAUTOLOAD_off
syn keyword xsMacro CvAUTOLOAD_on CvCLONE CvCLONED CvCLONED_off CvCLONED_on
syn keyword xsMacro CvCLONE_off CvCLONE_on CvCONST CvCONST_off CvCONST_on
-syn keyword xsMacro CvCVGV_RC CvCVGV_RC_off CvCVGV_RC_on CvDEPTH CvDYNFILE
-syn keyword xsMacro CvDYNFILE_off CvDYNFILE_on CvEVAL CvEVAL_off CvEVAL_on
-syn keyword xsMacro CvFILE CvFILEGV CvFILE_set_from_cop CvFLAGS CvGV CvGV_set
-syn keyword xsMacro CvISXSUB CvISXSUB_off CvISXSUB_on CvLVALUE CvLVALUE_off
-syn keyword xsMacro CvLVALUE_on CvMETHOD CvMETHOD_off CvMETHOD_on CvNODEBUG
-syn keyword xsMacro CvNODEBUG_off CvNODEBUG_on CvOUTSIDE CvOUTSIDE_SEQ
-syn keyword xsMacro CvPADLIST CvPROTO CvPROTOLEN CvROOT CvSPECIAL
+syn keyword xsMacro CvCVGV_RC CvCVGV_RC_off CvCVGV_RC_on CvDEPTH
+syn keyword xsMacro CvDEPTHunsafe CvDYNFILE CvDYNFILE_off CvDYNFILE_on CvEVAL
+syn keyword xsMacro CvEVAL_off CvEVAL_on CvFILE CvFILEGV CvFILE_set_from_cop
+syn keyword xsMacro CvFLAGS CvGV CvGV_set CvHASEVAL CvHASEVAL_off
+syn keyword xsMacro CvHASEVAL_on CvHASGV CvHSCXT CvISXSUB CvISXSUB_off
+syn keyword xsMacro CvISXSUB_on CvLEXICAL CvLEXICAL_off CvLEXICAL_on CvLVALUE
+syn keyword xsMacro CvLVALUE_off CvLVALUE_on CvMETHOD CvMETHOD_off
+syn keyword xsMacro CvMETHOD_on CvNAMED CvNAMED_off CvNAMED_on CvNAME_HEK_set
+syn keyword xsMacro CvNODEBUG CvNODEBUG_off CvNODEBUG_on CvOUTSIDE
+syn keyword xsMacro CvOUTSIDE_SEQ CvPADLIST CvPADLIST_set CvPROTO CvPROTOLEN
+syn keyword xsMacro CvROOT CvSLABBED CvSLABBED_off CvSLABBED_on CvSPECIAL
syn keyword xsMacro CvSPECIAL_off CvSPECIAL_on CvSTART CvSTASH CvSTASH_set
syn keyword xsMacro CvUNIQUE CvUNIQUE_off CvUNIQUE_on CvWEAKOUTSIDE
syn keyword xsMacro CvWEAKOUTSIDE_off CvWEAKOUTSIDE_on CvXSUB CvXSUBANY
syn keyword xsMacro CxFOREACH CxFOREACHDEF CxHASARGS CxITERVAR
syn keyword xsMacro CxITERVAR_PADSV CxLABEL CxLABEL_len CxLABEL_len_flags
syn keyword xsMacro CxLVAL CxMULTICALL CxOLD_IN_EVAL CxOLD_OP_TYPE CxONCE
-syn keyword xsMacro CxPADLOOP CxREALEVAL CxTRYBLOCK CxTYPE CxTYPE_is_LOOP
-syn keyword xsMacro DBL_DIG DBL_MAX DBL_MIN DBM_ckFilter DBM_setFilter
-syn keyword xsMacro DB_VERSION_MAJOR_CFG DB_VERSION_MINOR_CFG
+syn keyword xsMacro CxPADLOOP CxPOPSUB_DONE CxREALEVAL CxTRYBLOCK CxTYPE
+syn keyword xsMacro CxTYPE_is_LOOP DBL_DIG DBL_MAX DBL_MIN DBM_ckFilter
+syn keyword xsMacro DBM_setFilter DBVARMG_COUNT DBVARMG_SIGNAL DBVARMG_SINGLE
+syn keyword xsMacro DBVARMG_TRACE DB_VERSION_MAJOR_CFG DB_VERSION_MINOR_CFG
syn keyword xsMacro DB_VERSION_PATCH_CFG DEBUG_A DEBUG_A_FLAG DEBUG_A_TEST
syn keyword xsMacro DEBUG_A_TEST_ DEBUG_B DEBUG_BUFFERS_r DEBUG_B_FLAG
syn keyword xsMacro DEBUG_B_TEST DEBUG_B_TEST_ DEBUG_C DEBUG_COMPILE_r
@@ -1115,13 +1231,15 @@ syn keyword xsMacro DEBUG_DB_RECURSE_FLAG DEBUG_DUMP_r DEBUG_D_FLAG
syn keyword xsMacro DEBUG_D_TEST DEBUG_D_TEST_ DEBUG_EXECUTE_r DEBUG_EXTRA_r
syn keyword xsMacro DEBUG_FLAGS_r DEBUG_GPOS_r DEBUG_H DEBUG_H_FLAG
syn keyword xsMacro DEBUG_H_TEST DEBUG_H_TEST_ DEBUG_INTUIT_r DEBUG_J_FLAG
-syn keyword xsMacro DEBUG_J_TEST DEBUG_J_TEST_ DEBUG_M DEBUG_MASK
+syn keyword xsMacro DEBUG_J_TEST DEBUG_J_TEST_ DEBUG_L DEBUG_L_FLAG
+syn keyword xsMacro DEBUG_L_TEST DEBUG_L_TEST_ DEBUG_M DEBUG_MASK
syn keyword xsMacro DEBUG_MATCH_r DEBUG_M_FLAG DEBUG_M_TEST DEBUG_M_TEST_
syn keyword xsMacro DEBUG_OFFSETS_r DEBUG_OPTIMISE_MORE_r DEBUG_OPTIMISE_r
syn keyword xsMacro DEBUG_P DEBUG_PARSE_r DEBUG_P_FLAG DEBUG_P_TEST
syn keyword xsMacro DEBUG_P_TEST_ DEBUG_Pv DEBUG_Pv_TEST DEBUG_Pv_TEST_
-syn keyword xsMacro DEBUG_R DEBUG_R_FLAG DEBUG_R_TEST DEBUG_R_TEST_
-syn keyword xsMacro DEBUG_SCOPE DEBUG_STACK_r DEBUG_STATE_r DEBUG_T
+syn keyword xsMacro DEBUG_R DEBUG_R_FLAG DEBUG_R_TEST DEBUG_R_TEST_ DEBUG_S
+syn keyword xsMacro DEBUG_SCOPE DEBUG_STACK_r DEBUG_STATE_r DEBUG_S_FLAG
+syn keyword xsMacro DEBUG_S_TEST DEBUG_S_TEST_ DEBUG_T DEBUG_TEST_r
syn keyword xsMacro DEBUG_TOP_FLAG DEBUG_TRIE_COMPILE_MORE_r
syn keyword xsMacro DEBUG_TRIE_COMPILE_r DEBUG_TRIE_EXECUTE_MORE_r
syn keyword xsMacro DEBUG_TRIE_EXECUTE_r DEBUG_TRIE_r DEBUG_T_FLAG
@@ -1141,47 +1259,71 @@ syn keyword xsMacro DEBUG_s_FLAG DEBUG_s_TEST DEBUG_s_TEST_ DEBUG_t_FLAG
syn keyword xsMacro DEBUG_t_TEST DEBUG_t_TEST_ DEBUG_u DEBUG_u_FLAG
syn keyword xsMacro DEBUG_u_TEST DEBUG_u_TEST_ DEBUG_v DEBUG_v_FLAG
syn keyword xsMacro DEBUG_v_TEST DEBUG_v_TEST_ DEBUG_x DEBUG_x_FLAG
-syn keyword xsMacro DEBUG_x_TEST DEBUG_x_TEST_ DEFAULT DEFAULT_PAT_MOD
-syn keyword xsMacro DEFINEP DEFSV DEFSV_set DEPENDS_PAT_MOD DEPENDS_PAT_MODS
-syn keyword xsMacro DETACH DIE DIGIT DIGITA DIGITL DIR DM_ARRAY_ISA DM_DELAY
-syn keyword xsMacro DM_EGID DM_EUID DM_GID DM_RGID DM_RUID DM_UID DO DOINIT
-syn keyword xsMacro DOLSHARP DONT_DECLARE_STD DORDOR DOROP DOSISH DOTDOT
-syn keyword xsMacro DOUBLESIZE DO_UTF8 DPTR2FPTR DRAND48_R_PROTO DUP_WARNINGS
-syn keyword xsMacro Drand01 ELSE ELSIF EMBEDMYMALLOC END ENDGRENT_R_PROTO
-syn keyword xsMacro ENDHOSTENT_R_PROTO ENDLIKE ENDNETENT_R_PROTO
-syn keyword xsMacro ENDPROTOENT_R_PROTO ENDPWENT_R_PROTO ENDSERVENT_R_PROTO
-syn keyword xsMacro END_EXTERN_C ENTER ENTER_with_name ENTRY_PROBE ENUM_BOOL
-syn keyword xsMacro EOF EOL EOS EQOP ERRHV ERRSV EVAL EVAL_AB EVAL_AB_fail
-syn keyword xsMacro EVAL_INEVAL EVAL_INREQUIRE EVAL_KEEPERR EVAL_NULL
-syn keyword xsMacro EVAL_WARNONLY EXACT EXACTF EXACTFA EXACTFL EXACTFU
-syn keyword xsMacro EXACTFU_SS EXACTFU_TRICKYFOLD EXEC_ARGV_CAST EXEC_PAT_MOD
+syn keyword xsMacro DEBUG_x_TEST DEBUG_x_TEST_
+syn keyword xsMacro DECLARATION_FOR_LC_NUMERIC_MANIPULATION
+syn keyword xsMacro DECLARATION_FOR_STORE_LC_NUMERIC_SET_TO_NEEDED
+syn keyword xsMacro DECLARE_STORE_LC_NUMERIC_SET_TO_NEEDED DEFAULT
+syn keyword xsMacro DEFAULT_PAT_MOD DEFINEP DEFSV DEFSV_set DEL_NATIVE
+syn keyword xsMacro DEPENDS_PAT_MOD DEPENDS_PAT_MODS DETACH DIE DM_ARRAY_ISA
+syn keyword xsMacro DM_DELAY DM_EGID DM_EUID DM_GID DM_RGID DM_RUID DM_UID DO
+syn keyword xsMacro DOINIT DOLSHARP DONT_DECLARE_STD DORDOR DOROP DOSISH
+syn keyword xsMacro DOTDOT DOUBLEKIND DOUBLESIZE DOUBLE_BIG_ENDIAN
+syn keyword xsMacro DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+syn keyword xsMacro DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+syn keyword xsMacro DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN
+syn keyword xsMacro DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN
+syn keyword xsMacro DOUBLE_IS_IEEE_754_64_BIT_BIG_ENDIAN
+syn keyword xsMacro DOUBLE_IS_IEEE_754_64_BIT_LITTLE_ENDIAN
+syn keyword xsMacro DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
+syn keyword xsMacro DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE
+syn keyword xsMacro DOUBLE_IS_UNKNOWN_FORMAT DOUBLE_LITTLE_ENDIAN
+syn keyword xsMacro DOUBLE_MIX_ENDIAN DO_UTF8 DPTR2FPTR DRAND48_R_PROTO
+syn keyword xsMacro DUP_WARNINGS Drand01 ELSE ELSIF EMBEDMYMALLOC END
+syn keyword xsMacro ENDGRENT_R_PROTO ENDHOSTENT_R_PROTO ENDLIKE
+syn keyword xsMacro ENDNETENT_R_PROTO ENDPROTOENT_R_PROTO ENDPWENT_R_PROTO
+syn keyword xsMacro ENDSERVENT_R_PROTO END_EXTERN_C ENTER ENTER_with_name
+syn keyword xsMacro ENTRY_PROBE EOF EOL EOS EQOP ERRSV ESC_NATIVE EVAL
+syn keyword xsMacro EVAL_AB EVAL_AB_fail EVAL_INEVAL EVAL_INREQUIRE
+syn keyword xsMacro EVAL_KEEPERR EVAL_NULL EVAL_RE_REPARSING EVAL_WARNONLY
+syn keyword xsMacro EXACT EXACTF EXACTFA EXACTFA_NO_TRIE EXACTFL EXACTFLU8
+syn keyword xsMacro EXACTFU EXACTFU_SS EXACTL EXEC_ARGV_CAST EXEC_PAT_MOD
syn keyword xsMacro EXEC_PAT_MODS EXPECT EXT EXTCONST EXTEND EXTEND_MORTAL
syn keyword xsMacro EXTERN_C EXTPERLIO EXTRA_SIZE EXTRA_STEP_2ARGS EXT_MGVTBL
syn keyword xsMacro EXT_PAT_MODS FAKE_BIT_BUCKET FAKE_DEFAULT_SIGNAL_HANDLERS
-syn keyword xsMacro FAKE_PERSISTENT_SIGNAL_HANDLERS FBMcf_TAIL
+syn keyword xsMacro FAKE_PERSISTENT_SIGNAL_HANDLERS FALSE FBMcf_TAIL
syn keyword xsMacro FBMcf_TAIL_DOLLAR FBMcf_TAIL_DOLLARM FBMcf_TAIL_Z
syn keyword xsMacro FBMcf_TAIL_z FBMrf_MULTILINE FCNTL_CAN_LOCK FD_CLR
syn keyword xsMacro FD_ISSET FD_SET FD_ZERO FEATURE_ARYBASE_IS_ENABLED
-syn keyword xsMacro FEATURE_BUNDLE_510 FEATURE_BUNDLE_511 FEATURE_BUNDLE_515
+syn keyword xsMacro FEATURE_BITWISE_IS_ENABLED FEATURE_BUNDLE_510
+syn keyword xsMacro FEATURE_BUNDLE_511 FEATURE_BUNDLE_515
syn keyword xsMacro FEATURE_BUNDLE_CUSTOM FEATURE_BUNDLE_DEFAULT
syn keyword xsMacro FEATURE_EVALBYTES_IS_ENABLED FEATURE_FC_IS_ENABLED
-syn keyword xsMacro FEATURE_IS_ENABLED FEATURE_SAY_IS_ENABLED
-syn keyword xsMacro FEATURE_STATE_IS_ENABLED FEATURE_SWITCH_IS_ENABLED
-syn keyword xsMacro FEATURE_UNICODE_IS_ENABLED FEATURE_UNIEVAL_IS_ENABLED
-syn keyword xsMacro FEATURE___SUB___IS_ENABLED FFLUSH_NULL FF_0DECIMAL
-syn keyword xsMacro FF_BLANK FF_CHECKCHOP FF_CHECKNL FF_CHOP FF_DECIMAL
-syn keyword xsMacro FF_END FF_FETCH FF_HALFSPACE FF_ITEM FF_LINEGLOB
-syn keyword xsMacro FF_LINEMARK FF_LINESNGL FF_LITERAL FF_MORE FF_NEWLINE
-syn keyword xsMacro FF_SKIP FF_SPACE FILE FILE_base FILE_bufsiz FILE_cnt
-syn keyword xsMacro FILE_ptr FILL_ADVANCE_NODE FILL_ADVANCE_NODE_ARG
-syn keyword xsMacro FILTER_DATA FILTER_ISREADER FILTER_READ FITS_IN_8_BITS
-syn keyword xsMacro FLAGS FLEXFILENAMES FOLDEQ_S1_ALREADY_FOLDED
-syn keyword xsMacro FOLDEQ_S2_ALREADY_FOLDED FOLDEQ_UTF8_LOCALE
-syn keyword xsMacro FOLDEQ_UTF8_NOMIX_ASCII FOLD_FLAGS_FULL FOLD_FLAGS_LOCALE
-syn keyword xsMacro FOR FORMAT FPTR2DPTR FREETMPS FREE_THREAD_KEY FSEEKSIZE
-syn keyword xsMacro FUNC FUNC0 FUNC0OP FUNC0SUB FUNC1 FUNCMETH FUNCTION__
-syn keyword xsMacro F_atan2_amg F_cos_amg F_exp_amg F_log_amg F_pow_amg
-syn keyword xsMacro F_sin_amg F_sqrt_amg Fflush FmLINES FreeOp Fstat
+syn keyword xsMacro FEATURE_IS_ENABLED FEATURE_LEXSUBS_IS_ENABLED
+syn keyword xsMacro FEATURE_POSTDEREF_IS_ENABLED
+syn keyword xsMacro FEATURE_POSTDEREF_QQ_IS_ENABLED
+syn keyword xsMacro FEATURE_REFALIASING_IS_ENABLED FEATURE_SAY_IS_ENABLED
+syn keyword xsMacro FEATURE_SIGNATURES_IS_ENABLED FEATURE_STATE_IS_ENABLED
+syn keyword xsMacro FEATURE_SWITCH_IS_ENABLED FEATURE_UNICODE_IS_ENABLED
+syn keyword xsMacro FEATURE_UNIEVAL_IS_ENABLED FEATURE___SUB___IS_ENABLED
+syn keyword xsMacro FFLUSH_NULL FF_0DECIMAL FF_BLANK FF_CHECKCHOP FF_CHECKNL
+syn keyword xsMacro FF_CHOP FF_DECIMAL FF_END FF_FETCH FF_HALFSPACE FF_ITEM
+syn keyword xsMacro FF_LINEGLOB FF_LINEMARK FF_LINESNGL FF_LITERAL FF_MORE
+syn keyword xsMacro FF_NEWLINE FF_SKIP FF_SPACE FILE FILE_base FILE_bufsiz
+syn keyword xsMacro FILE_cnt FILE_ptr FILL_ADVANCE_NODE
+syn keyword xsMacro FILL_ADVANCE_NODE_2L_ARG FILL_ADVANCE_NODE_ARG
+syn keyword xsMacro FILTER_DATA FILTER_ISREADER FILTER_READ
+syn keyword xsMacro FIND_RUNCV_level_eq FIND_RUNCV_padid_eq
+syn keyword xsMacro FIRST_SURROGATE_UTF8_FIRST_BYTE FITS_IN_8_BITS FLAGS
+syn keyword xsMacro FLEXFILENAMES FOLDEQ_LOCALE FOLDEQ_S1_ALREADY_FOLDED
+syn keyword xsMacro FOLDEQ_S1_FOLDS_SANE FOLDEQ_S2_ALREADY_FOLDED
+syn keyword xsMacro FOLDEQ_S2_FOLDS_SANE FOLDEQ_UTF8_NOMIX_ASCII
+syn keyword xsMacro FOLD_FLAGS_FULL FOLD_FLAGS_LOCALE FOLD_FLAGS_NOMIX_ASCII
+syn keyword xsMacro FOR FORMAT FORMLBRACK FORMRBRACK FPTR2DPTR FP_PINF
+syn keyword xsMacro FP_QNAN FREETMPS FREE_THREAD_KEY FSEEKSIZE FUNC FUNC0
+syn keyword xsMacro FUNC0OP FUNC0SUB FUNC1 FUNCMETH FUNCTION__ F_atan2_amg
+syn keyword xsMacro F_cos_amg F_exp_amg F_log_amg F_pow_amg F_sin_amg
+syn keyword xsMacro F_sqrt_amg Fflush FmLINES FreeOp Fstat GCB_ENUM_COUNT
+syn keyword xsMacro GCC_DIAG_IGNORE GCC_DIAG_PRAGMA GCC_DIAG_RESTORE
syn keyword xsMacro GDBMNDBM_H_USES_PROTOTYPES GETATARGET GETGRENT_R_PROTO
syn keyword xsMacro GETGRGID_R_PROTO GETGRNAM_R_PROTO GETHOSTBYADDR_R_PROTO
syn keyword xsMacro GETHOSTBYNAME_R_PROTO GETHOSTENT_R_PROTO GETLOGIN_R_PROTO
@@ -1194,164 +1336,185 @@ syn keyword xsMacro GETSERVENT_R_PROTO GETSPNAM_R_PROTO GETTARGET
syn keyword xsMacro GETTARGETSTACKED GET_RE_DEBUG_FLAGS
syn keyword xsMacro GET_RE_DEBUG_FLAGS_DECL GIMME GIMME_V GIVEN
syn keyword xsMacro GLOBAL_PAT_MOD GMTIME_MAX GMTIME_MIN GMTIME_R
-syn keyword xsMacro GMTIME_R_PROTO GOSTART GOSUB GPOS GRAMBARESTMT GRAMBLOCK
-syn keyword xsMacro GRAMEXPR GRAMFULLSTMT GRAMPROG GRAMSTMTSEQ
+syn keyword xsMacro GMTIME_R_PROTO GOSTART GOSUB GPOS GPf_ALIASED_SV
+syn keyword xsMacro GRAMBARESTMT GRAMBLOCK GRAMEXPR GRAMFULLSTMT GRAMPROG
+syn keyword xsMacro GRAMSTMTSEQ GREEK_CAPITAL_LETTER_IOTA_UTF8
syn keyword xsMacro GREEK_CAPITAL_LETTER_MU GREEK_SMALL_LETTER_MU
-syn keyword xsMacro GROK_NUMERIC_RADIX GROUPP GRPASSWD GV_ADD GV_ADDINEVAL
-syn keyword xsMacro GV_ADDMG GV_ADDMULTI GV_ADDWARN GV_AUTOLOAD
-syn keyword xsMacro GV_AUTOLOAD_ISMETHOD GV_CROAK GV_NOADD_MASK
-syn keyword xsMacro GV_NOADD_NOINIT GV_NOEXPAND GV_NOINIT GV_NOTQUAL
-syn keyword xsMacro GV_NO_SVGMAGIC GVf_ASSUMECV GVf_IMPORTED GVf_IMPORTED_AV
-syn keyword xsMacro GVf_IMPORTED_CV GVf_IMPORTED_HV GVf_IMPORTED_SV GVf_INTRO
-syn keyword xsMacro GVf_IN_PAD GVf_MULTI Gconvert Gid_t_f Gid_t_sign
-syn keyword xsMacro Gid_t_size GvASSIGN_GENERATION GvASSIGN_GENERATION_set
-syn keyword xsMacro GvASSUMECV GvASSUMECV_off GvASSUMECV_on GvAV GvAVn GvCV
-syn keyword xsMacro GvCVGEN GvCV_set GvCVu GvEGV GvEGVx GvENAME GvENAMELEN
-syn keyword xsMacro GvENAMEUTF8 GvENAME_HEK GvESTASH GvFILE GvFILEGV
-syn keyword xsMacro GvFILE_HEK GvFLAGS GvFORM GvGP GvGP_set GvHV GvHVn
-syn keyword xsMacro GvIMPORTED GvIMPORTED_AV GvIMPORTED_AV_off
-syn keyword xsMacro GvIMPORTED_AV_on GvIMPORTED_CV GvIMPORTED_CV_off
-syn keyword xsMacro GvIMPORTED_CV_on GvIMPORTED_HV GvIMPORTED_HV_off
-syn keyword xsMacro GvIMPORTED_HV_on GvIMPORTED_SV GvIMPORTED_SV_off
-syn keyword xsMacro GvIMPORTED_SV_on GvIMPORTED_off GvIMPORTED_on GvINTRO
-syn keyword xsMacro GvINTRO_off GvINTRO_on GvIN_PAD GvIN_PAD_off GvIN_PAD_on
-syn keyword xsMacro GvIO GvIOn GvIOp GvLINE GvMULTI GvMULTI_off GvMULTI_on
-syn keyword xsMacro GvNAME GvNAMELEN GvNAMELEN_get GvNAMEUTF8 GvNAME_HEK
-syn keyword xsMacro GvNAME_get GvREFCNT GvSTASH GvSV GvSVn GvXPVGV Gv_AMG
+syn keyword xsMacro GREEK_SMALL_LETTER_MU_UTF8 GROK_NUMERIC_RADIX GROUPP
+syn keyword xsMacro GRPASSWD GV_ADD GV_ADDMG GV_ADDMULTI GV_ADDWARN
+syn keyword xsMacro GV_AUTOLOAD GV_AUTOLOAD_ISMETHOD GV_CACHE_ONLY GV_CROAK
+syn keyword xsMacro GV_NOADD_MASK GV_NOADD_NOINIT GV_NOEXPAND GV_NOINIT
+syn keyword xsMacro GV_NOTQUAL GV_NO_SVGMAGIC GV_SUPER GVf_ASSUMECV
+syn keyword xsMacro GVf_IMPORTED GVf_IMPORTED_AV GVf_IMPORTED_CV
+syn keyword xsMacro GVf_IMPORTED_HV GVf_IMPORTED_SV GVf_INTRO GVf_MULTI
+syn keyword xsMacro Gconvert Gid_t_f Gid_t_sign Gid_t_size GvALIASED_SV
+syn keyword xsMacro GvALIASED_SV_off GvALIASED_SV_on GvASSIGN_GENERATION
+syn keyword xsMacro GvASSIGN_GENERATION_set GvASSUMECV GvASSUMECV_off
+syn keyword xsMacro GvASSUMECV_on GvAV GvAVn GvCV GvCVGEN GvCV_set GvCVu
+syn keyword xsMacro GvEGV GvEGVx GvENAME GvENAMELEN GvENAMEUTF8 GvENAME_HEK
+syn keyword xsMacro GvESTASH GvFILE GvFILEGV GvFILE_HEK GvFILEx GvFLAGS
+syn keyword xsMacro GvFORM GvGP GvGPFLAGS GvGP_set GvHV GvHVn GvIMPORTED
+syn keyword xsMacro GvIMPORTED_AV GvIMPORTED_AV_off GvIMPORTED_AV_on
+syn keyword xsMacro GvIMPORTED_CV GvIMPORTED_CV_off GvIMPORTED_CV_on
+syn keyword xsMacro GvIMPORTED_HV GvIMPORTED_HV_off GvIMPORTED_HV_on
+syn keyword xsMacro GvIMPORTED_SV GvIMPORTED_SV_off GvIMPORTED_SV_on
+syn keyword xsMacro GvIMPORTED_off GvIMPORTED_on GvINTRO GvINTRO_off
+syn keyword xsMacro GvINTRO_on GvIN_PAD GvIN_PAD_off GvIN_PAD_on GvIO GvIOn
+syn keyword xsMacro GvIOp GvLINE GvMULTI GvMULTI_off GvMULTI_on GvNAME
+syn keyword xsMacro GvNAMELEN GvNAMELEN_get GvNAMEUTF8 GvNAME_HEK GvNAME_get
+syn keyword xsMacro GvREFCNT GvSTASH GvSV GvSVn GvXPVGV Gv_AMG HANDY_H
syn keyword xsMacro HASATTRIBUTE_DEPRECATED HASATTRIBUTE_FORMAT
syn keyword xsMacro HASATTRIBUTE_MALLOC HASATTRIBUTE_NONNULL
syn keyword xsMacro HASATTRIBUTE_NORETURN HASATTRIBUTE_PURE
syn keyword xsMacro HASATTRIBUTE_UNUSED HASATTRIBUTE_WARN_UNUSED_RESULT
-syn keyword xsMacro HASCONST HASHBRACK HASVOLATILE HAS_64K_LIMIT HAS_ACCESS
-syn keyword xsMacro HAS_ALARM HAS_ATOLL HAS_BCMP HAS_BCOPY HAS_BOOL
-syn keyword xsMacro HAS_BUILTIN_CHOOSE_EXPR HAS_BUILTIN_EXPECT HAS_BZERO
-syn keyword xsMacro HAS_C99_VARIADIC_MACROS HAS_CHOWN HAS_CHROOT HAS_CLEARENV
-syn keyword xsMacro HAS_COPYSIGNL HAS_CRYPT HAS_CTERMID HAS_CUSERID
-syn keyword xsMacro HAS_DBL_DIG HAS_DBMINIT_PROTO HAS_DIFFTIME HAS_DIRFD
-syn keyword xsMacro HAS_DLERROR HAS_DRAND48_PROTO HAS_DUP2 HAS_EACCESS
-syn keyword xsMacro HAS_ENDGRENT HAS_ENDHOSTENT HAS_ENDNETENT HAS_ENDPROTOENT
-syn keyword xsMacro HAS_ENDPWENT HAS_ENDSERVENT HAS_FAST_STDIO HAS_FCHDIR
-syn keyword xsMacro HAS_FCHMOD HAS_FCHOWN HAS_FCNTL HAS_FD_SET HAS_FGETPOS
-syn keyword xsMacro HAS_FINITE HAS_FINITEL HAS_FLOCK HAS_FLOCK_PROTO HAS_FORK
-syn keyword xsMacro HAS_FPATHCONF HAS_FREXPL HAS_FSEEKO HAS_FSETPOS
-syn keyword xsMacro HAS_FSTATFS HAS_FSTATVFS HAS_FSYNC HAS_FTELLO HAS_FUTIMES
-syn keyword xsMacro HAS_GETADDRINFO HAS_GETCWD HAS_GETGRENT HAS_GETGROUPS
-syn keyword xsMacro HAS_GETHOSTBYADDR HAS_GETHOSTBYNAME HAS_GETHOSTENT
-syn keyword xsMacro HAS_GETHOSTNAME HAS_GETHOST_PROTOS HAS_GETITIMER
-syn keyword xsMacro HAS_GETLOGIN HAS_GETMNTENT HAS_GETNAMEINFO
-syn keyword xsMacro HAS_GETNETBYADDR HAS_GETNETBYNAME HAS_GETNETENT
-syn keyword xsMacro HAS_GETNET_PROTOS HAS_GETPAGESIZE HAS_GETPGID HAS_GETPGRP
-syn keyword xsMacro HAS_GETPPID HAS_GETPRIORITY HAS_GETPROTOBYNAME
-syn keyword xsMacro HAS_GETPROTOBYNUMBER HAS_GETPROTOENT HAS_GETPROTO_PROTOS
-syn keyword xsMacro HAS_GETPWENT HAS_GETSERVBYNAME HAS_GETSERVBYPORT
-syn keyword xsMacro HAS_GETSERVENT HAS_GETSERV_PROTOS HAS_GETSPNAM
-syn keyword xsMacro HAS_GETTIMEOFDAY HAS_GNULIBC HAS_GROUP HAS_HASMNTOPT
-syn keyword xsMacro HAS_HTOVL HAS_HTOVS HAS_ILOGBL HAS_INETNTOP HAS_INETPTON
+syn keyword xsMacro HASCONST HASHBRACK HASVOLATILE HAS_ACCESS HAS_ACOSH
+syn keyword xsMacro HAS_ALARM HAS_ASINH HAS_ATANH HAS_ATOLL HAS_BACKTRACE
+syn keyword xsMacro HAS_BCMP HAS_BCOPY HAS_BOOL HAS_BUILTIN_CHOOSE_EXPR
+syn keyword xsMacro HAS_BUILTIN_EXPECT HAS_BZERO HAS_C99
+syn keyword xsMacro HAS_C99_VARIADIC_MACROS HAS_CBRT HAS_CHOWN HAS_CHROOT
+syn keyword xsMacro HAS_CLEARENV HAS_COPYSIGN HAS_COPYSIGNL HAS_CRYPT
+syn keyword xsMacro HAS_CTERMID HAS_CUSERID HAS_DBL_DIG HAS_DBMINIT_PROTO
+syn keyword xsMacro HAS_DIFFTIME HAS_DIRFD HAS_DLADDR HAS_DLERROR
+syn keyword xsMacro HAS_DRAND48_PROTO HAS_DUP2 HAS_EACCESS HAS_ENDGRENT
+syn keyword xsMacro HAS_ENDHOSTENT HAS_ENDNETENT HAS_ENDPROTOENT HAS_ENDPWENT
+syn keyword xsMacro HAS_ENDSERVENT HAS_ERF HAS_ERFC HAS_EXP2 HAS_EXPM1
+syn keyword xsMacro HAS_FCHDIR HAS_FCHMOD HAS_FCHOWN HAS_FCNTL HAS_FDIM
+syn keyword xsMacro HAS_FD_SET HAS_FEGETROUND HAS_FGETPOS HAS_FINITE
+syn keyword xsMacro HAS_FINITEL HAS_FLOCK HAS_FLOCK_PROTO HAS_FMA HAS_FMAX
+syn keyword xsMacro HAS_FMIN HAS_FORK HAS_FPATHCONF HAS_FPCLASSIFY HAS_FREXPL
+syn keyword xsMacro HAS_FSEEKO HAS_FSETPOS HAS_FSTATFS HAS_FSTATVFS HAS_FSYNC
+syn keyword xsMacro HAS_FTELLO HAS_FUTIMES HAS_GETADDRINFO HAS_GETCWD
+syn keyword xsMacro HAS_GETGRENT HAS_GETGROUPS HAS_GETHOSTBYADDR
+syn keyword xsMacro HAS_GETHOSTBYNAME HAS_GETHOSTENT HAS_GETHOSTNAME
+syn keyword xsMacro HAS_GETHOST_PROTOS HAS_GETITIMER HAS_GETLOGIN
+syn keyword xsMacro HAS_GETMNTENT HAS_GETNAMEINFO HAS_GETNETBYADDR
+syn keyword xsMacro HAS_GETNETBYNAME HAS_GETNETENT HAS_GETNET_PROTOS
+syn keyword xsMacro HAS_GETPAGESIZE HAS_GETPGID HAS_GETPGRP HAS_GETPPID
+syn keyword xsMacro HAS_GETPRIORITY HAS_GETPROTOBYNAME HAS_GETPROTOBYNUMBER
+syn keyword xsMacro HAS_GETPROTOENT HAS_GETPROTO_PROTOS HAS_GETPWENT
+syn keyword xsMacro HAS_GETSERVBYNAME HAS_GETSERVBYPORT HAS_GETSERVENT
+syn keyword xsMacro HAS_GETSERV_PROTOS HAS_GETSPNAM HAS_GETTIMEOFDAY
+syn keyword xsMacro HAS_GNULIBC HAS_GROUP HAS_HASMNTOPT HAS_HTONL HAS_HTONS
+syn keyword xsMacro HAS_HYPOT HAS_ILOGB HAS_ILOGBL HAS_INETNTOP HAS_INETPTON
syn keyword xsMacro HAS_INET_ATON HAS_INT64_T HAS_IOCTL HAS_IPV6_MREQ
-syn keyword xsMacro HAS_ISASCII HAS_ISBLANK HAS_ISINF HAS_ISNAN HAS_ISNANL
-syn keyword xsMacro HAS_KILL HAS_KILLPG HAS_LCHOWN HAS_LDBL_DIG HAS_LINK
-syn keyword xsMacro HAS_LOCALECONV HAS_LOCKF HAS_LONG_DOUBLE HAS_LONG_LONG
+syn keyword xsMacro HAS_IP_MREQ HAS_IP_MREQ_SOURCE HAS_ISASCII HAS_ISBLANK
+syn keyword xsMacro HAS_ISFINITE HAS_ISINF HAS_ISINFL HAS_ISNAN HAS_ISNANL
+syn keyword xsMacro HAS_ISNORMAL HAS_J0 HAS_J0L HAS_KILL HAS_KILLPG
+syn keyword xsMacro HAS_LCHOWN HAS_LC_MONETARY_2008 HAS_LDBL_DIG HAS_LDEXPL
+syn keyword xsMacro HAS_LGAMMA HAS_LGAMMA_R HAS_LINK HAS_LLRINT HAS_LLRINTL
+syn keyword xsMacro HAS_LLROUND HAS_LLROUNDL HAS_LOCALECONV HAS_LOCKF
+syn keyword xsMacro HAS_LOG1P HAS_LOG2 HAS_LOGB HAS_LONG_DOUBLE HAS_LONG_LONG
+syn keyword xsMacro HAS_LRINT HAS_LRINTL HAS_LROUND HAS_LROUNDL
syn keyword xsMacro HAS_LSEEK_PROTO HAS_LSTAT HAS_MADVISE HAS_MBLEN
syn keyword xsMacro HAS_MBSTOWCS HAS_MBTOWC HAS_MEMCHR HAS_MEMCMP HAS_MEMCPY
syn keyword xsMacro HAS_MEMMOVE HAS_MEMSET HAS_MKDIR HAS_MKDTEMP HAS_MKFIFO
syn keyword xsMacro HAS_MKSTEMP HAS_MKSTEMPS HAS_MKTIME HAS_MMAP HAS_MODFL
syn keyword xsMacro HAS_MODFL_PROTO HAS_MPROTECT HAS_MSG HAS_MSG_CTRUNC
syn keyword xsMacro HAS_MSG_DONTROUTE HAS_MSG_OOB HAS_MSG_PEEK HAS_MSG_PROXY
-syn keyword xsMacro HAS_MSYNC HAS_MUNMAP HAS_NICE HAS_NL_LANGINFO HAS_OPEN3
-syn keyword xsMacro HAS_PASSWD HAS_PATHCONF HAS_PAUSE HAS_PIPE HAS_POLL
-syn keyword xsMacro HAS_PRCTL HAS_PRCTL_SET_NAME HAS_PROCSELFEXE
+syn keyword xsMacro HAS_MSYNC HAS_MUNMAP HAS_NAN HAS_NEARBYINT HAS_NEXTAFTER
+syn keyword xsMacro HAS_NEXTTOWARD HAS_NICE HAS_NL_LANGINFO HAS_NTOHL
+syn keyword xsMacro HAS_NTOHS HAS_OPEN3 HAS_PASSWD HAS_PATHCONF HAS_PAUSE
+syn keyword xsMacro HAS_PIPE HAS_POLL HAS_PRCTL HAS_PRCTL_SET_NAME
+syn keyword xsMacro HAS_PROCSELFEXE HAS_PTHREAD_ATFORK
syn keyword xsMacro HAS_PTHREAD_ATTR_SETSCOPE
-syn keyword xsMacro HAS_PTHREAD_UNCHECKED_GETSPECIFIC_NP HAS_READDIR
-syn keyword xsMacro HAS_READLINK HAS_READV HAS_RECVMSG HAS_RENAME
-syn keyword xsMacro HAS_REWINDDIR HAS_RMDIR HAS_SANE_MEMCMP HAS_SBRK_PROTO
-syn keyword xsMacro HAS_SCALBNL HAS_SCHED_YIELD HAS_SCM_RIGHTS HAS_SEEKDIR
-syn keyword xsMacro HAS_SELECT HAS_SEM HAS_SENDMSG HAS_SETEGID HAS_SETEUID
-syn keyword xsMacro HAS_SETGRENT HAS_SETGROUPS HAS_SETHOSTENT HAS_SETITIMER
-syn keyword xsMacro HAS_SETLINEBUF HAS_SETLOCALE HAS_SETNETENT HAS_SETPGID
-syn keyword xsMacro HAS_SETPGRP HAS_SETPRIORITY HAS_SETPROTOENT HAS_SETPWENT
-syn keyword xsMacro HAS_SETREGID HAS_SETRESGID HAS_SETRESUID HAS_SETREUID
-syn keyword xsMacro HAS_SETSERVENT HAS_SETSID HAS_SETVBUF HAS_SHM
-syn keyword xsMacro HAS_SHMAT_PROTOTYPE HAS_SIGACTION HAS_SIGNBIT
-syn keyword xsMacro HAS_SIGPROCMASK HAS_SIGSETJMP HAS_SIN6_SCOPE_ID
-syn keyword xsMacro HAS_SNPRINTF HAS_SOCKADDR_IN6 HAS_SOCKATMARK
-syn keyword xsMacro HAS_SOCKATMARK_PROTO HAS_SOCKET HAS_SQRTL
-syn keyword xsMacro HAS_STATIC_INLINE HAS_STRCHR HAS_STRCOLL HAS_STRFTIME
-syn keyword xsMacro HAS_STRTOD HAS_STRTOL HAS_STRTOLD HAS_STRTOLL HAS_STRTOQ
-syn keyword xsMacro HAS_STRTOUL HAS_STRTOULL HAS_STRTOUQ HAS_STRUCT_CMSGHDR
+syn keyword xsMacro HAS_PTHREAD_UNCHECKED_GETSPECIFIC_NP HAS_PTHREAD_YIELD
+syn keyword xsMacro HAS_PTRDIFF_T HAS_READDIR HAS_READLINK HAS_READV
+syn keyword xsMacro HAS_RECVMSG HAS_REGCOMP HAS_REMAINDER HAS_REMQUO
+syn keyword xsMacro HAS_RENAME HAS_REWINDDIR HAS_RINT HAS_RMDIR HAS_ROUND
+syn keyword xsMacro HAS_SANE_MEMCMP HAS_SBRK_PROTO HAS_SCALBN HAS_SCALBNL
+syn keyword xsMacro HAS_SCHED_YIELD HAS_SCM_RIGHTS HAS_SEEKDIR HAS_SELECT
+syn keyword xsMacro HAS_SEM HAS_SENDMSG HAS_SETEGID HAS_SETEUID HAS_SETGRENT
+syn keyword xsMacro HAS_SETGROUPS HAS_SETHOSTENT HAS_SETITIMER HAS_SETLINEBUF
+syn keyword xsMacro HAS_SETLOCALE HAS_SETNETENT HAS_SETPGID HAS_SETPGRP
+syn keyword xsMacro HAS_SETPRIORITY HAS_SETPROTOENT HAS_SETPWENT HAS_SETREGID
+syn keyword xsMacro HAS_SETRESGID HAS_SETRESUID HAS_SETREUID HAS_SETSERVENT
+syn keyword xsMacro HAS_SETSID HAS_SETVBUF HAS_SHM HAS_SHMAT_PROTOTYPE
+syn keyword xsMacro HAS_SIGACTION HAS_SIGNBIT HAS_SIGPROCMASK HAS_SIGSETJMP
+syn keyword xsMacro HAS_SIN6_SCOPE_ID HAS_SKIP_LOCALE_INIT HAS_SNPRINTF
+syn keyword xsMacro HAS_SOCKADDR_IN6 HAS_SOCKATMARK HAS_SOCKATMARK_PROTO
+syn keyword xsMacro HAS_SOCKET HAS_SQRTL HAS_STAT HAS_STATIC_INLINE
+syn keyword xsMacro HAS_STRCHR HAS_STRCOLL HAS_STRFTIME HAS_STRTOD HAS_STRTOL
+syn keyword xsMacro HAS_STRTOLD HAS_STRTOLL HAS_STRTOQ HAS_STRTOUL
+syn keyword xsMacro HAS_STRTOULL HAS_STRTOUQ HAS_STRUCT_CMSGHDR
syn keyword xsMacro HAS_STRUCT_MSGHDR HAS_STRUCT_STATFS
syn keyword xsMacro HAS_STRUCT_STATFS_F_FLAGS HAS_STRXFRM HAS_SYMLINK
syn keyword xsMacro HAS_SYSCALL HAS_SYSCALL_PROTO HAS_SYSCONF HAS_SYSTEM
syn keyword xsMacro HAS_SYS_ERRLIST HAS_TCGETPGRP HAS_TCSETPGRP HAS_TELLDIR
-syn keyword xsMacro HAS_TELLDIR_PROTO HAS_TIME HAS_TIMEGM HAS_TIMES
-syn keyword xsMacro HAS_TM_TM_GMTOFF HAS_TM_TM_ZONE HAS_TRUNCATE HAS_TZNAME
-syn keyword xsMacro HAS_UALARM HAS_UMASK HAS_UNAME HAS_UNSETENV HAS_USLEEP
-syn keyword xsMacro HAS_USLEEP_PROTO HAS_USTAT HAS_UTIME HAS_VPRINTF
-syn keyword xsMacro HAS_VSNPRINTF HAS_VTOHL HAS_VTOHS HAS_WAIT HAS_WAIT4
-syn keyword xsMacro HAS_WAITPID HAS_WCSTOMBS HAS_WCTOMB HAS_WRITEV
-syn keyword xsMacro HAVE_THREAD_INTERN HEK_BASESIZE HEK_FLAGS HEK_HASH
-syn keyword xsMacro HEK_KEY HEK_LEN HEK_REHASH HEK_REHASH_on HEK_UTF8
-syn keyword xsMacro HEK_UTF8_off HEK_UTF8_on HEK_WASUTF8 HEK_WASUTF8_off
-syn keyword xsMacro HEK_WASUTF8_on HEKf HEKf256 HEKfARG HE_SVSLOT HEf_SVKEY
-syn keyword xsMacro HINTS_REFCNT_INIT HINTS_REFCNT_LOCK HINTS_REFCNT_TERM
-syn keyword xsMacro HINTS_REFCNT_UNLOCK HINT_BLOCK_SCOPE HINT_BYTES
-syn keyword xsMacro HINT_EXPLICIT_STRICT_REFS HINT_EXPLICIT_STRICT_SUBS
-syn keyword xsMacro HINT_EXPLICIT_STRICT_VARS HINT_FEATURE_MASK
-syn keyword xsMacro HINT_FEATURE_SHIFT HINT_FILETEST_ACCESS HINT_INTEGER
-syn keyword xsMacro HINT_LEXICAL_IO_IN HINT_LEXICAL_IO_OUT HINT_LOCALE
-syn keyword xsMacro HINT_LOCALE_NOT_CHARS HINT_LOCALIZE_HH HINT_NEW_BINARY
-syn keyword xsMacro HINT_NEW_FLOAT HINT_NEW_INTEGER HINT_NEW_RE
-syn keyword xsMacro HINT_NEW_STRING HINT_NO_AMAGIC HINT_RE_EVAL HINT_RE_FLAGS
-syn keyword xsMacro HINT_RE_TAINT HINT_SORT_MERGESORT HINT_SORT_QUICKSORT
-syn keyword xsMacro HINT_SORT_SORT_BITS HINT_SORT_STABLE HINT_STRICT_REFS
-syn keyword xsMacro HINT_STRICT_SUBS HINT_STRICT_VARS HINT_UNI_8_BIT
-syn keyword xsMacro HINT_UTF8 HORIZWS HV_DELETE HV_DISABLE_UVAR_XKEY
+syn keyword xsMacro HAS_TELLDIR_PROTO HAS_TGAMMA HAS_TIME HAS_TIMEGM
+syn keyword xsMacro HAS_TIMES HAS_TM_TM_GMTOFF HAS_TM_TM_ZONE HAS_TRUNC
+syn keyword xsMacro HAS_TRUNCATE HAS_TRUNCL HAS_TZNAME HAS_UALARM HAS_UMASK
+syn keyword xsMacro HAS_UNAME HAS_UNSETENV HAS_USLEEP HAS_USLEEP_PROTO
+syn keyword xsMacro HAS_USTAT HAS_UTIME HAS_VPRINTF HAS_VSNPRINTF HAS_WAIT
+syn keyword xsMacro HAS_WAIT4 HAS_WAITPID HAS_WCSCMP HAS_WCSTOMBS HAS_WCSXFRM
+syn keyword xsMacro HAS_WCTOMB HAS_WRITEV HEK_BASESIZE HEK_FLAGS HEK_HASH
+syn keyword xsMacro HEK_KEY HEK_LEN HEK_UTF8 HEK_UTF8_off HEK_UTF8_on
+syn keyword xsMacro HEK_WASUTF8 HEK_WASUTF8_off HEK_WASUTF8_on HEKf HEKf256
+syn keyword xsMacro HEKfARG HE_SVSLOT HEf_SVKEY HINTS_REFCNT_INIT
+syn keyword xsMacro HINTS_REFCNT_LOCK HINTS_REFCNT_TERM HINTS_REFCNT_UNLOCK
+syn keyword xsMacro HINT_BLOCK_SCOPE HINT_BYTES HINT_EXPLICIT_STRICT_REFS
+syn keyword xsMacro HINT_EXPLICIT_STRICT_SUBS HINT_EXPLICIT_STRICT_VARS
+syn keyword xsMacro HINT_FEATURE_MASK HINT_FEATURE_SHIFT HINT_FILETEST_ACCESS
+syn keyword xsMacro HINT_INTEGER HINT_LEXICAL_IO_IN HINT_LEXICAL_IO_OUT
+syn keyword xsMacro HINT_LOCALE HINT_LOCALE_PARTIAL HINT_LOCALIZE_HH
+syn keyword xsMacro HINT_NEW_BINARY HINT_NEW_FLOAT HINT_NEW_INTEGER
+syn keyword xsMacro HINT_NEW_RE HINT_NEW_STRING HINT_NO_AMAGIC HINT_RE_EVAL
+syn keyword xsMacro HINT_RE_FLAGS HINT_RE_TAINT HINT_SORT_MERGESORT
+syn keyword xsMacro HINT_SORT_QUICKSORT HINT_SORT_SORT_BITS HINT_SORT_STABLE
+syn keyword xsMacro HINT_STRICT_REFS HINT_STRICT_SUBS HINT_STRICT_VARS
+syn keyword xsMacro HINT_UNI_8_BIT HINT_UTF8 HS_APIVERLEN_MAX HS_CXT
+syn keyword xsMacro HS_GETAPIVERLEN HS_GETINTERPSIZE HS_GETXSVERLEN HS_KEY
+syn keyword xsMacro HS_KEYp HS_XSVERLEN_MAX HSf_IMP_CXT HSf_NOCHK HSf_POPMARK
+syn keyword xsMacro HSf_SETXSUBFN HSm_APIVERLEN HSm_INTRPSIZE HSm_KEY_MATCH
+syn keyword xsMacro HSm_XSVERLEN HV_DELETE HV_DISABLE_UVAR_XKEY
syn keyword xsMacro HV_FETCH_EMPTY_HE HV_FETCH_ISEXISTS HV_FETCH_ISSTORE
syn keyword xsMacro HV_FETCH_JUST_SV HV_FETCH_LVALUE
syn keyword xsMacro HV_ITERNEXT_WANTPLACEHOLDERS HV_NAME_SETALL
syn keyword xsMacro HVhek_ENABLEHVKFLAGS HVhek_FREEKEY HVhek_KEYCANONICAL
-syn keyword xsMacro HVhek_MASK HVhek_PLACEHOLD HVhek_REHASH HVhek_UNSHARED
-syn keyword xsMacro HVhek_UTF8 HVhek_WASUTF8 HVrhek_IV HVrhek_PV
-syn keyword xsMacro HVrhek_PV_UTF8 HVrhek_UV HVrhek_delete HVrhek_typemask
-syn keyword xsMacro HVrhek_undef H_PERL HeHASH HeKEY HeKEY_hek HeKEY_sv
-syn keyword xsMacro HeKFLAGS HeKLEN HeKLEN_UTF8 HeKREHASH HeKUTF8 HeKWASUTF8
+syn keyword xsMacro HVhek_MASK HVhek_PLACEHOLD HVhek_UNSHARED HVhek_UTF8
+syn keyword xsMacro HVhek_WASUTF8 HVrhek_IV HVrhek_PV HVrhek_PV_UTF8
+syn keyword xsMacro HVrhek_UV HVrhek_delete HVrhek_typemask HVrhek_undef
+syn keyword xsMacro HYPHEN_UTF8 H_EBCDIC_TABLES H_PERL H_REGCHARCLASS
+syn keyword xsMacro H_UNICODE_CONSTANTS H_UTF8 HeHASH HeKEY HeKEY_hek
+syn keyword xsMacro HeKEY_sv HeKFLAGS HeKLEN HeKLEN_UTF8 HeKUTF8 HeKWASUTF8
syn keyword xsMacro HeNEXT HePV HeSVKEY HeSVKEY_force HeSVKEY_set HeUTF8
-syn keyword xsMacro HeVAL HvARRAY HvAUX HvEITER HvEITER_get HvEITER_set
-syn keyword xsMacro HvENAME HvENAMELEN HvENAMELEN_get HvENAMEUTF8 HvENAME_HEK
-syn keyword xsMacro HvENAME_HEK_NN HvENAME_get HvFILL HvHASKFLAGS
-syn keyword xsMacro HvHASKFLAGS_off HvHASKFLAGS_on HvKEYS HvLAZYDEL
-syn keyword xsMacro HvLAZYDEL_off HvLAZYDEL_on HvMAX HvMROMETA HvNAME
-syn keyword xsMacro HvNAMELEN HvNAMELEN_get HvNAMEUTF8 HvNAME_HEK
+syn keyword xsMacro HeVAL HvAMAGIC HvAMAGIC_off HvAMAGIC_on HvARRAY HvAUX
+syn keyword xsMacro HvAUXf_NO_DEREF HvAUXf_SCAN_STASH HvEITER HvEITER_get
+syn keyword xsMacro HvEITER_set HvENAME HvENAMELEN HvENAMELEN_get HvENAMEUTF8
+syn keyword xsMacro HvENAME_HEK HvENAME_HEK_NN HvENAME_get HvFILL HvHASKFLAGS
+syn keyword xsMacro HvHASKFLAGS_off HvHASKFLAGS_on HvKEYS HvLASTRAND_get
+syn keyword xsMacro HvLAZYDEL HvLAZYDEL_off HvLAZYDEL_on HvMAX HvMROMETA
+syn keyword xsMacro HvNAME HvNAMELEN HvNAMELEN_get HvNAMEUTF8 HvNAME_HEK
syn keyword xsMacro HvNAME_HEK_NN HvNAME_get HvPLACEHOLDERS
-syn keyword xsMacro HvPLACEHOLDERS_get HvPLACEHOLDERS_set HvREHASH
-syn keyword xsMacro HvREHASH_off HvREHASH_on HvRITER HvRITER_get HvRITER_set
-syn keyword xsMacro HvSHAREKEYS HvSHAREKEYS_off HvSHAREKEYS_on HvTOTALKEYS
-syn keyword xsMacro HvUSEDKEYS I16SIZE I16TYPE I16_MAX I16_MIN I286 I32SIZE
-syn keyword xsMacro I32TYPE I32_MAX I32_MAX_P1 I32_MIN I64SIZE I64TYPE I8SIZE
-syn keyword xsMacro I8TYPE I8_TO_NATIVE IF IFMATCH IFMATCH_A IFMATCH_A_fail
-syn keyword xsMacro IFTHEN IGNORE_PAT_MOD INIT INIT_THREADS
+syn keyword xsMacro HvPLACEHOLDERS_get HvPLACEHOLDERS_set HvRAND_get HvRITER
+syn keyword xsMacro HvRITER_get HvRITER_set HvSHAREKEYS HvSHAREKEYS_off
+syn keyword xsMacro HvSHAREKEYS_on HvTOTALKEYS HvUSEDKEYS I16SIZE I16TYPE
+syn keyword xsMacro I16_MAX I16_MIN I32SIZE I32TYPE I32_MAX I32_MAX_P1
+syn keyword xsMacro I32_MIN I64SIZE I64TYPE I8SIZE I8TYPE I8_TO_NATIVE
+syn keyword xsMacro I8_TO_NATIVE_UTF8 IF IFMATCH IFMATCH_A IFMATCH_A_fail
+syn keyword xsMacro IFTHEN IGNORE_PAT_MOD ILLEGAL_UTF8_BYTE INIT INIT_THREADS
syn keyword xsMacro INIT_TRACK_MEMPOOL INSUBP INT2PTR INT32_MIN INT64_C
-syn keyword xsMacro INT64_MIN INTSIZE INT_64_T INT_PAT_MODS
-syn keyword xsMacro INVERSION_UNAFFECTED_FLAGS IN_BYTES IN_LOCALE
+syn keyword xsMacro INT64_MIN INTSIZE INT_64_T INT_PAT_MODS IN_BYTES
+syn keyword xsMacro IN_ENCODING IN_LC IN_LC_ALL_COMPILETIME IN_LC_ALL_RUNTIME
+syn keyword xsMacro IN_LC_COMPILETIME IN_LC_PARTIAL_COMPILETIME
+syn keyword xsMacro IN_LC_PARTIAL_RUNTIME IN_LC_RUNTIME IN_LOCALE
syn keyword xsMacro IN_LOCALE_COMPILETIME IN_LOCALE_RUNTIME
syn keyword xsMacro IN_PERL_COMPILETIME IN_PERL_RUNTIME IN_SOME_LOCALE_FORM
syn keyword xsMacro IN_SOME_LOCALE_FORM_COMPILETIME
-syn keyword xsMacro IN_SOME_LOCALE_FORM_RUNTIME IN_UNI_8_BIT IOCPARM_LEN
-syn keyword xsMacro IOf_ARGV IOf_DIDTOP IOf_FAKE_DIRP IOf_FLUSH IOf_NOLINE
-syn keyword xsMacro IOf_START IOf_UNTAINT ISHISH IS_ANYOF_TRIE
+syn keyword xsMacro IN_SOME_LOCALE_FORM_RUNTIME IN_UNI_8_BIT
+syn keyword xsMacro IN_UTF8_CTYPE_LOCALE IOCPARM_LEN IOf_ARGV IOf_DIDTOP
+syn keyword xsMacro IOf_FAKE_DIRP IOf_FLUSH IOf_NOLINE IOf_START IOf_UNTAINT
+syn keyword xsMacro ISA_VERSION_OBJ IS_ANYOF_TRIE
syn keyword xsMacro IS_NUMBER_GREATER_THAN_UV_MAX IS_NUMBER_INFINITY
syn keyword xsMacro IS_NUMBER_IN_UV IS_NUMBER_NAN IS_NUMBER_NEG
-syn keyword xsMacro IS_NUMBER_NOT_INT IS_NUMERIC_RADIX IS_PADCONST IS_PADGV
-syn keyword xsMacro IS_TRIE_AC IS_UTF8_CHAR IS_UTF8_CHAR_1 IS_UTF8_CHAR_2
-syn keyword xsMacro IS_UTF8_CHAR_3 IS_UTF8_CHAR_3a IS_UTF8_CHAR_3b
-syn keyword xsMacro IS_UTF8_CHAR_3c IS_UTF8_CHAR_3d IS_UTF8_CHAR_4
-syn keyword xsMacro IS_UTF8_CHAR_4a IS_UTF8_CHAR_4b IS_UTF8_CHAR_4c
-syn keyword xsMacro IS_UTF8_CHAR_5 IS_UTF8_CHAR_5a IS_UTF8_CHAR_5b
-syn keyword xsMacro IS_UTF8_CHAR_FAST IVSIZE IVTYPE IV_DIG IV_MAX IV_MAX_P1
-syn keyword xsMacro IV_MIN I_32 I_ARPA_INET I_ASSERT I_CRYPT I_DBM I_DIRENT
-syn keyword xsMacro I_DLFCN I_FLOAT I_GDBM I_GDBMNDBM I_GRP I_INTTYPES
-syn keyword xsMacro I_LANGINFO I_LIMITS I_LOCALE I_MATH I_MNTENT I_NETDB
-syn keyword xsMacro I_NETINET_IN I_NETINET_TCP I_POLL I_PTHREAD I_PWD
-syn keyword xsMacro I_SHADOW I_STDARG I_STDBOOL I_STDDEF I_STDLIB I_STRING
+syn keyword xsMacro IS_NUMBER_NOT_INT IS_NUMBER_TRAILING IS_NUMERIC_RADIX
+syn keyword xsMacro IS_PADCONST IS_PADGV IS_SAFE_PATHNAME IS_SAFE_SYSCALL
+syn keyword xsMacro IS_TRIE_AC IS_UTF8_CHAR IS_UTF8_CHAR_FAST IVSIZE IVTYPE
+syn keyword xsMacro IV_DIG IV_MAX IV_MAX_P1 IV_MIN I_32 I_ARPA_INET I_ASSERT
+syn keyword xsMacro I_BFD I_CRYPT I_DBM I_DIRENT I_DLFCN I_EXECINFO I_FENV
+syn keyword xsMacro I_FLOAT I_GDBM I_GDBMNDBM I_GRP I_INTTYPES I_LANGINFO
+syn keyword xsMacro I_LIMITS I_LOCALE I_MATH I_MNTENT I_NETDB I_NETINET_IN
+syn keyword xsMacro I_NETINET_TCP I_POLL I_PTHREAD I_PWD I_QUADMATH I_SHADOW
+syn keyword xsMacro I_STDARG I_STDBOOL I_STDDEF I_STDINT I_STDLIB I_STRING
syn keyword xsMacro I_SYSLOG I_SYSUIO I_SYSUTSNAME I_SYS_DIR I_SYS_FILE
syn keyword xsMacro I_SYS_IOCTL I_SYS_MOUNT I_SYS_PARAM I_SYS_POLL
syn keyword xsMacro I_SYS_RESOURCE I_SYS_SELECT I_SYS_STAT I_SYS_STATFS
@@ -1365,12 +1528,12 @@ syn keyword xsMacro IoTYPE_NUMERIC IoTYPE_PIPE IoTYPE_RDONLY IoTYPE_RDWR
syn keyword xsMacro IoTYPE_SOCKET IoTYPE_STD IoTYPE_WRONLY IsSet
syn keyword xsMacro JMPENV_BOOTSTRAP JMPENV_JUMP JMPENV_POP JMPENV_PUSH JOIN
syn keyword xsMacro KEEPCOPY_PAT_MOD KEEPCOPY_PAT_MODS KEEPS KEEPS_next
-syn keyword xsMacro KEEPS_next_fail KEYWORD_PLUGIN_DECLINE
+syn keyword xsMacro KEEPS_next_fail KELVIN_SIGN KEYWORD_PLUGIN_DECLINE
syn keyword xsMacro KEYWORD_PLUGIN_EXPR KEYWORD_PLUGIN_STMT KEY_AUTOLOAD
-syn keyword xsMacro KEY_BEGIN KEY_CHECK KEY_CORE KEY_DESTROY KEY_END KEY_INIT
-syn keyword xsMacro KEY_NULL KEY_UNITCHECK KEY___DATA__ KEY___END__
-syn keyword xsMacro KEY___FILE__ KEY___LINE__ KEY___PACKAGE__ KEY___SUB__
-syn keyword xsMacro KEY_abs KEY_accept KEY_alarm KEY_and KEY_atan2 KEY_bind
+syn keyword xsMacro KEY_BEGIN KEY_CHECK KEY_DESTROY KEY_END KEY_INIT KEY_NULL
+syn keyword xsMacro KEY_UNITCHECK KEY___DATA__ KEY___END__ KEY___FILE__
+syn keyword xsMacro KEY___LINE__ KEY___PACKAGE__ KEY___SUB__ KEY_abs
+syn keyword xsMacro KEY_accept KEY_alarm KEY_and KEY_atan2 KEY_bind
syn keyword xsMacro KEY_binmode KEY_bless KEY_break KEY_caller KEY_chdir
syn keyword xsMacro KEY_chmod KEY_chomp KEY_chop KEY_chown KEY_chr KEY_chroot
syn keyword xsMacro KEY_close KEY_closedir KEY_cmp KEY_connect KEY_continue
@@ -1418,125 +1581,177 @@ syn keyword xsMacro KEY_uc KEY_ucfirst KEY_umask KEY_undef KEY_unless
syn keyword xsMacro KEY_unlink KEY_unpack KEY_unshift KEY_untie KEY_until
syn keyword xsMacro KEY_use KEY_utime KEY_values KEY_vec KEY_wait KEY_waitpid
syn keyword xsMacro KEY_wantarray KEY_warn KEY_when KEY_while KEY_write KEY_x
-syn keyword xsMacro KEY_xor KEY_y LABEL
+syn keyword xsMacro KEY_xor KEY_y LABEL LATIN1_TO_NATIVE
syn keyword xsMacro LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE
+syn keyword xsMacro LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_NATIVE
syn keyword xsMacro LATIN_CAPITAL_LETTER_SHARP_S
+syn keyword xsMacro LATIN_CAPITAL_LETTER_SHARP_S_UTF8
syn keyword xsMacro LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS
syn keyword xsMacro LATIN_SMALL_LETTER_A_WITH_RING_ABOVE
+syn keyword xsMacro LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_NATIVE
+syn keyword xsMacro LATIN_SMALL_LETTER_LONG_S LATIN_SMALL_LETTER_LONG_S_UTF8
syn keyword xsMacro LATIN_SMALL_LETTER_SHARP_S
-syn keyword xsMacro LATIN_SMALL_LETTER_Y_WITH_DIAERESIS LDBL_DIG LEAVE
-syn keyword xsMacro LEAVESUB LEAVE_SCOPE LEAVE_with_name LEX_DONT_CLOSE_RSFP
-syn keyword xsMacro LEX_EVALBYTES LEX_IGNORE_UTF8_HINTS LEX_KEEP_PREVIOUS
-syn keyword xsMacro LEX_NOTPARSING LEX_START_COPIED LEX_START_FLAGS
-syn keyword xsMacro LEX_START_SAME_FILTER LEX_STUFF_UTF8 LIBERAL
-syn keyword xsMacro LIBM_LIB_VERSION LIB_INVARG LIKELY LINKLIST LNBREAK LOCAL
-syn keyword xsMacro LOCALE_PAT_MOD LOCALE_PAT_MODS LOCALTIME_MAX
+syn keyword xsMacro LATIN_SMALL_LETTER_SHARP_S_NATIVE
+syn keyword xsMacro LATIN_SMALL_LETTER_Y_WITH_DIAERESIS
+syn keyword xsMacro LATIN_SMALL_LETTER_Y_WITH_DIAERESIS_NATIVE
+syn keyword xsMacro LATIN_SMALL_LIGATURE_LONG_S_T
+syn keyword xsMacro LATIN_SMALL_LIGATURE_LONG_S_T_UTF8
+syn keyword xsMacro LATIN_SMALL_LIGATURE_ST LATIN_SMALL_LIGATURE_ST_UTF8
+syn keyword xsMacro LDBL_DIG LEAVE LEAVESUB LEAVE_SCOPE LEAVE_with_name
+syn keyword xsMacro LEX_DONT_CLOSE_RSFP LEX_EVALBYTES LEX_IGNORE_UTF8_HINTS
+syn keyword xsMacro LEX_KEEP_PREVIOUS LEX_NOTPARSING LEX_START_COPIED
+syn keyword xsMacro LEX_START_FLAGS LEX_START_SAME_FILTER LEX_STUFF_UTF8
+syn keyword xsMacro LF_NATIVE LIBERAL LIBM_LIB_VERSION LIB_INVARG LIKELY
+syn keyword xsMacro LINKLIST LNBREAK LOADED_FILE_PROBE LOADING_FILE_PROBE
+syn keyword xsMacro LOCAL LOCALE_PAT_MOD LOCALE_PAT_MODS LOCALTIME_MAX
syn keyword xsMacro LOCALTIME_MIN LOCALTIME_R LOCALTIME_R_PROTO
-syn keyword xsMacro LOCAL_PATCH_COUNT LOCK_DOLLARZERO_MUTEX LOC_SED LOGICAL
-syn keyword xsMacro LONGJMP LONGLONGSIZE LONGSIZE LONG_DOUBLESIZE
-syn keyword xsMacro LONG_DOUBLE_EQUALS_DOUBLE LOOPEX LOOP_PAT_MODS LSEEKSIZE
-syn keyword xsMacro LSTOP LSTOPSUB LVRET L_R_TZSET LvFLAGS LvTARG LvTARGLEN
-syn keyword xsMacro LvTARGOFF LvTYPE MADPROP_IN_BASEOP MAD_NULL MAD_OP MAD_PV
-syn keyword xsMacro MAD_SV MALLOC_CHECK_TAINT MALLOC_CHECK_TAINT2
-syn keyword xsMacro MALLOC_CTL_H MALLOC_INIT MALLOC_OVERHEAD MALLOC_TERM
+syn keyword xsMacro LOCAL_PATCH_COUNT LOCK_DOLLARZERO_MUTEX
+syn keyword xsMacro LOCK_LC_NUMERIC_STANDARD LOCK_NUMERIC_STANDARD LOC_SED
+syn keyword xsMacro LOGICAL LONGDOUBLE_BIG_ENDIAN LONGDOUBLE_DOUBLEDOUBLE
+syn keyword xsMacro LONGDOUBLE_LITTLE_ENDIAN LONGDOUBLE_X86_80_BIT LONGJMP
+syn keyword xsMacro LONGLONGSIZE LONGSIZE LONG_DOUBLEKIND LONG_DOUBLESIZE
+syn keyword xsMacro LONG_DOUBLE_EQUALS_DOUBLE LONG_DOUBLE_IS_DOUBLE
+syn keyword xsMacro LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN
+syn keyword xsMacro LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN
+syn keyword xsMacro LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
+syn keyword xsMacro LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN
+syn keyword xsMacro LONG_DOUBLE_IS_UNKNOWN_FORMAT
+syn keyword xsMacro LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN
+syn keyword xsMacro LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN LOOPEX
+syn keyword xsMacro LOOP_PAT_MODS LSEEKSIZE LSTOP LSTOPSUB LVRET L_R_TZSET
+syn keyword xsMacro LvFLAGS LvSTARGOFF LvTARG LvTARGLEN LvTARGOFF LvTYPE
+syn keyword xsMacro MALLOC_CHECK_TAINT MALLOC_CHECK_TAINT2 MALLOC_CTL_H
+syn keyword xsMacro MALLOC_INIT MALLOC_OVERHEAD MALLOC_TERM
syn keyword xsMacro MALLOC_TOO_LATE_FOR MARKPOINT MARKPOINT_next
syn keyword xsMacro MARKPOINT_next_fail MASK MATCHOP MAXARG MAXO MAXPATHLEN
syn keyword xsMacro MAXSYSFD MAX_CHARSET_NAME_LENGTH MAX_FEATURE_LEN
syn keyword xsMacro MAX_PORTABLE_UTF8_TWO_BYTE
-syn keyword xsMacro MAX_RECURSE_EVAL_NOCHANGE_DEPTH MAYBE_DEREF_GV
-syn keyword xsMacro MAYBE_DEREF_GV_flags MAYBE_DEREF_GV_nomg MBOL
-syn keyword xsMacro MEMBER_TO_FPTR MEM_ALIGNBYTES MEM_LOG_ALLOC MEM_LOG_FREE
-syn keyword xsMacro MEM_LOG_REALLOC MEM_SIZE MEM_SIZE_MAX MEM_WRAP_CHECK
-syn keyword xsMacro MEM_WRAP_CHECK_ MEM_WRAP_CHECK_1 MEM_WRAP_CHECK_2 MEOL
-syn keyword xsMacro METHOD MEXTEND MGf_COPY MGf_DUP MGf_GSKIP MGf_LOCAL
-syn keyword xsMacro MGf_MINMATCH MGf_REFCOUNTED MGf_TAINTEDDIR MICRO_SIGN
-syn keyword xsMacro MINMOD MJD_OFFSET_DEBUG MRO_GET_PRIVATE_DATA MSPAGAIN
-syn keyword xsMacro MULOP MULTICALL MULTILINE_PAT_MOD MULTIPLICITY MUTABLE_AV
-syn keyword xsMacro MUTABLE_CV MUTABLE_GV MUTABLE_HV MUTABLE_IO MUTABLE_PTR
-syn keyword xsMacro MUTABLE_SV MUTEX_DESTROY MUTEX_INIT
-syn keyword xsMacro MUTEX_INIT_CALLS_MALLOC MUTEX_INIT_NEEDS_MUTEX_ZEROED
-syn keyword xsMacro MUTEX_LOCK MUTEX_UNLOCK MY MYSUB MYSWAP MY_CXT_CLONE
-syn keyword xsMacro MY_CXT_INDEX MY_CXT_INIT MY_CXT_INIT_ARG
-syn keyword xsMacro MY_CXT_INIT_INTERP M_PAT_MODS M_VOID MgPV MgPV_const
-syn keyword xsMacro MgPV_nolen_const MgTAINTEDDIR MgTAINTEDDIR_off
-syn keyword xsMacro MgTAINTEDDIR_on Mkdir Move MoveD NALNUM NALNUMA NALNUML
-syn keyword xsMacro NALNUMU NATIVE8_TO_UNI NATIVE_IS_INVARIANT
-syn keyword xsMacro NATIVE_TO_ASCII NATIVE_TO_I8 NATIVE_TO_NEED NATIVE_TO_UNI
-syn keyword xsMacro NATIVE_TO_UTF NBOUND NBOUNDA NBOUNDL NBOUNDU
-syn keyword xsMacro NDBM_H_USES_PROTOTYPES NDIGIT NDIGITA NDIGITL
+syn keyword xsMacro MAX_PRINT_A_FOR_USE_ONLY_BY_REGCOMP_DOT_C
+syn keyword xsMacro MAX_RECURSE_EVAL_NOCHANGE_DEPTH MAX_UTF8_TWO_BYTE
+syn keyword xsMacro MAYBE_DEREF_GV MAYBE_DEREF_GV_flags MAYBE_DEREF_GV_nomg
+syn keyword xsMacro MBOL MB_CUR_MAX MDEREF_ACTION_MASK MDEREF_AV_gvav_aelem
+syn keyword xsMacro MDEREF_AV_gvsv_vivify_rv2av_aelem MDEREF_AV_padav_aelem
+syn keyword xsMacro MDEREF_AV_padsv_vivify_rv2av_aelem
+syn keyword xsMacro MDEREF_AV_pop_rv2av_aelem MDEREF_AV_vivify_rv2av_aelem
+syn keyword xsMacro MDEREF_FLAG_last MDEREF_HV_gvhv_helem
+syn keyword xsMacro MDEREF_HV_gvsv_vivify_rv2hv_helem MDEREF_HV_padhv_helem
+syn keyword xsMacro MDEREF_HV_padsv_vivify_rv2hv_helem
+syn keyword xsMacro MDEREF_HV_pop_rv2hv_helem MDEREF_HV_vivify_rv2hv_helem
+syn keyword xsMacro MDEREF_INDEX_MASK MDEREF_INDEX_const MDEREF_INDEX_gvsv
+syn keyword xsMacro MDEREF_INDEX_none MDEREF_INDEX_padsv MDEREF_MASK
+syn keyword xsMacro MDEREF_SHIFT MDEREF_reload MEMBER_TO_FPTR MEM_ALIGNBYTES
+syn keyword xsMacro MEM_LOG_ALLOC MEM_LOG_FREE MEM_LOG_REALLOC MEM_SIZE
+syn keyword xsMacro MEM_SIZE_MAX MEM_WRAP_CHECK MEM_WRAP_CHECK_
+syn keyword xsMacro MEM_WRAP_CHECK_1 MEM_WRAP_CHECK_2 MEOL METHOD MEXTEND
+syn keyword xsMacro MGf_BYTES MGf_COPY MGf_DUP MGf_GSKIP MGf_LOCAL
+syn keyword xsMacro MGf_MINMATCH MGf_PERSIST MGf_REFCOUNTED MGf_REQUIRE_GV
+syn keyword xsMacro MGf_TAINTEDDIR MICRO_SIGN MICRO_SIGN_NATIVE MINMOD
+syn keyword xsMacro MJD_OFFSET_DEBUG MRO_GET_PRIVATE_DATA MSPAGAIN MULOP
+syn keyword xsMacro MULTICALL MULTILINE_PAT_MOD MULTIPLICITY MURMUR_C1
+syn keyword xsMacro MURMUR_C2 MURMUR_C3 MURMUR_C4 MURMUR_C5 MURMUR_DOBLOCK
+syn keyword xsMacro MURMUR_DOBYTES MUTABLE_AV MUTABLE_CV MUTABLE_GV
+syn keyword xsMacro MUTABLE_HV MUTABLE_IO MUTABLE_PTR MUTABLE_SV
+syn keyword xsMacro MUTEX_DESTROY MUTEX_INIT MUTEX_INIT_NEEDS_MUTEX_ZEROED
+syn keyword xsMacro MUTEX_LOCK MUTEX_UNLOCK MY MY_CXT_CLONE MY_CXT_INDEX
+syn keyword xsMacro MY_CXT_INIT MY_CXT_INIT_ARG MY_CXT_INIT_INTERP M_PAT_MODS
+syn keyword xsMacro MgBYTEPOS MgBYTEPOS_set MgPV MgPV_const MgPV_nolen_const
+syn keyword xsMacro MgTAINTEDDIR MgTAINTEDDIR_off MgTAINTEDDIR_on Mkdir Move
+syn keyword xsMacro MoveD NAN_COMPARE_BROKEN NATIVE8_TO_UNI
+syn keyword xsMacro NATIVE_BYTE_IS_INVARIANT NATIVE_SKIP NATIVE_TO_ASCII
+syn keyword xsMacro NATIVE_TO_I8 NATIVE_TO_LATIN1 NATIVE_TO_UNI NATIVE_TO_UTF
+syn keyword xsMacro NATIVE_UTF8_TO_I8 NBOUND NBOUNDA NBOUNDL NBOUNDU
+syn keyword xsMacro NBSP_NATIVE NBSP_UTF8 NDBM_H_USES_PROTOTYPES NDEBUG
syn keyword xsMacro NEED_PTHREAD_INIT NEED_VA_COPY NEGATIVE_INDICES_VAR
-syn keyword xsMacro NETDB_R_OBSOLETE NEWSV NEXTOPER NEXT_LINE_CHAR NEXT_OFF
-syn keyword xsMacro NGROUPP NHORIZWS NOAMP NODE_ALIGN NODE_ALIGN_FILL
-syn keyword xsMacro NODE_STEP_B NODE_STEP_REGNODE NODE_SZ_STR NOLINE
-syn keyword xsMacro NONDESTRUCT_PAT_MOD NONDESTRUCT_PAT_MODS NOOP
+syn keyword xsMacro NETDB_R_OBSOLETE NEWSV NEW_VERSION NEXTOPER
+syn keyword xsMacro NEXT_LINE_CHAR NEXT_OFF NGROUPP NOAMP NOCAPTURE_PAT_MOD
+syn keyword xsMacro NOCAPTURE_PAT_MODS NODE_ALIGN NODE_ALIGN_FILL NODE_STEP_B
+syn keyword xsMacro NODE_STEP_REGNODE NODE_SZ_STR NOLINE NONDESTRUCT_PAT_MOD
+syn keyword xsMacro NONDESTRUCT_PAT_MODS
+syn keyword xsMacro NON_OTHER_COUNT_FOR_USE_ONLY_BY_REGCOMP_DOT_C NOOP
syn keyword xsMacro NORETURN_FUNCTION_END NORMAL NOTHING NOTOP NOT_IN_PAD
-syn keyword xsMacro NO_ENV_ARRAY_IN_MAIN NO_LOCALE
-syn keyword xsMacro NO_LOCALECONV_MON_THOUSANDS_SEP NREF NREFF NREFFA NREFFL
-syn keyword xsMacro NREFFU NSIG NSPACE NSPACEA NSPACEL NSPACEU NUM2PTR
-syn keyword xsMacro NVERTWS NVSIZE NVTYPE NV_DIG NV_EPSILON NV_INF
-syn keyword xsMacro NV_MANT_DIG NV_MAX NV_MAX_10_EXP NV_MIN NV_MIN_10_EXP
-syn keyword xsMacro NV_NAN NV_OVERFLOWS_INTEGERS_AT NV_PRESERVES_UV_BITS
+syn keyword xsMacro NOT_REACHED NO_ENV_ARRAY_IN_MAIN NO_LOCALE
+syn keyword xsMacro NO_LOCALECONV_MON_THOUSANDS_SEP NO_TAINT_SUPPORT NPOSIXA
+syn keyword xsMacro NPOSIXD NPOSIXL NPOSIXU NREF NREFF NREFFA NREFFL NREFFU
+syn keyword xsMacro NSIG NUM2PTR NUM_ANYOF_CODE_POINTS NVSIZE NVTYPE
+syn keyword xsMacro NV_BIG_ENDIAN NV_DIG NV_EPSILON NV_INF NV_LITTLE_ENDIAN
+syn keyword xsMacro NV_MANT_DIG NV_MAX NV_MAX_10_EXP NV_MAX_EXP NV_MIN
+syn keyword xsMacro NV_MIN_10_EXP NV_MIN_EXP NV_MIX_ENDIAN NV_NAN
+syn keyword xsMacro NV_OVERFLOWS_INTEGERS_AT NV_PRESERVES_UV_BITS
syn keyword xsMacro NV_WITHIN_IV NV_WITHIN_UV New NewOp NewOpSz Newc Newx
syn keyword xsMacro Newxc Newxz Newz NofAMmeth Null Nullav Nullch Nullcv
syn keyword xsMacro Nullfp Nullgv Nullhe Nullhek Nullhv Nullop Nullsv OASHIFT
-syn keyword xsMacro OCSHIFT ONCE_PAT_MOD ONCE_PAT_MODS OPEN OPERAND OPFAIL
+syn keyword xsMacro OCSHIFT OCTAL_VALUE OFFUNISKIP ONCE_PAT_MOD ONCE_PAT_MODS
+syn keyword xsMacro OPEN OPERAND OPFAIL OPSLOT_HEADER OPSLOT_HEADER_P
syn keyword xsMacro OPTIMIZED OP_BINARY OP_CHECK_MUTEX_INIT
syn keyword xsMacro OP_CHECK_MUTEX_LOCK OP_CHECK_MUTEX_TERM
-syn keyword xsMacro OP_CHECK_MUTEX_UNLOCK OP_CLASS OP_DESC OP_GIMME
-syn keyword xsMacro OP_GIMME_REVERSE OP_IS_DIRHOP OP_IS_FILETEST
-syn keyword xsMacro OP_IS_FILETEST_ACCESS OP_IS_NUMCOMPARE OP_IS_SOCKET
-syn keyword xsMacro OP_LVALUE_NO_CROAK OP_MEM_TO_REG OP_NAME OP_REFCNT_INIT
-syn keyword xsMacro OP_REFCNT_LOCK OP_REFCNT_TERM OP_REFCNT_UNLOCK
-syn keyword xsMacro OP_REG_TO_MEM OROP OROR OSNAME OSVERS O_CREAT O_RDONLY
-syn keyword xsMacro O_RDWR O_TEXT O_WRONLY Off Off_t_size OpREFCNT_dec
-syn keyword xsMacro OpREFCNT_inc OpREFCNT_set OutCopFILE PAD_BASE_SV
-syn keyword xsMacro PAD_CLONE_VARS PAD_COMPNAME_FLAGS
+syn keyword xsMacro OP_CHECK_MUTEX_UNLOCK OP_CLASS OP_DESC OP_ENTRY_PROBE
+syn keyword xsMacro OP_FREED OP_GIMME OP_GIMME_REVERSE OP_IS_DIRHOP
+syn keyword xsMacro OP_IS_FILETEST OP_IS_FILETEST_ACCESS OP_IS_INFIX_BIT
+syn keyword xsMacro OP_IS_NUMCOMPARE OP_IS_SOCKET OP_LVALUE_NO_CROAK OP_NAME
+syn keyword xsMacro OP_REFCNT_INIT OP_REFCNT_LOCK OP_REFCNT_TERM
+syn keyword xsMacro OP_REFCNT_UNLOCK OP_SIBLING OP_TYPE_IS OP_TYPE_ISNT
+syn keyword xsMacro OP_TYPE_ISNT_AND_WASNT OP_TYPE_ISNT_AND_WASNT_NN
+syn keyword xsMacro OP_TYPE_ISNT_NN OP_TYPE_IS_NN OP_TYPE_IS_OR_WAS
+syn keyword xsMacro OP_TYPE_IS_OR_WAS_NN OROP OROR OSNAME OSVERS O_CREAT
+syn keyword xsMacro O_RDONLY O_RDWR O_TEXT O_WRONLY Off Off_t_size
+syn keyword xsMacro OpHAS_SIBLING OpLASTSIB_set OpMAYBESIB_set OpMORESIB_set
+syn keyword xsMacro OpREFCNT_dec OpREFCNT_inc OpREFCNT_set OpSIBLING OpSLAB
+syn keyword xsMacro OpSLOT OpslabREFCNT_dec OpslabREFCNT_dec_padok OutCopFILE
+syn keyword xsMacro PADNAME_FROM_PV PADNAMEt_LVALUE PADNAMEt_OUR
+syn keyword xsMacro PADNAMEt_OUTER PADNAMEt_STATE PADNAMEt_TYPED PAD_BASE_SV
+syn keyword xsMacro PAD_CLONE_VARS PAD_COMPNAME PAD_COMPNAME_FLAGS
syn keyword xsMacro PAD_COMPNAME_FLAGS_isOUR PAD_COMPNAME_GEN
syn keyword xsMacro PAD_COMPNAME_GEN_set PAD_COMPNAME_OURSTASH
syn keyword xsMacro PAD_COMPNAME_PV PAD_COMPNAME_SV PAD_COMPNAME_TYPE
syn keyword xsMacro PAD_FAKELEX_ANON PAD_FAKELEX_MULTI PAD_RESTORE_LOCAL
syn keyword xsMacro PAD_SAVE_LOCAL PAD_SAVE_SETNULLPAD PAD_SETSV PAD_SET_CUR
syn keyword xsMacro PAD_SET_CUR_NOSAVE PAD_SV PAD_SVl PARENT_FAKELEX_FLAGS
-syn keyword xsMacro PARENT_PAD_INDEX PARSE_OPTIONAL PATCHLEVEL PEG PERLDB_ALL
-syn keyword xsMacro PERLDB_GOTO PERLDB_INTER PERLDB_LINE PERLDB_NAMEANON
-syn keyword xsMacro PERLDB_NAMEEVAL PERLDB_NOOPT PERLDB_SAVESRC
-syn keyword xsMacro PERLDB_SAVESRC_INVALID PERLDB_SAVESRC_NOSUBS
-syn keyword xsMacro PERLDB_SINGLE PERLDB_SUB PERLDB_SUBLINE PERLDB_SUB_NN
-syn keyword xsMacro PERLDBf_GOTO PERLDBf_INTER PERLDBf_LINE PERLDBf_NAMEANON
-syn keyword xsMacro PERLDBf_NAMEEVAL PERLDBf_NONAME PERLDBf_NOOPT
-syn keyword xsMacro PERLDBf_SAVESRC PERLDBf_SAVESRC_INVALID
-syn keyword xsMacro PERLDBf_SAVESRC_NOSUBS PERLDBf_SINGLE PERLDBf_SUB
-syn keyword xsMacro PERLDBf_SUBLINE PERLIOBUF_DEFAULT_BUFSIZ PERLIO_DUP_CLONE
-syn keyword xsMacro PERLIO_DUP_FD PERLIO_FUNCS_CAST PERLIO_FUNCS_CONST
-syn keyword xsMacro PERLIO_FUNCS_DECL PERLIO_F_APPEND PERLIO_F_CANREAD
-syn keyword xsMacro PERLIO_F_CANWRITE PERLIO_F_CLEARED PERLIO_F_CRLF
-syn keyword xsMacro PERLIO_F_EOF PERLIO_F_ERROR PERLIO_F_FASTGETS
-syn keyword xsMacro PERLIO_F_LINEBUF PERLIO_F_NOTREG PERLIO_F_OPEN
-syn keyword xsMacro PERLIO_F_RDBUF PERLIO_F_TEMP PERLIO_F_TRUNCATE
-syn keyword xsMacro PERLIO_F_TTY PERLIO_F_UNBUF PERLIO_F_UTF8 PERLIO_F_WRBUF
-syn keyword xsMacro PERLIO_INIT PERLIO_IS_STDIO PERLIO_K_BUFFERED
-syn keyword xsMacro PERLIO_K_CANCRLF PERLIO_K_DESTRUCT PERLIO_K_DUMMY
-syn keyword xsMacro PERLIO_K_FASTGETS PERLIO_K_MULTIARG PERLIO_K_RAW
-syn keyword xsMacro PERLIO_K_UTF8 PERLIO_LAYERS PERLIO_NOT_STDIO
-syn keyword xsMacro PERLIO_STDTEXT PERLIO_TERM PERLIO_USING_CRLF
-syn keyword xsMacro PERLSI_DESTROY PERLSI_DIEHOOK PERLSI_MAGIC PERLSI_MAIN
-syn keyword xsMacro PERLSI_OVERLOAD PERLSI_REQUIRE PERLSI_SIGNAL PERLSI_SORT
-syn keyword xsMacro PERLSI_UNDEF PERLSI_UNKNOWN PERLSI_WARNHOOK PERL_ABS
-syn keyword xsMacro PERL_ALLOC_CHECK PERL_API_REVISION PERL_API_SUBVERSION
-syn keyword xsMacro PERL_API_VERSION PERL_API_VERSION_STRING
-syn keyword xsMacro PERL_ARENA_ROOTS_SIZE PERL_ARENA_SIZE
-syn keyword xsMacro PERL_ARGS_ASSERT_ADD_ALTERNATE PERL_ARGS_ASSERT_ADD_DATA
+syn keyword xsMacro PARENT_PAD_INDEX PARSE_OPTIONAL PASS1 PASS2 PATCHLEVEL
+syn keyword xsMacro PERLDB_ALL PERLDB_GOTO PERLDB_INTER PERLDB_LINE
+syn keyword xsMacro PERLDB_NAMEANON PERLDB_NAMEEVAL PERLDB_NOOPT
+syn keyword xsMacro PERLDB_SAVESRC PERLDB_SAVESRC_INVALID
+syn keyword xsMacro PERLDB_SAVESRC_NOSUBS PERLDB_SINGLE PERLDB_SUB
+syn keyword xsMacro PERLDB_SUBLINE PERLDB_SUB_NN PERLDBf_GOTO PERLDBf_INTER
+syn keyword xsMacro PERLDBf_LINE PERLDBf_NAMEANON PERLDBf_NAMEEVAL
+syn keyword xsMacro PERLDBf_NONAME PERLDBf_NOOPT PERLDBf_SAVESRC
+syn keyword xsMacro PERLDBf_SAVESRC_INVALID PERLDBf_SAVESRC_NOSUBS
+syn keyword xsMacro PERLDBf_SINGLE PERLDBf_SUB PERLDBf_SUBLINE
+syn keyword xsMacro PERLIOBUF_DEFAULT_BUFSIZ PERLIO_DUP_CLONE PERLIO_DUP_FD
+syn keyword xsMacro PERLIO_FUNCS_CAST PERLIO_FUNCS_CONST PERLIO_FUNCS_DECL
+syn keyword xsMacro PERLIO_F_APPEND PERLIO_F_CANREAD PERLIO_F_CANWRITE
+syn keyword xsMacro PERLIO_F_CLEARED PERLIO_F_CRLF PERLIO_F_EOF
+syn keyword xsMacro PERLIO_F_ERROR PERLIO_F_FASTGETS PERLIO_F_LINEBUF
+syn keyword xsMacro PERLIO_F_NOTREG PERLIO_F_OPEN PERLIO_F_RDBUF
+syn keyword xsMacro PERLIO_F_TEMP PERLIO_F_TRUNCATE PERLIO_F_TTY
+syn keyword xsMacro PERLIO_F_UNBUF PERLIO_F_UTF8 PERLIO_F_WRBUF PERLIO_INIT
+syn keyword xsMacro PERLIO_IS_STDIO PERLIO_K_BUFFERED PERLIO_K_CANCRLF
+syn keyword xsMacro PERLIO_K_DESTRUCT PERLIO_K_DUMMY PERLIO_K_FASTGETS
+syn keyword xsMacro PERLIO_K_MULTIARG PERLIO_K_RAW PERLIO_K_UTF8
+syn keyword xsMacro PERLIO_LAYERS PERLIO_NOT_STDIO PERLIO_STDTEXT PERLIO_TERM
+syn keyword xsMacro PERLIO_USING_CRLF PERLSI_DESTROY PERLSI_DIEHOOK
+syn keyword xsMacro PERLSI_MAGIC PERLSI_MAIN PERLSI_OVERLOAD PERLSI_REQUIRE
+syn keyword xsMacro PERLSI_SIGNAL PERLSI_SORT PERLSI_UNDEF PERLSI_UNKNOWN
+syn keyword xsMacro PERLSI_WARNHOOK PERL_ABS PERL_ALLOC_CHECK PERL_ANY_COW
+syn keyword xsMacro PERL_API_REVISION PERL_API_SUBVERSION PERL_API_VERSION
+syn keyword xsMacro PERL_API_VERSION_STRING PERL_ARENA_ROOTS_SIZE
+syn keyword xsMacro PERL_ARENA_SIZE PERL_ARGS_ASSERT_ADD_ABOVE_LATIN1_FOLDS
+syn keyword xsMacro PERL_ARGS_ASSERT_ADD_DATA
+syn keyword xsMacro PERL_ARGS_ASSERT_ADD_MULTI_MATCH
syn keyword xsMacro PERL_ARGS_ASSERT_ADD_UTF16_TEXTFILTER
-syn keyword xsMacro PERL_ARGS_ASSERT_ADJUST_STACK_ON_LEAVE
-syn keyword xsMacro PERL_ARGS_ASSERT_ALLOCMY PERL_ARGS_ASSERT_AMAGIC_CALL
-syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_CMP
+syn keyword xsMacro PERL_ARGS_ASSERT_ADJUST_SIZE_AND_FIND_BUCKET
+syn keyword xsMacro PERL_ARGS_ASSERT_ADVANCE_ONE_SB
+syn keyword xsMacro PERL_ARGS_ASSERT_ADVANCE_ONE_WB
+syn keyword xsMacro PERL_ARGS_ASSERT_ALLOCCOPSTASH PERL_ARGS_ASSERT_ALLOCMY
+syn keyword xsMacro PERL_ARGS_ASSERT_ALLOC_MAYBE_POPULATE_EXACT
+syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_CALL PERL_ARGS_ASSERT_AMAGIC_CMP
syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE
syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_DEREF_CALL
syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_I_NCMP
syn keyword xsMacro PERL_ARGS_ASSERT_AMAGIC_NCMP
syn keyword xsMacro PERL_ARGS_ASSERT_ANONYMISE_CV_MAYBE
-syn keyword xsMacro PERL_ARGS_ASSERT_ANY_DUP PERL_ARGS_ASSERT_APPLY
-syn keyword xsMacro PERL_ARGS_ASSERT_APPLY_ATTRS
+syn keyword xsMacro PERL_ARGS_ASSERT_ANY_DUP
+syn keyword xsMacro PERL_ARGS_ASSERT_APPEND_UTF8_FROM_NATIVE_BYTE
+syn keyword xsMacro PERL_ARGS_ASSERT_APPLY PERL_ARGS_ASSERT_APPLY_ATTRS
syn keyword xsMacro PERL_ARGS_ASSERT_APPLY_ATTRS_MY
syn keyword xsMacro PERL_ARGS_ASSERT_APPLY_ATTRS_STRING
syn keyword xsMacro PERL_ARGS_ASSERT_ASSERT_UFT8_CACHE_COHERENT
@@ -1544,82 +1759,92 @@ syn keyword xsMacro PERL_ARGS_ASSERT_AV_ARYLEN_P PERL_ARGS_ASSERT_AV_CLEAR
syn keyword xsMacro PERL_ARGS_ASSERT_AV_CREATE_AND_PUSH
syn keyword xsMacro PERL_ARGS_ASSERT_AV_CREATE_AND_UNSHIFT_ONE
syn keyword xsMacro PERL_ARGS_ASSERT_AV_DELETE PERL_ARGS_ASSERT_AV_EXISTS
-syn keyword xsMacro PERL_ARGS_ASSERT_AV_EXTEND PERL_ARGS_ASSERT_AV_FETCH
+syn keyword xsMacro PERL_ARGS_ASSERT_AV_EXTEND
+syn keyword xsMacro PERL_ARGS_ASSERT_AV_EXTEND_GUTS PERL_ARGS_ASSERT_AV_FETCH
syn keyword xsMacro PERL_ARGS_ASSERT_AV_FILL PERL_ARGS_ASSERT_AV_ITER_P
syn keyword xsMacro PERL_ARGS_ASSERT_AV_LEN PERL_ARGS_ASSERT_AV_MAKE
syn keyword xsMacro PERL_ARGS_ASSERT_AV_POP PERL_ARGS_ASSERT_AV_PUSH
syn keyword xsMacro PERL_ARGS_ASSERT_AV_REIFY PERL_ARGS_ASSERT_AV_SHIFT
-syn keyword xsMacro PERL_ARGS_ASSERT_AV_STORE PERL_ARGS_ASSERT_AV_UNDEF
-syn keyword xsMacro PERL_ARGS_ASSERT_AV_UNSHIFT PERL_ARGS_ASSERT_BAD_TYPE_PV
-syn keyword xsMacro PERL_ARGS_ASSERT_BAD_TYPE_SV PERL_ARGS_ASSERT_BIND_MATCH
+syn keyword xsMacro PERL_ARGS_ASSERT_AV_STORE PERL_ARGS_ASSERT_AV_TOP_INDEX
+syn keyword xsMacro PERL_ARGS_ASSERT_AV_UNDEF PERL_ARGS_ASSERT_AV_UNSHIFT
+syn keyword xsMacro PERL_ARGS_ASSERT_BACKUP_ONE_SB
+syn keyword xsMacro PERL_ARGS_ASSERT_BACKUP_ONE_WB
+syn keyword xsMacro PERL_ARGS_ASSERT_BAD_TYPE_GV PERL_ARGS_ASSERT_BAD_TYPE_PV
+syn keyword xsMacro PERL_ARGS_ASSERT_BIND_MATCH
syn keyword xsMacro PERL_ARGS_ASSERT_BLOCKHOOK_REGISTER
syn keyword xsMacro PERL_ARGS_ASSERT_BYTES_CMP_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_BYTES_FROM_UTF8
-syn keyword xsMacro PERL_ARGS_ASSERT_BYTES_TO_UNI
syn keyword xsMacro PERL_ARGS_ASSERT_BYTES_TO_UTF8 PERL_ARGS_ASSERT_CALL_ARGV
syn keyword xsMacro PERL_ARGS_ASSERT_CALL_LIST PERL_ARGS_ASSERT_CALL_METHOD
syn keyword xsMacro PERL_ARGS_ASSERT_CALL_PV PERL_ARGS_ASSERT_CALL_SV
syn keyword xsMacro PERL_ARGS_ASSERT_CANDO PERL_ARGS_ASSERT_CHECKCOMMA
-syn keyword xsMacro PERL_ARGS_ASSERT_CHECKPOSIXCC
syn keyword xsMacro PERL_ARGS_ASSERT_CHECK_LOCALE_BOUNDARY_CROSSING
syn keyword xsMacro PERL_ARGS_ASSERT_CHECK_TYPE_AND_OPEN
syn keyword xsMacro PERL_ARGS_ASSERT_CHECK_UTF8_PRINT
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_ANONCODE PERL_ARGS_ASSERT_CK_BITOP
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_CHDIR PERL_ARGS_ASSERT_CK_CMP
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_ANONCODE PERL_ARGS_ASSERT_CK_BACKTICK
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_BITOP PERL_ARGS_ASSERT_CK_CMP
syn keyword xsMacro PERL_ARGS_ASSERT_CK_CONCAT PERL_ARGS_ASSERT_CK_DEFINED
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_DELETE PERL_ARGS_ASSERT_CK_DIE
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_EACH
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_DELETE PERL_ARGS_ASSERT_CK_EACH
syn keyword xsMacro PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_CORE
syn keyword xsMacro PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_LIST
syn keyword xsMacro PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO
syn keyword xsMacro PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO_OR_LIST
syn keyword xsMacro PERL_ARGS_ASSERT_CK_EOF PERL_ARGS_ASSERT_CK_EVAL
syn keyword xsMacro PERL_ARGS_ASSERT_CK_EXEC PERL_ARGS_ASSERT_CK_EXISTS
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_EXIT PERL_ARGS_ASSERT_CK_FTST
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_FUN PERL_ARGS_ASSERT_CK_GLOB
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_GREP PERL_ARGS_ASSERT_CK_INDEX
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_JOIN PERL_ARGS_ASSERT_CK_LENGTH
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_LFUN PERL_ARGS_ASSERT_CK_LISTIOB
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_MATCH PERL_ARGS_ASSERT_CK_METHOD
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_NULL PERL_ARGS_ASSERT_CK_OPEN
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_READLINE PERL_ARGS_ASSERT_CK_REPEAT
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_FTST PERL_ARGS_ASSERT_CK_FUN
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_GLOB PERL_ARGS_ASSERT_CK_GREP
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_INDEX PERL_ARGS_ASSERT_CK_JOIN
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_LENGTH PERL_ARGS_ASSERT_CK_LFUN
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_LISTIOB PERL_ARGS_ASSERT_CK_MATCH
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_METHOD PERL_ARGS_ASSERT_CK_NULL
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_OPEN PERL_ARGS_ASSERT_CK_PROTOTYPE
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_READLINE
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_REFASSIGN PERL_ARGS_ASSERT_CK_REPEAT
syn keyword xsMacro PERL_ARGS_ASSERT_CK_REQUIRE PERL_ARGS_ASSERT_CK_RETURN
syn keyword xsMacro PERL_ARGS_ASSERT_CK_RFUN PERL_ARGS_ASSERT_CK_RVCONST
syn keyword xsMacro PERL_ARGS_ASSERT_CK_SASSIGN PERL_ARGS_ASSERT_CK_SELECT
syn keyword xsMacro PERL_ARGS_ASSERT_CK_SHIFT PERL_ARGS_ASSERT_CK_SMARTMATCH
syn keyword xsMacro PERL_ARGS_ASSERT_CK_SORT PERL_ARGS_ASSERT_CK_SPAIR
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_SPLIT PERL_ARGS_ASSERT_CK_SUBR
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_SUBSTR PERL_ARGS_ASSERT_CK_SVCONST
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_TELL PERL_ARGS_ASSERT_CK_TRUNC
-syn keyword xsMacro PERL_ARGS_ASSERT_CK_WARNER PERL_ARGS_ASSERT_CK_WARNER_D
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_SPLIT PERL_ARGS_ASSERT_CK_STRINGIFY
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_SUBR PERL_ARGS_ASSERT_CK_SUBSTR
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_SVCONST PERL_ARGS_ASSERT_CK_TELL
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_TRUNC PERL_ARGS_ASSERT_CK_WARNER
+syn keyword xsMacro PERL_ARGS_ASSERT_CK_WARNER_D
syn keyword xsMacro PERL_ARGS_ASSERT_CLEAR_PLACEHOLDERS
+syn keyword xsMacro PERL_ARGS_ASSERT_CLEAR_SPECIAL_BLOCKS
syn keyword xsMacro PERL_ARGS_ASSERT_CLONE_PARAMS_DEL
syn keyword xsMacro PERL_ARGS_ASSERT_CLONE_PARAMS_NEW
-syn keyword xsMacro PERL_ARGS_ASSERT_CLOSEST_COP PERL_ARGS_ASSERT_CL_AND
-syn keyword xsMacro PERL_ARGS_ASSERT_CL_ANYTHING PERL_ARGS_ASSERT_CL_INIT
-syn keyword xsMacro PERL_ARGS_ASSERT_CL_IS_ANYTHING PERL_ARGS_ASSERT_CL_OR
+syn keyword xsMacro PERL_ARGS_ASSERT_CLOSEST_COP
+syn keyword xsMacro PERL_ARGS_ASSERT_COMPUTE_EXACTISH
+syn keyword xsMacro PERL_ARGS_ASSERT_CONSTRUCT_AHOCORASICK_FROM_TRIE
syn keyword xsMacro PERL_ARGS_ASSERT_COP_FETCH_LABEL
syn keyword xsMacro PERL_ARGS_ASSERT_COP_FREE
syn keyword xsMacro PERL_ARGS_ASSERT_COP_STORE_LABEL
syn keyword xsMacro PERL_ARGS_ASSERT_CORESUB_OP
syn keyword xsMacro PERL_ARGS_ASSERT_CORE_PROTOTYPE
-syn keyword xsMacro PERL_ARGS_ASSERT_CORE_REGCLASS_SWASH
+syn keyword xsMacro PERL_ARGS_ASSERT_COULD_IT_BE_A_POSIX_CLASS
syn keyword xsMacro PERL_ARGS_ASSERT_CROAK_SV PERL_ARGS_ASSERT_CROAK_XS_USAGE
syn keyword xsMacro PERL_ARGS_ASSERT_CURSE PERL_ARGS_ASSERT_CUSTOM_OP_DESC
+syn keyword xsMacro PERL_ARGS_ASSERT_CUSTOM_OP_GET_FIELD
syn keyword xsMacro PERL_ARGS_ASSERT_CUSTOM_OP_NAME
syn keyword xsMacro PERL_ARGS_ASSERT_CUSTOM_OP_REGISTER
-syn keyword xsMacro PERL_ARGS_ASSERT_CUSTOM_OP_XOP PERL_ARGS_ASSERT_CVGV_SET
+syn keyword xsMacro PERL_ARGS_ASSERT_CVGV_FROM_HEK PERL_ARGS_ASSERT_CVGV_SET
syn keyword xsMacro PERL_ARGS_ASSERT_CVSTASH_SET
syn keyword xsMacro PERL_ARGS_ASSERT_CV_CKPROTO_LEN_FLAGS
-syn keyword xsMacro PERL_ARGS_ASSERT_CV_CLONE PERL_ARGS_ASSERT_CV_DUMP
+syn keyword xsMacro PERL_ARGS_ASSERT_CV_CLONE PERL_ARGS_ASSERT_CV_CLONE_INTO
+syn keyword xsMacro PERL_ARGS_ASSERT_CV_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER
+syn keyword xsMacro PERL_ARGS_ASSERT_CV_NAME
syn keyword xsMacro PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER
-syn keyword xsMacro PERL_ARGS_ASSERT_CV_UNDEF PERL_ARGS_ASSERT_CX_DUMP
-syn keyword xsMacro PERL_ARGS_ASSERT_CX_DUP PERL_ARGS_ASSERT_DEB
-syn keyword xsMacro PERL_ARGS_ASSERT_DEBOP PERL_ARGS_ASSERT_DEBPROF
+syn keyword xsMacro PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_CV_UNDEF PERL_ARGS_ASSERT_CV_UNDEF_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_CX_DUMP PERL_ARGS_ASSERT_CX_DUP
+syn keyword xsMacro PERL_ARGS_ASSERT_DEB PERL_ARGS_ASSERT_DEBOP
+syn keyword xsMacro PERL_ARGS_ASSERT_DEBPROF
syn keyword xsMacro PERL_ARGS_ASSERT_DEBUG_START_MATCH
syn keyword xsMacro PERL_ARGS_ASSERT_DEB_NOCONTEXT
-syn keyword xsMacro PERL_ARGS_ASSERT_DEB_STACK_N PERL_ARGS_ASSERT_DELIMCPY
+syn keyword xsMacro PERL_ARGS_ASSERT_DEB_STACK_N
+syn keyword xsMacro PERL_ARGS_ASSERT_DEFELEM_TARGET PERL_ARGS_ASSERT_DELIMCPY
syn keyword xsMacro PERL_ARGS_ASSERT_DEL_SV PERL_ARGS_ASSERT_DESTROY_MATCHER
syn keyword xsMacro PERL_ARGS_ASSERT_DIE_SV PERL_ARGS_ASSERT_DIE_UNWIND
syn keyword xsMacro PERL_ARGS_ASSERT_DIRP_DUP PERL_ARGS_ASSERT_DIV128
@@ -1638,13 +1863,12 @@ syn keyword xsMacro PERL_ARGS_ASSERT_DO_IPCCTL PERL_ARGS_ASSERT_DO_IPCGET
syn keyword xsMacro PERL_ARGS_ASSERT_DO_JOIN PERL_ARGS_ASSERT_DO_MAGIC_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT_DO_MSGRCV PERL_ARGS_ASSERT_DO_MSGSND
syn keyword xsMacro PERL_ARGS_ASSERT_DO_NCMP PERL_ARGS_ASSERT_DO_ODDBALL
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_OPEN PERL_ARGS_ASSERT_DO_OPEN9
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_OPENN PERL_ARGS_ASSERT_DO_OP_DUMP
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_OP_XMLDUMP
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_PMOP_DUMP
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_PMOP_XMLDUMP
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_PRINT PERL_ARGS_ASSERT_DO_SEMOP
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_SHMIO PERL_ARGS_ASSERT_DO_SPAWN
+syn keyword xsMacro PERL_ARGS_ASSERT_DO_OPEN PERL_ARGS_ASSERT_DO_OPEN6
+syn keyword xsMacro PERL_ARGS_ASSERT_DO_OPEN9 PERL_ARGS_ASSERT_DO_OPENN
+syn keyword xsMacro PERL_ARGS_ASSERT_DO_OPEN_RAW PERL_ARGS_ASSERT_DO_OP_DUMP
+syn keyword xsMacro PERL_ARGS_ASSERT_DO_PMOP_DUMP PERL_ARGS_ASSERT_DO_PRINT
+syn keyword xsMacro PERL_ARGS_ASSERT_DO_SEMOP PERL_ARGS_ASSERT_DO_SHMIO
+syn keyword xsMacro PERL_ARGS_ASSERT_DO_SPAWN
syn keyword xsMacro PERL_ARGS_ASSERT_DO_SPAWN_NOWAIT
syn keyword xsMacro PERL_ARGS_ASSERT_DO_SPRINTF PERL_ARGS_ASSERT_DO_SV_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT_DO_SYSSEEK PERL_ARGS_ASSERT_DO_TELL
@@ -1656,10 +1880,11 @@ syn keyword xsMacro PERL_ARGS_ASSERT_DO_TRANS_COUNT_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_DO_TRANS_SIMPLE
syn keyword xsMacro PERL_ARGS_ASSERT_DO_TRANS_SIMPLE_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_DO_VECGET PERL_ARGS_ASSERT_DO_VECSET
-syn keyword xsMacro PERL_ARGS_ASSERT_DO_VOP PERL_ARGS_ASSERT_DUMPUNTIL
-syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_EXEC_POS PERL_ARGS_ASSERT_DUMP_FDS
-syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_FORM PERL_ARGS_ASSERT_DUMP_INDENT
-syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_MSTATS
+syn keyword xsMacro PERL_ARGS_ASSERT_DO_VOP PERL_ARGS_ASSERT_DRAND48_INIT_R
+syn keyword xsMacro PERL_ARGS_ASSERT_DRAND48_R PERL_ARGS_ASSERT_DUMPUNTIL
+syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_C_BACKTRACE
+syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_EXEC_POS PERL_ARGS_ASSERT_DUMP_FORM
+syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_INDENT PERL_ARGS_ASSERT_DUMP_MSTATS
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_PACKSUBS
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_PACKSUBS_PERL
syn keyword xsMacro PERL_ARGS_ASSERT_DUMP_SUB PERL_ARGS_ASSERT_DUMP_SUB_PERL
@@ -1680,12 +1905,15 @@ syn keyword xsMacro PERL_ARGS_ASSERT_FIND_AND_FORGET_PMOPS
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_ARRAY_SUBSCRIPT
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_BEGINNING
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_BYCLASS
+syn keyword xsMacro PERL_ARGS_ASSERT_FIND_DEFAULT_STASH
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_HASH_SUBSCRIPT
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_IN_MY_STASH
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_RUNDEFSV2
syn keyword xsMacro PERL_ARGS_ASSERT_FIND_SCRIPT
-syn keyword xsMacro PERL_ARGS_ASSERT_FIRST_SYMBOL PERL_ARGS_ASSERT_FOLDEQ
-syn keyword xsMacro PERL_ARGS_ASSERT_FOLDEQ_LATIN1
+syn keyword xsMacro PERL_ARGS_ASSERT_FIND_UNINIT_VAR
+syn keyword xsMacro PERL_ARGS_ASSERT_FIRST_SYMBOL
+syn keyword xsMacro PERL_ARGS_ASSERT_FIXUP_ERRNO_STRING
+syn keyword xsMacro PERL_ARGS_ASSERT_FOLDEQ PERL_ARGS_ASSERT_FOLDEQ_LATIN1
syn keyword xsMacro PERL_ARGS_ASSERT_FOLDEQ_LOCALE
syn keyword xsMacro PERL_ARGS_ASSERT_FOLDEQ_UTF8_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_FOLD_CONSTANTS
@@ -1694,34 +1922,40 @@ syn keyword xsMacro PERL_ARGS_ASSERT_FORCE_STRICT_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_FORCE_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_FORCE_WORD PERL_ARGS_ASSERT_FORGET_PMOP
syn keyword xsMacro PERL_ARGS_ASSERT_FORM PERL_ARGS_ASSERT_FORM_NOCONTEXT
+syn keyword xsMacro PERL_ARGS_ASSERT_FORM_SHORT_OCTAL_WARNING
syn keyword xsMacro PERL_ARGS_ASSERT_FPRINTF_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_FP_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_FREE_GLOBAL_STRUCT
syn keyword xsMacro PERL_ARGS_ASSERT_GETCWD_SV PERL_ARGS_ASSERT_GETENV_LEN
+syn keyword xsMacro PERL_ARGS_ASSERT_GET_AND_CHECK_BACKSLASH_N_NAME
+syn keyword xsMacro PERL_ARGS_ASSERT_GET_ANYOF_CP_LIST_FOR_SSC
syn keyword xsMacro PERL_ARGS_ASSERT_GET_AUX_MG PERL_ARGS_ASSERT_GET_AV
syn keyword xsMacro PERL_ARGS_ASSERT_GET_CV PERL_ARGS_ASSERT_GET_CVN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_GET_DB_SUB
-syn keyword xsMacro PERL_ARGS_ASSERT_GET_DEBUG_OPTS PERL_ARGS_ASSERT_GET_HV
+syn keyword xsMacro PERL_ARGS_ASSERT_GET_DEBUG_OPTS
+syn keyword xsMacro PERL_ARGS_ASSERT_GET_HASH_SEED PERL_ARGS_ASSERT_GET_HV
syn keyword xsMacro PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR
-syn keyword xsMacro PERL_ARGS_ASSERT_GET_INVLIST_LEN_ADDR
-syn keyword xsMacro PERL_ARGS_ASSERT_GET_INVLIST_VERSION_ID_ADDR
-syn keyword xsMacro PERL_ARGS_ASSERT_GET_INVLIST_ZERO_ADDR
+syn keyword xsMacro PERL_ARGS_ASSERT_GET_INVLIST_OFFSET_ADDR
+syn keyword xsMacro PERL_ARGS_ASSERT_GET_INVLIST_PREVIOUS_INDEX_ADDR
syn keyword xsMacro PERL_ARGS_ASSERT_GET_MSTATS PERL_ARGS_ASSERT_GET_NUM
syn keyword xsMacro PERL_ARGS_ASSERT_GET_SV PERL_ARGS_ASSERT_GLOB_2NUMBER
-syn keyword xsMacro PERL_ARGS_ASSERT_GLOB_ASSIGN_GLOB
-syn keyword xsMacro PERL_ARGS_ASSERT_GLOB_ASSIGN_REF PERL_ARGS_ASSERT_GP_DUP
-syn keyword xsMacro PERL_ARGS_ASSERT_GROK_BIN PERL_ARGS_ASSERT_GROK_BSLASH_O
-syn keyword xsMacro PERL_ARGS_ASSERT_GROK_HEX PERL_ARGS_ASSERT_GROK_NUMBER
+syn keyword xsMacro PERL_ARGS_ASSERT_GLOB_ASSIGN_GLOB PERL_ARGS_ASSERT_GP_DUP
+syn keyword xsMacro PERL_ARGS_ASSERT_GROK_ATOUV PERL_ARGS_ASSERT_GROK_BIN
+syn keyword xsMacro PERL_ARGS_ASSERT_GROK_BSLASH_N
+syn keyword xsMacro PERL_ARGS_ASSERT_GROK_BSLASH_O
+syn keyword xsMacro PERL_ARGS_ASSERT_GROK_BSLASH_X PERL_ARGS_ASSERT_GROK_HEX
+syn keyword xsMacro PERL_ARGS_ASSERT_GROK_INFNAN PERL_ARGS_ASSERT_GROK_NUMBER
+syn keyword xsMacro PERL_ARGS_ASSERT_GROK_NUMBER_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_GROK_NUMERIC_RADIX
syn keyword xsMacro PERL_ARGS_ASSERT_GROK_OCT PERL_ARGS_ASSERT_GROUP_END
syn keyword xsMacro PERL_ARGS_ASSERT_GV_AMUPDATE
syn keyword xsMacro PERL_ARGS_ASSERT_GV_AUTOLOAD_PV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_AUTOLOAD_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_GV_AUTOLOAD_SV PERL_ARGS_ASSERT_GV_CHECK
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_CONST_SV PERL_ARGS_ASSERT_GV_DUMP
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_CONST_SV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_EFULLNAME
syn keyword xsMacro PERL_ARGS_ASSERT_GV_EFULLNAME3
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_EFULLNAME4 PERL_ARGS_ASSERT_GV_ENAME
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_EFULLNAME4
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHFILE
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHFILE_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHMETHOD
@@ -1739,20 +1973,24 @@ syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHPV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHPVN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FETCHSV PERL_ARGS_ASSERT_GV_FULLNAME
syn keyword xsMacro PERL_ARGS_ASSERT_GV_FULLNAME3
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_FULLNAME4
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_GET_SUPER_PKG
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_INIT_PV PERL_ARGS_ASSERT_GV_INIT_PVN
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_INIT_SV
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_FULLNAME4 PERL_ARGS_ASSERT_GV_INIT_PV
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_INIT_PVN PERL_ARGS_ASSERT_GV_INIT_SV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_INIT_SVTYPE
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_IS_IN_MAIN
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_MAGICALIZE
syn keyword xsMacro PERL_ARGS_ASSERT_GV_MAGICALIZE_ISA
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_MAGICALIZE_OVERLOAD
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_NAME_SET PERL_ARGS_ASSERT_GV_STASHPV
-syn keyword xsMacro PERL_ARGS_ASSERT_GV_STASHPVN PERL_ARGS_ASSERT_GV_STASHSV
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_NAME_SET PERL_ARGS_ASSERT_GV_OVERRIDE
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_SETREF PERL_ARGS_ASSERT_GV_STASHPV
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_STASHPVN
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_STASHPVN_INTERNAL
+syn keyword xsMacro PERL_ARGS_ASSERT_GV_STASHSV
syn keyword xsMacro PERL_ARGS_ASSERT_GV_TRY_DOWNGRADE
+syn keyword xsMacro PERL_ARGS_ASSERT_HANDLE_REGEX_SETS
syn keyword xsMacro PERL_ARGS_ASSERT_HEK_DUP PERL_ARGS_ASSERT_HE_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_HFREEENTRIES
syn keyword xsMacro PERL_ARGS_ASSERT_HFREE_NEXT_ENTRY PERL_ARGS_ASSERT_HSPLIT
syn keyword xsMacro PERL_ARGS_ASSERT_HV_ASSERT PERL_ARGS_ASSERT_HV_AUXINIT
+syn keyword xsMacro PERL_ARGS_ASSERT_HV_AUXINIT_INTERNAL
syn keyword xsMacro PERL_ARGS_ASSERT_HV_BACKREFERENCES_P
syn keyword xsMacro PERL_ARGS_ASSERT_HV_CLEAR_PLACEHOLDERS
syn keyword xsMacro PERL_ARGS_ASSERT_HV_COMMON_KEY_LEN
@@ -1779,9 +2017,9 @@ syn keyword xsMacro PERL_ARGS_ASSERT_HV_NOTALLOWED
syn keyword xsMacro PERL_ARGS_ASSERT_HV_PLACEHOLDERS_GET
syn keyword xsMacro PERL_ARGS_ASSERT_HV_PLACEHOLDERS_P
syn keyword xsMacro PERL_ARGS_ASSERT_HV_PLACEHOLDERS_SET
-syn keyword xsMacro PERL_ARGS_ASSERT_HV_RITER_P PERL_ARGS_ASSERT_HV_RITER_SET
-syn keyword xsMacro PERL_ARGS_ASSERT_HV_SCALAR PERL_ARGS_ASSERT_INCLINE
-syn keyword xsMacro PERL_ARGS_ASSERT_INCPUSH
+syn keyword xsMacro PERL_ARGS_ASSERT_HV_RAND_SET PERL_ARGS_ASSERT_HV_RITER_P
+syn keyword xsMacro PERL_ARGS_ASSERT_HV_RITER_SET PERL_ARGS_ASSERT_HV_SCALAR
+syn keyword xsMacro PERL_ARGS_ASSERT_INCLINE PERL_ARGS_ASSERT_INCPUSH
syn keyword xsMacro PERL_ARGS_ASSERT_INCPUSH_IF_EXISTS
syn keyword xsMacro PERL_ARGS_ASSERT_INCPUSH_USE_SEP
syn keyword xsMacro PERL_ARGS_ASSERT_INIT_ARGV_SYMBOLS
@@ -1792,21 +2030,32 @@ syn keyword xsMacro PERL_ARGS_ASSERT_INTUIT_MORE
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_ARRAY
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_CLONE
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_EXTEND
+syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_HIGHEST
+syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_IS_ITERATING
+syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_ITERFINISH
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_ITERINIT
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_ITERNEXT
-syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_LEN PERL_ARGS_ASSERT_INVLIST_MAX
-syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_SEARCH
+syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_MAX
+syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_PREVIOUS_INDEX
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_SET_LEN
+syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_SET_PREVIOUS_INDEX
syn keyword xsMacro PERL_ARGS_ASSERT_INVLIST_TRIM PERL_ARGS_ASSERT_IO_CLOSE
-syn keyword xsMacro PERL_ARGS_ASSERT_ISA_LOOKUP PERL_ARGS_ASSERT_IS_AN_INT
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_ASCII_STRING
+syn keyword xsMacro PERL_ARGS_ASSERT_ISALNUM_LAZY PERL_ARGS_ASSERT_ISA_LOOKUP
+syn keyword xsMacro PERL_ARGS_ASSERT_ISFOO_UTF8_LC
+syn keyword xsMacro PERL_ARGS_ASSERT_ISIDFIRST_LAZY
+syn keyword xsMacro PERL_ARGS_ASSERT_ISINFNANSV PERL_ARGS_ASSERT_ISSB
+syn keyword xsMacro PERL_ARGS_ASSERT_ISWB PERL_ARGS_ASSERT_IS_AN_INT
syn keyword xsMacro PERL_ARGS_ASSERT_IS_HANDLE_CONSTRUCTOR
+syn keyword xsMacro PERL_ARGS_ASSERT_IS_INVARIANT_STRING
+syn keyword xsMacro PERL_ARGS_ASSERT_IS_SAFE_SYSCALL
+syn keyword xsMacro PERL_ARGS_ASSERT_IS_SSC_WORTH_IT
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_ALNUM
+syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_ALNUMC
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_ALPHA
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_ASCII
+syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_BLANK
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_CHAR
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_CHAR_BUF
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_CHAR_SLOW
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_CNTRL
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_COMMON
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_DIGIT
@@ -1827,19 +2076,10 @@ syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_UPPER
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_XDIGIT
syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_XIDCONT
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_XIDFIRST
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_BEGIN
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_EXTEND
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_L
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_LV
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_LVT
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_LV_LVT_V
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_NON_HANGUL
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_PREPEND
-syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_X_T PERL_ARGS_ASSERT_IS_UTF8_X_V
-syn keyword xsMacro PERL_ARGS_ASSERT_JMAYBE PERL_ARGS_ASSERT_JOIN_EXACT
-syn keyword xsMacro PERL_ARGS_ASSERT_KEYWORD
+syn keyword xsMacro PERL_ARGS_ASSERT_IS_UTF8_XIDFIRST PERL_ARGS_ASSERT_JMAYBE
+syn keyword xsMacro PERL_ARGS_ASSERT_JOIN_EXACT PERL_ARGS_ASSERT_KEYWORD
syn keyword xsMacro PERL_ARGS_ASSERT_KEYWORD_PLUGIN_STANDARD
+syn keyword xsMacro PERL_ARGS_ASSERT_LEAVE_COMMON
syn keyword xsMacro PERL_ARGS_ASSERT_LEX_DISCARD_TO
syn keyword xsMacro PERL_ARGS_ASSERT_LEX_READ_TO
syn keyword xsMacro PERL_ARGS_ASSERT_LEX_STUFF_PV
@@ -1850,6 +2090,7 @@ syn keyword xsMacro PERL_ARGS_ASSERT_LOAD_MODULE_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_LOCALIZE
syn keyword xsMacro PERL_ARGS_ASSERT_LOOKS_LIKE_BOOL
syn keyword xsMacro PERL_ARGS_ASSERT_LOOKS_LIKE_NUMBER PERL_ARGS_ASSERT_LOP
+syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARARYLEN_P
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARENV
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARHINT
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARHINTS
@@ -1857,11 +2098,13 @@ syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARISA
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEARSIG
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_CLEAR_ALL_ENV
+syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_COPYCALLCHECKER
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_EXISTSPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_FREEARYLEN_P
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_FREEOVRLD
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GET
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETARYLEN
+syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETDEBUGVAR
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETDEFELEM
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETNKEYS
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETPACK
@@ -1872,7 +2115,6 @@ syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETTAINT
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETUVAR
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_GETVEC
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_KILLBACKREFS
-syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_LEN
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_METHCALL
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_METHCALL1
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_METHPACK
@@ -1882,14 +2124,15 @@ syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_REGDATUM_GET
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SCALARPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SET
-syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETAMAGIC
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETARYLEN
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETCOLLXFRM
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETDBLINE
+syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETDEBUGVAR
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETDEFELEM
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETENV
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETHINT
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETISA
+syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETLVREF
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETMGLOB
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETNKEYS
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETPACK
@@ -1901,27 +2144,27 @@ syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETTAINT
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETUTF8
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETUVAR
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETVEC
-syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SETVSTRING
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SET_ALL_ENV
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_SIZEPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAGIC_WIPEPACK
syn keyword xsMacro PERL_ARGS_ASSERT_MAKE_MATCHER PERL_ARGS_ASSERT_MAKE_TRIE
-syn keyword xsMacro PERL_ARGS_ASSERT_MAKE_TRIE_FAILTABLE
syn keyword xsMacro PERL_ARGS_ASSERT_MALLOCED_SIZE
syn keyword xsMacro PERL_ARGS_ASSERT_MATCHER_MATCHES_SV
syn keyword xsMacro PERL_ARGS_ASSERT_MAYBERELOCATE
+syn keyword xsMacro PERL_ARGS_ASSERT_MAYBE_MULTIMAGIC_GV
syn keyword xsMacro PERL_ARGS_ASSERT_MEASURE_STRUCT
syn keyword xsMacro PERL_ARGS_ASSERT_MEM_COLLXFRM
syn keyword xsMacro PERL_ARGS_ASSERT_MEM_LOG_COMMON PERL_ARGS_ASSERT_MESS
syn keyword xsMacro PERL_ARGS_ASSERT_MESS_NOCONTEXT PERL_ARGS_ASSERT_MESS_SV
-syn keyword xsMacro PERL_ARGS_ASSERT_METHOD_COMMON PERL_ARGS_ASSERT_MG_CLEAR
-syn keyword xsMacro PERL_ARGS_ASSERT_MG_COPY PERL_ARGS_ASSERT_MG_DUP
+syn keyword xsMacro PERL_ARGS_ASSERT_MG_CLEAR PERL_ARGS_ASSERT_MG_COPY
+syn keyword xsMacro PERL_ARGS_ASSERT_MG_DUP PERL_ARGS_ASSERT_MG_FIND_MGLOB
syn keyword xsMacro PERL_ARGS_ASSERT_MG_FREE PERL_ARGS_ASSERT_MG_FREE_TYPE
syn keyword xsMacro PERL_ARGS_ASSERT_MG_GET PERL_ARGS_ASSERT_MG_LENGTH
syn keyword xsMacro PERL_ARGS_ASSERT_MG_LOCALIZE PERL_ARGS_ASSERT_MG_MAGICAL
syn keyword xsMacro PERL_ARGS_ASSERT_MG_SET PERL_ARGS_ASSERT_MG_SIZE
syn keyword xsMacro PERL_ARGS_ASSERT_MINI_MKTIME
syn keyword xsMacro PERL_ARGS_ASSERT_MORESWITCHES
+syn keyword xsMacro PERL_ARGS_ASSERT_MOVE_PROTO_ATTR
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_CLEAN_ISAREV
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_GATHER_AND_RENAME
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_GET_FROM_NAME
@@ -1937,29 +2180,35 @@ syn keyword xsMacro PERL_ARGS_ASSERT_MRO_REGISTER
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_SET_MRO
syn keyword xsMacro PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA
syn keyword xsMacro PERL_ARGS_ASSERT_MUL128
-syn keyword xsMacro PERL_ARGS_ASSERT_MUNGE_QWLIST_TO_PAREN_LIST
+syn keyword xsMacro PERL_ARGS_ASSERT_MULTIDEREF_STRINGIFY
syn keyword xsMacro PERL_ARGS_ASSERT_MY_ATOF PERL_ARGS_ASSERT_MY_ATOF2
syn keyword xsMacro PERL_ARGS_ASSERT_MY_ATTRS PERL_ARGS_ASSERT_MY_BCOPY
+syn keyword xsMacro PERL_ARGS_ASSERT_MY_BYTES_TO_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_MY_BZERO PERL_ARGS_ASSERT_MY_CXT_INDEX
syn keyword xsMacro PERL_ARGS_ASSERT_MY_CXT_INIT PERL_ARGS_ASSERT_MY_KID
syn keyword xsMacro PERL_ARGS_ASSERT_MY_MEMCMP PERL_ARGS_ASSERT_MY_MEMSET
syn keyword xsMacro PERL_ARGS_ASSERT_MY_POPEN PERL_ARGS_ASSERT_MY_POPEN_LIST
syn keyword xsMacro PERL_ARGS_ASSERT_MY_SNPRINTF PERL_ARGS_ASSERT_MY_SPRINTF
-syn keyword xsMacro PERL_ARGS_ASSERT_MY_STRFTIME PERL_ARGS_ASSERT_MY_SWABN
+syn keyword xsMacro PERL_ARGS_ASSERT_MY_STRFTIME
syn keyword xsMacro PERL_ARGS_ASSERT_MY_VSNPRINTF PERL_ARGS_ASSERT_NEED_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_NEWAVREF PERL_ARGS_ASSERT_NEWCONDOP
syn keyword xsMacro PERL_ARGS_ASSERT_NEWFOROP PERL_ARGS_ASSERT_NEWGIVENOP
syn keyword xsMacro PERL_ARGS_ASSERT_NEWGIVWHENOP PERL_ARGS_ASSERT_NEWGP
syn keyword xsMacro PERL_ARGS_ASSERT_NEWGVGEN_FLAGS PERL_ARGS_ASSERT_NEWGVOP
syn keyword xsMacro PERL_ARGS_ASSERT_NEWHVREF PERL_ARGS_ASSERT_NEWLOGOP
-syn keyword xsMacro PERL_ARGS_ASSERT_NEWLOOPEX PERL_ARGS_ASSERT_NEWMADSV
-syn keyword xsMacro PERL_ARGS_ASSERT_NEWPADOP PERL_ARGS_ASSERT_NEWPROG
-syn keyword xsMacro PERL_ARGS_ASSERT_NEWRANGE PERL_ARGS_ASSERT_NEWRV
-syn keyword xsMacro PERL_ARGS_ASSERT_NEWRV_NOINC PERL_ARGS_ASSERT_NEWSVOP
-syn keyword xsMacro PERL_ARGS_ASSERT_NEWSVPVF
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWLOOPEX PERL_ARGS_ASSERT_NEWMETHOP
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWMETHOP_NAMED
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWMYSUB
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWPADNAMEOUTER
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWPADNAMEPVN PERL_ARGS_ASSERT_NEWPADOP
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWPROG PERL_ARGS_ASSERT_NEWRANGE
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWRV PERL_ARGS_ASSERT_NEWRV_NOINC
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWSTUB PERL_ARGS_ASSERT_NEWSVAVDEFELEM
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWSVOP PERL_ARGS_ASSERT_NEWSVPVF
syn keyword xsMacro PERL_ARGS_ASSERT_NEWSVPVF_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_NEWSVREF PERL_ARGS_ASSERT_NEWSVRV
syn keyword xsMacro PERL_ARGS_ASSERT_NEWWHENOP PERL_ARGS_ASSERT_NEWXS
+syn keyword xsMacro PERL_ARGS_ASSERT_NEWXS_DEFFILE
syn keyword xsMacro PERL_ARGS_ASSERT_NEWXS_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_NEWXS_LEN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_NEW_CONSTANT PERL_ARGS_ASSERT_NEW_CTYPE
@@ -1967,24 +2216,39 @@ syn keyword xsMacro PERL_ARGS_ASSERT_NEW_LOGOP PERL_ARGS_ASSERT_NEW_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_NEW_WARNINGS_BITFIELD
syn keyword xsMacro PERL_ARGS_ASSERT_NEXTARGV PERL_ARGS_ASSERT_NEXTCHAR
syn keyword xsMacro PERL_ARGS_ASSERT_NEXT_SYMBOL PERL_ARGS_ASSERT_NINSTR
-syn keyword xsMacro PERL_ARGS_ASSERT_NOT_A_NUMBER
+syn keyword xsMacro PERL_ARGS_ASSERT_NOPERL_DIE PERL_ARGS_ASSERT_NOT_A_NUMBER
+syn keyword xsMacro PERL_ARGS_ASSERT_NOT_INCREMENTABLE
syn keyword xsMacro PERL_ARGS_ASSERT_NO_BAREWORD_ALLOWED
syn keyword xsMacro PERL_ARGS_ASSERT_NO_FH_ALLOWED PERL_ARGS_ASSERT_NO_OP
syn keyword xsMacro PERL_ARGS_ASSERT_OOPSAV PERL_ARGS_ASSERT_OOPSHV
-syn keyword xsMacro PERL_ARGS_ASSERT_OPEN_SCRIPT
-syn keyword xsMacro PERL_ARGS_ASSERT_OPT_SCALARHV PERL_ARGS_ASSERT_OP_CLEAR
+syn keyword xsMacro PERL_ARGS_ASSERT_OPENN_CLEANUP
+syn keyword xsMacro PERL_ARGS_ASSERT_OPENN_SETUP PERL_ARGS_ASSERT_OPEN_SCRIPT
+syn keyword xsMacro PERL_ARGS_ASSERT_OPMETHOD_STASH
+syn keyword xsMacro PERL_ARGS_ASSERT_OPSLAB_FORCE_FREE
+syn keyword xsMacro PERL_ARGS_ASSERT_OPSLAB_FREE
+syn keyword xsMacro PERL_ARGS_ASSERT_OPSLAB_FREE_NOPAD
+syn keyword xsMacro PERL_ARGS_ASSERT_OP_CLEAR
syn keyword xsMacro PERL_ARGS_ASSERT_OP_CONTEXTUALIZE
syn keyword xsMacro PERL_ARGS_ASSERT_OP_DUMP PERL_ARGS_ASSERT_OP_INTEGERIZE
syn keyword xsMacro PERL_ARGS_ASSERT_OP_LINKLIST PERL_ARGS_ASSERT_OP_NULL
-syn keyword xsMacro PERL_ARGS_ASSERT_OP_REFCNT_DEC
-syn keyword xsMacro PERL_ARGS_ASSERT_OP_STD_INIT PERL_ARGS_ASSERT_OP_XMLDUMP
-syn keyword xsMacro PERL_ARGS_ASSERT_PACKAGE PERL_ARGS_ASSERT_PACKAGE_VERSION
+syn keyword xsMacro PERL_ARGS_ASSERT_OP_PARENT PERL_ARGS_ASSERT_OP_REFCNT_DEC
+syn keyword xsMacro PERL_ARGS_ASSERT_OP_RELOCATE_SV
+syn keyword xsMacro PERL_ARGS_ASSERT_OP_STD_INIT PERL_ARGS_ASSERT_PACKAGE
+syn keyword xsMacro PERL_ARGS_ASSERT_PACKAGE_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_PACKLIST PERL_ARGS_ASSERT_PACK_CAT
syn keyword xsMacro PERL_ARGS_ASSERT_PACK_REC PERL_ARGS_ASSERT_PADLIST_DUP
+syn keyword xsMacro PERL_ARGS_ASSERT_PADLIST_STORE
+syn keyword xsMacro PERL_ARGS_ASSERT_PADNAMELIST_DUP
+syn keyword xsMacro PERL_ARGS_ASSERT_PADNAMELIST_FETCH
+syn keyword xsMacro PERL_ARGS_ASSERT_PADNAMELIST_FREE
+syn keyword xsMacro PERL_ARGS_ASSERT_PADNAMELIST_STORE
+syn keyword xsMacro PERL_ARGS_ASSERT_PADNAME_DUP
+syn keyword xsMacro PERL_ARGS_ASSERT_PADNAME_FREE
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ADD_ANON
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ADD_NAME_PV
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ADD_NAME_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ADD_NAME_SV
+syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ADD_WEAKREF
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_ALLOC_NAME
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_CHECK_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_FINDLEX
@@ -1992,11 +2256,14 @@ syn keyword xsMacro PERL_ARGS_ASSERT_PAD_FINDMY_PV
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_FINDMY_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_FINDMY_SV
syn keyword xsMacro PERL_ARGS_ASSERT_PAD_FIXUP_INNER_ANONS
-syn keyword xsMacro PERL_ARGS_ASSERT_PAD_PEG PERL_ARGS_ASSERT_PAD_PUSH
-syn keyword xsMacro PERL_ARGS_ASSERT_PAD_SETSV PERL_ARGS_ASSERT_PARSER_DUP
-syn keyword xsMacro PERL_ARGS_ASSERT_PARSER_FREE
+syn keyword xsMacro PERL_ARGS_ASSERT_PAD_PUSH PERL_ARGS_ASSERT_PAD_SETSV
+syn keyword xsMacro PERL_ARGS_ASSERT_PARSER_DUP PERL_ARGS_ASSERT_PARSER_FREE
+syn keyword xsMacro PERL_ARGS_ASSERT_PARSER_FREE_NEXTTOKE_OPS
+syn keyword xsMacro PERL_ARGS_ASSERT_PARSE_GV_STASH_NAME
+syn keyword xsMacro PERL_ARGS_ASSERT_PARSE_IDENT
+syn keyword xsMacro PERL_ARGS_ASSERT_PARSE_LPAREN_QUESTION_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_PARSE_UNICODE_OPTS
-syn keyword xsMacro PERL_ARGS_ASSERT_PATH_IS_ABSOLUTE
+syn keyword xsMacro PERL_ARGS_ASSERT_PATH_IS_SEARCHABLE
syn keyword xsMacro PERL_ARGS_ASSERT_PERLIO_READ
syn keyword xsMacro PERL_ARGS_ASSERT_PERLIO_UNREAD
syn keyword xsMacro PERL_ARGS_ASSERT_PERLIO_WRITE
@@ -2008,6 +2275,7 @@ syn keyword xsMacro PERL_ARGS_ASSERT_PERL_DESTRUCT PERL_ARGS_ASSERT_PERL_FREE
syn keyword xsMacro PERL_ARGS_ASSERT_PERL_PARSE PERL_ARGS_ASSERT_PERL_RUN
syn keyword xsMacro PERL_ARGS_ASSERT_PMRUNTIME PERL_ARGS_ASSERT_PMTRANS
syn keyword xsMacro PERL_ARGS_ASSERT_PM_DESCRIPTION
+syn keyword xsMacro PERL_ARGS_ASSERT_POPULATE_ANYOF_FROM_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT_POPULATE_ISA PERL_ARGS_ASSERT_PREGCOMP
syn keyword xsMacro PERL_ARGS_ASSERT_PREGEXEC PERL_ARGS_ASSERT_PREGFREE2
syn keyword xsMacro PERL_ARGS_ASSERT_PRESCAN_VERSION
@@ -2018,10 +2286,14 @@ syn keyword xsMacro PERL_ARGS_ASSERT_PTR_TABLE_FETCH
syn keyword xsMacro PERL_ARGS_ASSERT_PTR_TABLE_FIND
syn keyword xsMacro PERL_ARGS_ASSERT_PTR_TABLE_SPLIT
syn keyword xsMacro PERL_ARGS_ASSERT_PTR_TABLE_STORE
-syn keyword xsMacro PERL_ARGS_ASSERT_PUT_BYTE PERL_ARGS_ASSERT_PV_DISPLAY
+syn keyword xsMacro PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS
+syn keyword xsMacro PERL_ARGS_ASSERT_PUT_CODE_POINT
+syn keyword xsMacro PERL_ARGS_ASSERT_PUT_RANGE PERL_ARGS_ASSERT_PV_DISPLAY
syn keyword xsMacro PERL_ARGS_ASSERT_PV_ESCAPE PERL_ARGS_ASSERT_PV_PRETTY
syn keyword xsMacro PERL_ARGS_ASSERT_PV_UNI_DISPLAY PERL_ARGS_ASSERT_QERROR
syn keyword xsMacro PERL_ARGS_ASSERT_QSORTSVU
+syn keyword xsMacro PERL_ARGS_ASSERT_QUADMATH_FORMAT_NEEDED
+syn keyword xsMacro PERL_ARGS_ASSERT_QUADMATH_FORMAT_SINGLE
syn keyword xsMacro PERL_ARGS_ASSERT_REENTRANT_RETRY
syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PV
syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PVN
@@ -2031,9 +2303,10 @@ syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_SV
syn keyword xsMacro PERL_ARGS_ASSERT_REFCOUNTED_HE_VALUE
syn keyword xsMacro PERL_ARGS_ASSERT_REFTO PERL_ARGS_ASSERT_REG
-syn keyword xsMacro PERL_ARGS_ASSERT_REGANODE PERL_ARGS_ASSERT_REGATOM
-syn keyword xsMacro PERL_ARGS_ASSERT_REGBRANCH PERL_ARGS_ASSERT_REGCLASS
-syn keyword xsMacro PERL_ARGS_ASSERT_REGCLASS_SWASH PERL_ARGS_ASSERT_REGCPPOP
+syn keyword xsMacro PERL_ARGS_ASSERT_REG2LANODE PERL_ARGS_ASSERT_REGANODE
+syn keyword xsMacro PERL_ARGS_ASSERT_REGATOM PERL_ARGS_ASSERT_REGBRANCH
+syn keyword xsMacro PERL_ARGS_ASSERT_REGCLASS PERL_ARGS_ASSERT_REGCLASS_SWASH
+syn keyword xsMacro PERL_ARGS_ASSERT_REGCPPOP PERL_ARGS_ASSERT_REGCPPUSH
syn keyword xsMacro PERL_ARGS_ASSERT_REGCURLY PERL_ARGS_ASSERT_REGDUMP
syn keyword xsMacro PERL_ARGS_ASSERT_REGDUPE_INTERNAL
syn keyword xsMacro PERL_ARGS_ASSERT_REGEXEC_FLAGS
@@ -2041,13 +2314,12 @@ syn keyword xsMacro PERL_ARGS_ASSERT_REGFREE_INTERNAL
syn keyword xsMacro PERL_ARGS_ASSERT_REGHOP3 PERL_ARGS_ASSERT_REGHOP4
syn keyword xsMacro PERL_ARGS_ASSERT_REGHOPMAYBE3 PERL_ARGS_ASSERT_REGINCLASS
syn keyword xsMacro PERL_ARGS_ASSERT_REGINSERT PERL_ARGS_ASSERT_REGMATCH
+syn keyword xsMacro PERL_ARGS_ASSERT_REGNODE_GUTS PERL_ARGS_ASSERT_REGPATWS
syn keyword xsMacro PERL_ARGS_ASSERT_REGPIECE PERL_ARGS_ASSERT_REGPPOSIXCC
syn keyword xsMacro PERL_ARGS_ASSERT_REGPROP PERL_ARGS_ASSERT_REGREPEAT
syn keyword xsMacro PERL_ARGS_ASSERT_REGTAIL PERL_ARGS_ASSERT_REGTAIL_STUDY
-syn keyword xsMacro PERL_ARGS_ASSERT_REGTRY PERL_ARGS_ASSERT_REGUNI
-syn keyword xsMacro PERL_ARGS_ASSERT_REGWHITE
+syn keyword xsMacro PERL_ARGS_ASSERT_REGTRY
syn keyword xsMacro PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED
-syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMEDSEQ
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMED_BUFF
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMED_BUFF_ALL
syn keyword xsMacro PERL_ARGS_ASSERT_REG_NAMED_BUFF_EXISTS
@@ -2072,7 +2344,8 @@ syn keyword xsMacro PERL_ARGS_ASSERT_RE_COMPILE PERL_ARGS_ASSERT_RE_CROAK2
syn keyword xsMacro PERL_ARGS_ASSERT_RE_DUP_GUTS
syn keyword xsMacro PERL_ARGS_ASSERT_RE_INTUIT_START
syn keyword xsMacro PERL_ARGS_ASSERT_RE_INTUIT_STRING
-syn keyword xsMacro PERL_ARGS_ASSERT_RNINSTR PERL_ARGS_ASSERT_RSIGNAL_SAVE
+syn keyword xsMacro PERL_ARGS_ASSERT_RE_OP_COMPILE PERL_ARGS_ASSERT_RNINSTR
+syn keyword xsMacro PERL_ARGS_ASSERT_RSIGNAL_SAVE
syn keyword xsMacro PERL_ARGS_ASSERT_RUN_USER_FILTER
syn keyword xsMacro PERL_ARGS_ASSERT_RV2CV_OP_CV PERL_ARGS_ASSERT_RVPV_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_RXRES_FREE
@@ -2081,6 +2354,7 @@ syn keyword xsMacro PERL_ARGS_ASSERT_RXRES_SAVE PERL_ARGS_ASSERT_SAME_DIRENT
syn keyword xsMacro PERL_ARGS_ASSERT_SAVESHAREDSVPV PERL_ARGS_ASSERT_SAVESVPV
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_ADELETE
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_AELEM_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_ALIASED_SV
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_APTR PERL_ARGS_ASSERT_SAVE_ARY
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_BOOL PERL_ARGS_ASSERT_SAVE_CLEARSV
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_DELETE
@@ -2096,15 +2370,16 @@ syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_I32 PERL_ARGS_ASSERT_SAVE_I8
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_INT PERL_ARGS_ASSERT_SAVE_ITEM
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_IV PERL_ARGS_ASSERT_SAVE_LINES
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_LIST PERL_ARGS_ASSERT_SAVE_LONG
-syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_MAGIC
+syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_MAGIC_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_MORTALIZESV
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_NOGV PERL_ARGS_ASSERT_SAVE_PPTR
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SCALAR
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SCALAR_AT
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SET_SVFLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SHARED_PVREF
-syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SPTR PERL_ARGS_ASSERT_SAVE_SVREF
-syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_VPTR PERL_ARGS_ASSERT_SCALARBOOLEAN
+syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SPTR PERL_ARGS_ASSERT_SAVE_STRLEN
+syn keyword xsMacro PERL_ARGS_ASSERT_SAVE_SVREF PERL_ARGS_ASSERT_SAVE_VPTR
+syn keyword xsMacro PERL_ARGS_ASSERT_SCALARBOOLEAN
syn keyword xsMacro PERL_ARGS_ASSERT_SCALARVOID PERL_ARGS_ASSERT_SCAN_BIN
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_COMMIT PERL_ARGS_ASSERT_SCAN_CONST
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_FORMLINE
@@ -2116,25 +2391,31 @@ syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_PAT PERL_ARGS_ASSERT_SCAN_STR
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_SUBST PERL_ARGS_ASSERT_SCAN_TRANS
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_VERSION
syn keyword xsMacro PERL_ARGS_ASSERT_SCAN_VSTRING PERL_ARGS_ASSERT_SCAN_WORD
-syn keyword xsMacro PERL_ARGS_ASSERT_SCREAMINSTR
-syn keyword xsMacro PERL_ARGS_ASSERT_SEARCH_CONST
-syn keyword xsMacro PERL_ARGS_ASSERT_SET_CONTEXT
-syn keyword xsMacro PERL_ARGS_ASSERT_SET_REGCLASS_BIT
-syn keyword xsMacro PERL_ARGS_ASSERT_SET_REGCLASS_BIT_FOLD
+syn keyword xsMacro PERL_ARGS_ASSERT_SEARCH_CONST PERL_ARGS_ASSERT_SETDEFOUT
+syn keyword xsMacro PERL_ARGS_ASSERT_SET_ANYOF_ARG
+syn keyword xsMacro PERL_ARGS_ASSERT_SET_CONTEXT PERL_ARGS_ASSERT_SET_PADLIST
syn keyword xsMacro PERL_ARGS_ASSERT_SHARE_HEK
syn keyword xsMacro PERL_ARGS_ASSERT_SHARE_HEK_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_SHOULD_WARN_NL
syn keyword xsMacro PERL_ARGS_ASSERT_SIMPLIFY_SORT PERL_ARGS_ASSERT_SI_DUP
-syn keyword xsMacro PERL_ARGS_ASSERT_SKIPSPACE PERL_ARGS_ASSERT_SKIPSPACE0
-syn keyword xsMacro PERL_ARGS_ASSERT_SKIPSPACE1 PERL_ARGS_ASSERT_SKIPSPACE2
-syn keyword xsMacro PERL_ARGS_ASSERT_SLAB_FREE PERL_ARGS_ASSERT_SLAB_TO_RW
-syn keyword xsMacro PERL_ARGS_ASSERT_SOFTREF2XV PERL_ARGS_ASSERT_SORTCV
-syn keyword xsMacro PERL_ARGS_ASSERT_SORTCV_STACKED
+syn keyword xsMacro PERL_ARGS_ASSERT_SKIPSPACE_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_SLAB_FREE PERL_ARGS_ASSERT_SLAB_TO_RO
+syn keyword xsMacro PERL_ARGS_ASSERT_SLAB_TO_RW PERL_ARGS_ASSERT_SOFTREF2XV
+syn keyword xsMacro PERL_ARGS_ASSERT_SORTCV PERL_ARGS_ASSERT_SORTCV_STACKED
syn keyword xsMacro PERL_ARGS_ASSERT_SORTCV_XSUB PERL_ARGS_ASSERT_SORTSV
syn keyword xsMacro PERL_ARGS_ASSERT_SORTSV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SPACE_JOIN_NAMES_MORTAL
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_ADD_RANGE PERL_ARGS_ASSERT_SSC_AND
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_ANYTHING
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_CLEAR_LOCALE
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_CP_AND PERL_ARGS_ASSERT_SSC_FINALIZE
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_INIT
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_INTERSECTION
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_IS_ANYTHING
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_IS_CP_POSIXL_INIT
+syn keyword xsMacro PERL_ARGS_ASSERT_SSC_OR PERL_ARGS_ASSERT_SSC_UNION
syn keyword xsMacro PERL_ARGS_ASSERT_SS_DUP PERL_ARGS_ASSERT_STACK_GROW
syn keyword xsMacro PERL_ARGS_ASSERT_START_GLOB
-syn keyword xsMacro PERL_ARGS_ASSERT_STASHPV_HVNAME_MATCH
syn keyword xsMacro PERL_ARGS_ASSERT_STDIZE_LOCALE
syn keyword xsMacro PERL_ARGS_ASSERT_STRIP_RETURN
syn keyword xsMacro PERL_ARGS_ASSERT_STR_TO_VERSION
@@ -2143,16 +2424,21 @@ syn keyword xsMacro PERL_ARGS_ASSERT_SUB_CRUSH_DEPTH
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2BOOL_FLAGS PERL_ARGS_ASSERT_SV_2CV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2IO PERL_ARGS_ASSERT_SV_2IUV_COMMON
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_2NUM PERL_ARGS_ASSERT_SV_2PVBYTE
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_2IV PERL_ARGS_ASSERT_SV_2IV_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_2NUM PERL_ARGS_ASSERT_SV_2NV_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PV PERL_ARGS_ASSERT_SV_2PVBYTE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PVBYTE_NOLEN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PVUTF8
syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PVUTF8_NOLEN
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PV_NOLEN
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PV_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_2PV_NOLEN PERL_ARGS_ASSERT_SV_2UV
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_2UV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_ADD_ARENA
syn keyword xsMacro PERL_ARGS_ASSERT_SV_ADD_BACKREF
syn keyword xsMacro PERL_ARGS_ASSERT_SV_BACKOFF PERL_ARGS_ASSERT_SV_BLESS
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPV PERL_ARGS_ASSERT_SV_CATPVF
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVF_MG
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_BUF_TO_RO
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_BUF_TO_RW PERL_ARGS_ASSERT_SV_CATPV
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVF PERL_ARGS_ASSERT_SV_CATPVF_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVF_MG_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVF_NOCONTEXT
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVN
@@ -2161,37 +2447,40 @@ syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPVN_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATPV_MG PERL_ARGS_ASSERT_SV_CATSV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATSV_FLAGS
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATSV_MG PERL_ARGS_ASSERT_SV_CATXMLPV
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATXMLPVN
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATXMLSV
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_CATSV_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CAT_DECODE PERL_ARGS_ASSERT_SV_CHOP
syn keyword xsMacro PERL_ARGS_ASSERT_SV_CLEAR
syn keyword xsMacro PERL_ARGS_ASSERT_SV_COLLXFRM_FLAGS
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_COMPILE_2OP
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_COMPILE_2OP_IS_BROKEN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_COPYPV
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_COPYPV_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DEL_BACKREF
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DERIVED_FROM
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DERIVED_FROM_PV
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DERIVED_FROM_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DERIVED_FROM_SV
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_DOES PERL_ARGS_ASSERT_SV_DOES_PV
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_DOES_PVN PERL_ARGS_ASSERT_SV_DOES_SV
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_DUMP PERL_ARGS_ASSERT_SV_DUP
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_DUP_COMMON
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_DISPLAY PERL_ARGS_ASSERT_SV_DOES
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_DOES_PV PERL_ARGS_ASSERT_SV_DOES_PVN
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_DOES_SV PERL_ARGS_ASSERT_SV_DUMP
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_DUP PERL_ARGS_ASSERT_SV_DUP_COMMON
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DUP_INC
syn keyword xsMacro PERL_ARGS_ASSERT_SV_DUP_INC_MULTIPLE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_EXP_GROW
syn keyword xsMacro PERL_ARGS_ASSERT_SV_FORCE_NORMAL
syn keyword xsMacro PERL_ARGS_ASSERT_SV_FORCE_NORMAL_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_FREE2 PERL_ARGS_ASSERT_SV_GETS
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_GROW PERL_ARGS_ASSERT_SV_INSERT
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_GET_BACKREFS PERL_ARGS_ASSERT_SV_GROW
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_INSERT
syn keyword xsMacro PERL_ARGS_ASSERT_SV_INSERT_FLAGS PERL_ARGS_ASSERT_SV_ISA
syn keyword xsMacro PERL_ARGS_ASSERT_SV_IV PERL_ARGS_ASSERT_SV_I_NCMP
syn keyword xsMacro PERL_ARGS_ASSERT_SV_KILL_BACKREFS
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_LEN_UTF8_NOMG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_MAGIC PERL_ARGS_ASSERT_SV_MAGICEXT
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_MAGICEXT_MGLOB
syn keyword xsMacro PERL_ARGS_ASSERT_SV_NCMP PERL_ARGS_ASSERT_SV_NV
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_ONLY_TAINT_GMAGIC
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_OR_PV_POS_U2B
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_B2U
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_B2U_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_B2U_MIDWAY
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_U2B
syn keyword xsMacro PERL_ARGS_ASSERT_SV_POS_U2B_CACHED
@@ -2245,23 +2534,22 @@ syn keyword xsMacro PERL_ARGS_ASSERT_SV_UTF8_UPGRADE
syn keyword xsMacro PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_FLAGS_GROW
syn keyword xsMacro PERL_ARGS_ASSERT_SV_UV PERL_ARGS_ASSERT_SV_VCATPVF
syn keyword xsMacro PERL_ARGS_ASSERT_SV_VCATPVFN
+syn keyword xsMacro PERL_ARGS_ASSERT_SV_VCATPVFN_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_SV_VCATPVF_MG
syn keyword xsMacro PERL_ARGS_ASSERT_SV_VSETPVF PERL_ARGS_ASSERT_SV_VSETPVFN
syn keyword xsMacro PERL_ARGS_ASSERT_SV_VSETPVF_MG
-syn keyword xsMacro PERL_ARGS_ASSERT_SV_XMLPEEK PERL_ARGS_ASSERT_SWALLOW_BOM
-syn keyword xsMacro PERL_ARGS_ASSERT_SWASH_FETCH PERL_ARGS_ASSERT_SWASH_INIT
+syn keyword xsMacro PERL_ARGS_ASSERT_SWALLOW_BOM PERL_ARGS_ASSERT_SWASH_FETCH
+syn keyword xsMacro PERL_ARGS_ASSERT_SWASH_INIT
+syn keyword xsMacro PERL_ARGS_ASSERT_SWASH_SCAN_LIST_LINE
syn keyword xsMacro PERL_ARGS_ASSERT_SWATCH_GET PERL_ARGS_ASSERT_SYS_INIT
syn keyword xsMacro PERL_ARGS_ASSERT_SYS_INIT3
syn keyword xsMacro PERL_ARGS_ASSERT_SYS_INTERN_DUP
syn keyword xsMacro PERL_ARGS_ASSERT_TAINT_PROPER
syn keyword xsMacro PERL_ARGS_ASSERT_TIED_METHOD
-syn keyword xsMacro PERL_ARGS_ASSERT_TOKENIZE_USE PERL_ARGS_ASSERT_TOKEN_FREE
-syn keyword xsMacro PERL_ARGS_ASSERT_TOKEN_GETMAD PERL_ARGS_ASSERT_TOKEQ
+syn keyword xsMacro PERL_ARGS_ASSERT_TOKENIZE_USE PERL_ARGS_ASSERT_TOKEQ
syn keyword xsMacro PERL_ARGS_ASSERT_TOKEREPORT
syn keyword xsMacro PERL_ARGS_ASSERT_TOO_FEW_ARGUMENTS_PV
-syn keyword xsMacro PERL_ARGS_ASSERT_TOO_FEW_ARGUMENTS_SV
syn keyword xsMacro PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS_PV
-syn keyword xsMacro PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS_SV
syn keyword xsMacro PERL_ARGS_ASSERT_TO_BYTE_SUBSTR
syn keyword xsMacro PERL_ARGS_ASSERT_TO_UNI_LOWER
syn keyword xsMacro PERL_ARGS_ASSERT_TO_UNI_TITLE
@@ -2289,13 +2577,13 @@ syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_MG_LEN_CACHE_UPDATE
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_MG_POS_CACHE_UPDATE
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_TO_BYTES
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_TO_UVCHR
-syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_TO_UVCHR_BUF
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_TO_UVUNI
syn keyword xsMacro PERL_ARGS_ASSERT_UTF8_TO_UVUNI_BUF
-syn keyword xsMacro PERL_ARGS_ASSERT_UTILIZE PERL_ARGS_ASSERT_UVCHR_TO_UTF8
-syn keyword xsMacro PERL_ARGS_ASSERT_UVCHR_TO_UTF8_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_UTILIZE
+syn keyword xsMacro PERL_ARGS_ASSERT_UVOFFUNI_TO_UTF8_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT_UVUNI_TO_UTF8
syn keyword xsMacro PERL_ARGS_ASSERT_UVUNI_TO_UTF8_FLAGS
+syn keyword xsMacro PERL_ARGS_ASSERT_VALIDATE_PROTO
syn keyword xsMacro PERL_ARGS_ASSERT_VALIDATE_SUID
syn keyword xsMacro PERL_ARGS_ASSERT_VALID_UTF8_TO_UVCHR
syn keyword xsMacro PERL_ARGS_ASSERT_VALID_UTF8_TO_UVUNI
@@ -2313,33 +2601,40 @@ syn keyword xsMacro PERL_ARGS_ASSERT_WARN_NOCONTEXT PERL_ARGS_ASSERT_WARN_SV
syn keyword xsMacro PERL_ARGS_ASSERT_WATCH PERL_ARGS_ASSERT_WHICHSIG_PV
syn keyword xsMacro PERL_ARGS_ASSERT_WHICHSIG_PVN
syn keyword xsMacro PERL_ARGS_ASSERT_WHICHSIG_SV
+syn keyword xsMacro PERL_ARGS_ASSERT_WIN32_CROAK_NOT_IMPLEMENTED
syn keyword xsMacro PERL_ARGS_ASSERT_WITH_QUEUED_ERRORS
syn keyword xsMacro PERL_ARGS_ASSERT_WRAP_OP_CHECKER
syn keyword xsMacro PERL_ARGS_ASSERT_WRITE_TO_STDERR
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_ATTR
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_FORM
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_INDENT
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_PACKSUBS
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_PACKSUBS_PERL
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_SUB
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_SUB_PERL
-syn keyword xsMacro PERL_ARGS_ASSERT_XMLDUMP_VINDENT
-syn keyword xsMacro PERL_ARGS_ASSERT_XS_APIVERSION_BOOTCHECK
+syn keyword xsMacro PERL_ARGS_ASSERT_XS_HANDSHAKE
syn keyword xsMacro PERL_ARGS_ASSERT_XS_VERSION_BOOTCHECK
syn keyword xsMacro PERL_ARGS_ASSERT_YYERROR PERL_ARGS_ASSERT_YYERROR_PV
syn keyword xsMacro PERL_ARGS_ASSERT_YYERROR_PVN PERL_ARGS_ASSERT_YYWARN
syn keyword xsMacro PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT__CORE_SWASH_INIT
+syn keyword xsMacro PERL_ARGS_ASSERT__GET_REGCLASS_NONBITMAP_DATA
+syn keyword xsMacro PERL_ARGS_ASSERT__GET_SWASH_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_ARRAY_INIT
+syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_CONTAINS_CP
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_CONTENTS
+syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_DUMP
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_INTERSECTION_MAYBE_COMPLEMENT_2ND
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_INVERT
-syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_INVERT_PROP
+syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_LEN
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_POPULATE_SWATCH
+syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_SEARCH
syn keyword xsMacro PERL_ARGS_ASSERT__INVLIST_UNION_MAYBE_COMPLEMENT_2ND
-syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_QUOTEMETA
-syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8__PERL_IDSTART
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_CHAR_SLOW
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_FOO
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_IDCONT
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_IDSTART
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_MARK
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_PERL_IDCONT
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_XIDCONT
+syn keyword xsMacro PERL_ARGS_ASSERT__IS_UTF8_XIDSTART
+syn keyword xsMacro PERL_ARGS_ASSERT__MAKE_EXACTF_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT__NEW_INVLIST_C_ARRAY
+syn keyword xsMacro PERL_ARGS_ASSERT__SETUP_CANNED_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT__SWASH_INVERSION_HASH
syn keyword xsMacro PERL_ARGS_ASSERT__SWASH_TO_INVLIST
syn keyword xsMacro PERL_ARGS_ASSERT__TO_FOLD_LATIN1
@@ -2350,59 +2645,62 @@ syn keyword xsMacro PERL_ARGS_ASSERT__TO_UTF8_LOWER_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT__TO_UTF8_TITLE_FLAGS
syn keyword xsMacro PERL_ARGS_ASSERT__TO_UTF8_UPPER_FLAGS PERL_ASYNC_CHECK
syn keyword xsMacro PERL_BITFIELD16 PERL_BITFIELD32 PERL_BITFIELD8
-syn keyword xsMacro PERL_CALLCONV PERL_CHECK_INITED PERL_CKDEF PERL_DEB
-syn keyword xsMacro PERL_DEBUG PERL_DEBUG_PAD PERL_DEBUG_PAD_ZERO
+syn keyword xsMacro PERL_CALLCONV PERL_CALLCONV_NO_RET PERL_CHECK_INITED
+syn keyword xsMacro PERL_CKDEF PERL_DEB PERL_DEB2 PERL_DEBUG PERL_DEBUG_PAD
+syn keyword xsMacro PERL_DEBUG_PAD_ZERO PERL_DECIMAL_VERSION
syn keyword xsMacro PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
-syn keyword xsMacro PERL_DONT_CREATE_GVSV
+syn keyword xsMacro PERL_DONT_CREATE_GVSV PERL_DRAND48_QUAD
syn keyword xsMacro PERL_ENABLE_EXPERIMENTAL_REGEX_OPTIMISATIONS
syn keyword xsMacro PERL_ENABLE_EXTENDED_TRIE_OPTIMISATION
syn keyword xsMacro PERL_ENABLE_POSITIVE_ASSERTION_STUDY
-syn keyword xsMacro PERL_ENABLE_TRIE_OPTIMISATION PERL_EXIT_DESTRUCT_END
-syn keyword xsMacro PERL_EXIT_EXPECTED PERL_EXPORT_C PERL_FILE_IS_ABSOLUTE
-syn keyword xsMacro PERL_FILTER_EXISTS PERL_FLUSHALL_FOR_CHILD PERL_FPU_INIT
-syn keyword xsMacro PERL_FPU_POST_EXEC PERL_FPU_PRE_EXEC PERL_FS_VERSION
-syn keyword xsMacro PERL_FS_VER_FMT PERL_GCC_BRACE_GROUPS_FORBIDDEN
-syn keyword xsMacro PERL_GET_CONTEXT PERL_GET_INTERP PERL_GET_THX
-syn keyword xsMacro PERL_GET_VARS PERL_GIT_UNPUSHED_COMMITS
-syn keyword xsMacro PERL_GLOBAL_STRUCT PERL_GPROF_MONCONTROL PERL_HASH
-syn keyword xsMacro PERL_HASH_INTERNAL PERL_HASH_INTERNAL_ PERL_HASH_SEED
-syn keyword xsMacro PERL_HV_ARRAY_ALLOC_BYTES PERL_IMPLICIT_CONTEXT
-syn keyword xsMacro PERL_INTERPRETER_SIZE_UPTO_MEMBER PERL_INT_MAX
-syn keyword xsMacro PERL_INT_MIN PERL_LOADMOD_DENY PERL_LOADMOD_IMPORT_OPS
-syn keyword xsMacro PERL_LOADMOD_NOIMPORT PERL_LONG_MAX PERL_LONG_MIN
-syn keyword xsMacro PERL_MALLOC_WRAP PERL_MG_UFUNC PERL_MY_SNPRINTF_GUARDED
-syn keyword xsMacro PERL_MY_VSNPRINTF_GUARDED PERL_NEED_MY_BETOH16
-syn keyword xsMacro PERL_NEED_MY_BETOH32 PERL_NEED_MY_BETOHI
-syn keyword xsMacro PERL_NEED_MY_BETOHL PERL_NEED_MY_BETOHS
-syn keyword xsMacro PERL_NEED_MY_HTOBE16 PERL_NEED_MY_HTOBE32
-syn keyword xsMacro PERL_NEED_MY_HTOBEI PERL_NEED_MY_HTOBEL
-syn keyword xsMacro PERL_NEED_MY_HTOBES PERL_NEED_MY_HTOLE16
-syn keyword xsMacro PERL_NEED_MY_HTOLE32 PERL_NEED_MY_HTOLEI
-syn keyword xsMacro PERL_NEED_MY_HTOLEL PERL_NEED_MY_HTOLES
-syn keyword xsMacro PERL_NEED_MY_LETOH16 PERL_NEED_MY_LETOH32
-syn keyword xsMacro PERL_NEED_MY_LETOHI PERL_NEED_MY_LETOHL
-syn keyword xsMacro PERL_NEED_MY_LETOHS PERL_NO_DEV_RANDOM PERL_OBJECT_THIS
-syn keyword xsMacro PERL_OBJECT_THIS_ PERL_PADSEQ_INTRO PERL_PATCHNUM
+syn keyword xsMacro PERL_ENABLE_TRIE_OPTIMISATION PERL_EXIT_ABORT
+syn keyword xsMacro PERL_EXIT_DESTRUCT_END PERL_EXIT_EXPECTED PERL_EXIT_WARN
+syn keyword xsMacro PERL_EXPORT_C PERL_FILE_IS_ABSOLUTE PERL_FILTER_EXISTS
+syn keyword xsMacro PERL_FLUSHALL_FOR_CHILD PERL_FPU_INIT PERL_FPU_POST_EXEC
+syn keyword xsMacro PERL_FPU_PRE_EXEC PERL_FS_VERSION PERL_FS_VER_FMT
+syn keyword xsMacro PERL_GCC_BRACE_GROUPS_FORBIDDEN PERL_GET_CONTEXT
+syn keyword xsMacro PERL_GET_INTERP PERL_GET_THX PERL_GET_VARS
+syn keyword xsMacro PERL_GIT_UNPUSHED_COMMITS PERL_GLOBAL_STRUCT
+syn keyword xsMacro PERL_GPROF_MONCONTROL PERL_HASH PERL_HASH_DEFAULT_HvMAX
+syn keyword xsMacro PERL_HASH_FUNC PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
+syn keyword xsMacro PERL_HASH_INTERNAL PERL_HASH_ITER_BUCKET
+syn keyword xsMacro PERL_HASH_RANDOMIZE_KEYS PERL_HASH_SEED
+syn keyword xsMacro PERL_HASH_SEED_BYTES PERL_HASH_WITH_SEED
+syn keyword xsMacro PERL_HV_ALLOC_AUX_SIZE PERL_HV_ARRAY_ALLOC_BYTES
+syn keyword xsMacro PERL_IMPLICIT_CONTEXT PERL_INTERPRETER_SIZE_UPTO_MEMBER
+syn keyword xsMacro PERL_INT_MAX PERL_INT_MIN PERL_LOADMOD_DENY
+syn keyword xsMacro PERL_LOADMOD_IMPORT_OPS PERL_LOADMOD_NOIMPORT
+syn keyword xsMacro PERL_LONG_MAX PERL_LONG_MIN PERL_MALLOC_WRAP
+syn keyword xsMacro PERL_MEMORY_DEBUG_HEADER_SIZE PERL_MG_UFUNC
+syn keyword xsMacro PERL_MY_SNPRINTF_GUARDED PERL_MY_SNPRINTF_POST_GUARD
+syn keyword xsMacro PERL_MY_VSNPRINTF_GUARDED PERL_MY_VSNPRINTF_POST_GUARD
+syn keyword xsMacro PERL_NEW_COPY_ON_WRITE PERL_NO_DEV_RANDOM
+syn keyword xsMacro PERL_OBJECT_THIS PERL_OBJECT_THIS_ PERL_PADNAME_MINIMAL
+syn keyword xsMacro PERL_PADSEQ_INTRO PERL_PATCHNUM PERL_POISON_EXPR
syn keyword xsMacro PERL_PPADDR_INITED PERL_PPDEF PERL_PRESERVE_IVUV
syn keyword xsMacro PERL_PRIeldbl PERL_PRIfldbl PERL_PRIgldbl
-syn keyword xsMacro PERL_PV_ESCAPE_ALL PERL_PV_ESCAPE_FIRSTCHAR
-syn keyword xsMacro PERL_PV_ESCAPE_NOBACKSLASH PERL_PV_ESCAPE_NOCLEAR
-syn keyword xsMacro PERL_PV_ESCAPE_NONASCII PERL_PV_ESCAPE_QUOTE
-syn keyword xsMacro PERL_PV_ESCAPE_RE PERL_PV_ESCAPE_UNI
+syn keyword xsMacro PERL_PV_ESCAPE_ALL PERL_PV_ESCAPE_DWIM
+syn keyword xsMacro PERL_PV_ESCAPE_FIRSTCHAR PERL_PV_ESCAPE_NOBACKSLASH
+syn keyword xsMacro PERL_PV_ESCAPE_NOCLEAR PERL_PV_ESCAPE_NONASCII
+syn keyword xsMacro PERL_PV_ESCAPE_QUOTE PERL_PV_ESCAPE_RE PERL_PV_ESCAPE_UNI
syn keyword xsMacro PERL_PV_ESCAPE_UNI_DETECT PERL_PV_PRETTY_DUMP
-syn keyword xsMacro PERL_PV_PRETTY_ELLIPSES PERL_PV_PRETTY_LTGT
-syn keyword xsMacro PERL_PV_PRETTY_NOCLEAR PERL_PV_PRETTY_QUOTE
-syn keyword xsMacro PERL_PV_PRETTY_REGPROP PERL_QUAD_MAX PERL_QUAD_MIN
-syn keyword xsMacro PERL_REENTR_API PERL_REGMATCH_SLAB_SLOTS PERL_REVISION
+syn keyword xsMacro PERL_PV_PRETTY_ELLIPSES PERL_PV_PRETTY_EXACTSIZE
+syn keyword xsMacro PERL_PV_PRETTY_LTGT PERL_PV_PRETTY_NOCLEAR
+syn keyword xsMacro PERL_PV_PRETTY_QUOTE PERL_PV_PRETTY_REGPROP PERL_QUAD_MAX
+syn keyword xsMacro PERL_QUAD_MIN PERL_REENTR_API PERL_REGMATCH_SLAB_SLOTS
+syn keyword xsMacro PERL_RELOCATABLE_INC PERL_REVISION PERL_SAWAMPERSAND
syn keyword xsMacro PERL_SCAN_ALLOW_UNDERSCORES PERL_SCAN_DISALLOW_PREFIX
syn keyword xsMacro PERL_SCAN_GREATER_THAN_UV_MAX PERL_SCAN_SILENT_ILLDIGIT
-syn keyword xsMacro PERL_SCAN_SILENT_NON_PORTABLE PERL_SCNfldbl
-syn keyword xsMacro PERL_SCRIPT_MODE PERL_SET_CONTEXT PERL_SET_INTERP
-syn keyword xsMacro PERL_SET_PHASE PERL_SET_THX PERL_SHORT_MAX PERL_SHORT_MIN
-syn keyword xsMacro PERL_SIGNALS_UNSAFE_FLAG PERL_STACK_OVERFLOW_CHECK
-syn keyword xsMacro PERL_STATIC_INLINE PERL_STRLEN_EXPAND_SHIFT
-syn keyword xsMacro PERL_STRLEN_ROUNDUP PERL_STRLEN_ROUNDUP_QUANTUM
-syn keyword xsMacro PERL_SUBVERSION PERL_SUB_DEPTH_WARN PERL_SYS_INIT
+syn keyword xsMacro PERL_SCAN_SILENT_NON_PORTABLE PERL_SCAN_TRAILING
+syn keyword xsMacro PERL_SCNfldbl PERL_SCRIPT_MODE PERL_SEEN_HV_FUNC_H
+syn keyword xsMacro PERL_SET_CONTEXT PERL_SET_INTERP PERL_SET_PHASE
+syn keyword xsMacro PERL_SET_THX PERL_SHORT_MAX PERL_SHORT_MIN
+syn keyword xsMacro PERL_SIGNALS_UNSAFE_FLAG PERL_SNPRINTF_CHECK
+syn keyword xsMacro PERL_STACK_OVERFLOW_CHECK PERL_STATIC_INLINE
+syn keyword xsMacro PERL_STATIC_INLINE_NO_RET PERL_STATIC_NO_RET
+syn keyword xsMacro PERL_STRLEN_EXPAND_SHIFT PERL_STRLEN_ROUNDUP
+syn keyword xsMacro PERL_STRLEN_ROUNDUP_QUANTUM PERL_SUBVERSION
+syn keyword xsMacro PERL_SUB_DEPTH_WARN PERL_SYS_FPU_INIT PERL_SYS_INIT
syn keyword xsMacro PERL_SYS_INIT3 PERL_SYS_INIT3_BODY PERL_SYS_INIT_BODY
syn keyword xsMacro PERL_SYS_TERM PERL_SYS_TERM_BODY PERL_TARGETARCH
syn keyword xsMacro PERL_UCHAR_MAX PERL_UCHAR_MIN PERL_UINT_MAX PERL_UINT_MIN
@@ -2420,49 +2718,47 @@ syn keyword xsMacro PERL_UNICODE_STD_FLAG PERL_UNICODE_UTF8CACHEASSERT
syn keyword xsMacro PERL_UNICODE_UTF8CACHEASSERT_FLAG
syn keyword xsMacro PERL_UNICODE_WIDESYSCALLS PERL_UNICODE_WIDESYSCALLS_FLAG
syn keyword xsMacro PERL_UNUSED_ARG PERL_UNUSED_CONTEXT PERL_UNUSED_DECL
-syn keyword xsMacro PERL_UNUSED_VAR PERL_UQUAD_MAX PERL_UQUAD_MIN
-syn keyword xsMacro PERL_USES_PL_PIDSTATUS PERL_USE_GCC_BRACE_GROUPS
-syn keyword xsMacro PERL_USHORT_MAX PERL_USHORT_MIN PERL_VERSION
-syn keyword xsMacro PERL_VERSION_STRING PERL_WAIT_FOR_CHILDREN
-syn keyword xsMacro PERL_WARNHOOK_FATAL PERL_WRITE_MSG_TO_CONSOLE
-syn keyword xsMacro PERL_XS_EXPORT_C PHASE_CHANGE_PROBE PHOSTNAME
-syn keyword xsMacro PIPESOCK_MODE PIPE_OPEN_MODE PLUGEXPR PLUGSTMT PLUS
-syn keyword xsMacro PL_ASCII PL_AboveLatin1 PL_Argv PL_Cmd PL_DBcv PL_DBgv
-syn keyword xsMacro PL_DBline PL_DBsignal PL_DBsingle PL_DBsub PL_DBtrace
-syn keyword xsMacro PL_Dir PL_Env PL_Gappctx PL_Gcheck PL_Gcheck_mutex
-syn keyword xsMacro PL_Gcsighandlerp PL_Gcurinterp PL_Gdo_undump
-syn keyword xsMacro PL_Gdollarzero_mutex PL_Gfold_locale PL_Ghints_mutex
-syn keyword xsMacro PL_Gkeyword_plugin PL_Gmalloc_mutex PL_Gmmap_page_size
-syn keyword xsMacro PL_Gmy_ctx_mutex PL_Gmy_cxt_index PL_Gop_mutex PL_Gop_seq
-syn keyword xsMacro PL_Gop_sequence PL_Gperlio_debug_fd PL_Gperlio_fd_refcnt
+syn keyword xsMacro PERL_UNUSED_RESULT PERL_UNUSED_VAR PERL_UQUAD_MAX
+syn keyword xsMacro PERL_UQUAD_MIN PERL_USES_PL_PIDSTATUS
+syn keyword xsMacro PERL_USE_GCC_BRACE_GROUPS PERL_USHORT_MAX PERL_USHORT_MIN
+syn keyword xsMacro PERL_VERSION PERL_VERSION_DECIMAL PERL_VERSION_GE
+syn keyword xsMacro PERL_VERSION_LT PERL_VERSION_STRING
+syn keyword xsMacro PERL_WAIT_FOR_CHILDREN PERL_WARNHOOK_FATAL
+syn keyword xsMacro PERL_WRITE_MSG_TO_CONSOLE PERL_XS_EXPORT_C
+syn keyword xsMacro PHASE_CHANGE_PROBE PHOSTNAME PIPESOCK_MODE PIPE_OPEN_MODE
+syn keyword xsMacro PLUGEXPR PLUGSTMT PLUS PL_AboveLatin1 PL_Argv PL_Cmd
+syn keyword xsMacro PL_DBcontrol PL_DBcv PL_DBgv PL_DBline PL_DBsignal
+syn keyword xsMacro PL_DBsignal_iv PL_DBsingle PL_DBsingle_iv PL_DBsub
+syn keyword xsMacro PL_DBtrace PL_DBtrace_iv PL_Dir PL_Env PL_GCB_invlist
+syn keyword xsMacro PL_Gappctx PL_Gcheck PL_Gcheck_mutex PL_Gcsighandlerp
+syn keyword xsMacro PL_Gcurinterp PL_Gdo_undump PL_Gdollarzero_mutex
+syn keyword xsMacro PL_Gfold_locale PL_Ghash_seed PL_Ghash_seed_set
+syn keyword xsMacro PL_Ghints_mutex PL_Gkeyword_plugin PL_Gmalloc_mutex
+syn keyword xsMacro PL_Gmmap_page_size PL_Gmy_ctx_mutex PL_Gmy_cxt_index
+syn keyword xsMacro PL_Gop_mutex PL_Gop_seq PL_Gop_sequence
+syn keyword xsMacro PL_Gperlio_debug_fd PL_Gperlio_fd_refcnt
syn keyword xsMacro PL_Gperlio_fd_refcnt_size PL_Gperlio_mutex PL_Gppaddr
syn keyword xsMacro PL_Gsh_path PL_Gsig_defaulting PL_Gsig_handlers_initted
syn keyword xsMacro PL_Gsig_ignoring PL_Gsig_trapped PL_Gsigfpe_saved
syn keyword xsMacro PL_Gsv_placeholder PL_Gthr_key PL_Gtimesbase
syn keyword xsMacro PL_Guse_safe_putenv PL_Gveto_cleanup PL_Gwatch_pvx
-syn keyword xsMacro PL_L1Cased PL_L1PosixAlnum PL_L1PosixAlpha
-syn keyword xsMacro PL_L1PosixGraph PL_L1PosixLower PL_L1PosixPrint
-syn keyword xsMacro PL_L1PosixPunct PL_L1PosixUpper PL_L1PosixWord PL_LIO
-syn keyword xsMacro PL_Latin1 PL_Mem PL_MemParse PL_MemShared
-syn keyword xsMacro PL_OP_SLAB_ALLOC PL_OpPtr PL_OpSlab PL_OpSpace
-syn keyword xsMacro PL_PerlSpace PL_PosixAlnum PL_PosixAlpha PL_PosixBlank
-syn keyword xsMacro PL_PosixCntrl PL_PosixDigit PL_PosixGraph PL_PosixLower
-syn keyword xsMacro PL_PosixPrint PL_PosixPunct PL_PosixSpace PL_PosixUpper
-syn keyword xsMacro PL_PosixWord PL_PosixXDigit PL_Proc PL_Sock PL_StdIO
-syn keyword xsMacro PL_Sv PL_VertSpace PL_XPerlSpace PL_XPosixBlank
-syn keyword xsMacro PL_XPosixCntrl PL_XPosixSpace PL_XPosixXDigit PL_Xpv
-syn keyword xsMacro PL_amagic_generation PL_an PL_apiversion PL_appctx
-syn keyword xsMacro PL_argvgv PL_argvout_stack PL_argvoutgv PL_basetime
-syn keyword xsMacro PL_beginav PL_beginav_save PL_blockhooks PL_body_arenas
-syn keyword xsMacro PL_body_roots PL_bodytarget PL_bostr PL_breakable_sub_gen
+syn keyword xsMacro PL_HASH_RAND_BITS_ENABLED PL_HasMultiCharFold PL_InBitmap
+syn keyword xsMacro PL_LIO PL_Latin1 PL_Mem PL_MemParse PL_MemShared
+syn keyword xsMacro PL_NonL1NonFinalFold PL_Posix_ptrs PL_Proc
+syn keyword xsMacro PL_RANDOM_STATE_TYPE PL_SB_invlist PL_Sock PL_StdIO PL_Sv
+syn keyword xsMacro PL_UpperLatin1 PL_WB_invlist PL_XPosix_ptrs PL_Xpv
+syn keyword xsMacro PL_amagic_generation PL_an PL_appctx PL_argvgv
+syn keyword xsMacro PL_argvout_stack PL_argvoutgv PL_basetime PL_beginav
+syn keyword xsMacro PL_beginav_save PL_blockhooks PL_body_arenas
+syn keyword xsMacro PL_body_roots PL_bodytarget PL_breakable_sub_gen
syn keyword xsMacro PL_check_mutex PL_checkav PL_checkav_save PL_chopset
syn keyword xsMacro PL_clocktick PL_collation_ix PL_collation_name
syn keyword xsMacro PL_collation_standard PL_collxfrm_base PL_collxfrm_mult
syn keyword xsMacro PL_colors PL_colorset PL_compcv PL_compiling PL_comppad
syn keyword xsMacro PL_comppad_name PL_comppad_name_fill
-syn keyword xsMacro PL_comppad_name_floor PL_cop_seqmax PL_cryptseen
-syn keyword xsMacro PL_cshlen PL_csighandlerp PL_curcop PL_curcopdb
-syn keyword xsMacro PL_curinterp PL_curpad PL_curpm PL_curstack
+syn keyword xsMacro PL_comppad_name_floor PL_constpadix PL_cop_seqmax
+syn keyword xsMacro PL_cryptseen PL_cshlen PL_csighandlerp PL_curcop
+syn keyword xsMacro PL_curcopdb PL_curinterp PL_curpad PL_curpm PL_curstack
syn keyword xsMacro PL_curstackinfo PL_curstash PL_curstname
syn keyword xsMacro PL_custom_op_descs PL_custom_op_names PL_custom_ops
syn keyword xsMacro PL_cv_has_eval PL_dbargs PL_debstash PL_debug
@@ -2475,133 +2771,139 @@ syn keyword xsMacro PL_dumpindent PL_e_script PL_efloatbuf PL_efloatsize
syn keyword xsMacro PL_encoding PL_endav PL_envgv PL_errgv PL_errors
syn keyword xsMacro PL_eval_root PL_eval_start PL_evalseq PL_exit_flags
syn keyword xsMacro PL_exitlist PL_exitlistlen PL_fdpid PL_filemode
-syn keyword xsMacro PL_firstgv PL_forkprocess PL_formfeed PL_formtarget
-syn keyword xsMacro PL_generation PL_gensym PL_glob_index PL_globalstash
-syn keyword xsMacro PL_globhook PL_hash_seed PL_hintgv PL_hints
-syn keyword xsMacro PL_hints_mutex PL_hv_fetch_ent_mh PL_in_clean_all
-syn keyword xsMacro PL_in_clean_objs PL_in_eval PL_in_load_module PL_incgv
+syn keyword xsMacro PL_firstgv PL_forkprocess PL_formtarget PL_generation
+syn keyword xsMacro PL_gensym PL_globalstash PL_globhook PL_hash_rand_bits
+syn keyword xsMacro PL_hash_rand_bits_enabled PL_hash_seed PL_hash_seed_set
+syn keyword xsMacro PL_hintgv PL_hints PL_hints_mutex PL_hv_fetch_ent_mh
+syn keyword xsMacro PL_in_clean_all PL_in_clean_objs PL_in_eval
+syn keyword xsMacro PL_in_load_module PL_in_utf8_CTYPE_locale PL_incgv
syn keyword xsMacro PL_initav PL_inplace PL_isarev PL_keyword_plugin
syn keyword xsMacro PL_known_layers PL_last_in_gv PL_last_swash_hv
syn keyword xsMacro PL_last_swash_key PL_last_swash_klen PL_last_swash_slen
syn keyword xsMacro PL_last_swash_tmps PL_lastfd PL_lastgotoprobe
-syn keyword xsMacro PL_laststatval PL_laststype PL_localizing PL_localpatches
-syn keyword xsMacro PL_lockhook PL_madskills PL_main_cv PL_main_root
+syn keyword xsMacro PL_laststatval PL_laststype PL_lex_encoding PL_localizing
+syn keyword xsMacro PL_localpatches PL_lockhook PL_main_cv PL_main_root
syn keyword xsMacro PL_main_start PL_mainstack PL_malloc_mutex PL_markstack
syn keyword xsMacro PL_markstack_max PL_markstack_ptr PL_max_intro_pending
syn keyword xsMacro PL_maxo PL_maxsysfd PL_memory_debug_header PL_mess_sv
syn keyword xsMacro PL_min_intro_pending PL_minus_E PL_minus_F PL_minus_a
syn keyword xsMacro PL_minus_c PL_minus_l PL_minus_n PL_minus_p
syn keyword xsMacro PL_mmap_page_size PL_modcount PL_modglobal
-syn keyword xsMacro PL_my_ctx_mutex PL_my_cxt_index PL_my_cxt_keys
-syn keyword xsMacro PL_my_cxt_list PL_my_cxt_size PL_nomemok PL_nrs
+syn keyword xsMacro PL_multideref_pc PL_my_ctx_mutex PL_my_cxt_index
+syn keyword xsMacro PL_my_cxt_keys PL_my_cxt_list PL_my_cxt_size PL_nomemok
syn keyword xsMacro PL_numeric_local PL_numeric_name PL_numeric_radix_sv
-syn keyword xsMacro PL_numeric_standard PL_ofsgv PL_oldname PL_op PL_op_mask
-syn keyword xsMacro PL_op_mutex PL_op_seq PL_op_sequence PL_opfreehook
-syn keyword xsMacro PL_opsave PL_origalen PL_origargc PL_origargv
-syn keyword xsMacro PL_origenviron PL_origfilename PL_ors_sv PL_osname
-syn keyword xsMacro PL_pad_reset_pending PL_padix PL_padix_floor PL_parser
-syn keyword xsMacro PL_patchlevel PL_peepp PL_perl_destruct_level PL_perldb
-syn keyword xsMacro PL_perlio PL_perlio_debug_fd PL_perlio_fd_refcnt
-syn keyword xsMacro PL_perlio_fd_refcnt_size PL_perlio_mutex PL_phase
-syn keyword xsMacro PL_pidstatus PL_preambleav PL_profiledata PL_psig_name
-syn keyword xsMacro PL_psig_pend PL_psig_ptr PL_ptr_table PL_reentrant_buffer
-syn keyword xsMacro PL_reentrant_retint PL_reg_curpm PL_reg_eval_set
-syn keyword xsMacro PL_reg_flags PL_reg_leftiter PL_reg_magic
-syn keyword xsMacro PL_reg_match_utf8 PL_reg_maxiter PL_reg_oldcurpm
-syn keyword xsMacro PL_reg_oldpos PL_reg_oldsaved PL_reg_oldsavedlen
-syn keyword xsMacro PL_reg_poscache PL_reg_poscache_size PL_reg_start_tmp
-syn keyword xsMacro PL_reg_start_tmpl PL_reg_starttry PL_reg_state
-syn keyword xsMacro PL_regdummy PL_regeol PL_regex_pad PL_regex_padav
-syn keyword xsMacro PL_reginput PL_reginterp_cnt PL_registered_mros
-syn keyword xsMacro PL_reglastcloseparen PL_reglastparen PL_regmatch_slab
-syn keyword xsMacro PL_regmatch_state PL_regoffs PL_regsize PL_rehash_seed
-syn keyword xsMacro PL_rehash_seed_set PL_replgv PL_restartjmpenv
-syn keyword xsMacro PL_restartop PL_rpeepp PL_rs PL_runops PL_savebegin
-syn keyword xsMacro PL_savestack PL_savestack_ix PL_savestack_max
+syn keyword xsMacro PL_numeric_standard PL_ofsgv PL_oldname PL_op
+syn keyword xsMacro PL_op_exec_cnt PL_op_mask PL_op_mutex PL_op_seq
+syn keyword xsMacro PL_op_sequence PL_opfreehook PL_origalen PL_origargc
+syn keyword xsMacro PL_origargv PL_origenviron PL_origfilename PL_ors_sv
+syn keyword xsMacro PL_osname PL_pad_reset_pending PL_padix PL_padix_floor
+syn keyword xsMacro PL_padlist_generation PL_padname_const PL_padname_undef
+syn keyword xsMacro PL_parser PL_patchlevel PL_peepp PL_perl_destruct_level
+syn keyword xsMacro PL_perldb PL_perlio PL_perlio_debug_fd
+syn keyword xsMacro PL_perlio_fd_refcnt PL_perlio_fd_refcnt_size
+syn keyword xsMacro PL_perlio_mutex PL_phase PL_pidstatus PL_preambleav
+syn keyword xsMacro PL_profiledata PL_psig_name PL_psig_pend PL_psig_ptr
+syn keyword xsMacro PL_ptr_table PL_random_state PL_reentrant_buffer
+syn keyword xsMacro PL_reentrant_retint PL_reg_curpm PL_regex_pad
+syn keyword xsMacro PL_regex_padav PL_registered_mros PL_regmatch_slab
+syn keyword xsMacro PL_regmatch_state PL_replgv PL_restartjmpenv PL_restartop
+syn keyword xsMacro PL_rpeepp PL_rs PL_runops PL_savebegin PL_savestack
+syn keyword xsMacro PL_savestack_ix PL_savestack_max PL_sawalias
syn keyword xsMacro PL_sawampersand PL_scopestack PL_scopestack_ix
syn keyword xsMacro PL_scopestack_max PL_scopestack_name PL_secondgv
syn keyword xsMacro PL_sharehook PL_sig_defaulting PL_sig_handlers_initted
syn keyword xsMacro PL_sig_ignoring PL_sig_pending PL_sig_trapped
syn keyword xsMacro PL_sigfpe_saved PL_sighandlerp PL_signalhook PL_signals
-syn keyword xsMacro PL_slab_count PL_slabs PL_sort_RealCmp PL_sortcop
-syn keyword xsMacro PL_sortstash PL_splitstr PL_srand_called PL_stack_base
-syn keyword xsMacro PL_stack_max PL_stack_sp PL_start_env PL_stashcache
-syn keyword xsMacro PL_statbuf PL_statcache PL_statgv PL_statname
-syn keyword xsMacro PL_statusvalue PL_statusvalue_posix PL_statusvalue_vms
-syn keyword xsMacro PL_stderrgv PL_stdingv PL_strtab PL_sub_generation
-syn keyword xsMacro PL_subline PL_subname PL_sv_arenaroot PL_sv_count
-syn keyword xsMacro PL_sv_no PL_sv_objcount PL_sv_placeholder PL_sv_root
-syn keyword xsMacro PL_sv_serial PL_sv_undef PL_sv_yes PL_sys_intern
-syn keyword xsMacro PL_taint_warn PL_tainted PL_tainting PL_thr_key
-syn keyword xsMacro PL_threadhook PL_timesbase PL_timesbuf PL_tmps_floor
-syn keyword xsMacro PL_tmps_ix PL_tmps_max PL_tmps_stack PL_top_env
-syn keyword xsMacro PL_toptarget PL_unicode PL_unitcheckav
+syn keyword xsMacro PL_sort_RealCmp PL_sortcop PL_sortstash PL_splitstr
+syn keyword xsMacro PL_srand_called PL_stack_base PL_stack_max PL_stack_sp
+syn keyword xsMacro PL_start_env PL_stashcache PL_stashpad PL_stashpadix
+syn keyword xsMacro PL_stashpadmax PL_statbuf PL_statcache PL_statgv
+syn keyword xsMacro PL_statname PL_statusvalue PL_statusvalue_posix
+syn keyword xsMacro PL_statusvalue_vms PL_stderrgv PL_stdingv PL_strtab
+syn keyword xsMacro PL_sub_generation PL_subline PL_subname PL_sv_arenaroot
+syn keyword xsMacro PL_sv_consts PL_sv_count PL_sv_no PL_sv_placeholder
+syn keyword xsMacro PL_sv_root PL_sv_serial PL_sv_undef PL_sv_yes
+syn keyword xsMacro PL_sys_intern PL_taint_warn PL_tainted PL_tainting
+syn keyword xsMacro PL_thr_key PL_threadhook PL_timesbase PL_timesbuf
+syn keyword xsMacro PL_tmps_floor PL_tmps_ix PL_tmps_max PL_tmps_stack
+syn keyword xsMacro PL_top_env PL_toptarget PL_unicode PL_unitcheckav
syn keyword xsMacro PL_unitcheckav_save PL_unlockhook PL_unsafe
-syn keyword xsMacro PL_use_safe_putenv PL_utf8_X_L PL_utf8_X_LV PL_utf8_X_LVT
-syn keyword xsMacro PL_utf8_X_LV_LVT_V PL_utf8_X_T PL_utf8_X_V
-syn keyword xsMacro PL_utf8_X_begin PL_utf8_X_extend PL_utf8_X_non_hangul
-syn keyword xsMacro PL_utf8_X_prepend PL_utf8_alnum PL_utf8_alpha
-syn keyword xsMacro PL_utf8_digit PL_utf8_foldable PL_utf8_foldclosures
-syn keyword xsMacro PL_utf8_graph PL_utf8_idcont PL_utf8_idstart
-syn keyword xsMacro PL_utf8_lower PL_utf8_mark PL_utf8_perl_idstart
-syn keyword xsMacro PL_utf8_print PL_utf8_punct PL_utf8_quotemeta
-syn keyword xsMacro PL_utf8_space PL_utf8_tofold PL_utf8_tolower
-syn keyword xsMacro PL_utf8_totitle PL_utf8_toupper PL_utf8_upper
-syn keyword xsMacro PL_utf8_xdigit PL_utf8_xidcont PL_utf8_xidstart
-syn keyword xsMacro PL_utf8cache PL_utf8locale PL_veto_cleanup PL_vtbl_amagic
-syn keyword xsMacro PL_vtbl_amagicelem PL_vtbl_arylen PL_vtbl_arylen_p
-syn keyword xsMacro PL_vtbl_backref PL_vtbl_bm PL_vtbl_collxfrm
-syn keyword xsMacro PL_vtbl_dbline PL_vtbl_defelem PL_vtbl_env
-syn keyword xsMacro PL_vtbl_envelem PL_vtbl_fm PL_vtbl_hints
-syn keyword xsMacro PL_vtbl_hintselem PL_vtbl_isa PL_vtbl_isaelem
-syn keyword xsMacro PL_vtbl_mglob PL_vtbl_nkeys PL_vtbl_ovrld PL_vtbl_pack
-syn keyword xsMacro PL_vtbl_packelem PL_vtbl_pos PL_vtbl_regdata
-syn keyword xsMacro PL_vtbl_regdatum PL_vtbl_regexp PL_vtbl_sigelem
-syn keyword xsMacro PL_vtbl_substr PL_vtbl_sv PL_vtbl_taint PL_vtbl_utf8
-syn keyword xsMacro PL_vtbl_uvar PL_vtbl_vec PL_vtbl_vstring PL_warnhook
-syn keyword xsMacro PL_watch_pvx PL_watchaddr PL_watchok PL_xmlfp PMFUNC
-syn keyword xsMacro PM_GETRE PM_SETRE PMf_BASE_SHIFT PMf_COMPILETIME
-syn keyword xsMacro PMf_CONST PMf_CONTINUE PMf_EVAL PMf_EXTENDED PMf_FOLD
-syn keyword xsMacro PMf_GLOBAL PMf_KEEP PMf_KEEPCOPY PMf_MAYBE_CONST
-syn keyword xsMacro PMf_MULTILINE PMf_NONDESTRUCT PMf_ONCE PMf_RETAINT
-syn keyword xsMacro PMf_SINGLELINE PMf_USED POPBLOCK POPEVAL POPFORMAT
+syn keyword xsMacro PL_use_safe_putenv PL_utf8_charname_begin
+syn keyword xsMacro PL_utf8_charname_continue PL_utf8_foldable
+syn keyword xsMacro PL_utf8_foldclosures PL_utf8_idcont PL_utf8_idstart
+syn keyword xsMacro PL_utf8_mark PL_utf8_perl_idcont PL_utf8_perl_idstart
+syn keyword xsMacro PL_utf8_swash_ptrs PL_utf8_tofold PL_utf8_tolower
+syn keyword xsMacro PL_utf8_totitle PL_utf8_toupper PL_utf8_xidcont
+syn keyword xsMacro PL_utf8_xidstart PL_utf8cache PL_utf8locale
+syn keyword xsMacro PL_veto_cleanup PL_vtbl_arylen PL_vtbl_arylen_p
+syn keyword xsMacro PL_vtbl_backref PL_vtbl_bm PL_vtbl_checkcall
+syn keyword xsMacro PL_vtbl_collxfrm PL_vtbl_dbline PL_vtbl_debugvar
+syn keyword xsMacro PL_vtbl_defelem PL_vtbl_env PL_vtbl_envelem PL_vtbl_fm
+syn keyword xsMacro PL_vtbl_hints PL_vtbl_hintselem PL_vtbl_isa
+syn keyword xsMacro PL_vtbl_isaelem PL_vtbl_lvref PL_vtbl_mglob PL_vtbl_nkeys
+syn keyword xsMacro PL_vtbl_ovrld PL_vtbl_pack PL_vtbl_packelem PL_vtbl_pos
+syn keyword xsMacro PL_vtbl_regdata PL_vtbl_regdatum PL_vtbl_regexp
+syn keyword xsMacro PL_vtbl_sigelem PL_vtbl_substr PL_vtbl_sv PL_vtbl_taint
+syn keyword xsMacro PL_vtbl_utf8 PL_vtbl_uvar PL_vtbl_vec PL_warn_locale
+syn keyword xsMacro PL_warnhook PL_watch_pvx PL_watchaddr PL_watchok
+syn keyword xsMacro PL_xsubfilename PMFUNC PM_GETRE PM_SETRE PMf_BASE_SHIFT
+syn keyword xsMacro PMf_CHARSET PMf_CODELIST_PRIVATE PMf_CONST PMf_CONTINUE
+syn keyword xsMacro PMf_EVAL PMf_EXTENDED PMf_EXTENDED_MORE PMf_FOLD
+syn keyword xsMacro PMf_GLOBAL PMf_HAS_CV PMf_IS_QR PMf_KEEP PMf_KEEPCOPY
+syn keyword xsMacro PMf_MULTILINE PMf_NOCAPTURE PMf_NONDESTRUCT PMf_ONCE
+syn keyword xsMacro PMf_RETAINT PMf_SINGLELINE PMf_SPLIT PMf_STRICT PMf_USED
+syn keyword xsMacro PMf_USE_RE_EVAL PNf PNfARG POPBLOCK POPEVAL POPFORMAT
syn keyword xsMacro POPLOOP POPMARK POPSTACK POPSTACK_TO POPSUB POPSUBST
syn keyword xsMacro POP_MULTICALL POP_SAVEARRAY POPi POPl POPn POPp POPpbytex
-syn keyword xsMacro POPpconstx POPpx POPq POPs POPu POPul POPuq POSTDEC
-syn keyword xsMacro POSTINC POWOP PP PREC_LOW PREDEC PREGf_CUTGROUP_SEEN
-syn keyword xsMacro PREGf_IMPLICIT PREGf_NAUGHTY PREGf_SKIP
-syn keyword xsMacro PREGf_VERBARG_SEEN PREINC PREVOPER PRINTF_FORMAT_NULL_OK
-syn keyword xsMacro PRIVATEREF PRIVLIB PRIVLIB_EXP PRIVSHIFT PROCSELFEXE_PATH
-syn keyword xsMacro PRUNE PSEUDO PTHREAD_ATFORK PTHREAD_ATTR_SETDETACHSTATE
+syn keyword xsMacro POPpconstx POPpx POPs POPu POPul POSIXA POSIXD POSIXL
+syn keyword xsMacro POSIXU POSIX_CC_COUNT POSIX_SWASH_COUNT POSTDEC POSTINC
+syn keyword xsMacro POSTJOIN POWOP PP PREC_LOW PREDEC PREGf_ANCH
+syn keyword xsMacro PREGf_ANCH_GPOS PREGf_ANCH_MBOL PREGf_ANCH_SBOL
+syn keyword xsMacro PREGf_CANY_SEEN PREGf_CUTGROUP_SEEN PREGf_GPOS_FLOAT
+syn keyword xsMacro PREGf_GPOS_SEEN PREGf_IMPLICIT PREGf_NAUGHTY PREGf_NOSCAN
+syn keyword xsMacro PREGf_SKIP PREGf_USE_RE_EVAL PREGf_VERBARG_SEEN PREINC
+syn keyword xsMacro PRESCAN_VERSION PREVOPER PRINTF_FORMAT_NULL_OK PRIVATEREF
+syn keyword xsMacro PRIVLIB PRIVLIB_EXP PRIVSHIFT PROCSELFEXE_PATH PRUNE
+syn keyword xsMacro PSEUDO PTHREAD_ATFORK PTHREAD_ATTR_SETDETACHSTATE
syn keyword xsMacro PTHREAD_CREATE PTHREAD_CREATE_JOINABLE
syn keyword xsMacro PTHREAD_GETSPECIFIC PTHREAD_GETSPECIFIC_INT PTR2IV PTR2NV
syn keyword xsMacro PTR2UV PTR2nat PTR2ul PTRSIZE PTRV PUSHBLOCK PUSHEVAL
syn keyword xsMacro PUSHFORMAT PUSHGIVEN PUSHLOOP_FOR PUSHLOOP_PLAIN PUSHMARK
syn keyword xsMacro PUSHSTACK PUSHSTACKi PUSHSUB PUSHSUBST PUSHSUB_BASE
-syn keyword xsMacro PUSHSUB_DB PUSHTARG PUSHWHEN PUSH_MULTICALL PUSHi
-syn keyword xsMacro PUSHmortal PUSHn PUSHp PUSHs PUSHu PUTBACK PWGECOS
-syn keyword xsMacro PWPASSWD Pause PeRl_CaTiFy PeRl_StGiFy PerlDir_chdir
-syn keyword xsMacro PerlDir_close PerlDir_mapA PerlDir_mapW PerlDir_mkdir
-syn keyword xsMacro PerlDir_open PerlDir_read PerlDir_rewind PerlDir_rmdir
-syn keyword xsMacro PerlDir_seek PerlDir_tell PerlEnv_ENVgetenv
-syn keyword xsMacro PerlEnv_ENVgetenv_len PerlEnv_clearenv
-syn keyword xsMacro PerlEnv_free_childdir PerlEnv_free_childenv
-syn keyword xsMacro PerlEnv_get_child_IO PerlEnv_get_childdir
-syn keyword xsMacro PerlEnv_get_childenv PerlEnv_getenv PerlEnv_getenv_len
-syn keyword xsMacro PerlEnv_lib_path PerlEnv_os_id PerlEnv_putenv
-syn keyword xsMacro PerlEnv_sitelib_path PerlEnv_uname PerlEnv_vendorlib_path
-syn keyword xsMacro PerlIOArg PerlIOBase PerlIONext PerlIOSelf PerlIOValid
-syn keyword xsMacro PerlIO_canset_cnt PerlIO_exportFILE PerlIO_fast_gets
-syn keyword xsMacro PerlIO_fdopen PerlIO_findFILE PerlIO_getc PerlIO_getname
+syn keyword xsMacro PUSHSUB_DB PUSHSUB_GET_LVALUE_MASK PUSHTARG PUSHWHEN
+syn keyword xsMacro PUSH_MULTICALL PUSH_MULTICALL_FLAGS PUSHi PUSHmortal
+syn keyword xsMacro PUSHn PUSHp PUSHs PUSHu PUTBACK PWGECOS PWPASSWD PadARRAY
+syn keyword xsMacro PadMAX PadlistARRAY PadlistMAX PadlistNAMES
+syn keyword xsMacro PadlistNAMESARRAY PadlistNAMESMAX PadlistREFCNT
+syn keyword xsMacro PadnameFLAGS PadnameIsOUR PadnameIsSTATE
+syn keyword xsMacro PadnameIsSTATE_on PadnameLEN PadnameLVALUE
+syn keyword xsMacro PadnameLVALUE_on PadnameOURSTASH PadnameOURSTASH_set
+syn keyword xsMacro PadnameOUTER PadnamePROTOCV PadnamePV PadnameREFCNT
+syn keyword xsMacro PadnameREFCNT_dec PadnameSV PadnameTYPE PadnameTYPE_set
+syn keyword xsMacro PadnameUTF8 PadnamelistARRAY PadnamelistMAX
+syn keyword xsMacro PadnamelistMAXNAMED PadnamelistREFCNT
+syn keyword xsMacro PadnamelistREFCNT_dec Pause PeRl_CaTiFy PeRl_INT64_C
+syn keyword xsMacro PeRl_StGiFy PeRl_UINT64_C PerlDir_chdir PerlDir_close
+syn keyword xsMacro PerlDir_mapA PerlDir_mapW PerlDir_mkdir PerlDir_open
+syn keyword xsMacro PerlDir_read PerlDir_rewind PerlDir_rmdir PerlDir_seek
+syn keyword xsMacro PerlDir_tell PerlEnv_ENVgetenv PerlEnv_ENVgetenv_len
+syn keyword xsMacro PerlEnv_clearenv PerlEnv_free_childdir
+syn keyword xsMacro PerlEnv_free_childenv PerlEnv_get_child_IO
+syn keyword xsMacro PerlEnv_get_childdir PerlEnv_get_childenv PerlEnv_getenv
+syn keyword xsMacro PerlEnv_getenv_len PerlEnv_lib_path PerlEnv_os_id
+syn keyword xsMacro PerlEnv_putenv PerlEnv_sitelib_path PerlEnv_uname
+syn keyword xsMacro PerlEnv_vendorlib_path PerlIOArg PerlIOBase PerlIONext
+syn keyword xsMacro PerlIOSelf PerlIOValid PerlIO_canset_cnt
+syn keyword xsMacro PerlIO_exportFILE PerlIO_fast_gets PerlIO_fdopen
+syn keyword xsMacro PerlIO_findFILE PerlIO_getc PerlIO_getname
syn keyword xsMacro PerlIO_has_base PerlIO_has_cntptr PerlIO_importFILE
syn keyword xsMacro PerlIO_isutf8 PerlIO_open PerlIO_printf PerlIO_putc
syn keyword xsMacro PerlIO_puts PerlIO_releaseFILE PerlIO_reopen
-syn keyword xsMacro PerlIO_rewind PerlIO_sprintf PerlIO_stdoutf
-syn keyword xsMacro PerlIO_tmpfile PerlIO_ungetc PerlIO_vprintf
-syn keyword xsMacro PerlLIO_access PerlLIO_chmod PerlLIO_chown PerlLIO_chsize
-syn keyword xsMacro PerlLIO_close PerlLIO_dup PerlLIO_dup2 PerlLIO_flock
-syn keyword xsMacro PerlLIO_fstat PerlLIO_ioctl PerlLIO_isatty PerlLIO_link
-syn keyword xsMacro PerlLIO_lseek PerlLIO_lstat PerlLIO_mkstemp
+syn keyword xsMacro PerlIO_rewind PerlIO_stdoutf PerlIO_tmpfile PerlIO_ungetc
+syn keyword xsMacro PerlIO_vprintf PerlLIO_access PerlLIO_chmod PerlLIO_chown
+syn keyword xsMacro PerlLIO_chsize PerlLIO_close PerlLIO_dup PerlLIO_dup2
+syn keyword xsMacro PerlLIO_flock PerlLIO_fstat PerlLIO_ioctl PerlLIO_isatty
+syn keyword xsMacro PerlLIO_link PerlLIO_lseek PerlLIO_lstat PerlLIO_mkstemp
syn keyword xsMacro PerlLIO_mktemp PerlLIO_open PerlLIO_open3 PerlLIO_read
syn keyword xsMacro PerlLIO_rename PerlLIO_setmode PerlLIO_stat
syn keyword xsMacro PerlLIO_tmpnam PerlLIO_umask PerlLIO_unlink PerlLIO_utime
@@ -2657,18 +2959,21 @@ syn keyword xsMacro PerlSock_recv PerlSock_recvfrom PerlSock_select
syn keyword xsMacro PerlSock_send PerlSock_sendto PerlSock_sethostent
syn keyword xsMacro PerlSock_setnetent PerlSock_setprotoent
syn keyword xsMacro PerlSock_setservent PerlSock_setsockopt PerlSock_shutdown
-syn keyword xsMacro PerlSock_socket PerlSock_socketpair Perl_assert
-syn keyword xsMacro Perl_atan2 Perl_atof Perl_atof2 Perl_ceil Perl_cos
-syn keyword xsMacro Perl_debug_log Perl_error_log Perl_exp Perl_floor
-syn keyword xsMacro Perl_fmod Perl_fp_class Perl_fp_class_denorm
-syn keyword xsMacro Perl_fp_class_inf Perl_fp_class_nan Perl_fp_class_ndenorm
-syn keyword xsMacro Perl_fp_class_ninf Perl_fp_class_nnorm Perl_fp_class_norm
+syn keyword xsMacro PerlSock_socket PerlSock_socketpair Perl_acos Perl_asin
+syn keyword xsMacro Perl_assert Perl_atan Perl_atan2 Perl_atof Perl_atof2
+syn keyword xsMacro Perl_ceil Perl_cos Perl_cosh Perl_custom_op_xop
+syn keyword xsMacro Perl_debug_log Perl_drand48 Perl_drand48_init
+syn keyword xsMacro Perl_error_log Perl_exp Perl_floor Perl_fmod
+syn keyword xsMacro Perl_fp_class_denorm Perl_fp_class_inf Perl_fp_class_nan
+syn keyword xsMacro Perl_fp_class_ndenorm Perl_fp_class_ninf
+syn keyword xsMacro Perl_fp_class_nnorm Perl_fp_class_norm
syn keyword xsMacro Perl_fp_class_nzero Perl_fp_class_pdenorm
syn keyword xsMacro Perl_fp_class_pinf Perl_fp_class_pnorm
syn keyword xsMacro Perl_fp_class_pzero Perl_fp_class_qnan Perl_fp_class_snan
-syn keyword xsMacro Perl_fp_class_zero Perl_frexp Perl_isfinite Perl_isinf
-syn keyword xsMacro Perl_isnan Perl_log Perl_malloc_good_size Perl_modf
-syn keyword xsMacro Perl_pow Perl_pp_accept Perl_pp_aelemfast_lex
+syn keyword xsMacro Perl_fp_class_zero Perl_free_c_backtrace Perl_frexp
+syn keyword xsMacro Perl_isfinite Perl_isfinitel Perl_isinf Perl_isnan
+syn keyword xsMacro Perl_ldexp Perl_log Perl_log10 Perl_malloc_good_size
+syn keyword xsMacro Perl_modf Perl_pow Perl_pp_accept Perl_pp_aelemfast_lex
syn keyword xsMacro Perl_pp_andassign Perl_pp_avalues Perl_pp_bind
syn keyword xsMacro Perl_pp_bit_xor Perl_pp_chmod Perl_pp_chomp
syn keyword xsMacro Perl_pp_connect Perl_pp_cos Perl_pp_custom
@@ -2694,53 +2999,52 @@ syn keyword xsMacro Perl_pp_kill Perl_pp_lcfirst Perl_pp_lineseq
syn keyword xsMacro Perl_pp_listen Perl_pp_localtime Perl_pp_log
syn keyword xsMacro Perl_pp_lstat Perl_pp_mapstart Perl_pp_msgctl
syn keyword xsMacro Perl_pp_msgget Perl_pp_msgrcv Perl_pp_msgsnd
-syn keyword xsMacro Perl_pp_orassign Perl_pp_padany Perl_pp_pop
-syn keyword xsMacro Perl_pp_postdec Perl_pp_predec Perl_pp_reach Perl_pp_read
-syn keyword xsMacro Perl_pp_recv Perl_pp_regcmaybe Perl_pp_rindex
-syn keyword xsMacro Perl_pp_rv2hv Perl_pp_rvalues Perl_pp_say Perl_pp_scalar
-syn keyword xsMacro Perl_pp_schomp Perl_pp_scope Perl_pp_seek Perl_pp_semop
-syn keyword xsMacro Perl_pp_send Perl_pp_sge Perl_pp_sgrent Perl_pp_sgt
-syn keyword xsMacro Perl_pp_shmctl Perl_pp_shmget Perl_pp_shmread
-syn keyword xsMacro Perl_pp_shutdown Perl_pp_slt Perl_pp_snetent
-syn keyword xsMacro Perl_pp_socket Perl_pp_sprotoent Perl_pp_spwent
-syn keyword xsMacro Perl_pp_sqrt Perl_pp_sservent Perl_pp_ssockopt
-syn keyword xsMacro Perl_pp_symlink Perl_pp_transr Perl_pp_unlink
-syn keyword xsMacro Perl_pp_utime Perl_pp_values Perl_safesysmalloc_size
-syn keyword xsMacro Perl_sharepvn Perl_signbit Perl_sin Perl_sqrt
-syn keyword xsMacro Perl_va_copy PmopSTASH PmopSTASHPV PmopSTASHPV_set
-syn keyword xsMacro PmopSTASH_flags PmopSTASH_flags_set PmopSTASH_free
-syn keyword xsMacro PmopSTASH_set Poison PoisonFree PoisonNew PoisonWith
-syn keyword xsMacro QR_PAT_MODS QUADKIND QUAD_IS_INT QUAD_IS_INT64_T
-syn keyword xsMacro QUAD_IS_LONG QUAD_IS_LONG_LONG QUAD_IS___INT64 QWLIST
-syn keyword xsMacro RANDBITS RANDOM_R_PROTO RD_NODATA READDIR64_R_PROTO
-syn keyword xsMacro READDIR_R_PROTO REENTRANT_PROTO_B_B REENTRANT_PROTO_B_BI
-syn keyword xsMacro REENTRANT_PROTO_B_BW REENTRANT_PROTO_B_CCD
-syn keyword xsMacro REENTRANT_PROTO_B_CCS REENTRANT_PROTO_B_IBI
-syn keyword xsMacro REENTRANT_PROTO_B_IBW REENTRANT_PROTO_B_SB
-syn keyword xsMacro REENTRANT_PROTO_B_SBI REENTRANT_PROTO_I_BI
-syn keyword xsMacro REENTRANT_PROTO_I_BW REENTRANT_PROTO_I_CCSBWR
-syn keyword xsMacro REENTRANT_PROTO_I_CCSD REENTRANT_PROTO_I_CII
-syn keyword xsMacro REENTRANT_PROTO_I_CIISD REENTRANT_PROTO_I_CSBI
-syn keyword xsMacro REENTRANT_PROTO_I_CSBIR REENTRANT_PROTO_I_CSBWR
-syn keyword xsMacro REENTRANT_PROTO_I_CSBWRE REENTRANT_PROTO_I_CSD
-syn keyword xsMacro REENTRANT_PROTO_I_CWISBWRE REENTRANT_PROTO_I_CWISD
-syn keyword xsMacro REENTRANT_PROTO_I_D REENTRANT_PROTO_I_H
-syn keyword xsMacro REENTRANT_PROTO_I_IBI REENTRANT_PROTO_I_IBW
-syn keyword xsMacro REENTRANT_PROTO_I_ICBI REENTRANT_PROTO_I_ICSBWR
-syn keyword xsMacro REENTRANT_PROTO_I_ICSD REENTRANT_PROTO_I_ID
-syn keyword xsMacro REENTRANT_PROTO_I_IISD REENTRANT_PROTO_I_ISBWR
-syn keyword xsMacro REENTRANT_PROTO_I_ISD REENTRANT_PROTO_I_LISBI
-syn keyword xsMacro REENTRANT_PROTO_I_LISD REENTRANT_PROTO_I_LS
+syn keyword xsMacro Perl_pp_nbit_xor Perl_pp_orassign Perl_pp_padany
+syn keyword xsMacro Perl_pp_pop Perl_pp_postdec Perl_pp_predec Perl_pp_reach
+syn keyword xsMacro Perl_pp_read Perl_pp_recv Perl_pp_regcmaybe
+syn keyword xsMacro Perl_pp_rindex Perl_pp_rv2hv Perl_pp_rvalues Perl_pp_say
+syn keyword xsMacro Perl_pp_sbit_xor Perl_pp_scalar Perl_pp_schomp
+syn keyword xsMacro Perl_pp_scope Perl_pp_seek Perl_pp_semop Perl_pp_send
+syn keyword xsMacro Perl_pp_sge Perl_pp_sgrent Perl_pp_sgt Perl_pp_shmctl
+syn keyword xsMacro Perl_pp_shmget Perl_pp_shmread Perl_pp_shutdown
+syn keyword xsMacro Perl_pp_slt Perl_pp_snetent Perl_pp_socket
+syn keyword xsMacro Perl_pp_sprotoent Perl_pp_spwent Perl_pp_sqrt
+syn keyword xsMacro Perl_pp_sservent Perl_pp_ssockopt Perl_pp_symlink
+syn keyword xsMacro Perl_pp_transr Perl_pp_unlink Perl_pp_utime
+syn keyword xsMacro Perl_pp_values Perl_safesysmalloc_size Perl_sharepvn
+syn keyword xsMacro Perl_signbit Perl_sin Perl_sinh Perl_sqrt Perl_strtod
+syn keyword xsMacro Perl_tan Perl_tanh Perl_va_copy PmopSTASH PmopSTASHPV
+syn keyword xsMacro PmopSTASHPV_set PmopSTASH_set Poison PoisonFree PoisonNew
+syn keyword xsMacro PoisonPADLIST PoisonWith QR_PAT_MODS QUADKIND QUAD_IS_INT
+syn keyword xsMacro QUAD_IS_INT64_T QUAD_IS_LONG QUAD_IS_LONG_LONG
+syn keyword xsMacro QUAD_IS___INT64 QUESTION_MARK_CTRL QWLIST RANDBITS
+syn keyword xsMacro RANDOM_R_PROTO RD_NODATA READDIR64_R_PROTO
+syn keyword xsMacro READDIR_R_PROTO READ_XDIGIT REENTRANT_PROTO_B_B
+syn keyword xsMacro REENTRANT_PROTO_B_BI REENTRANT_PROTO_B_BW
+syn keyword xsMacro REENTRANT_PROTO_B_CCD REENTRANT_PROTO_B_CCS
+syn keyword xsMacro REENTRANT_PROTO_B_IBI REENTRANT_PROTO_B_IBW
+syn keyword xsMacro REENTRANT_PROTO_B_SB REENTRANT_PROTO_B_SBI
+syn keyword xsMacro REENTRANT_PROTO_I_BI REENTRANT_PROTO_I_BW
+syn keyword xsMacro REENTRANT_PROTO_I_CCSBWR REENTRANT_PROTO_I_CCSD
+syn keyword xsMacro REENTRANT_PROTO_I_CII REENTRANT_PROTO_I_CIISD
+syn keyword xsMacro REENTRANT_PROTO_I_CSBI REENTRANT_PROTO_I_CSBIR
+syn keyword xsMacro REENTRANT_PROTO_I_CSBWR REENTRANT_PROTO_I_CSBWRE
+syn keyword xsMacro REENTRANT_PROTO_I_CSD REENTRANT_PROTO_I_CWISBWRE
+syn keyword xsMacro REENTRANT_PROTO_I_CWISD REENTRANT_PROTO_I_D
+syn keyword xsMacro REENTRANT_PROTO_I_H REENTRANT_PROTO_I_IBI
+syn keyword xsMacro REENTRANT_PROTO_I_IBW REENTRANT_PROTO_I_ICBI
+syn keyword xsMacro REENTRANT_PROTO_I_ICSBWR REENTRANT_PROTO_I_ICSD
+syn keyword xsMacro REENTRANT_PROTO_I_ID REENTRANT_PROTO_I_IISD
+syn keyword xsMacro REENTRANT_PROTO_I_ISBWR REENTRANT_PROTO_I_ISD
+syn keyword xsMacro REENTRANT_PROTO_I_LISBI REENTRANT_PROTO_I_LISD
syn keyword xsMacro REENTRANT_PROTO_I_SB REENTRANT_PROTO_I_SBI
syn keyword xsMacro REENTRANT_PROTO_I_SBIE REENTRANT_PROTO_I_SBIH
syn keyword xsMacro REENTRANT_PROTO_I_SBIR REENTRANT_PROTO_I_SBWR
syn keyword xsMacro REENTRANT_PROTO_I_SBWRE REENTRANT_PROTO_I_SD
-syn keyword xsMacro REENTRANT_PROTO_I_ST REENTRANT_PROTO_I_St
syn keyword xsMacro REENTRANT_PROTO_I_TISD REENTRANT_PROTO_I_TS
syn keyword xsMacro REENTRANT_PROTO_I_TSBI REENTRANT_PROTO_I_TSBIR
syn keyword xsMacro REENTRANT_PROTO_I_TSBWR REENTRANT_PROTO_I_TSR
syn keyword xsMacro REENTRANT_PROTO_I_TsISBWRE REENTRANT_PROTO_I_UISBWRE
-syn keyword xsMacro REENTRANT_PROTO_I_iS REENTRANT_PROTO_I_lS
syn keyword xsMacro REENTRANT_PROTO_I_uISBWRE REENTRANT_PROTO_S_CBI
syn keyword xsMacro REENTRANT_PROTO_S_CCSBI REENTRANT_PROTO_S_CIISBIE
syn keyword xsMacro REENTRANT_PROTO_S_CSBI REENTRANT_PROTO_S_CSBIE
@@ -2755,160 +3059,201 @@ syn keyword xsMacro REENTRANT_PROTO_V_ID REENTR_H REENTR_MEMZERO REF
syn keyword xsMacro REFCOUNTED_HE_EXISTS REFCOUNTED_HE_KEY_UTF8 REFF REFFA
syn keyword xsMacro REFFL REFFU REFGEN REF_HE_KEY REGMATCH_STATE_MAX
syn keyword xsMacro REGNODE_MAX REGNODE_SIMPLE REGNODE_VARIES REG_ANY
-syn keyword xsMacro REG_INFTY REG_MAGIC REG_SEEN_CANY REG_SEEN_CUTGROUP
-syn keyword xsMacro REG_SEEN_EVAL REG_SEEN_EXACTF_SHARP_S REG_SEEN_GPOS
-syn keyword xsMacro REG_SEEN_LOOKBEHIND REG_SEEN_RECURSE
-syn keyword xsMacro REG_SEEN_RUN_ON_COMMENT REG_SEEN_SANY REG_SEEN_VERBARG
-syn keyword xsMacro REG_SEEN_ZERO_LEN REG_TOP_LEVEL_BRANCHES RELOP RENUM
-syn keyword xsMacro REQUIRE RESTORE_ERRNO RESTORE_NUMERIC_LOCAL
+syn keyword xsMacro REG_CANY_SEEN REG_CUTGROUP_SEEN REG_EXTFLAGS_NAME_SIZE
+syn keyword xsMacro REG_GOSTART_SEEN REG_GPOS_SEEN REG_INFTY
+syn keyword xsMacro REG_INTFLAGS_NAME_SIZE REG_LOOKBEHIND_SEEN REG_MAGIC
+syn keyword xsMacro REG_RECURSE_SEEN REG_RUN_ON_COMMENT_SEEN
+syn keyword xsMacro REG_TOP_LEVEL_BRANCHES_SEEN REG_UNBOUNDED_QUANTIFIER_SEEN
+syn keyword xsMacro REG_UNFOLDED_MULTI_SEEN REG_VERBARG_SEEN
+syn keyword xsMacro REG_ZERO_LEN_SEEN RELOP RENUM REQUIRE RESTORE_ERRNO
+syn keyword xsMacro RESTORE_LC_NUMERIC RESTORE_LC_NUMERIC_STANDARD
+syn keyword xsMacro RESTORE_LC_NUMERIC_UNDERLYING RESTORE_NUMERIC_LOCAL
syn keyword xsMacro RESTORE_NUMERIC_STANDARD RETPUSHNO RETPUSHUNDEF
-syn keyword xsMacro RETPUSHYES RETSETNO RETSETUNDEF RETSETYES RETURN RETURNOP
-syn keyword xsMacro RETURNX RETURN_PROBE REXEC_CHECKED REXEC_COPY_STR
-syn keyword xsMacro REXEC_IGNOREPOS REXEC_NOT_FIRST REXEC_SCREAM
-syn keyword xsMacro RE_DEBUG_COMPILE_DUMP RE_DEBUG_COMPILE_FLAGS
+syn keyword xsMacro RETPUSHYES RETSETNO RETSETTARG RETSETUNDEF RETSETYES
+syn keyword xsMacro RETURN RETURNOP RETURNX RETURN_PROBE REXEC_CHECKED
+syn keyword xsMacro REXEC_COPY_SKIP_POST REXEC_COPY_SKIP_PRE REXEC_COPY_STR
+syn keyword xsMacro REXEC_FAIL_ON_UNDERFLOW REXEC_IGNOREPOS REXEC_NOT_FIRST
+syn keyword xsMacro REXEC_SCREAM RE_DEBUG_COMPILE_DUMP RE_DEBUG_COMPILE_FLAGS
syn keyword xsMacro RE_DEBUG_COMPILE_MASK RE_DEBUG_COMPILE_OPTIMISE
-syn keyword xsMacro RE_DEBUG_COMPILE_PARSE RE_DEBUG_COMPILE_TRIE
-syn keyword xsMacro RE_DEBUG_EXECUTE_INTUIT RE_DEBUG_EXECUTE_MASK
-syn keyword xsMacro RE_DEBUG_EXECUTE_MATCH RE_DEBUG_EXECUTE_TRIE
-syn keyword xsMacro RE_DEBUG_EXTRA_BUFFERS RE_DEBUG_EXTRA_GPOS
-syn keyword xsMacro RE_DEBUG_EXTRA_MASK RE_DEBUG_EXTRA_OFFDEBUG
-syn keyword xsMacro RE_DEBUG_EXTRA_OFFSETS RE_DEBUG_EXTRA_OPTIMISE
-syn keyword xsMacro RE_DEBUG_EXTRA_STACK RE_DEBUG_EXTRA_STATE
-syn keyword xsMacro RE_DEBUG_EXTRA_TRIE RE_DEBUG_FLAG RE_DEBUG_FLAGS
-syn keyword xsMacro RE_PV_COLOR_DECL RE_PV_QUOTED_DECL RE_SV_DUMPLEN
-syn keyword xsMacro RE_SV_ESCAPE RE_SV_TAIL RE_TRACK_PATTERN_OFFSETS
-syn keyword xsMacro RE_TRIE_MAXBUF_INIT RE_TRIE_MAXBUF_NAME RMS_DIR RMS_FAC
-syn keyword xsMacro RMS_FEX RMS_FNF RMS_IFI RMS_ISI RMS_PRV RUNOPS_DEFAULT
-syn keyword xsMacro RV2CVOPCV_MARK_EARLY RV2CVOPCV_RETURN_NAME_GV
-syn keyword xsMacro RX_ANCHORED_SUBSTR RX_ANCHORED_UTF8 RX_BUFF_IDX_FULLMATCH
+syn keyword xsMacro RE_DEBUG_COMPILE_PARSE RE_DEBUG_COMPILE_TEST
+syn keyword xsMacro RE_DEBUG_COMPILE_TRIE RE_DEBUG_EXECUTE_INTUIT
+syn keyword xsMacro RE_DEBUG_EXECUTE_MASK RE_DEBUG_EXECUTE_MATCH
+syn keyword xsMacro RE_DEBUG_EXECUTE_TRIE RE_DEBUG_EXTRA_BUFFERS
+syn keyword xsMacro RE_DEBUG_EXTRA_GPOS RE_DEBUG_EXTRA_MASK
+syn keyword xsMacro RE_DEBUG_EXTRA_OFFDEBUG RE_DEBUG_EXTRA_OFFSETS
+syn keyword xsMacro RE_DEBUG_EXTRA_OPTIMISE RE_DEBUG_EXTRA_STACK
+syn keyword xsMacro RE_DEBUG_EXTRA_STATE RE_DEBUG_EXTRA_TRIE RE_DEBUG_FLAG
+syn keyword xsMacro RE_DEBUG_FLAGS RE_PV_COLOR_DECL RE_PV_QUOTED_DECL
+syn keyword xsMacro RE_SV_DUMPLEN RE_SV_ESCAPE RE_SV_TAIL
+syn keyword xsMacro RE_TRACK_PATTERN_OFFSETS RE_TRIE_MAXBUF_INIT
+syn keyword xsMacro RE_TRIE_MAXBUF_NAME RMS_DIR RMS_FAC RMS_FEX RMS_FNF
+syn keyword xsMacro RMS_IFI RMS_ISI RMS_PRV ROTL32 ROTL64 ROTL_UV
+syn keyword xsMacro RUNOPS_DEFAULT RV2CVOPCV_FLAG_MASK RV2CVOPCV_MARK_EARLY
+syn keyword xsMacro RV2CVOPCV_MAYBE_NAME_GV RV2CVOPCV_RETURN_NAME_GV
+syn keyword xsMacro RV2CVOPCV_RETURN_STUB RX_ANCHORED_SUBSTR RX_ANCHORED_UTF8
+syn keyword xsMacro RX_BUFF_IDX_CARET_FULLMATCH RX_BUFF_IDX_CARET_POSTMATCH
+syn keyword xsMacro RX_BUFF_IDX_CARET_PREMATCH RX_BUFF_IDX_FULLMATCH
syn keyword xsMacro RX_BUFF_IDX_POSTMATCH RX_BUFF_IDX_PREMATCH
-syn keyword xsMacro RX_CHECK_SUBSTR RX_ENGINE RX_EXTFLAGS RX_FLOAT_SUBSTR
-syn keyword xsMacro RX_FLOAT_UTF8 RX_GOFS RX_HAS_CUTGROUP RX_LASTCLOSEPAREN
-syn keyword xsMacro RX_LASTPAREN RX_MATCH_COPIED RX_MATCH_COPIED_off
-syn keyword xsMacro RX_MATCH_COPIED_on RX_MATCH_COPIED_set RX_MATCH_COPY_FREE
-syn keyword xsMacro RX_MATCH_TAINTED RX_MATCH_TAINTED_off RX_MATCH_TAINTED_on
+syn keyword xsMacro RX_CHECK_SUBSTR RX_COMPFLAGS RX_ENGINE RX_EXTFLAGS
+syn keyword xsMacro RX_FLOAT_SUBSTR RX_FLOAT_UTF8 RX_GOFS RX_HAS_CUTGROUP
+syn keyword xsMacro RX_INTFLAGS RX_ISTAINTED RX_LASTCLOSEPAREN RX_LASTPAREN
+syn keyword xsMacro RX_MATCH_COPIED RX_MATCH_COPIED_off RX_MATCH_COPIED_on
+syn keyword xsMacro RX_MATCH_COPIED_set RX_MATCH_COPY_FREE RX_MATCH_TAINTED
+syn keyword xsMacro RX_MATCH_TAINTED_off RX_MATCH_TAINTED_on
syn keyword xsMacro RX_MATCH_TAINTED_set RX_MATCH_UTF8 RX_MATCH_UTF8_off
syn keyword xsMacro RX_MATCH_UTF8_on RX_MATCH_UTF8_set RX_MINLEN RX_MINLENRET
syn keyword xsMacro RX_NPARENS RX_OFFS RX_PRECOMP RX_PRECOMP_const RX_PRELEN
-syn keyword xsMacro RX_REFCNT RX_SAVED_COPY RX_SEEN_EVALS RX_SUBBEG RX_SUBLEN
-syn keyword xsMacro RX_UTF8 RX_WRAPLEN RX_WRAPPED RX_WRAPPED_const RXapif_ALL
-syn keyword xsMacro RXapif_CLEAR RXapif_DELETE RXapif_EXISTS RXapif_FETCH
-syn keyword xsMacro RXapif_FIRSTKEY RXapif_NEXTKEY RXapif_ONE RXapif_REGNAME
-syn keyword xsMacro RXapif_REGNAMES RXapif_REGNAMES_COUNT RXapif_SCALAR
-syn keyword xsMacro RXapif_STORE RXf_ANCH RXf_ANCH_BOL RXf_ANCH_GPOS
-syn keyword xsMacro RXf_ANCH_MBOL RXf_ANCH_SBOL RXf_ANCH_SINGLE
-syn keyword xsMacro RXf_BASE_SHIFT RXf_CANY_SEEN RXf_CHECK_ALL RXf_COPY_DONE
-syn keyword xsMacro RXf_EVAL_SEEN RXf_GPOS_CHECK RXf_GPOS_FLOAT RXf_GPOS_SEEN
-syn keyword xsMacro RXf_INTUIT_TAIL RXf_LOOKBEHIND_SEEN RXf_MATCH_UTF8
-syn keyword xsMacro RXf_NOSCAN RXf_NULL RXf_PMf_CHARSET RXf_PMf_COMPILETIME
-syn keyword xsMacro RXf_PMf_EXTENDED RXf_PMf_FOLD RXf_PMf_KEEPCOPY
-syn keyword xsMacro RXf_PMf_MULTILINE RXf_PMf_SINGLELINE RXf_PMf_STD_PMMOD
-syn keyword xsMacro RXf_PMf_STD_PMMOD_SHIFT RXf_SKIPWHITE RXf_SPLIT
-syn keyword xsMacro RXf_START_ONLY RXf_TAINTED RXf_TAINTED_SEEN
-syn keyword xsMacro RXf_USE_INTUIT RXf_USE_INTUIT_ML RXf_USE_INTUIT_NOML
-syn keyword xsMacro RXf_WHITE RXi_GET RXi_GET_DECL RXi_SET RXp_EXTFLAGS
-syn keyword xsMacro RXp_MATCH_COPIED RXp_MATCH_COPIED_off RXp_MATCH_COPIED_on
-syn keyword xsMacro RXp_MATCH_TAINTED RXp_MATCH_UTF8 RXp_PAREN_NAMES
+syn keyword xsMacro RX_REFCNT RX_SAVED_COPY RX_SUBBEG RX_SUBCOFFSET RX_SUBLEN
+syn keyword xsMacro RX_SUBOFFSET RX_TAINT_on RX_UTF8 RX_WRAPLEN RX_WRAPPED
+syn keyword xsMacro RX_WRAPPED_const RX_ZERO_LEN RXapif_ALL RXapif_CLEAR
+syn keyword xsMacro RXapif_DELETE RXapif_EXISTS RXapif_FETCH RXapif_FIRSTKEY
+syn keyword xsMacro RXapif_NEXTKEY RXapif_ONE RXapif_REGNAME RXapif_REGNAMES
+syn keyword xsMacro RXapif_REGNAMES_COUNT RXapif_SCALAR RXapif_STORE
+syn keyword xsMacro RXf_BASE_SHIFT RXf_CHECK_ALL RXf_COPY_DONE RXf_EVAL_SEEN
+syn keyword xsMacro RXf_INTUIT_TAIL RXf_IS_ANCHORED RXf_MATCH_UTF8
+syn keyword xsMacro RXf_NO_INPLACE_SUBST RXf_NULL RXf_PMf_CHARSET
+syn keyword xsMacro RXf_PMf_COMPILETIME RXf_PMf_EXTENDED
+syn keyword xsMacro RXf_PMf_EXTENDED_MORE RXf_PMf_FLAGCOPYMASK RXf_PMf_FOLD
+syn keyword xsMacro RXf_PMf_KEEPCOPY RXf_PMf_MULTILINE RXf_PMf_NOCAPTURE
+syn keyword xsMacro RXf_PMf_SINGLELINE RXf_PMf_SPLIT RXf_PMf_STD_PMMOD
+syn keyword xsMacro RXf_PMf_STD_PMMOD_SHIFT RXf_PMf_STRICT RXf_SKIPWHITE
+syn keyword xsMacro RXf_SPLIT RXf_START_ONLY RXf_TAINTED RXf_TAINTED_SEEN
+syn keyword xsMacro RXf_UNBOUNDED_QUANTIFIER_SEEN RXf_USE_INTUIT
+syn keyword xsMacro RXf_USE_INTUIT_ML RXf_USE_INTUIT_NOML RXf_WHITE RXi_GET
+syn keyword xsMacro RXi_GET_DECL RXi_SET RXp_COMPFLAGS RXp_EXTFLAGS
+syn keyword xsMacro RXp_INTFLAGS RXp_MATCH_COPIED RXp_MATCH_COPIED_off
+syn keyword xsMacro RXp_MATCH_COPIED_on RXp_MATCH_TAINTED
+syn keyword xsMacro RXp_MATCH_TAINTED_on RXp_MATCH_UTF8 RXp_PAREN_NAMES ReANY
syn keyword xsMacro ReREFCNT_dec ReREFCNT_inc Renew Renewc RsPARA RsRECORD
syn keyword xsMacro RsSIMPLE RsSNARF SAFE_TRIE_NODENUM SANY SAVEADELETE
syn keyword xsMacro SAVEBOOL SAVECLEARSV SAVECOMPILEWARNINGS SAVECOMPPAD
-syn keyword xsMacro SAVECOPFILE SAVECOPFILE_FREE SAVECOPLINE SAVECOPSTASH
+syn keyword xsMacro SAVECOPFILE SAVECOPFILE_FREE SAVECOPLINE
syn keyword xsMacro SAVECOPSTASH_FREE SAVEDELETE SAVEDESTRUCTOR
-syn keyword xsMacro SAVEDESTRUCTOR_X SAVEFREECOPHH SAVEFREEOP SAVEFREEPV
-syn keyword xsMacro SAVEFREESV SAVEGENERICPV SAVEGENERICSV SAVEHDELETE
-syn keyword xsMacro SAVEHINTS SAVEI16 SAVEI32 SAVEI8 SAVEINT SAVEIV SAVELONG
-syn keyword xsMacro SAVEMORTALIZESV SAVEOP SAVEPADSVANDMORTALIZE SAVEPARSER
-syn keyword xsMacro SAVEPPTR SAVESETSVFLAGS SAVESHAREDPV SAVESPTR
-syn keyword xsMacro SAVESTACK_ALLOC_FOR_RE_SAVE_STATE SAVESTACK_CXPOS
-syn keyword xsMacro SAVESTACK_POS SAVESWITCHSTACK SAVETMPS SAVEVPTR
-syn keyword xsMacro SAVE_DEFSV SAVE_ERRNO SAVE_MASK SAVE_TIGHT_SHIFT
-syn keyword xsMacro SAVEf_KEEPOLDELEM SAVEf_SETMAGIC SAVEt_ADELETE
-syn keyword xsMacro SAVEt_AELEM SAVEt_ALLOC SAVEt_APTR SAVEt_AV SAVEt_BOOL
-syn keyword xsMacro SAVEt_CLEARSV SAVEt_COMPILE_WARNINGS SAVEt_COMPPAD
-syn keyword xsMacro SAVEt_DELETE SAVEt_DESTRUCTOR SAVEt_DESTRUCTOR_X
-syn keyword xsMacro SAVEt_FREECOPHH SAVEt_FREEOP SAVEt_FREEPV SAVEt_FREESV
+syn keyword xsMacro SAVEDESTRUCTOR_X SAVEFREECOPHH SAVEFREEOP SAVEFREEPADNAME
+syn keyword xsMacro SAVEFREEPV SAVEFREESV SAVEGENERICPV SAVEGENERICSV
+syn keyword xsMacro SAVEHDELETE SAVEHINTS SAVEI16 SAVEI32 SAVEI8 SAVEINT
+syn keyword xsMacro SAVEIV SAVELONG SAVEMORTALIZESV SAVEOP
+syn keyword xsMacro SAVEPADSVANDMORTALIZE SAVEPARSER SAVEPPTR SAVESETSVFLAGS
+syn keyword xsMacro SAVESHAREDPV SAVESPTR SAVESTACK_POS SAVESWITCHSTACK
+syn keyword xsMacro SAVETMPS SAVEVPTR SAVE_DEFSV SAVE_ERRNO SAVE_MASK
+syn keyword xsMacro SAVE_TIGHT_SHIFT SAVEf_KEEPOLDELEM SAVEf_SETMAGIC
+syn keyword xsMacro SAVEt_ADELETE SAVEt_AELEM SAVEt_ALLOC SAVEt_APTR
+syn keyword xsMacro SAVEt_ARG0_MAX SAVEt_ARG1_MAX SAVEt_ARG2_MAX SAVEt_AV
+syn keyword xsMacro SAVEt_BOOL SAVEt_CLEARPADRANGE SAVEt_CLEARSV
+syn keyword xsMacro SAVEt_COMPILE_WARNINGS SAVEt_COMPPAD SAVEt_DELETE
+syn keyword xsMacro SAVEt_DESTRUCTOR SAVEt_DESTRUCTOR_X SAVEt_FREECOPHH
+syn keyword xsMacro SAVEt_FREEOP SAVEt_FREEPADNAME SAVEt_FREEPV SAVEt_FREESV
syn keyword xsMacro SAVEt_GENERIC_PVREF SAVEt_GENERIC_SVREF SAVEt_GP
-syn keyword xsMacro SAVEt_GVSV SAVEt_HELEM SAVEt_HINTS SAVEt_HPTR SAVEt_HV
-syn keyword xsMacro SAVEt_I16 SAVEt_I32 SAVEt_I32_SMALL SAVEt_I8 SAVEt_INT
-syn keyword xsMacro SAVEt_INT_SMALL SAVEt_ITEM SAVEt_IV SAVEt_LONG
-syn keyword xsMacro SAVEt_MORTALIZESV SAVEt_NSTAB SAVEt_OP
-syn keyword xsMacro SAVEt_PADSV_AND_MORTALIZE SAVEt_PARSER SAVEt_PPTR
-syn keyword xsMacro SAVEt_REGCONTEXT SAVEt_RE_STATE SAVEt_SAVESWITCHSTACK
-syn keyword xsMacro SAVEt_SET_SVFLAGS SAVEt_SHARED_PVREF SAVEt_SPTR
-syn keyword xsMacro SAVEt_STACK_CXPOS SAVEt_STACK_POS SAVEt_SV SAVEt_SVREF
-syn keyword xsMacro SAVEt_VPTR SBOL SCAN_DEF SCAN_REPL SCAN_TR SCHEDULE
-syn keyword xsMacro SCHED_YIELD SCOPE_SAVES_SIGNAL_MASK SEEK_CUR SEEK_END
-syn keyword xsMacro SEEK_SET SELECT_MIN_BITS SEOL SETERRNO SETGRENT_R_PROTO
-syn keyword xsMacro SETHOSTENT_R_PROTO SETLOCALE_R_PROTO SETNETENT_R_PROTO
-syn keyword xsMacro SETPROTOENT_R_PROTO SETPWENT_R_PROTO SETSERVENT_R_PROTO
-syn keyword xsMacro SETTARG SET_MARK_OFFSET SET_NUMERIC_LOCAL
-syn keyword xsMacro SET_NUMERIC_STANDARD SET_THR SET_THREAD_SELF SETi SETn
-syn keyword xsMacro SETp SETs SETsv SETsvUN SETu SHARP_S_SKIP SHIFTOP
-syn keyword xsMacro SHORTSIZE SH_PATH SIGABRT SIGILL SIG_NAME SIG_NUM
-syn keyword xsMacro SIG_SIZE SINGLE_PAT_MOD SITEARCH SITEARCH_EXP SITELIB
-syn keyword xsMacro SITELIB_EXP SITELIB_STEM SIZE_ALIGN SIZE_ONLY SKIP
-syn keyword xsMacro SKIP_next SKIP_next_fail SLOPPYDIVIDE SOCKET_OPEN_MODE
-syn keyword xsMacro SPACE SPACEA SPACEL SPACEU SPAGAIN SPRINTF_RETURNS_STRLEN
-syn keyword xsMacro SRAND48_R_PROTO SRANDOM_R_PROTO SSCHECK SSGROW SSNEW
-syn keyword xsMacro SSNEWa SSNEWat SSNEWt SSPOPBOOL SSPOPDPTR SSPOPDXPTR
-syn keyword xsMacro SSPOPINT SSPOPIV SSPOPLONG SSPOPPTR SSPOPUV SSPTR SSPTRt
+syn keyword xsMacro SAVEt_GP_ALIASED_SV SAVEt_GVSLOT SAVEt_GVSV SAVEt_HELEM
+syn keyword xsMacro SAVEt_HINTS SAVEt_HPTR SAVEt_HV SAVEt_I16 SAVEt_I32
+syn keyword xsMacro SAVEt_I32_SMALL SAVEt_I8 SAVEt_INT SAVEt_INT_SMALL
+syn keyword xsMacro SAVEt_ITEM SAVEt_IV SAVEt_LONG SAVEt_MORTALIZESV
+syn keyword xsMacro SAVEt_NSTAB SAVEt_OP SAVEt_PADSV_AND_MORTALIZE
+syn keyword xsMacro SAVEt_PARSER SAVEt_PPTR SAVEt_READONLY_OFF
+syn keyword xsMacro SAVEt_REGCONTEXT SAVEt_SAVESWITCHSTACK SAVEt_SET_SVFLAGS
+syn keyword xsMacro SAVEt_SHARED_PVREF SAVEt_SPTR SAVEt_STACK_POS
+syn keyword xsMacro SAVEt_STRLEN SAVEt_SV SAVEt_SVREF SAVEt_VPTR
+syn keyword xsMacro SAWAMPERSAND_LEFT SAWAMPERSAND_MIDDLE SAWAMPERSAND_RIGHT
+syn keyword xsMacro SBOL SB_ENUM_COUNT SCAN_DEF SCAN_REPL SCAN_TR
+syn keyword xsMacro SCAN_VERSION SCHED_YIELD SCOPE_SAVES_SIGNAL_MASK SEEK_CUR
+syn keyword xsMacro SEEK_END SEEK_SET SELECT_MIN_BITS SEOL SETERRNO
+syn keyword xsMacro SETGRENT_R_PROTO SETHOSTENT_R_PROTO SETLOCALE_R_PROTO
+syn keyword xsMacro SETNETENT_R_PROTO SETPROTOENT_R_PROTO SETPWENT_R_PROTO
+syn keyword xsMacro SETSERVENT_R_PROTO SETTARG SET_MARK_OFFSET
+syn keyword xsMacro SET_NUMERIC_LOCAL SET_NUMERIC_STANDARD
+syn keyword xsMacro SET_NUMERIC_UNDERLYING SET_THR SET_THREAD_SELF SETi SETn
+syn keyword xsMacro SETp SETs SETu SHARP_S_SKIP SHIFTOP SHORTSIZE SH_PATH
+syn keyword xsMacro SIGABRT SIGILL SIG_NAME SIG_NUM SIG_SIZE SINGLE_PAT_MOD
+syn keyword xsMacro SIPROUND SITEARCH SITEARCH_EXP SITELIB SITELIB_EXP
+syn keyword xsMacro SITELIB_STEM SIZE_ALIGN SIZE_ONLY SKIP SKIP_next
+syn keyword xsMacro SKIP_next_fail SLOPPYDIVIDE SOCKET_OPEN_MODE SPAGAIN
+syn keyword xsMacro SPRINTF_RETURNS_STRLEN SRAND48_R_PROTO SRANDOM_R_PROTO
+syn keyword xsMacro SSCHECK SSC_MATCHES_EMPTY_STRING SSGROW SSNEW SSNEWa
+syn keyword xsMacro SSNEWat SSNEWt SSPOPBOOL SSPOPDPTR SSPOPDXPTR SSPOPINT
+syn keyword xsMacro SSPOPIV SSPOPLONG SSPOPPTR SSPOPUV SSPTR SSPTRt
syn keyword xsMacro SSPUSHBOOL SSPUSHDPTR SSPUSHDXPTR SSPUSHINT SSPUSHIV
-syn keyword xsMacro SSPUSHLONG SSPUSHPTR SSPUSHUV SS_ACCVIO SS_DEVOFFLINE
-syn keyword xsMacro SS_IVCHAN SS_NORMAL ST STANDARD_C STAR STARTPERL
-syn keyword xsMacro START_EXTERN_C START_MY_CXT STATIC STATUS_ALL_FAILURE
-syn keyword xsMacro STATUS_ALL_SUCCESS STATUS_CURRENT STATUS_EXIT
-syn keyword xsMacro STATUS_EXIT_SET STATUS_NATIVE STATUS_NATIVE_CHILD_SET
-syn keyword xsMacro STATUS_UNIX STATUS_UNIX_EXIT_SET STATUS_UNIX_SET STDCHAR
-syn keyword xsMacro STDIO_PTR_LVALUE STDIO_PTR_LVAL_SETS_CNT
-syn keyword xsMacro STDIO_STREAM_ARRAY STD_PAT_MODS STD_PMMOD_FLAGS_CLEAR
-syn keyword xsMacro STMT_END STMT_START STORE_NUMERIC_LOCAL_SET_STANDARD
+syn keyword xsMacro SSPUSHLONG SSPUSHPTR SSPUSHUV SS_ACCVIO SS_ADD_BOOL
+syn keyword xsMacro SS_ADD_DPTR SS_ADD_DXPTR SS_ADD_END SS_ADD_INT SS_ADD_IV
+syn keyword xsMacro SS_ADD_LONG SS_ADD_PTR SS_ADD_UV SS_BUFFEROVF
+syn keyword xsMacro SS_DEVOFFLINE SS_IVCHAN SS_MAXPUSH SS_NOPRIV SS_NORMAL
+syn keyword xsMacro SSize_t_MAX ST STANDARD_C STAR STARTPERL START_EXTERN_C
+syn keyword xsMacro START_MY_CXT STATIC STATIC_ASSERT_1 STATIC_ASSERT_2
+syn keyword xsMacro STATIC_ASSERT_GLOBAL STATIC_ASSERT_STMT
+syn keyword xsMacro STATUS_ALL_FAILURE STATUS_ALL_SUCCESS STATUS_CURRENT
+syn keyword xsMacro STATUS_EXIT STATUS_EXIT_SET STATUS_NATIVE
+syn keyword xsMacro STATUS_NATIVE_CHILD_SET STATUS_UNIX STATUS_UNIX_EXIT_SET
+syn keyword xsMacro STATUS_UNIX_SET STDCHAR STDIO_STREAM_ARRAY STD_PAT_MODS
+syn keyword xsMacro STD_PMMOD_FLAGS_CLEAR STD_PMMOD_FLAGS_PARSE_X_WARN
+syn keyword xsMacro STMT_END STMT_START STORE_LC_NUMERIC_FORCE_TO_UNDERLYING
+syn keyword xsMacro STORE_LC_NUMERIC_SET_TO_NEEDED
+syn keyword xsMacro STORE_LC_NUMERIC_STANDARD_SET_UNDERLYING
+syn keyword xsMacro STORE_LC_NUMERIC_UNDERLYING_SET_STANDARD
+syn keyword xsMacro STORE_NUMERIC_LOCAL_SET_STANDARD
+syn keyword xsMacro STORE_NUMERIC_STANDARD_FORCE_LOCAL
syn keyword xsMacro STORE_NUMERIC_STANDARD_SET_LOCAL STRERROR_R_PROTO STRING
syn keyword xsMacro STRINGIFY STRUCT_OFFSET STRUCT_SV STR_LEN STR_SZ
syn keyword xsMacro STR_WITH_LEN ST_INO_SIGN ST_INO_SIZE SUB
syn keyword xsMacro SUBST_TAINT_BOOLRET SUBST_TAINT_PAT SUBST_TAINT_REPL
syn keyword xsMacro SUBST_TAINT_RETAINT SUBST_TAINT_STR SUBVERSION SUCCEED
syn keyword xsMacro SUSPEND SVTYPEMASK SV_CATBYTES SV_CATUTF8
-syn keyword xsMacro SV_CHECK_THINKFIRST SV_CHECK_THINKFIRST_COW_DROP
-syn keyword xsMacro SV_CONST_RETURN SV_COW_DROP_PV SV_COW_OTHER_PVS
+syn keyword xsMacro SV_CHECK_THINKFIRST SV_CHECK_THINKFIRST_COW_DROP SV_CONST
+syn keyword xsMacro SV_CONSTS_COUNT SV_CONST_BINMODE SV_CONST_CLEAR
+syn keyword xsMacro SV_CONST_CLOSE SV_CONST_DELETE SV_CONST_DESTROY
+syn keyword xsMacro SV_CONST_EOF SV_CONST_EXISTS SV_CONST_EXTEND
+syn keyword xsMacro SV_CONST_FETCH SV_CONST_FETCHSIZE SV_CONST_FILENO
+syn keyword xsMacro SV_CONST_FIRSTKEY SV_CONST_GETC SV_CONST_NEXTKEY
+syn keyword xsMacro SV_CONST_OPEN SV_CONST_POP SV_CONST_PRINT SV_CONST_PRINTF
+syn keyword xsMacro SV_CONST_PUSH SV_CONST_READ SV_CONST_READLINE
+syn keyword xsMacro SV_CONST_RETURN SV_CONST_SCALAR SV_CONST_SEEK
+syn keyword xsMacro SV_CONST_SHIFT SV_CONST_SPLICE SV_CONST_STORE
+syn keyword xsMacro SV_CONST_STORESIZE SV_CONST_TELL SV_CONST_TIEARRAY
+syn keyword xsMacro SV_CONST_TIEHANDLE SV_CONST_TIEHASH SV_CONST_TIESCALAR
+syn keyword xsMacro SV_CONST_UNSHIFT SV_CONST_UNTIE SV_CONST_WRITE
+syn keyword xsMacro SV_COW_DROP_PV SV_COW_OTHER_PVS SV_COW_REFCNT_MAX
syn keyword xsMacro SV_COW_SHARED_HASH_KEYS SV_DO_COW_SVSETSV
syn keyword xsMacro SV_FORCE_UTF8_UPGRADE SV_GMAGIC SV_HAS_TRAILING_NUL
syn keyword xsMacro SV_IMMEDIATE_UNREF SV_MUTABLE_RETURN SV_NOSTEAL
syn keyword xsMacro SV_SAVED_COPY SV_SKIP_OVERLOAD SV_SMAGIC
syn keyword xsMacro SV_UNDEF_RETURNS_NULL SV_UTF8_NO_ENCODING SVrepl_EVAL
-syn keyword xsMacro SVt_MASK SWITCHSTACK SYMBIAN SYSTEM_GMTIME_MAX
+syn keyword xsMacro SVt_FIRST SVt_MASK SWITCHSTACK SYMBIAN SYSTEM_GMTIME_MAX
syn keyword xsMacro SYSTEM_GMTIME_MIN SYSTEM_LOCALTIME_MAX
syn keyword xsMacro SYSTEM_LOCALTIME_MIN S_IEXEC S_IFIFO S_IFMT S_IREAD
syn keyword xsMacro S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISBLK
syn keyword xsMacro S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISLNK S_ISREG S_ISSOCK
syn keyword xsMacro S_ISUID S_IWGRP S_IWOTH S_IWRITE S_IWUSR S_IXGRP S_IXOTH
syn keyword xsMacro S_IXUSR S_PAT_MODS Safefree Semctl Sigjmp_buf Siglongjmp
-syn keyword xsMacro Sigsetjmp Size_t_size StGiFy StashHANDLER Stat Strerror
-syn keyword xsMacro Strtol Strtoul StructCopy SvAMAGIC SvAMAGIC_off
-syn keyword xsMacro SvAMAGIC_on SvANY SvCANEXISTDELETE SvCOMPILED
-syn keyword xsMacro SvCOMPILED_off SvCOMPILED_on SvCUR SvCUR_set
-syn keyword xsMacro SvDESTROYABLE SvEND SvEND_set SvENDx SvEVALED
-syn keyword xsMacro SvEVALED_off SvEVALED_on SvFAKE SvFAKE_off SvFAKE_on
-syn keyword xsMacro SvFLAGS SvGAMAGIC SvGETMAGIC SvGMAGICAL SvGMAGICAL_off
-syn keyword xsMacro SvGMAGICAL_on SvGROW SvGROW_mutable SvIMMORTAL SvIOK
-syn keyword xsMacro SvIOK_UV SvIOK_notUV SvIOK_off SvIOK_on SvIOK_only
+syn keyword xsMacro Sigsetjmp Size_t_MAX Size_t_size StGiFy StashHANDLER Stat
+syn keyword xsMacro Strerror Strtol Strtoul StructCopy SvAMAGIC SvANY
+syn keyword xsMacro SvCANCOW SvCANEXISTDELETE SvCOMPILED SvCOMPILED_off
+syn keyword xsMacro SvCOMPILED_on SvCUR SvCUR_set SvDESTROYABLE SvEND
+syn keyword xsMacro SvEND_set SvENDx SvEVALED SvEVALED_off SvEVALED_on SvFAKE
+syn keyword xsMacro SvFAKE_off SvFAKE_on SvFLAGS SvGAMAGIC SvGETMAGIC SvGID
+syn keyword xsMacro SvGMAGICAL SvGMAGICAL_off SvGMAGICAL_on SvGROW
+syn keyword xsMacro SvGROW_mutable SvIMMORTAL SvIOK SvIOK_UV SvIOK_nog
+syn keyword xsMacro SvIOK_nogthink SvIOK_notUV SvIOK_off SvIOK_on SvIOK_only
syn keyword xsMacro SvIOK_only_UV SvIOKp SvIOKp_on SvIS_FREED SvIV SvIVX
syn keyword xsMacro SvIVXx SvIV_nomg SvIV_please SvIV_please_nomg SvIV_set
-syn keyword xsMacro SvIVx SvIsCOW SvIsCOW_normal SvIsCOW_shared_hash SvIsUV
-syn keyword xsMacro SvIsUV_off SvIsUV_on SvLEN SvLEN_set SvLENx SvLOCK
-syn keyword xsMacro SvMAGIC SvMAGICAL SvMAGICAL_off SvMAGICAL_on SvMAGIC_set
-syn keyword xsMacro SvNIOK SvNIOK_off SvNIOKp SvNOK SvNOK_off SvNOK_on
-syn keyword xsMacro SvNOK_only SvNOKp SvNOKp_on SvNV SvNVX SvNVXx SvNV_nomg
-syn keyword xsMacro SvNV_set SvNVx SvOBJECT SvOBJECT_off SvOBJECT_on SvOK
-syn keyword xsMacro SvOK_off SvOK_off_exc_UV SvOKp SvOOK SvOOK_off
-syn keyword xsMacro SvOOK_offset SvOOK_on SvOURSTASH SvOURSTASH_set SvPADMY
-syn keyword xsMacro SvPADMY_on SvPADSTALE SvPADSTALE_off SvPADSTALE_on
-syn keyword xsMacro SvPADTMP SvPADTMP_off SvPADTMP_on SvPAD_OUR SvPAD_OUR_on
+syn keyword xsMacro SvIVx SvIsCOW SvIsCOW_normal SvIsCOW_off SvIsCOW_on
+syn keyword xsMacro SvIsCOW_shared_hash SvIsUV SvIsUV_off SvIsUV_on SvLEN
+syn keyword xsMacro SvLEN_set SvLENx SvLOCK SvMAGIC SvMAGICAL SvMAGICAL_off
+syn keyword xsMacro SvMAGICAL_on SvMAGIC_set SvNIOK SvNIOK_nog
+syn keyword xsMacro SvNIOK_nogthink SvNIOK_off SvNIOKp SvNOK SvNOK_nog
+syn keyword xsMacro SvNOK_nogthink SvNOK_off SvNOK_on SvNOK_only SvNOKp
+syn keyword xsMacro SvNOKp_on SvNV SvNVX SvNVXx SvNV_nomg SvNV_set SvNVx
+syn keyword xsMacro SvOBJECT SvOBJECT_off SvOBJECT_on SvOK SvOK_off
+syn keyword xsMacro SvOK_off_exc_UV SvOKp SvOOK SvOOK_off SvOOK_offset
+syn keyword xsMacro SvOOK_on SvOURSTASH SvOURSTASH_set SvPADMY SvPADMY_on
+syn keyword xsMacro SvPADSTALE SvPADSTALE_off SvPADSTALE_on SvPADTMP
+syn keyword xsMacro SvPADTMP_off SvPADTMP_on SvPAD_OUR SvPAD_OUR_on
syn keyword xsMacro SvPAD_STATE SvPAD_STATE_on SvPAD_TYPED SvPAD_TYPED_on
syn keyword xsMacro SvPCS_IMPORTED SvPCS_IMPORTED_off SvPCS_IMPORTED_on
-syn keyword xsMacro SvPEEK SvPOK SvPOK_off SvPOK_on SvPOK_only
-syn keyword xsMacro SvPOK_only_UTF8 SvPOKp SvPOKp_on SvPV SvPVX SvPVX_const
-syn keyword xsMacro SvPVX_mutable SvPVXx SvPV_const SvPV_flags
-syn keyword xsMacro SvPV_flags_const SvPV_flags_const_nolen
+syn keyword xsMacro SvPEEK SvPOK SvPOK_byte_nog SvPOK_byte_nogthink
+syn keyword xsMacro SvPOK_byte_pure_nogthink SvPOK_nog SvPOK_nogthink
+syn keyword xsMacro SvPOK_off SvPOK_on SvPOK_only SvPOK_only_UTF8
+syn keyword xsMacro SvPOK_pure_nogthink SvPOK_utf8_nog SvPOK_utf8_nogthink
+syn keyword xsMacro SvPOK_utf8_pure_nogthink SvPOKp SvPOKp_on SvPV SvPVX
+syn keyword xsMacro SvPVX_const SvPVX_mutable SvPVXtrue SvPVXx SvPV_const
+syn keyword xsMacro SvPV_flags SvPV_flags_const SvPV_flags_const_nolen
syn keyword xsMacro SvPV_flags_mutable SvPV_force SvPV_force_flags
syn keyword xsMacro SvPV_force_flags_mutable SvPV_force_flags_nolen
syn keyword xsMacro SvPV_force_mutable SvPV_force_nolen SvPV_force_nomg
@@ -2920,44 +3265,49 @@ syn keyword xsMacro SvPVbytex SvPVbytex_force SvPVbytex_nolen SvPVutf8
syn keyword xsMacro SvPVutf8_force SvPVutf8_nolen SvPVutf8x SvPVutf8x_force
syn keyword xsMacro SvPVx SvPVx_const SvPVx_force SvPVx_nolen
syn keyword xsMacro SvPVx_nolen_const SvREADONLY SvREADONLY_off SvREADONLY_on
-syn keyword xsMacro SvREFCNT SvREFCNT_dec SvREFCNT_inc SvREFCNT_inc_NN
-syn keyword xsMacro SvREFCNT_inc_simple SvREFCNT_inc_simple_NN
-syn keyword xsMacro SvREFCNT_inc_simple_void SvREFCNT_inc_simple_void_NN
-syn keyword xsMacro SvREFCNT_inc_void SvREFCNT_inc_void_NN SvRELEASE_IVX
-syn keyword xsMacro SvRELEASE_IVX_ SvRMAGICAL SvRMAGICAL_off SvRMAGICAL_on
-syn keyword xsMacro SvROK SvROK_off SvROK_on SvRV SvRV_const SvRV_set SvRVx
-syn keyword xsMacro SvRX SvRXOK SvSCREAM SvSCREAM_off SvSCREAM_on SvSETMAGIC
-syn keyword xsMacro SvSHARE SvSHARED_HASH SvSHARED_HEK_FROM_PV SvSMAGICAL
+syn keyword xsMacro SvREFCNT SvREFCNT_IMMORTAL SvREFCNT_dec SvREFCNT_dec_NN
+syn keyword xsMacro SvREFCNT_inc SvREFCNT_inc_NN SvREFCNT_inc_simple
+syn keyword xsMacro SvREFCNT_inc_simple_NN SvREFCNT_inc_simple_void
+syn keyword xsMacro SvREFCNT_inc_simple_void_NN SvREFCNT_inc_void
+syn keyword xsMacro SvREFCNT_inc_void_NN SvRELEASE_IVX SvRELEASE_IVX_
+syn keyword xsMacro SvRMAGICAL SvRMAGICAL_off SvRMAGICAL_on SvROK SvROK_off
+syn keyword xsMacro SvROK_on SvRV SvRV_const SvRV_set SvRVx SvRX SvRXOK
+syn keyword xsMacro SvSCREAM SvSCREAM_off SvSCREAM_on SvSETMAGIC SvSHARE
+syn keyword xsMacro SvSHARED_HASH SvSHARED_HEK_FROM_PV SvSMAGICAL
syn keyword xsMacro SvSMAGICAL_off SvSMAGICAL_on SvSTASH SvSTASH_set
syn keyword xsMacro SvSetMagicSV SvSetMagicSV_nosteal SvSetSV SvSetSV_and
syn keyword xsMacro SvSetSV_nosteal SvSetSV_nosteal_and SvTAIL SvTAIL_off
syn keyword xsMacro SvTAIL_on SvTAINT SvTAINTED SvTAINTED_off SvTAINTED_on
syn keyword xsMacro SvTEMP SvTEMP_off SvTEMP_on SvTHINKFIRST SvTIED_mg
-syn keyword xsMacro SvTIED_obj SvTRUE SvTRUE_nomg SvTRUEx SvTYPE SvUNLOCK
-syn keyword xsMacro SvUOK SvUPGRADE SvUTF8 SvUTF8_off SvUTF8_on SvUV SvUVX
-syn keyword xsMacro SvUVXx SvUV_nomg SvUV_set SvUVx SvVALID SvVALID_off
-syn keyword xsMacro SvVALID_on SvVOK SvVSTRING_mg SvWEAKREF SvWEAKREF_off
-syn keyword xsMacro SvWEAKREF_on Sv_Grow TAIL TAINT TAINT_ENV TAINT_IF
-syn keyword xsMacro TAINT_NOT TAINT_PROPER THING THR THREAD_CREATE
+syn keyword xsMacro SvTIED_obj SvTRUE SvTRUE_NN SvTRUE_common SvTRUE_nomg
+syn keyword xsMacro SvTRUE_nomg_NN SvTRUEx SvTRUEx_nomg SvTYPE SvUID SvUNLOCK
+syn keyword xsMacro SvUOK SvUOK_nog SvUOK_nogthink SvUPGRADE SvUTF8
+syn keyword xsMacro SvUTF8_off SvUTF8_on SvUV SvUVX SvUVXx SvUV_nomg SvUV_set
+syn keyword xsMacro SvUVx SvVALID SvVALID_off SvVALID_on SvVOK SvVSTRING_mg
+syn keyword xsMacro SvWEAKREF SvWEAKREF_off SvWEAKREF_on Sv_Grow TAIL TAINT
+syn keyword xsMacro TAINTING_get TAINTING_set TAINT_ENV TAINT_IF TAINT_NOT
+syn keyword xsMacro TAINT_PROPER TAINT_WARN_get TAINT_WARN_set TAINT_get
+syn keyword xsMacro TAINT_set THING THR THREAD_CREATE
syn keyword xsMacro THREAD_CREATE_NEEDS_STACK THREAD_POST_CREATE
syn keyword xsMacro THREAD_RET_CAST THREAD_RET_TYPE
syn keyword xsMacro TIED_METHOD_ARGUMENTS_ON_STACK
syn keyword xsMacro TIED_METHOD_MORTALIZE_NOT_NEEDED TIED_METHOD_SAY
syn keyword xsMacro TIME64_CONFIG_H TIME64_H TM TMPNAM_R_PROTO TOO_LATE_FOR
syn keyword xsMacro TOO_LATE_FOR_ TOPBLOCK TOPMARK TOPi TOPl TOPm1s TOPn TOPp
-syn keyword xsMacro TOPp1s TOPpx TOPq TOPs TOPu TOPul TOPuq TRIE TRIEC
-syn keyword xsMacro TRIE_BITMAP TRIE_BITMAP_BYTE TRIE_BITMAP_CLEAR
-syn keyword xsMacro TRIE_BITMAP_SET TRIE_BITMAP_TEST TRIE_CHARCOUNT
-syn keyword xsMacro TRIE_NODEIDX TRIE_NODENUM TRIE_WORDS_OFFSET TRIE_next
-syn keyword xsMacro TRIE_next_fail TTYNAME_R_PROTO TWO_BYTE_UTF8_TO_UNI
-syn keyword xsMacro TYPE_CHARS TYPE_DIGITS Timeval U16SIZE U16TYPE U16_CONST
-syn keyword xsMacro U16_MAX U16_MIN U32SIZE U32TYPE U32_ALIGNMENT_REQUIRED
-syn keyword xsMacro U32_CONST U32_MAX U32_MAX_P1 U32_MAX_P1_HALF U32_MIN
-syn keyword xsMacro U64SIZE U64TYPE U64_CONST U8SIZE U8TYPE U8_MAX U8_MIN
-syn keyword xsMacro UCHARAT UINT32_MIN UINT64_C UINT64_MIN UMINUS UNDERBAR
-syn keyword xsMacro UNICODE_ALLOW_ANY UNICODE_ALLOW_SUPER
-syn keyword xsMacro UNICODE_ALLOW_SURROGATE UNICODE_BYTE_ORDER_MARK
-syn keyword xsMacro UNICODE_DISALLOW_FE_FF
+syn keyword xsMacro TOPp1s TOPpx TOPs TOPu TOPul TRIE TRIEC TRIE_BITMAP
+syn keyword xsMacro TRIE_BITMAP_BYTE TRIE_BITMAP_CLEAR TRIE_BITMAP_SET
+syn keyword xsMacro TRIE_BITMAP_TEST TRIE_CHARCOUNT TRIE_NODEIDX TRIE_NODENUM
+syn keyword xsMacro TRIE_WORDS_OFFSET TRIE_next TRIE_next_fail TRUE
+syn keyword xsMacro TTYNAME_R_PROTO TWO_BYTE_UTF8_TO_NATIVE
+syn keyword xsMacro TWO_BYTE_UTF8_TO_UNI TYPE_CHARS TYPE_DIGITS Timeval
+syn keyword xsMacro U16SIZE U16TYPE U16_CONST U16_MAX U16_MIN U32SIZE U32TYPE
+syn keyword xsMacro U32_ALIGNMENT_REQUIRED U32_CONST U32_MAX U32_MAX_P1
+syn keyword xsMacro U32_MAX_P1_HALF U32_MIN U64SIZE U64TYPE U64_CONST U8SIZE
+syn keyword xsMacro U8TO16_LE U8TO32_LE U8TO64_LE U8TYPE U8_MAX U8_MIN
+syn keyword xsMacro UCHARAT UINT32_MIN UINT64_C UINT64_MIN UMINUS
+syn keyword xsMacro UNALIGNED_SAFE UNDERBAR UNICODE_ALLOW_ANY
+syn keyword xsMacro UNICODE_ALLOW_SUPER UNICODE_ALLOW_SURROGATE
+syn keyword xsMacro UNICODE_BYTE_ORDER_MARK UNICODE_DISALLOW_FE_FF
syn keyword xsMacro UNICODE_DISALLOW_ILLEGAL_INTERCHANGE
syn keyword xsMacro UNICODE_DISALLOW_NONCHAR UNICODE_DISALLOW_SUPER
syn keyword xsMacro UNICODE_DISALLOW_SURROGATE
@@ -2976,274 +3326,341 @@ syn keyword xsMacro UNICODE_WARN_ILLEGAL_INTERCHANGE UNICODE_WARN_NONCHAR
syn keyword xsMacro UNICODE_WARN_SUPER UNICODE_WARN_SURROGATE UNIOP UNIOPSUB
syn keyword xsMacro UNISKIP UNI_DISPLAY_BACKSLASH UNI_DISPLAY_ISPRINT
syn keyword xsMacro UNI_DISPLAY_QQ UNI_DISPLAY_REGEX UNI_IS_INVARIANT
-syn keyword xsMacro UNI_TO_NATIVE UNLESS UNLESSM UNLIKELY UNLINK
-syn keyword xsMacro UNLOCK_DOLLARZERO_MUTEX UNTIL USE USE_64_BIT_ALL
-syn keyword xsMacro USE_64_BIT_INT USE_64_BIT_RAWIO USE_64_BIT_STDIO
-syn keyword xsMacro USE_BSDPGRP USE_DYNAMIC_LOADING USE_ENVIRON_ARRAY
-syn keyword xsMacro USE_HASH_SEED USE_HEAP_INSTEAD_OF_STACK USE_LARGE_FILES
-syn keyword xsMacro USE_LEFT USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
-syn keyword xsMacro USE_LOCALE_NUMERIC USE_PERLIO USE_REENTRANT_API
+syn keyword xsMacro UNI_TO_NATIVE UNKNOWN_ERRNO_MSG UNLESS UNLESSM UNLIKELY
+syn keyword xsMacro UNLINK UNLOCK_DOLLARZERO_MUTEX UNLOCK_LC_NUMERIC_STANDARD
+syn keyword xsMacro UNLOCK_NUMERIC_STANDARD UNOP_AUX_item_sv UNTIL
+syn keyword xsMacro UPG_VERSION USE USE_64_BIT_ALL USE_64_BIT_INT
+syn keyword xsMacro USE_64_BIT_RAWIO USE_64_BIT_STDIO USE_BSDPGRP
+syn keyword xsMacro USE_DYNAMIC_LOADING USE_ENVIRON_ARRAY USE_HASH_SEED
+syn keyword xsMacro USE_HEAP_INSTEAD_OF_STACK USE_LARGE_FILES USE_LEFT
+syn keyword xsMacro USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
+syn keyword xsMacro USE_LOCALE_MESSAGES USE_LOCALE_MONETARY
+syn keyword xsMacro USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIO
+syn keyword xsMacro USE_PERL_PERTURB_KEYS USE_REENTRANT_API
syn keyword xsMacro USE_SEMCTL_SEMID_DS USE_SEMCTL_SEMUN USE_STAT_BLOCKS
-syn keyword xsMacro USE_STAT_RDEV USE_STDIO USE_STDIO_BASE USE_STDIO_PTR
-syn keyword xsMacro USE_STRUCT_COPY USE_SYSTEM_GMTIME USE_SYSTEM_LOCALTIME
-syn keyword xsMacro USE_THREADS USE_TM64 USE_UTF8_IN_NAMES UTF8SKIP
-syn keyword xsMacro UTF8_ACCUMULATE UTF8_ALLOW_ANY UTF8_ALLOW_ANYUV
-syn keyword xsMacro UTF8_ALLOW_CONTINUATION UTF8_ALLOW_DEFAULT
-syn keyword xsMacro UTF8_ALLOW_EMPTY UTF8_ALLOW_FFFF UTF8_ALLOW_LONG
-syn keyword xsMacro UTF8_ALLOW_NON_CONTINUATION UTF8_ALLOW_SHORT
-syn keyword xsMacro UTF8_ALLOW_SURROGATE UTF8_CHECK_ONLY UTF8_DISALLOW_FE_FF
-syn keyword xsMacro UTF8_DISALLOW_ILLEGAL_INTERCHANGE UTF8_DISALLOW_NONCHAR
-syn keyword xsMacro UTF8_DISALLOW_SUPER UTF8_DISALLOW_SURROGATE
-syn keyword xsMacro UTF8_EIGHT_BIT_HI UTF8_EIGHT_BIT_LO
+syn keyword xsMacro USE_STAT_RDEV USE_STDIO USE_STRUCT_COPY USE_SYSTEM_GMTIME
+syn keyword xsMacro USE_SYSTEM_LOCALTIME USE_THREADS USE_TM64
+syn keyword xsMacro USE_UTF8_IN_NAMES USING_MSVC6 UTF8SKIP UTF8_ACCUMULATE
+syn keyword xsMacro UTF8_ALLOW_ANY UTF8_ALLOW_ANYUV UTF8_ALLOW_CONTINUATION
+syn keyword xsMacro UTF8_ALLOW_DEFAULT UTF8_ALLOW_EMPTY UTF8_ALLOW_FFFF
+syn keyword xsMacro UTF8_ALLOW_LONG UTF8_ALLOW_NON_CONTINUATION
+syn keyword xsMacro UTF8_ALLOW_SHORT UTF8_ALLOW_SURROGATE UTF8_CHECK_ONLY
+syn keyword xsMacro UTF8_DISALLOW_FE_FF UTF8_DISALLOW_ILLEGAL_INTERCHANGE
+syn keyword xsMacro UTF8_DISALLOW_NONCHAR UTF8_DISALLOW_SUPER
+syn keyword xsMacro UTF8_DISALLOW_SURROGATE UTF8_EIGHT_BIT_HI
+syn keyword xsMacro UTF8_EIGHT_BIT_LO
syn keyword xsMacro UTF8_FIRST_PROBLEMATIC_CODE_POINT_FIRST_BYTE
-syn keyword xsMacro UTF8_IS_CONTINUATION UTF8_IS_CONTINUED
-syn keyword xsMacro UTF8_IS_DOWNGRADEABLE_START UTF8_IS_INVARIANT
+syn keyword xsMacro UTF8_IS_ABOVE_LATIN1 UTF8_IS_CONTINUATION
+syn keyword xsMacro UTF8_IS_CONTINUED UTF8_IS_DOWNGRADEABLE_START
+syn keyword xsMacro UTF8_IS_INVARIANT UTF8_IS_NEXT_CHAR_DOWNGRADEABLE
syn keyword xsMacro UTF8_IS_NONCHAR_
syn keyword xsMacro UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC
-syn keyword xsMacro UTF8_IS_START UTF8_IS_SUPER UTF8_IS_SURROGATE
-syn keyword xsMacro UTF8_MAXBYTES UTF8_MAXBYTES_CASE UTF8_MAXLEN
-syn keyword xsMacro UTF8_MAX_FOLD_CHAR_EXPAND UTF8_QUAD_MAX UTF8_TWO_BYTE_HI
-syn keyword xsMacro UTF8_TWO_BYTE_HI_nocast UTF8_TWO_BYTE_LO
+syn keyword xsMacro UTF8_IS_REPLACEMENT UTF8_IS_START UTF8_IS_SUPER
+syn keyword xsMacro UTF8_IS_SURROGATE UTF8_MAXBYTES UTF8_MAXBYTES_CASE
+syn keyword xsMacro UTF8_MAXLEN UTF8_MAX_FOLD_CHAR_EXPAND UTF8_QUAD_MAX
+syn keyword xsMacro UTF8_TWO_BYTE_HI UTF8_TWO_BYTE_HI_nocast UTF8_TWO_BYTE_LO
syn keyword xsMacro UTF8_TWO_BYTE_LO_nocast UTF8_WARN_FE_FF
syn keyword xsMacro UTF8_WARN_ILLEGAL_INTERCHANGE UTF8_WARN_NONCHAR
-syn keyword xsMacro UTF8_WARN_SUPER UTF8_WARN_SURROGATE
+syn keyword xsMacro UTF8_WARN_SUPER UTF8_WARN_SURROGATE UTF8f UTF8fARG
syn keyword xsMacro UTF_ACCUMULATION_OVERFLOW_MASK UTF_ACCUMULATION_SHIFT
syn keyword xsMacro UTF_CONTINUATION_MARK UTF_CONTINUATION_MASK
-syn keyword xsMacro UTF_START_MARK UTF_START_MASK UTF_TO_NATIVE UVSIZE UVTYPE
-syn keyword xsMacro UVXf UV_DIG UV_MAX UV_MAX_P1 UV_MAX_P1_HALF UV_MIN UVf
-syn keyword xsMacro U_32 U_I U_L U_S U_V Uid_t_f Uid_t_sign Uid_t_size
-syn keyword xsMacro VAL_EAGAIN VAL_O_NONBLOCK VDf VERB VERTWS VOIDFLAGS
-syn keyword xsMacro VOIDUSED VOL VTBL_amagic VTBL_amagicelem VTBL_arylen
-syn keyword xsMacro VTBL_bm VTBL_collxfrm VTBL_dbline VTBL_defelem VTBL_env
+syn keyword xsMacro UTF_START_MARK UTF_START_MASK UTF_TO_NATIVE
+syn keyword xsMacro UVCHR_IS_INVARIANT UVCHR_SKIP UVSIZE UVTYPE UVXf UV_DIG
+syn keyword xsMacro UV_MAX UV_MAX_P1 UV_MAX_P1_HALF UV_MIN UVf U_32 U_I U_L
+syn keyword xsMacro U_S U_V Uid_t_f Uid_t_sign Uid_t_size VAL_EAGAIN
+syn keyword xsMacro VAL_O_NONBLOCK VCMP VERB VNORMAL VNUMIFY VOL VSTRINGIFY
+syn keyword xsMacro VTBL_amagic VTBL_amagicelem VTBL_arylen VTBL_bm
+syn keyword xsMacro VTBL_collxfrm VTBL_dbline VTBL_defelem VTBL_env
syn keyword xsMacro VTBL_envelem VTBL_fm VTBL_glob VTBL_isa VTBL_isaelem
syn keyword xsMacro VTBL_mglob VTBL_nkeys VTBL_pack VTBL_packelem VTBL_pos
syn keyword xsMacro VTBL_regdata VTBL_regdatum VTBL_regexp VTBL_sigelem
syn keyword xsMacro VTBL_substr VTBL_sv VTBL_taint VTBL_uvar VTBL_vec
-syn keyword xsMacro WARN_ALL WARN_ALLstring WARN_AMBIGUOUS WARN_BAREWORD
-syn keyword xsMacro WARN_CLOSED WARN_CLOSURE WARN_DEBUGGING WARN_DEPRECATED
-syn keyword xsMacro WARN_DIGIT WARN_EXEC WARN_EXITING WARN_GLOB
+syn keyword xsMacro VT_NATIVE VUTIL_REPLACE_CORE VVERIFY WARN_ALL
+syn keyword xsMacro WARN_ALLstring WARN_AMBIGUOUS WARN_BAREWORD WARN_CLOSED
+syn keyword xsMacro WARN_CLOSURE WARN_DEBUGGING WARN_DEPRECATED WARN_DIGIT
+syn keyword xsMacro WARN_EXEC WARN_EXITING WARN_EXPERIMENTAL
+syn keyword xsMacro WARN_EXPERIMENTAL__AUTODEREF WARN_EXPERIMENTAL__BITWISE
+syn keyword xsMacro WARN_EXPERIMENTAL__CONST_ATTR
+syn keyword xsMacro WARN_EXPERIMENTAL__LEXICAL_SUBS
+syn keyword xsMacro WARN_EXPERIMENTAL__LEXICAL_TOPIC
+syn keyword xsMacro WARN_EXPERIMENTAL__POSTDEREF
+syn keyword xsMacro WARN_EXPERIMENTAL__REFALIASING
+syn keyword xsMacro WARN_EXPERIMENTAL__REGEX_SETS
+syn keyword xsMacro WARN_EXPERIMENTAL__RE_STRICT
+syn keyword xsMacro WARN_EXPERIMENTAL__SIGNATURES
+syn keyword xsMacro WARN_EXPERIMENTAL__SMARTMATCH
+syn keyword xsMacro WARN_EXPERIMENTAL__WIN32_PERLIO WARN_GLOB
syn keyword xsMacro WARN_ILLEGALPROTO WARN_IMPRECISION WARN_INPLACE
-syn keyword xsMacro WARN_INTERNAL WARN_IO WARN_LAYER WARN_MALLOC WARN_MISC
-syn keyword xsMacro WARN_NEWLINE WARN_NONCHAR WARN_NONEstring
-syn keyword xsMacro WARN_NON_UNICODE WARN_NUMERIC WARN_ONCE WARN_OVERFLOW
-syn keyword xsMacro WARN_PACK WARN_PARENTHESIS WARN_PIPE WARN_PORTABLE
-syn keyword xsMacro WARN_PRECEDENCE WARN_PRINTF WARN_PROTOTYPE WARN_QW
-syn keyword xsMacro WARN_RECURSION WARN_REDEFINE WARN_REGEXP WARN_RESERVED
-syn keyword xsMacro WARN_SEMICOLON WARN_SEVERE WARN_SIGNAL WARN_SUBSTR
-syn keyword xsMacro WARN_SURROGATE WARN_SYNTAX WARN_TAINT WARN_THREADS
-syn keyword xsMacro WARN_UNINITIALIZED WARN_UNOPENED WARN_UNPACK WARN_UNTIE
-syn keyword xsMacro WARN_UTF8 WARN_VOID WARNshift WARNsize WEXITSTATUS WHEN
-syn keyword xsMacro WHILE WHILEM WHILEM_A_max WHILEM_A_max_fail WHILEM_A_min
+syn keyword xsMacro WARN_INTERNAL WARN_IO WARN_LAYER WARN_LOCALE WARN_MALLOC
+syn keyword xsMacro WARN_MISC WARN_MISSING WARN_NEWLINE WARN_NONCHAR
+syn keyword xsMacro WARN_NONEstring WARN_NON_UNICODE WARN_NUMERIC WARN_ONCE
+syn keyword xsMacro WARN_OVERFLOW WARN_PACK WARN_PARENTHESIS WARN_PIPE
+syn keyword xsMacro WARN_PORTABLE WARN_PRECEDENCE WARN_PRINTF WARN_PROTOTYPE
+syn keyword xsMacro WARN_QW WARN_RECURSION WARN_REDEFINE WARN_REDUNDANT
+syn keyword xsMacro WARN_REGEXP WARN_RESERVED WARN_SEMICOLON WARN_SEVERE
+syn keyword xsMacro WARN_SIGNAL WARN_SUBSTR WARN_SURROGATE WARN_SYNTAX
+syn keyword xsMacro WARN_SYSCALLS WARN_TAINT WARN_THREADS WARN_UNINITIALIZED
+syn keyword xsMacro WARN_UNOPENED WARN_UNPACK WARN_UNTIE WARN_UTF8 WARN_VOID
+syn keyword xsMacro WARNshift WARNsize WB_ENUM_COUNT WEXITSTATUS WHEN WHILE
+syn keyword xsMacro WHILEM WHILEM_A_max WHILEM_A_max_fail WHILEM_A_min
syn keyword xsMacro WHILEM_A_min_fail WHILEM_A_pre WHILEM_A_pre_fail
syn keyword xsMacro WHILEM_B_max WHILEM_B_max_fail WHILEM_B_min
syn keyword xsMacro WHILEM_B_min_fail WIDEST_UTYPE WIFEXITED WIFSIGNALED
syn keyword xsMacro WIFSTOPPED WIN32SCK_IS_STDSCK WNOHANG WORD WSTOPSIG
-syn keyword xsMacro WTERMSIG WUNTRACED XHvTOTALKEYS XOPd_xop_class
-syn keyword xsMacro XOPd_xop_desc XOPd_xop_name XOPd_xop_peep XOPf_xop_class
-syn keyword xsMacro XOPf_xop_desc XOPf_xop_name XOPf_xop_peep XPUSHTARG
-syn keyword xsMacro XPUSHi XPUSHmortal XPUSHn XPUSHp XPUSHs XPUSHu XPUSHundef
-syn keyword xsMacro XS XSANY XSINTERFACE_CVT XSINTERFACE_CVT_ANON
+syn keyword xsMacro WTERMSIG WUNTRACED XDIGIT_VALUE XHvTOTALKEYS
+syn keyword xsMacro XOPd_xop_class XOPd_xop_desc XOPd_xop_name XOPd_xop_peep
+syn keyword xsMacro XOPf_xop_class XOPf_xop_desc XOPf_xop_name XOPf_xop_peep
+syn keyword xsMacro XPUSHTARG XPUSHi XPUSHmortal XPUSHn XPUSHp XPUSHs XPUSHu
+syn keyword xsMacro XPUSHundef XS XSANY XSINTERFACE_CVT XSINTERFACE_CVT_ANON
syn keyword xsMacro XSINTERFACE_FUNC XSINTERFACE_FUNC_SET XSPROTO XSRETURN
syn keyword xsMacro XSRETURN_EMPTY XSRETURN_IV XSRETURN_NO XSRETURN_NV
syn keyword xsMacro XSRETURN_PV XSRETURN_PVN XSRETURN_UNDEF XSRETURN_UV
syn keyword xsMacro XSRETURN_YES XST_mIV XST_mNO XST_mNV XST_mPV XST_mPVN
syn keyword xsMacro XST_mUNDEF XST_mUV XST_mYES XS_APIVERSION_BOOTCHECK
+syn keyword xsMacro XS_APIVERSION_POPMARK_BOOTCHECK
+syn keyword xsMacro XS_APIVERSION_SETXSUBFN_POPMARK_BOOTCHECK
+syn keyword xsMacro XS_BOTHVERSION_BOOTCHECK XS_BOTHVERSION_POPMARK_BOOTCHECK
+syn keyword xsMacro XS_BOTHVERSION_SETXSUBFN_POPMARK_BOOTCHECK
syn keyword xsMacro XS_DYNAMIC_FILENAME XS_EXTERNAL XS_INTERNAL
-syn keyword xsMacro XS_VERSION_BOOTCHECK XSprePUSH XTENDED_PAT_MOD XopDISABLE
-syn keyword xsMacro XopENABLE XopENTRY XopENTRY_set XopFLAGS YADAYADA YIELD
+syn keyword xsMacro XS_SETXSUBFN_POPMARK XS_VERSION_BOOTCHECK XSprePUSH
+syn keyword xsMacro XTENDED_PAT_MOD XopDISABLE XopENABLE XopENTRY
+syn keyword xsMacro XopENTRYCUSTOM XopENTRY_set XopFLAGS YADAYADA YIELD
syn keyword xsMacro YYEMPTY YYSTYPE_IS_DECLARED YYSTYPE_IS_TRIVIAL
-syn keyword xsMacro YYTOKENTYPE Zero ZeroD _ _CANNOT _CC_ALNUMC_A
-syn keyword xsMacro _CC_ALNUMC_L1 _CC_ALPHA_A _CC_ALPHA_L1 _CC_BLANK_A
-syn keyword xsMacro _CC_BLANK_L1 _CC_CHARNAME_CONT _CC_CNTRL_A _CC_CNTRL_L1
-syn keyword xsMacro _CC_DIGIT_A _CC_GRAPH_A _CC_GRAPH_L1 _CC_IDFIRST_A
-syn keyword xsMacro _CC_IDFIRST_L1 _CC_LOWER_A _CC_LOWER_L1
-syn keyword xsMacro _CC_NONLATIN1_FOLD _CC_OCTAL_A _CC_PRINT_A _CC_PRINT_L1
-syn keyword xsMacro _CC_PSXSPC_A _CC_PSXSPC_L1 _CC_PUNCT_A _CC_PUNCT_L1
-syn keyword xsMacro _CC_QUOTEMETA _CC_SPACE_A _CC_SPACE_L1 _CC_UPPER_A
-syn keyword xsMacro _CC_UPPER_L1 _CC_WORDCHAR_A _CC_WORDCHAR_L1 _CC_XDIGIT_A
-syn keyword xsMacro _CPERLarg _GNU_SOURCE
+syn keyword xsMacro YYTOKENTYPE Zero ZeroD _ _CANNOT _CC_ALPHA
+syn keyword xsMacro _CC_ALPHANUMERIC _CC_ASCII _CC_BLANK _CC_CASED
+syn keyword xsMacro _CC_CHARNAME_CONT _CC_CNTRL _CC_DIGIT _CC_GRAPH
+syn keyword xsMacro _CC_IDFIRST _CC_IS_IN_SOME_FOLD _CC_LOWER
+syn keyword xsMacro _CC_MNEMONIC_CNTRL _CC_NONLATIN1_FOLD
+syn keyword xsMacro _CC_NONLATIN1_SIMPLE_FOLD _CC_NON_FINAL_FOLD _CC_PRINT
+syn keyword xsMacro _CC_PUNCT _CC_QUOTEMETA _CC_SPACE _CC_UPPER _CC_VERTSPACE
+syn keyword xsMacro _CC_WORDCHAR _CC_XDIGIT _CC_mask _CC_mask_A
+syn keyword xsMacro _CHECK_AND_OUTPUT_WIDE_LOCALE_CP_MSG
+syn keyword xsMacro _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG
+syn keyword xsMacro _CHECK_AND_WARN_PROBLEMATIC_LOCALE
+syn keyword xsMacro _CORE_SWASH_INIT_ACCEPT_INVLIST
+syn keyword xsMacro _CORE_SWASH_INIT_RETURN_IF_UNDEF
+syn keyword xsMacro _CORE_SWASH_INIT_USER_DEFINED_PROPERTY _CPERLarg
+syn keyword xsMacro _FIRST_NON_SWASH_CC _GNU_SOURCE
syn keyword xsMacro _HAS_NONLATIN1_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C
-syn keyword xsMacro _INC_PERL_XSUB_H _PERLIOL_H _PERLIO_H _PERL_OBJECT_THIS
-syn keyword xsMacro _REGEXP_COMMON _RXf_PMf_CHARSET_SHIFT _RXf_PMf_SHIFT_NEXT
-syn keyword xsMacro _SOCKADDR_LEN _STDIO_H _STDIO_INCLUDED _V _XPVCV_COMMON
-syn keyword xsMacro _XPV_HEAD __Inc__IPerl___ __PATCHLEVEL_H_INCLUDED__
-syn keyword xsMacro __STDIO_LOADED __attribute__deprecated__
-syn keyword xsMacro __attribute__format__ __attribute__format__null_ok__
-syn keyword xsMacro __attribute__malloc__ __attribute__nonnull__
-syn keyword xsMacro __attribute__noreturn__ __attribute__pure__
-syn keyword xsMacro __attribute__unused__ __attribute__warn_unused_result__
-syn keyword xsMacro __filbuf __flsbuf __perlapi_h__ _config_h_ _exit _filbuf
-syn keyword xsMacro _flsbuf _isQUOTEMETA _stdopen _swab_16_ _swab_32_
-syn keyword xsMacro _swab_64_ aTHXo aTHXo_ aTHXx aTHXx_ abort accept access
+syn keyword xsMacro _HAS_NONLATIN1_SIMPLE_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C
+syn keyword xsMacro _HIGHEST_REGCOMP_DOT_H_SYNC _INC_PERL_XSUB_H
+syn keyword xsMacro _IS_IN_SOME_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C
+syn keyword xsMacro _IS_MNEMONIC_CNTRL_ONLY_FOR_USE_BY_REGCOMP_DOT_C
+syn keyword xsMacro _IS_NON_FINAL_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C _LC_CAST
+syn keyword xsMacro _MEM_WRAP_NEEDS_RUNTIME_CHECK _MEM_WRAP_WILL_WRAP
+syn keyword xsMacro _NOT_IN_NUMERIC_STANDARD _NOT_IN_NUMERIC_UNDERLYING
+syn keyword xsMacro _NV_BODYLESS_UNION _OP_SIBPARENT_FIELDNAME _PERLIOL_H
+syn keyword xsMacro _PERLIO_H _PERL_OBJECT_THIS _REGEXP_COMMON
+syn keyword xsMacro _RXf_PMf_CHARSET_SHIFT _RXf_PMf_SHIFT_COMPILETIME
+syn keyword xsMacro _RXf_PMf_SHIFT_NEXT _STDIO_H _STDIO_INCLUDED _V
+syn keyword xsMacro _XPVCV_COMMON _XPV_HEAD __ASSERT_ __BASE_TWO_BYTE_HI
+syn keyword xsMacro __BASE_TWO_BYTE_LO __Inc__IPerl___
+syn keyword xsMacro __PATCHLEVEL_H_INCLUDED__ __PL_inf_float_int32
+syn keyword xsMacro __PL_nan_float_int32 __STDIO_LOADED
+syn keyword xsMacro __attribute__deprecated__ __attribute__format__
+syn keyword xsMacro __attribute__format__null_ok__ __attribute__malloc__
+syn keyword xsMacro __attribute__nonnull__ __attribute__noreturn__
+syn keyword xsMacro __attribute__pure__ __attribute__unused__
+syn keyword xsMacro __attribute__warn_unused_result__ __filbuf __flsbuf
+syn keyword xsMacro __has_builtin __perlapi_h__ _config_h_ _exit _filbuf
+syn keyword xsMacro _flsbuf _generic_LC _generic_LC_base
+syn keyword xsMacro _generic_LC_func_utf8 _generic_LC_swash_utf8
+syn keyword xsMacro _generic_LC_swash_uvchr _generic_LC_underscore
+syn keyword xsMacro _generic_LC_utf8 _generic_LC_uvchr _generic_func_utf8
+syn keyword xsMacro _generic_isCC _generic_isCC_A _generic_swash_uni
+syn keyword xsMacro _generic_swash_utf8 _generic_toFOLD_LC
+syn keyword xsMacro _generic_toLOWER_LC _generic_toUPPER_LC _generic_uni
+syn keyword xsMacro _generic_utf8 _generic_utf8_no_upper_latin1 _isQMC
+syn keyword xsMacro _isQUOTEMETA _swab_16_ _swab_32_ _swab_64_ aTHXa aTHXo
+syn keyword xsMacro aTHXo_ aTHXx aTHXx_ abort accept access
syn keyword xsMacro anchored_end_shift anchored_offset anchored_substr
-syn keyword xsMacro anchored_utf8 asctime assert assert_not_ROK
-syn keyword xsMacro assert_not_glob atoll bcmp bind blk_eval blk_format
-syn keyword xsMacro blk_gimme blk_givwhen blk_loop blk_oldcop blk_oldmarksp
-syn keyword xsMacro blk_oldpm blk_oldscopesp blk_oldsp blk_sub blk_u16 boolSV
-syn keyword xsMacro cBINOP cBINOPo cBINOPx cBOOL cCOP cCOPo cCOPx cGVOP_gv
-syn keyword xsMacro cGVOPo_gv cGVOPx_gv cLISTOP cLISTOPo cLISTOPx cLOGOP
-syn keyword xsMacro cLOGOPo cLOGOPx cLOOP cLOOPo cLOOPx cPADOP cPADOPo
+syn keyword xsMacro anchored_utf8 asctime assert assert_ assert_not_ROK
+syn keyword xsMacro assert_not_glob atoll av_tindex bcmp bind blk_eval
+syn keyword xsMacro blk_format blk_gimme blk_givwhen blk_loop blk_oldcop
+syn keyword xsMacro blk_oldmarksp blk_oldpm blk_oldscopesp blk_oldsp blk_sub
+syn keyword xsMacro blk_u16 bool boolSV cBINOP cBINOPo cBINOPx cBOOL cCOP
+syn keyword xsMacro cCOPo cCOPx cGVOP_gv cGVOPo_gv cGVOPx_gv cLISTOP cLISTOPo
+syn keyword xsMacro cLISTOPx cLOGOP cLOGOPo cLOGOPx cLOOP cLOOPo cLOOPx
+syn keyword xsMacro cMETHOPx cMETHOPx_meth cMETHOPx_rclass cPADOP cPADOPo
syn keyword xsMacro cPADOPx cPMOP cPMOPo cPMOPx cPVOP cPVOPo cPVOPx cSVOP
syn keyword xsMacro cSVOP_sv cSVOPo cSVOPo_sv cSVOPx cSVOPx_sv cSVOPx_svp
-syn keyword xsMacro cUNOP cUNOPo cUNOPx chdir check_end_shift
-syn keyword xsMacro check_offset_max check_offset_min check_substr check_utf8
-syn keyword xsMacro child_offset_bits chmod chsize ckDEAD ckWARN ckWARN2
-syn keyword xsMacro ckWARN2_d ckWARN3 ckWARN3_d ckWARN4 ckWARN4_d ckWARN_d
-syn keyword xsMacro close closedir connect cop_hints_2hv cop_hints_fetch_pv
-syn keyword xsMacro cop_hints_fetch_pvn cop_hints_fetch_pvs
-syn keyword xsMacro cop_hints_fetch_sv cophh_2hv cophh_copy cophh_delete_pv
-syn keyword xsMacro cophh_delete_pvn cophh_delete_pvs cophh_delete_sv
-syn keyword xsMacro cophh_fetch_pv cophh_fetch_pvn cophh_fetch_pvs
-syn keyword xsMacro cophh_fetch_sv cophh_free cophh_new_empty cophh_store_pv
-syn keyword xsMacro cophh_store_pvn cophh_store_pvs cophh_store_sv crypt
-syn keyword xsMacro ctermid ctime cv_ckproto cx_type cxstack cxstack_ix
-syn keyword xsMacro cxstack_max dATARGET dAX dAXMARK dEXT dEXTCONST dITEMS
-syn keyword xsMacro dJMPENV dMARK dMULTICALL dMY_CXT dMY_CXT_INTERP
-syn keyword xsMacro dMY_CXT_SV dNOOP dORIGMARK dPOPPOPiirl dPOPPOPnnrl
-syn keyword xsMacro dPOPPOPssrl dPOPTOPiirl dPOPTOPiirl_nomg
-syn keyword xsMacro dPOPTOPiirl_ul_nomg dPOPTOPnnrl dPOPTOPnnrl_nomg
-syn keyword xsMacro dPOPTOPssrl dPOPXiirl dPOPXiirl_ul_nomg dPOPXnnrl
-syn keyword xsMacro dPOPXssrl dPOPiv dPOPnv dPOPnv_nomg dPOPqv dPOPss dPOPuqv
-syn keyword xsMacro dPOPuv dSAVEDERRNO dSAVE_ERRNO dSP dTARG dTARGET
+syn keyword xsMacro cUNOP cUNOP_AUX cUNOP_AUXo cUNOP_AUXx cUNOPo cUNOPx chdir
+syn keyword xsMacro check_end_shift check_offset_max check_offset_min
+syn keyword xsMacro check_substr check_utf8 child_offset_bits chmod chsize
+syn keyword xsMacro ckDEAD ckWARN ckWARN2 ckWARN2_d ckWARN3 ckWARN3_d ckWARN4
+syn keyword xsMacro ckWARN4_d ckWARN_d close closedir connect cop_hints_2hv
+syn keyword xsMacro cop_hints_fetch_pv cop_hints_fetch_pvn
+syn keyword xsMacro cop_hints_fetch_pvs cop_hints_fetch_sv cophh_2hv
+syn keyword xsMacro cophh_copy cophh_delete_pv cophh_delete_pvn
+syn keyword xsMacro cophh_delete_pvs cophh_delete_sv cophh_fetch_pv
+syn keyword xsMacro cophh_fetch_pvn cophh_fetch_pvs cophh_fetch_sv cophh_free
+syn keyword xsMacro cophh_new_empty cophh_store_pv cophh_store_pvn
+syn keyword xsMacro cophh_store_pvs cophh_store_sv crypt ctermid ctime
+syn keyword xsMacro cv_ckproto cx_type cxstack cxstack_ix cxstack_max
+syn keyword xsMacro dATARGET dAX dAXMARK dEXT dEXTCONST dITEMS dJMPENV dMARK
+syn keyword xsMacro dMULTICALL dMY_CXT dMY_CXT_INTERP dMY_CXT_SV dNOOP
+syn keyword xsMacro dORIGMARK dPOPPOPiirl dPOPPOPnnrl dPOPPOPssrl dPOPTOPiirl
+syn keyword xsMacro dPOPTOPiirl_nomg dPOPTOPiirl_ul_nomg dPOPTOPnnrl
+syn keyword xsMacro dPOPTOPnnrl_nomg dPOPTOPssrl dPOPXiirl dPOPXiirl_ul_nomg
+syn keyword xsMacro dPOPXnnrl dPOPXssrl dPOPiv dPOPnv dPOPnv_nomg dPOPss
+syn keyword xsMacro dPOPuv dSAVEDERRNO dSAVE_ERRNO dSP dSS_ADD dTARG dTARGET
syn keyword xsMacro dTARGETSTACKED dTHR dTHX dTHXa dTHXo dTHXoa dTHXs dTHXx
-syn keyword xsMacro dTOPiv dTOPnv dTOPqv dTOPss dTOPuqv dTOPuv dUNDERBAR dVAR
-syn keyword xsMacro dXSARGS dXSFUNCTION dXSI32 dXSTARG dXSUB_SYS deprecate
-syn keyword xsMacro djSP do_open drand48 dup dup2 endgrent endhostent
-syn keyword xsMacro endnetent endprotoent endpwent endservent environ execl
-syn keyword xsMacro execv execvp fcntl fd_set fdopen fileno float_end_shift
-syn keyword xsMacro float_max_offset float_min_offset float_substr float_utf8
-syn keyword xsMacro flock flockfile foldEQ_utf8 frewind fscanf fstat ftell
-syn keyword xsMacro ftruncate ftrylockfile funlockfile fwrite1 generic_uni
-syn keyword xsMacro generic_utf8 get_cvs getc_unlocked getegid geteuid getgid
-syn keyword xsMacro getgrent getgrgid getgrnam gethostbyaddr gethostbyname
-syn keyword xsMacro gethostent gethostname getlogin getnetbyaddr getnetbyname
-syn keyword xsMacro getnetent getpeername getpid getprotobyname
-syn keyword xsMacro getprotobynumber getprotoent getpwent getpwnam getpwuid
-syn keyword xsMacro getservbyname getservbyport getservent getsockname
-syn keyword xsMacro getsockopt getspnam gettimeofday getuid getw gv_AVadd
-syn keyword xsMacro gv_HVadd gv_IOadd gv_SVadd gv_autoload4 gv_efullname3
-syn keyword xsMacro gv_fetchmeth gv_fetchmeth_autoload gv_fetchmethod
-syn keyword xsMacro gv_fetchmethod_flags gv_fetchpvn gv_fetchpvs
-syn keyword xsMacro gv_fetchsv_nomg gv_fullname3 gv_init gv_stashpvs htoni
-syn keyword xsMacro htonl htons htovl htovs hv_delete hv_delete_ent hv_exists
-syn keyword xsMacro hv_exists_ent hv_fetch hv_fetch_ent hv_fetchs hv_iternext
-syn keyword xsMacro hv_magic hv_store hv_store_ent hv_store_flags hv_stores
-syn keyword xsMacro hv_undef ibcmp ibcmp_locale ibcmp_utf8 inet_addr
-syn keyword xsMacro inet_ntoa init_os_extras init_thread_intern ioctl isALNUM
-syn keyword xsMacro isALNUMC isALNUMC_A isALNUMC_L1 isALNUMC_LC
-syn keyword xsMacro isALNUMC_LC_utf8 isALNUMU isALNUM_LC isALNUM_LC_utf8
-syn keyword xsMacro isALNUM_LC_uvchr isALNUM_lazy isALNUM_lazy_if isALNUM_uni
-syn keyword xsMacro isALNUM_utf8 isALPHA isALPHAU isALPHA_A isALPHA_L1
-syn keyword xsMacro isALPHA_LC isALPHA_LC_utf8 isALPHA_LC_uvchr isALPHA_uni
-syn keyword xsMacro isALPHA_utf8 isASCII isASCII_A isASCII_L1 isASCII_LC
-syn keyword xsMacro isASCII_uni isASCII_utf8 isBLANK isBLANK_A isBLANK_L1
-syn keyword xsMacro isBLANK_LC isBLANK_LC_uni isBLANK_LC_utf8 isBLANK_uni
-syn keyword xsMacro isBLANK_utf8 isCHARNAME_CONT isCNTRL isCNTRL_A isCNTRL_L1
-syn keyword xsMacro isCNTRL_LC isCNTRL_LC_utf8 isCNTRL_LC_uvchr isCNTRL_uni
-syn keyword xsMacro isCNTRL_utf8 isDIGIT isDIGIT_A isDIGIT_L1 isDIGIT_LC
-syn keyword xsMacro isDIGIT_LC_utf8 isDIGIT_LC_uvchr isDIGIT_uni isDIGIT_utf8
-syn keyword xsMacro isGRAPH isGRAPH_A isGRAPH_L1 isGRAPH_LC isGRAPH_LC_utf8
+syn keyword xsMacro dTOPiv dTOPnv dTOPss dTOPuv dUNDERBAR dVAR dXSARGS
+syn keyword xsMacro dXSBOOTARGSAPIVERCHK dXSBOOTARGSNOVERCHK
+syn keyword xsMacro dXSBOOTARGSXSAPIVERCHK dXSFUNCTION dXSI32 dXSTARG
+syn keyword xsMacro dXSUB_SYS deprecate djSP do_open dup dup2 endgrent
+syn keyword xsMacro endhostent endnetent endprotoent endpwent endservent
+syn keyword xsMacro environ execl execv execvp fcntl fd_set fdopen fileno
+syn keyword xsMacro float_end_shift float_max_offset float_min_offset
+syn keyword xsMacro float_substr float_utf8 flock flockfile foldEQ_utf8
+syn keyword xsMacro frewind fscanf fstat ftell ftruncate ftrylockfile
+syn keyword xsMacro funlockfile fwrite1 get_cvs getc_unlocked getegid geteuid
+syn keyword xsMacro getgid getgrent getgrgid getgrnam gethostbyaddr
+syn keyword xsMacro gethostbyname gethostent gethostname getlogin
+syn keyword xsMacro getnetbyaddr getnetbyname getnetent getpeername getpid
+syn keyword xsMacro getprotobyname getprotobynumber getprotoent getpwent
+syn keyword xsMacro getpwnam getpwuid getservbyname getservbyport getservent
+syn keyword xsMacro getsockname getsockopt getspnam gettimeofday getuid getw
+syn keyword xsMacro gv_AVadd gv_HVadd gv_IOadd gv_SVadd gv_autoload4
+syn keyword xsMacro gv_efullname3 gv_fetchmeth gv_fetchmeth_autoload
+syn keyword xsMacro gv_fetchmethod gv_fetchmethod_flags gv_fetchpvn
+syn keyword xsMacro gv_fetchpvs gv_fetchsv_nomg gv_fullname3 gv_init
+syn keyword xsMacro gv_method_changed gv_stashpvs htoni htonl htons htovl
+syn keyword xsMacro htovs hv_delete hv_delete_ent hv_deletehek hv_exists
+syn keyword xsMacro hv_exists_ent hv_fetch hv_fetch_ent hv_fetchhek hv_fetchs
+syn keyword xsMacro hv_iternext hv_magic hv_store hv_store_ent hv_store_flags
+syn keyword xsMacro hv_storehek hv_stores hv_undef ibcmp ibcmp_locale
+syn keyword xsMacro ibcmp_utf8 inet_addr inet_ntoa init_os_extras ioctl
+syn keyword xsMacro isALNUM isALNUMC isALNUMC_A isALNUMC_L1 isALNUMC_LC
+syn keyword xsMacro isALNUMC_LC_utf8 isALNUMC_LC_uvchr isALNUMC_uni
+syn keyword xsMacro isALNUMC_utf8 isALNUMU isALNUM_LC isALNUM_LC_utf8
+syn keyword xsMacro isALNUM_LC_uvchr isALNUM_lazy_if isALNUM_uni isALNUM_utf8
+syn keyword xsMacro isALPHA isALPHANUMERIC isALPHANUMERIC_A isALPHANUMERIC_L1
+syn keyword xsMacro isALPHANUMERIC_LC isALPHANUMERIC_LC_utf8
+syn keyword xsMacro isALPHANUMERIC_LC_uvchr isALPHANUMERIC_uni
+syn keyword xsMacro isALPHANUMERIC_utf8 isALPHAU isALPHA_A isALPHA_FOLD_EQ
+syn keyword xsMacro isALPHA_FOLD_NE isALPHA_L1 isALPHA_LC isALPHA_LC_utf8
+syn keyword xsMacro isALPHA_LC_uvchr isALPHA_uni isALPHA_utf8 isASCII
+syn keyword xsMacro isASCII_A isASCII_L1 isASCII_LC isASCII_LC_utf8
+syn keyword xsMacro isASCII_LC_uvchr isASCII_uni isASCII_utf8 isBLANK
+syn keyword xsMacro isBLANK_A isBLANK_L1 isBLANK_LC isBLANK_LC_uni
+syn keyword xsMacro isBLANK_LC_utf8 isBLANK_LC_uvchr isBLANK_uni isBLANK_utf8
+syn keyword xsMacro isCHARNAME_CONT isCNTRL isCNTRL_A isCNTRL_L1 isCNTRL_LC
+syn keyword xsMacro isCNTRL_LC_utf8 isCNTRL_LC_uvchr isCNTRL_uni isCNTRL_utf8
+syn keyword xsMacro isDIGIT isDIGIT_A isDIGIT_L1 isDIGIT_LC isDIGIT_LC_utf8
+syn keyword xsMacro isDIGIT_LC_uvchr isDIGIT_uni isDIGIT_utf8 isGRAPH
+syn keyword xsMacro isGRAPH_A isGRAPH_L1 isGRAPH_LC isGRAPH_LC_utf8
syn keyword xsMacro isGRAPH_LC_uvchr isGRAPH_uni isGRAPH_utf8 isGV
-syn keyword xsMacro isGV_with_GP isGV_with_GP_off isGV_with_GP_on
-syn keyword xsMacro isIDCONT_utf8 isIDFIRST isIDFIRST_A isIDFIRST_L1
-syn keyword xsMacro isIDFIRST_LC isIDFIRST_LC_utf8 isIDFIRST_LC_uvchr
-syn keyword xsMacro isIDFIRST_lazy isIDFIRST_lazy_if isIDFIRST_uni
+syn keyword xsMacro isGV_with_GP isGV_with_GP_off isGV_with_GP_on isIDCONT
+syn keyword xsMacro isIDCONT_A isIDCONT_L1 isIDCONT_LC isIDCONT_LC_utf8
+syn keyword xsMacro isIDCONT_LC_uvchr isIDCONT_uni isIDCONT_utf8 isIDFIRST
+syn keyword xsMacro isIDFIRST_A isIDFIRST_L1 isIDFIRST_LC isIDFIRST_LC_utf8
+syn keyword xsMacro isIDFIRST_LC_uvchr isIDFIRST_lazy_if isIDFIRST_uni
syn keyword xsMacro isIDFIRST_utf8 isLEXWARN_off isLEXWARN_on isLOWER
syn keyword xsMacro isLOWER_A isLOWER_L1 isLOWER_LC isLOWER_LC_utf8
syn keyword xsMacro isLOWER_LC_uvchr isLOWER_uni isLOWER_utf8 isOCTAL
syn keyword xsMacro isOCTAL_A isOCTAL_L1 isPRINT isPRINT_A isPRINT_L1
syn keyword xsMacro isPRINT_LC isPRINT_LC_utf8 isPRINT_LC_uvchr isPRINT_uni
syn keyword xsMacro isPRINT_utf8 isPSXSPC isPSXSPC_A isPSXSPC_L1 isPSXSPC_LC
-syn keyword xsMacro isPSXSPC_LC_uni isPSXSPC_LC_utf8 isPSXSPC_uni
+syn keyword xsMacro isPSXSPC_LC_utf8 isPSXSPC_LC_uvchr isPSXSPC_uni
syn keyword xsMacro isPSXSPC_utf8 isPUNCT isPUNCT_A isPUNCT_L1 isPUNCT_LC
syn keyword xsMacro isPUNCT_LC_utf8 isPUNCT_LC_uvchr isPUNCT_uni isPUNCT_utf8
-syn keyword xsMacro isSPACE isSPACE_A isSPACE_L1 isSPACE_LC isSPACE_LC_utf8
-syn keyword xsMacro isSPACE_LC_uvchr isSPACE_uni isSPACE_utf8 isUPPER
-syn keyword xsMacro isUPPER_A isUPPER_L1 isUPPER_LC isUPPER_LC_utf8
-syn keyword xsMacro isUPPER_LC_uvchr isUPPER_uni isUPPER_utf8 isWARN_ONCE
-syn keyword xsMacro isWARN_on isWARNf_on isWORDCHAR isWORDCHAR_A
-syn keyword xsMacro isWORDCHAR_L1 isXDIGIT isXDIGIT_A isXDIGIT_L1
-syn keyword xsMacro isXDIGIT_uni isXDIGIT_utf8 is_HORIZWS is_HORIZWS_cp
-syn keyword xsMacro is_HORIZWS_latin1 is_HORIZWS_latin1_safe is_HORIZWS_safe
-syn keyword xsMacro is_HORIZWS_utf8 is_HORIZWS_utf8_safe is_LAX_VERSION
-syn keyword xsMacro is_LNBREAK is_LNBREAK_latin1 is_LNBREAK_latin1_safe
-syn keyword xsMacro is_LNBREAK_safe is_LNBREAK_utf8 is_LNBREAK_utf8_safe
-syn keyword xsMacro is_STRICT_VERSION is_TRICKYFOLD is_TRICKYFOLD_cp
-syn keyword xsMacro is_TRICKYFOLD_safe is_VERTWS is_VERTWS_cp
-syn keyword xsMacro is_VERTWS_latin1 is_VERTWS_latin1_safe is_VERTWS_safe
-syn keyword xsMacro is_VERTWS_utf8 is_VERTWS_utf8_safe is_utf8_string_loc
-syn keyword xsMacro isatty kBINOP kCOP kGVOP_gv kLISTOP kLOGOP kLOOP kPADOP
-syn keyword xsMacro kPMOP kPVOP kSVOP kSVOP_sv kUNOP kill killpg
-syn keyword xsMacro lex_stuff_pvs link listen lockf longjmp lseek lstat
-syn keyword xsMacro mPUSHi mPUSHn mPUSHp mPUSHs mPUSHu mXPUSHi mXPUSHn
+syn keyword xsMacro isREGEXP isSPACE isSPACE_A isSPACE_L1 isSPACE_LC
+syn keyword xsMacro isSPACE_LC_utf8 isSPACE_LC_uvchr isSPACE_uni isSPACE_utf8
+syn keyword xsMacro isUPPER isUPPER_A isUPPER_L1 isUPPER_LC isUPPER_LC_utf8
+syn keyword xsMacro isUPPER_LC_uvchr isUPPER_uni isUPPER_utf8 isUTF8_CHAR
+syn keyword xsMacro isVERTWS_uni isVERTWS_utf8 isWARN_ONCE isWARN_on
+syn keyword xsMacro isWARNf_on isWORDCHAR isWORDCHAR_A isWORDCHAR_L1
+syn keyword xsMacro isWORDCHAR_LC isWORDCHAR_LC_utf8 isWORDCHAR_LC_uvchr
+syn keyword xsMacro isWORDCHAR_lazy_if isWORDCHAR_uni isWORDCHAR_utf8
+syn keyword xsMacro isXDIGIT isXDIGIT_A isXDIGIT_L1 isXDIGIT_LC
+syn keyword xsMacro isXDIGIT_LC_utf8 isXDIGIT_LC_uvchr isXDIGIT_uni
+syn keyword xsMacro isXDIGIT_utf8 is_ANYOF_SYNTHETIC is_FOLDS_TO_MULTI_utf8
+syn keyword xsMacro is_HORIZWS_cp_high is_HORIZWS_high is_LAX_VERSION
+syn keyword xsMacro is_LNBREAK_latin1_safe is_LNBREAK_safe
+syn keyword xsMacro is_LNBREAK_utf8_safe is_MULTI_CHAR_FOLD_latin1_safe
+syn keyword xsMacro is_MULTI_CHAR_FOLD_utf8_safe
+syn keyword xsMacro is_MULTI_CHAR_FOLD_utf8_safe_part0
+syn keyword xsMacro is_MULTI_CHAR_FOLD_utf8_safe_part1 is_NONCHAR_utf8
+syn keyword xsMacro is_PATWS_cp is_PATWS_safe
+syn keyword xsMacro is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp
+syn keyword xsMacro is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8
+syn keyword xsMacro is_PROBLEMATIC_LOCALE_FOLD_cp
+syn keyword xsMacro is_PROBLEMATIC_LOCALE_FOLD_utf8 is_QUOTEMETA_high
+syn keyword xsMacro is_QUOTEMETA_high_part0 is_QUOTEMETA_high_part1
+syn keyword xsMacro is_REPLACEMENT_utf8_safe is_STRICT_VERSION
+syn keyword xsMacro is_SURROGATE_utf8 is_UTF8_CHAR_utf8_no_length_checks
+syn keyword xsMacro is_VERTWS_cp_high is_VERTWS_high is_XDIGIT_cp_high
+syn keyword xsMacro is_XDIGIT_high is_XPERLSPACE_cp_high is_XPERLSPACE_high
+syn keyword xsMacro is_ascii_string is_utf8_char_buf is_utf8_string_loc
+syn keyword xsMacro isatty isnormal kBINOP kCOP kGVOP_gv kLISTOP kLOGOP kLOOP
+syn keyword xsMacro kPADOP kPMOP kPVOP kSVOP kSVOP_sv kUNOP kUNOP_AUX kill
+syn keyword xsMacro killpg lex_stuff_pvs link listen lockf longjmp lseek
+syn keyword xsMacro lstat mPUSHi mPUSHn mPUSHp mPUSHs mPUSHu mXPUSHi mXPUSHn
syn keyword xsMacro mXPUSHp mXPUSHs mXPUSHu memEQ memEQs memNE memNEs memchr
-syn keyword xsMacro memcmp memzero mkdir mktemp my my_betoh16 my_betoh32
-syn keyword xsMacro my_betoh64 my_betohi my_betohl my_betohn my_betohs
-syn keyword xsMacro my_binmode my_htobe16 my_htobe32 my_htobe64 my_htobei
-syn keyword xsMacro my_htobel my_htoben my_htobes my_htole16 my_htole32
-syn keyword xsMacro my_htole64 my_htolei my_htolel my_htolen my_htoles
-syn keyword xsMacro my_letoh16 my_letoh32 my_letoh64 my_letohi my_letohl
-syn keyword xsMacro my_letohn my_letohs my_lstat my_snprintf my_sprintf
-syn keyword xsMacro my_stat my_strlcat my_strlcpy my_vsnprintf newAV newGVgen
-syn keyword xsMacro newHV newIO newRV_inc newSUB newSVpvn_utf8 newSVpvs
-syn keyword xsMacro newSVpvs_flags newSVpvs_share newXSproto ntohi ntohl
-syn keyword xsMacro ntohs opASSIGN op_getmad op_lvalue open opendir pTHX_1
-syn keyword xsMacro pTHX_2 pTHX_3 pTHX_4 pTHX_5 pTHX_6 pTHX_7 pTHX_8 pTHX_9
-syn keyword xsMacro pTHX_FORMAT pTHX_VALUE pTHX_VALUE_ pTHX__FORMAT
+syn keyword xsMacro memcmp memzero mkdir mktemp my my_binmode my_lstat
+syn keyword xsMacro my_setlocale my_snprintf my_sprintf my_stat my_strlcat
+syn keyword xsMacro my_strlcpy my_vsnprintf newATTRSUB newAV newGVgen newHV
+syn keyword xsMacro newIO newRV_inc newSUB newSVpadname newSVpvn_utf8
+syn keyword xsMacro newSVpvs newSVpvs_flags newSVpvs_share newXSproto ntohi
+syn keyword xsMacro ntohl ntohs opASSIGN op_lvalue open opendir pTHX_1
+syn keyword xsMacro pTHX_12 pTHX_2 pTHX_3 pTHX_4 pTHX_5 pTHX_6 pTHX_7 pTHX_8
+syn keyword xsMacro pTHX_9 pTHX_FORMAT pTHX_VALUE pTHX_VALUE_ pTHX__FORMAT
syn keyword xsMacro pTHX__VALUE pTHX__VALUE_ pTHXo pTHXo_ pTHXx pTHXx_ pVAR
syn keyword xsMacro pWARN_ALL pWARN_NONE pWARN_STD packWARN packWARN2
syn keyword xsMacro packWARN3 packWARN4 pad_add_name_pvs pad_findmy_pvs
-syn keyword xsMacro pad_peg padadd_NO_DUP_CHECK padadd_OUR padadd_STATE
-syn keyword xsMacro padadd_UTF8_NAME padnew_CLONE padnew_SAVE padnew_SAVESUB
+syn keyword xsMacro pad_peg padadd_NO_DUP_CHECK padadd_OUR padadd_STALEOK
+syn keyword xsMacro padadd_STATE padnew_CLONE padnew_SAVE padnew_SAVESUB
syn keyword xsMacro panic_write2 pause pclose pipe popen prepare_SV_for_RV
syn keyword xsMacro pthread_attr_init pthread_condattr_default pthread_create
syn keyword xsMacro pthread_key_create pthread_keycreate
syn keyword xsMacro pthread_mutexattr_default pthread_mutexattr_init
-syn keyword xsMacro pthread_mutexattr_settype putc_unlocked putenv putw
-syn keyword xsMacro random read readdir readdir64 recv recvfrom ref
+syn keyword xsMacro pthread_mutexattr_settype putc_unlocked putenv putw read
+syn keyword xsMacro readdir readdir64 recv recvfrom ref
syn keyword xsMacro refcounted_he_fetch_pvs refcounted_he_new_pvs rename
-syn keyword xsMacro rewinddir rmdir sTHX safecalloc safefree safemalloc
+syn keyword xsMacro rewinddir rmdir safecalloc safefree safemalloc
syn keyword xsMacro saferealloc save_aelem save_freeop save_freepv
syn keyword xsMacro save_freesv save_helem save_mortalizesv save_op savepvs
syn keyword xsMacro savesharedpvs sb_dstr sb_iters sb_m sb_maxiters
syn keyword xsMacro sb_oldsave sb_orig sb_rflags sb_rx sb_rxres sb_rxtainted
syn keyword xsMacro sb_s sb_strend sb_targ seedDrand01 seekdir select send
-syn keyword xsMacro sendto setbuf setgid setgrent sethostent setjmp
-syn keyword xsMacro setlinebuf setlocale setmode setnetent setprotoent
-syn keyword xsMacro setpwent setregid setreuid setservent setsockopt setuid
-syn keyword xsMacro setvbuf share_hek_hek sharepvn shutdown signal sleep
-syn keyword xsMacro socket socketpair specialWARN srand48 srandom stat
-syn keyword xsMacro stdoutf strEQ strGE strGT strLE strLT strNE strchr
-syn keyword xsMacro strerror stringify stringify_immed strnEQ strnNE strrchr
-syn keyword xsMacro strtoll strtoull sv_2bool sv_2iv sv_2nv sv_2pv
-syn keyword xsMacro sv_2pv_nolen sv_2pv_nomg sv_2pvbyte_nolen
-syn keyword xsMacro sv_2pvutf8_nolen sv_2uv sv_catpv_nomg sv_catpvn
-syn keyword xsMacro sv_catpvn_mg sv_catpvn_nomg sv_catpvn_utf8_upgrade
-syn keyword xsMacro sv_catpvs sv_catpvs_flags sv_catpvs_mg sv_catpvs_nomg
-syn keyword xsMacro sv_catsv sv_catsv_mg sv_catsv_nomg sv_catxmlpvs sv_cmp
-syn keyword xsMacro sv_cmp_locale sv_collxfrm sv_eq sv_force_normal sv_insert
-syn keyword xsMacro sv_nolocking sv_nounlocking sv_pv sv_pvbyte sv_pvn_force
-syn keyword xsMacro sv_pvn_force_nomg sv_pvutf8 sv_setpvs sv_setpvs_mg
-syn keyword xsMacro sv_setref_pvs sv_setsv sv_setsv_nomg sv_taint sv_unref
-syn keyword xsMacro sv_usepvn sv_usepvn_mg sv_utf8_upgrade
-syn keyword xsMacro sv_utf8_upgrade_flags sv_utf8_upgrade_nomg tTHX telldir
-syn keyword xsMacro times tmpfile tmpnam toCTRL toFOLD_uni toLOWER
-syn keyword xsMacro toLOWER_LATIN1 toLOWER_LC toLOWER_uni toLOWER_utf8
-syn keyword xsMacro toTITLE_uni toTITLE_utf8 toUPPER toUPPER_LATIN1_MOD
+syn keyword xsMacro sendto set_ANYOF_SYNTHETIC setbuf setgid setgrent
+syn keyword xsMacro sethostent setjmp setlinebuf setlocale setmode setnetent
+syn keyword xsMacro setprotoent setpwent setregid setreuid setservent
+syn keyword xsMacro setsockopt setuid setvbuf share_hek_hek sharepvn shutdown
+syn keyword xsMacro signal sleep socket socketpair specialWARN stat stdoutf
+syn keyword xsMacro strEQ strGE strGT strLE strLT strNE strchr strerror
+syn keyword xsMacro strnEQ strnNE strrchr strtoll strtoull sv_2bool
+syn keyword xsMacro sv_2bool_nomg sv_2iv sv_2nv sv_2pv sv_2pv_nolen
+syn keyword xsMacro sv_2pv_nomg sv_2pvbyte_nolen sv_2pvutf8_nolen sv_2uv
+syn keyword xsMacro sv_cathek sv_catpv_nomg sv_catpvn sv_catpvn_mg
+syn keyword xsMacro sv_catpvn_nomg sv_catpvn_nomg_maybeutf8
+syn keyword xsMacro sv_catpvn_nomg_utf8_upgrade sv_catpvs sv_catpvs_flags
+syn keyword xsMacro sv_catpvs_mg sv_catpvs_nomg sv_catsv sv_catsv_mg
+syn keyword xsMacro sv_catsv_nomg sv_catxmlpvs sv_cmp sv_cmp_locale
+syn keyword xsMacro sv_collxfrm sv_copypv_nomg sv_eq sv_force_normal
+syn keyword xsMacro sv_insert sv_mortalcopy sv_nolocking sv_nounlocking
+syn keyword xsMacro sv_or_pv_len_utf8 sv_pv sv_pvbyte sv_pvn_force
+syn keyword xsMacro sv_pvn_force_nomg sv_pvutf8 sv_setgid sv_setpvs
+syn keyword xsMacro sv_setpvs_mg sv_setref_pvs sv_setsv sv_setsv_nomg
+syn keyword xsMacro sv_setuid sv_taint sv_unref sv_usepvn sv_usepvn_mg
+syn keyword xsMacro sv_utf8_upgrade sv_utf8_upgrade_flags
+syn keyword xsMacro sv_utf8_upgrade_nomg tTHX telldir times tmpfile tmpnam
+syn keyword xsMacro toCTRL toFOLD toFOLD_A toFOLD_LC toFOLD_uni toFOLD_utf8
+syn keyword xsMacro toLOWER toLOWER_A toLOWER_L1 toLOWER_LATIN1 toLOWER_LC
+syn keyword xsMacro toLOWER_uni toLOWER_utf8 toTITLE toTITLE_A toTITLE_uni
+syn keyword xsMacro toTITLE_utf8 toUPPER toUPPER_A toUPPER_LATIN1_MOD
syn keyword xsMacro toUPPER_LC toUPPER_uni toUPPER_utf8 to_uni_fold
syn keyword xsMacro to_utf8_fold to_utf8_lower to_utf8_title to_utf8_upper
syn keyword xsMacro truncate tryAMAGICbin_MG tryAMAGICunDEREF
-syn keyword xsMacro tryAMAGICunTARGET tryAMAGICun_MG ttyname umask uname
+syn keyword xsMacro tryAMAGICunTARGETlist tryAMAGICun_MG ttyname umask uname
syn keyword xsMacro unlink unpackWARN1 unpackWARN2 unpackWARN3 unpackWARN4
-syn keyword xsMacro utf8n_to_uvchr utime uvchr_to_utf8 uvuni_to_utf8 vTHX
-syn keyword xsMacro vfprintf vtohl vtohs wait want_vtbl_bm want_vtbl_fm
-syn keyword xsMacro what_TRICKYFOLD what_TRICKYFOLD_safe what_len_TRICKYFOLD
-syn keyword xsMacro what_len_TRICKYFOLD_safe whichsig write xio_any xio_dirp
-syn keyword xsMacro xiv_iv xuv_uv yystype
+syn keyword xsMacro utf8_to_uvchr_buf utime uvchr_to_utf8 uvchr_to_utf8_flags
+syn keyword xsMacro vTHX vfprintf vtohl vtohs wait want_vtbl_bm want_vtbl_fm
+syn keyword xsMacro whichsig write xio_any xio_dirp xiv_iv xlv_targoff
+syn keyword xsMacro xpv_len xuv_uv yystype
" Define the default highlighting.
-" Only when an item doesn't have highlighting yet
-
hi def link xsPrivate Error
hi def link xsSuperseded Error
hi def link xsType Type
@@ -3255,7 +3672,6 @@ hi def link xsFunction Function
hi def link xsVariable Identifier
hi def link xsMacro Macro
-
let b:current_syntax = "xs"
" vim: ts=8
diff --git a/runtime/tutor/tutor b/runtime/tutor/tutor
index 64a27d1..16207a9 100644
--- a/runtime/tutor/tutor
+++ b/runtime/tutor/tutor
@@ -12,7 +12,7 @@
ATTENTION:
The commands in the lessons will modify the text. Make a copy of this
- file to practise on (if you started "vimtutor" this is already a copy).
+ file to practice on (if you started "vimtutor" this is already a copy).
It is important to remember that this tutor is set up to teach by
use. That means that you need to execute the commands to learn them
diff --git a/runtime/tutor/tutor.ru.utf-8 b/runtime/tutor/tutor.ru.utf-8
index 4115192..77cb47b 100644
--- a/runtime/tutor/tutor.ru.utf-8
+++ b/runtime/tutor/tutor.ru.utf-8
@@ -790,10 +790,10 @@
1. Переместите курсор вниз, к первой строке помеченной --->, и в начало
первого слова xxx.
- 2. Теперь нажмите R и введите число указанный ниже во второй строке чтобы
+ 2. Теперь нажмите R и введите число, указанное ниже во второй строке, чтобы
заменить xxx.
- 3. Нажмите <ESC> для выхода из режима замены. Заметьте что остаток строки
+ 3. Нажмите <ESC> для выхода из режима замены. Заметьте, что остаток строки
не был изменён.
4. Повторите эти шаги для замены оставшихся xxx.
diff --git a/runtime/tutor/tutor.utf-8 b/runtime/tutor/tutor.utf-8
index 64a27d1..16207a9 100644
--- a/runtime/tutor/tutor.utf-8
+++ b/runtime/tutor/tutor.utf-8
@@ -12,7 +12,7 @@
ATTENTION:
The commands in the lessons will modify the text. Make a copy of this
- file to practise on (if you started "vimtutor" this is already a copy).
+ file to practice on (if you started "vimtutor" this is already a copy).
It is important to remember that this tutor is set up to teach by
use. That means that you need to execute the commands to learn them
diff --git a/runtime/tutor/tutor.zh.utf-8 b/runtime/tutor/tutor.zh.utf-8
index d1fabc2..cfdeae0 100644
--- a/runtime/tutor/tutor.zh.utf-8
+++ b/runtime/tutor/tutor.zh.utf-8
@@ -35,7 +35,7 @@
---> 現在您應該已經學會如何移動到下一講吧。
- 3. 現在請使用下行鍵,將光標移動到第二講。
+ 3. 現在請使用下行鍵,將光標移動到第一講第二節。
提示︰如果您不敢確定您所按下的字母,請按下<ESC>鍵回到正常(Normal)模式。
然後再次從鍵盤輸入您想要的命令。
diff --git a/runtime/tutor/tutor.zh_tw.utf-8 b/runtime/tutor/tutor.zh_tw.utf-8
index d1fabc2..cfdeae0 100644
--- a/runtime/tutor/tutor.zh_tw.utf-8
+++ b/runtime/tutor/tutor.zh_tw.utf-8
@@ -35,7 +35,7 @@
---> 現在您應該已經學會如何移動到下一講吧。
- 3. 現在請使用下行鍵,將光標移動到第二講。
+ 3. 現在請使用下行鍵,將光標移動到第一講第二節。
提示︰如果您不敢確定您所按下的字母,請按下<ESC>鍵回到正常(Normal)模式。
然後再次從鍵盤輸入您想要的命令。
diff --git a/src/Make_cyg.mak b/src/Make_cyg.mak
index 828666c..8c1b60e 100644
--- a/src/Make_cyg.mak
+++ b/src/Make_cyg.mak
@@ -50,3 +50,5 @@ CROSS_COMPILE = i686-pc-mingw32-
# Do not change this.
UNDER_CYGWIN = yes
include Make_cyg_ming.mak
+
+# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0:
diff --git a/src/Make_cyg_ming.mak b/src/Make_cyg_ming.mak
index 5b0719f..a855f06 100644
--- a/src/Make_cyg_ming.mak
+++ b/src/Make_cyg_ming.mak
@@ -76,6 +76,10 @@ endif
# Set to yes to enable terminal support.
TERMINAL=no
+ifndef CTAGS
+# this assumes ctags is Exuberant ctags
+CTAGS = ctags -I INIT+ --fields=+S
+endif
# Link against the shared version of libstdc++ by default. Set
# STATIC_STDCPLUS to "yes" to link against static version instead.
@@ -217,6 +221,8 @@ endif
# MZSCHEME=[Path to MzScheme directory] (Set inside Make_cyg.mak or Make_ming.mak)
# DYNAMIC_MZSCHEME=yes (to load the MzScheme DLL dynamically)
# MZSCHEME_VER=[MzScheme version] (default is 3m_a0solc (6.6))
+# Used for the DLL file name. E.g.:
+# C:\Program Files (x86)\Racket\lib\libracket3m_XXXXXX.dll
# MZSCHEME_DEBUG=no
ifdef MZSCHEME
ifndef DYNAMIC_MZSCHEME
@@ -340,6 +346,7 @@ endif
# TCL_VER=[TCL version, eg 83, 84] (default is 86)
# TCL_VER_LONG=[Tcl version, eg 8.3] (default is 8.6)
# You must set TCL_VER_LONG when you set TCL_VER.
+# TCL_DLL=[TCL dll name, eg tcl86.dll] (default is tcl86.dll)
ifdef TCL
ifndef DYNAMIC_TCL
DYNAMIC_TCL=yes
@@ -350,6 +357,9 @@ endif
ifndef TCL_VER_LONG
TCL_VER_LONG = 8.6
endif
+ifndef TCL_DLL
+TCL_DLL = tcl$(TCL_VER).dll
+endif
TCLINC += -I$(TCL)/include
endif
@@ -526,7 +536,7 @@ endif
ifdef TCL
CFLAGS += -DFEAT_TCL $(TCLINC)
ifeq (yes, $(DYNAMIC_TCL))
-CFLAGS += -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\" -DDYNAMIC_TCL_VER=\"$(TCL_VER_LONG)\"
+CFLAGS += -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"$(TCL_DLL)\" -DDYNAMIC_TCL_VER=\"$(TCL_VER_LONG)\"
endif
endif
@@ -881,6 +891,12 @@ xxd/xxd.exe: xxd/xxd.c
GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
$(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE) CXX='$(CXX)' STATIC_STDCPLUS=$(STATIC_STDCPLUS)
+tags: notags
+ $(CTAGS) *.c *.cpp *.h if_perl.xs
+
+notags:
+ -$(DEL) tags
+
clean:
-$(DEL) $(OUTDIR)$(DIRSLASH)*.o
-$(DEL) $(OUTDIR)$(DIRSLASH)*.res
@@ -897,60 +913,58 @@ endif
$(MAKE) -C xxd -f Make_ming.mak clean
###########################################################################
-INCL = vim.h feature.h os_win32.h os_dos.h ascii.h keymap.h term.h macros.h \
- structs.h regexp.h option.h ex_cmds.h proto.h globals.h farsi.h \
- gui.h
+INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h farsi.h feature.h globals.h \
+ keymap.h macros.h option.h os_dos.h os_win32.h proto.h regexp.h \
+ spell.h structs.h term.h $(NBDEBUG_INCL)
+GUI_INCL = gui.h gui_beval.h
CUI_INCL = iscygpty.h
-$(OUTDIR)/if_python.o : if_python.c if_py_both.h $(INCL)
+$(OUTDIR)/if_python.o: if_python.c if_py_both.h $(INCL)
$(CC) -c $(CFLAGS) $(PYTHONINC) $(PYTHON_HOME_DEF) $< -o $@
-$(OUTDIR)/if_python3.o : if_python3.c if_py_both.h $(INCL)
+$(OUTDIR)/if_python3.o: if_python3.c if_py_both.h $(INCL)
$(CC) -c $(CFLAGS) $(PYTHON3INC) $(PYTHON3_HOME_DEF) $< -o $@
$(OUTDIR)/%.o : %.c $(INCL)
$(CC) -c $(CFLAGS) $< -o $@
-$(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h
+$(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h
$(WINDRES) $(WINDRES_FLAGS) $(DEFINES) \
--input-format=rc --output-format=coff -i vim.rc -o $@
$(OUTDIR):
$(MKDIR) $(OUTDIR)
-$(OUTDIR)/channel.o: channel.c $(INCL)
- $(CC) -c $(CFLAGS) channel.c -o $(OUTDIR)/channel.o
-
-$(OUTDIR)/ex_docmd.o: ex_docmd.c $(INCL) ex_cmds.h
- $(CC) -c $(CFLAGS) ex_docmd.c -o $(OUTDIR)/ex_docmd.o
-
-$(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h
- $(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o
-
$(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp $(INCL) gui_dwrite.h
$(CC) -c $(CFLAGS) $(CXXFLAGS) gui_dwrite.cpp -o $(OUTDIR)/gui_dwrite.o
-$(OUTDIR)/gui_w32.o: gui_w32.c $(INCL)
+$(OUTDIR)/gui.o: gui.c $(INCL) $(GUI_INCL)
+ $(CC) -c $(CFLAGS) gui.c -o $(OUTDIR)/gui.o
+
+$(OUTDIR)/gui_beval.o: gui_beval.c $(INCL) $(GUI_INCL)
+ $(CC) -c $(CFLAGS) gui_beval.c -o $(OUTDIR)/gui_beval.o
+
+$(OUTDIR)/gui_w32.o: gui_w32.c $(INCL) $(GUI_INCL)
$(CC) -c $(CFLAGS) gui_w32.c -o $(OUTDIR)/gui_w32.o
$(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h
$(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o
-$(OUTDIR)/if_mzsch.o: if_mzsch.c $(INCL) if_mzsch.h $(MZ_EXTRA_DEP)
+$(OUTDIR)/if_mzsch.o: if_mzsch.c $(INCL) $(MZSCHEME_INCL) $(MZ_EXTRA_DEP)
$(CC) -c $(CFLAGS) if_mzsch.c -o $(OUTDIR)/if_mzsch.o
mzscheme_base.c:
$(MZSCHEME)/mzc --c-mods mzscheme_base.c ++lib scheme/base
# Remove -D__IID_DEFINED__ for newer versions of the w32api
-$(OUTDIR)/if_ole.o: if_ole.cpp $(INCL)
+$(OUTDIR)/if_ole.o: if_ole.cpp $(INCL) if_ole.h
$(CC) $(CFLAGS) $(CXXFLAGS) -c -o $(OUTDIR)/if_ole.o if_ole.cpp
-if_perl.c: if_perl.xs typemap
+if_perl.c: if_perl.xs typemap
$(XSUBPP) -prototypes -typemap \
$(PERLTYPEMAP) if_perl.xs -output $@
-$(OUTDIR)/if_ruby.o: if_ruby.c $(INCL)
+$(OUTDIR)/if_ruby.o: if_ruby.c $(INCL)
ifeq (16, $(RUBY))
$(CC) $(CFLAGS) -U_WIN32 -c -o $(OUTDIR)/if_ruby.o if_ruby.c
endif
@@ -958,20 +972,27 @@ endif
$(OUTDIR)/iscygpty.o: iscygpty.c $(CUI_INCL)
$(CC) -c $(CFLAGS) iscygpty.c -o $(OUTDIR)/iscygpty.o -U_WIN32_WINNT -D_WIN32_WINNT=0x0600 -DUSE_DYNFILEID -DENABLE_STUB_IMPL
-$(OUTDIR)/main.o: main.c $(INCL) $(CUI_INCL)
+$(OUTDIR)/main.o: main.c $(INCL) $(CUI_INCL)
$(CC) -c $(CFLAGS) main.c -o $(OUTDIR)/main.o
$(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC)
$(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o
-$(OUTDIR)/regexp.o: regexp.c regexp_nfa.c $(INCL)
+$(OUTDIR)/os_win32.o: os_win32.c $(INCL) $(MZSCHEME_INCL)
+ $(CC) -c $(CFLAGS) os_win32.c -o $(OUTDIR)/os_win32.o
+
+$(OUTDIR)/regexp.o: regexp.c regexp_nfa.c $(INCL)
$(CC) -c $(CFLAGS) regexp.c -o $(OUTDIR)/regexp.o
$(OUTDIR)/terminal.o: terminal.c $(INCL) $(TERM_DEPS)
$(CC) -c $(CFLAGS) terminal.c -o $(OUTDIR)/terminal.o
-CCCTERM = $(CC) -c $(CFLAGS) -Ilibvterm/include -DINLINE="" -DVSNPRINTF=vim_vsnprintf
+CCCTERM = $(CC) -c $(CFLAGS) -Ilibvterm/include -DINLINE="" \
+ -DVSNPRINTF=vim_vsnprintf \
+ -DIS_COMBINING_FUNCTION=utf_iscomposing_uint \
+ -DWCWIDTH_FUNCTION=utf_uint2cells
+
$(OUTDIR)/term_encoding.o: libvterm/src/encoding.c $(TERM_DEPS)
$(CCCTERM) libvterm/src/encoding.c -o $@
@@ -1022,3 +1043,5 @@ else
@echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> pathdef.c
@echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> pathdef.c
endif
+
+# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0:
diff --git a/src/Make_ming.mak b/src/Make_ming.mak
index 9ed1a70..e9e20f6 100644
--- a/src/Make_ming.mak
+++ b/src/Make_ming.mak
@@ -47,3 +47,5 @@
# Do not change this.
UNDER_CYGWIN = no
include Make_cyg_ming.mak
+
+# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0:
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index d1221d0..e9ba1c5 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -47,7 +47,9 @@
# MzScheme interface:
# MZSCHEME=[Path to MzScheme directory]
# DYNAMIC_MZSCHEME=yes (to load the MzScheme DLLs dynamically)
-# MZSCHEME_VER=[version, 205_000, ...] (default is 3m_a0solc (6.6))
+# MZSCHEME_VER=[MzScheme version] (default is 3m_a0solc (6.6))
+# Used for the DLL file name. E.g.:
+# C:\Program Files (x86)\Racket\lib\libracket3m_XXXXXX.dll
# MZSCHEME_DEBUG=no
#
# Perl interface:
@@ -84,6 +86,7 @@
# TCL_VER=[Tcl version, e.g. 80, 83] (default is 86)
# TCL_VER_LONG=[Tcl version, eg 8.3] (default is 8.6)
# You must set TCL_VER_LONG when you set TCL_VER.
+# TCL_DLL=[Tcl dll name, e.g. tcl86.dll] (default is tcl86.dll)
#
# Cscope support: CSCOPE=yes
#
@@ -343,7 +346,8 @@ FEATURES = HUGE
!endif
!ifndef CTAGS
-CTAGS = ctags
+# this assumes ctags is Exuberant ctags
+CTAGS = ctags -I INIT+ --fields=+S
!endif
!ifndef CSCOPE
@@ -669,9 +673,9 @@ CFLAGS = $(CFLAGS) /Zl /MTd
! endif
!endif # DEBUG
-INCL = vim.h os_win32.h ascii.h feature.h globals.h keymap.h macros.h \
- proto.h option.h structs.h term.h $(CSCOPE_INCL) \
- $(NBDEBUG_INCL)
+INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h farsi.h feature.h globals.h \
+ keymap.h macros.h option.h os_dos.h os_win32.h proto.h regexp.h \
+ spell.h structs.h term.h $(NBDEBUG_INCL)
OBJ = \
$(OUTDIR)\arabic.obj \
@@ -770,18 +774,7 @@ RCFLAGS = $(RCFLAGS) -DFEAT_GUI_W32
VIM = g$(VIM)
GUI_INCL = \
gui.h \
- regexp.h \
- ascii.h \
- ex_cmds.h \
- farsi.h \
- feature.h \
- globals.h \
- gui_beval.h \
- keymap.h \
- macros.h \
- option.h \
- os_dos.h \
- os_win32.h
+ gui_beval.h
GUI_OBJ = \
$(OUTDIR)\gui.obj \
$(OUTDIR)\gui_beval.obj \
@@ -832,7 +825,9 @@ TCL_VER_LONG = 8.6
!message Tcl requested (version $(TCL_VER)) - root dir is "$(TCL)"
!if "$(DYNAMIC_TCL)" == "yes"
!message Tcl DLL will be loaded dynamically
+!ifndef TCL_DLL
TCL_DLL = tcl$(TCL_VER).dll
+!endif
CFLAGS = $(CFLAGS) -DFEAT_TCL -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"$(TCL_DLL)\" \
-DDYNAMIC_TCL_VER=\"$(TCL_VER_LONG)\"
TCL_OBJ = $(OUTDIR)\if_tcl.obj
@@ -973,6 +968,7 @@ MZSCHEME_LIB = "$(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib" \
MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj
# increase stack size
MZSCHEME_LIB = $(MZSCHEME_LIB) /STACK:8388608
+MZSCHEME_INCL = if_mzsch.h
!endif
# Perl interface
@@ -1217,7 +1213,7 @@ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
tags: notags
- $(CTAGS) *.c *.cpp *.h if_perl.xs proto\*.pro
+ $(CTAGS) *.c *.cpp *.h if_perl.xs
notags:
- if exist tags del tags
@@ -1312,9 +1308,9 @@ $(OUTDIR)/ex_cmds.obj: $(OUTDIR) ex_cmds.c $(INCL)
$(OUTDIR)/ex_cmds2.obj: $(OUTDIR) ex_cmds2.c $(INCL)
-$(OUTDIR)/ex_docmd.obj: $(OUTDIR) ex_docmd.c $(INCL) ex_cmds.h
+$(OUTDIR)/ex_docmd.obj: $(OUTDIR) ex_docmd.c $(INCL)
-$(OUTDIR)/ex_eval.obj: $(OUTDIR) ex_eval.c $(INCL) ex_cmds.h
+$(OUTDIR)/ex_eval.obj: $(OUTDIR) ex_eval.c $(INCL)
$(OUTDIR)/ex_getln.obj: $(OUTDIR) ex_getln.c $(INCL)
@@ -1338,7 +1334,7 @@ $(OUTDIR)/gui_w32.obj: $(OUTDIR) gui_w32.c $(INCL) $(GUI_INCL)
$(OUTDIR)/gui_dwrite.obj: $(OUTDIR) gui_dwrite.cpp $(INCL) $(GUI_INCL)
-$(OUTDIR)/if_cscope.obj: $(OUTDIR) if_cscope.c $(INCL)
+$(OUTDIR)/if_cscope.obj: $(OUTDIR) if_cscope.c $(INCL) if_cscope.h
$(OUTDIR)/if_lua.obj: $(OUTDIR) if_lua.c $(INCL)
$(CC) $(CFLAGS_OUTDIR) $(LUA_INC) if_lua.c
@@ -1353,7 +1349,7 @@ $(OUTDIR)/if_perl.obj: $(OUTDIR) if_perl.c $(INCL)
$(OUTDIR)/if_perlsfio.obj: $(OUTDIR) if_perlsfio.c $(INCL)
$(CC) $(CFLAGS_OUTDIR) $(PERL_INC) if_perlsfio.c
-$(OUTDIR)/if_mzsch.obj: $(OUTDIR) if_mzsch.c if_mzsch.h $(INCL) $(MZSCHEME_EXTRA_DEP)
+$(OUTDIR)/if_mzsch.obj: $(OUTDIR) if_mzsch.c $(MZSCHEME_INCL) $(INCL) $(MZSCHEME_EXTRA_DEP)
$(CC) $(CFLAGS_OUTDIR) if_mzsch.c \
-DMZSCHEME_COLLECTS="\"$(MZSCHEME_COLLECTS:\=\\)\""
@@ -1417,7 +1413,7 @@ $(OUTDIR)/terminal.obj: $(OUTDIR) terminal.c $(INCL) $(TERM_DEPS)
$(OUTDIR)/winclip.obj: $(OUTDIR) winclip.c $(INCL)
-$(OUTDIR)/os_win32.obj: $(OUTDIR) os_win32.c $(INCL) os_win32.h
+$(OUTDIR)/os_win32.obj: $(OUTDIR) os_win32.c $(INCL) $(MZSCHEME_INCL)
$(OUTDIR)/os_w32exe.obj: $(OUTDIR) os_w32exe.c $(INCL)
@@ -1474,7 +1470,12 @@ $(OUTDIR)/dimm_i.obj: $(OUTDIR) dimm_i.c $(INCL)
$(OUTDIR)/glbl_ime.obj: $(OUTDIR) glbl_ime.cpp dimm.h $(INCL)
-CCCTERM = $(CC) $(CFLAGS) -Ilibvterm/include -DINLINE="" -DVSNPRINTF=vim_vsnprintf -D_CRT_SECURE_NO_WARNINGS
+CCCTERM = $(CC) $(CFLAGS) -Ilibvterm/include -DINLINE="" \
+ -DVSNPRINTF=vim_vsnprintf \
+ -DIS_COMBINING_FUNCTION=utf_iscomposing_uint \
+ -DWCWIDTH_FUNCTION=utf_uint2cells \
+ -D_CRT_SECURE_NO_WARNINGS
+
$(OUTDIR)/term_encoding.obj: $(OUTDIR) libvterm/src/encoding.c $(TERM_DEPS)
$(CCCTERM) -Fo$@ libvterm/src/encoding.c
diff --git a/src/Makefile b/src/Makefile
index de4b240..cecef8d 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -2100,17 +2100,17 @@ test1 \
test_listchars \
test_search_mbyte \
test_wordcount \
- test3 test4 test5 test6 test7 test8 test9 \
- test11 test12 test14 test15 test17 test18 test19 \
- test20 test21 test22 test25 test27 test28 test29 \
+ test3 test4 test5 test7 test8 \
+ test11 test12 test14 test15 test17 test19 \
+ test20 test25 test28 test29 \
test30 test31 test32 test33 test34 test36 test37 test38 test39 \
test40 test41 test42 test43 test44 test45 test48 test49 \
- test50 test51 test52 test53 test54 test55 test56 test57 test59 \
+ test50 test52 test53 test54 test55 test59 \
test60 test64 test66 test68 test69 \
- test70 test72 test73 test74 test77 test78 test79 \
- test80 test83 test84 test85 test86 test87 test88 \
- test91 test94 test95 test98 test99 \
- test100 test101 test103 test104 test107 test108:
+ test70 test72 test73 test77 test78 test79 \
+ test83 test85 test86 test87 test88 \
+ test94 test95 test99 \
+ test108:
cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
# Run individual NEW style test, assuming that Vim was already compiled.
@@ -2122,6 +2122,7 @@ test_arglist \
test_autocmd \
test_backspace_opt \
test_breakindent \
+ test_bufline \
test_bufwintabinfo \
test_cd \
test_cdo \
@@ -2264,6 +2265,7 @@ test_arglist \
test_taglist \
test_tcl \
test_terminal \
+ test_terminal_fail \
test_textobjects \
test_timers \
test_true_false \
@@ -2274,9 +2276,12 @@ test_arglist \
test_utf8_comparisons \
test_viminfo \
test_vimscript \
+ test_virtualedit \
test_visual \
+ test_winbar \
test_window_cmd \
test_window_id \
+ test_windows_home \
test_writefile \
test_alot_latin \
test_alot_utf8 \
@@ -3295,7 +3300,11 @@ objects/channel.o: channel.c
Makefile:
@echo The name of the makefile MUST be "Makefile" (with capital M)!!!!
-CCCTERM = $(CCC) -Ilibvterm/include -DINLINE="" -DVSNPRINTF=vim_vsnprintf
+CCCTERM = $(CCC_NF) -Ilibvterm/include $(ALL_CFLAGS) -DINLINE="" \
+ -DVSNPRINTF=vim_vsnprintf \
+ -DIS_COMBINING_FUNCTION=utf_iscomposing_uint \
+ -DWCWIDTH_FUNCTION=utf_uint2cells
+
objects/term_encoding.o: libvterm/src/encoding.c $(TERM_DEPS)
$(CCCTERM) -o $@ libvterm/src/encoding.c
diff --git a/src/auto/configure b/src/auto/configure
index df4c962..04b997d 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -5717,9 +5717,10 @@ $as_echo "OK" >&6; }
fi
done
- perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
- -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[^ ]*//' \
- -e 's/-fdebug-prefix-map[^ ]*//g'`
+ perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
+ -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[^ ]*//' \
+ -e 's/-fdebug-prefix-map[^ ]*//g' \
+ -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=.//g'`
perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
-e 's/-bE:perl.exp//' -e 's/-lc //'`
@@ -7473,20 +7474,34 @@ $as_echo_n "checking --enable-terminal argument... " >&6; }
# Check whether --enable-terminal was given.
if test "${enable_terminal+set}" = set; then :
enableval=$enable_terminal; enable_terminal="yes"
+else
+ enable_terminal="auto"
fi
-if test "$enable_terminal" = "yes"; then
+if test "$enable_terminal" = "yes" || test "$enable_terminal" = "auto" -a "x$features" = "xhuge" ; then
if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot use terminal emulator with tiny or small features" >&5
$as_echo "cannot use terminal emulator with tiny or small features" >&6; }
enable_terminal="no"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ if test "$enable_terminal" = "auto"; then
+ enable_terminal="yes"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: defaulting to yes" >&5
+$as_echo "defaulting to yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
+ fi
fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ if test "$enable_terminal" = "auto"; then
+ enable_terminal="no"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: defaulting to no" >&5
+$as_echo "defaulting to no" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
+ fi
fi
if test "$enable_terminal" = "yes"; then
$as_echo "#define FEAT_TERMINAL 1" >>confdefs.h
diff --git a/src/buffer.c b/src/buffer.c
index 3934941..7040bb1 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -59,7 +59,7 @@ static void clear_wininfo(buf_T *buf);
static void insert_sign(buf_T *buf, signlist_T *prev, signlist_T *next, int id, linenr_T lnum, int typenr);
#endif
-#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+#if defined(FEAT_QUICKFIX)
static char *msg_loclist = N_("[Location List]");
static char *msg_qflist = N_("[Quickfix List]");
#endif
@@ -458,23 +458,40 @@ close_buffer(
int is_curbuf;
int nwindows;
bufref_T bufref;
-# ifdef FEAT_WINDOWS
int is_curwin = (curwin != NULL && curwin->w_buffer == buf);
win_T *the_curwin = curwin;
tabpage_T *the_curtab = curtab;
-# endif
#endif
int unload_buf = (action != 0);
int del_buf = (action == DOBUF_DEL || action == DOBUF_WIPE);
int wipe_buf = (action == DOBUF_WIPE);
+ /*
+ * Force unloading or deleting when 'bufhidden' says so.
+ * The caller must take care of NOT deleting/freeing when 'bufhidden' is
+ * "hide" (otherwise we could never free or delete a buffer).
+ */
+ if (buf->b_p_bh[0] == 'd') /* 'bufhidden' == "delete" */
+ {
+ del_buf = TRUE;
+ unload_buf = TRUE;
+ }
+ else if (buf->b_p_bh[0] == 'w') /* 'bufhidden' == "wipe" */
+ {
+ del_buf = TRUE;
+ unload_buf = TRUE;
+ wipe_buf = TRUE;
+ }
+ else if (buf->b_p_bh[0] == 'u') /* 'bufhidden' == "unload" */
+ unload_buf = TRUE;
+
#ifdef FEAT_TERMINAL
- if (bt_terminal(buf))
+ if (bt_terminal(buf) && (buf->b_nwindows == 1 || del_buf))
{
if (term_job_running(buf->b_term))
{
- if (wipe_buf)
- /* Wiping out a terminal buffer kills the job. */
+ if (wipe_buf || unload_buf)
+ /* Wiping out or unloading a terminal buffer kills the job. */
free_terminal(buf);
else
{
@@ -491,26 +508,7 @@ close_buffer(
wipe_buf = TRUE;
}
}
- else
#endif
- /*
- * Force unloading or deleting when 'bufhidden' says so.
- * The caller must take care of NOT deleting/freeing when 'bufhidden' is
- * "hide" (otherwise we could never free or delete a buffer).
- */
- if (buf->b_p_bh[0] == 'd') /* 'bufhidden' == "delete" */
- {
- del_buf = TRUE;
- unload_buf = TRUE;
- }
- else if (buf->b_p_bh[0] == 'w') /* 'bufhidden' == "wipe" */
- {
- del_buf = TRUE;
- unload_buf = TRUE;
- wipe_buf = TRUE;
- }
- else if (buf->b_p_bh[0] == 'u') /* 'bufhidden' == "unload" */
- unload_buf = TRUE;
#ifdef FEAT_AUTOCMD
/* Disallow deleting the buffer when it is locked (already being closed or
@@ -522,11 +520,8 @@ close_buffer(
}
#endif
- if (win != NULL
-#ifdef FEAT_WINDOWS
- && win_valid_any_tab(win) /* in case autocommands closed the window */
-#endif
- )
+ /* check no autocommands closed the window */
+ if (win != NULL && win_valid_any_tab(win))
{
/* Set b_last_cursor when closing the last window for the buffer.
* Remember the last cursor position and window options of the buffer.
@@ -581,7 +576,6 @@ aucmd_abort:
# endif
}
-# ifdef FEAT_WINDOWS
/* If the buffer was in curwin and the window has changed, go back to that
* window, if it still exists. This avoids that ":edit x" triggering a
* "tabnext" BufUnload autocmd leaves a window behind without a buffer. */
@@ -591,7 +585,6 @@ aucmd_abort:
goto_tabpage_win(the_curtab, the_curwin);
unblock_autocmds();
}
-# endif
nwindows = buf->b_nwindows;
#endif
@@ -650,13 +643,7 @@ aucmd_abort:
if (buf == curbuf && !is_curbuf)
return;
- if (
-#ifdef FEAT_WINDOWS
- win_valid_any_tab(win) &&
-#else
- win != NULL &&
-#endif
- win->w_buffer == buf)
+ if (win_valid_any_tab(win) && win->w_buffer == buf)
win->w_buffer = NULL; /* make sure we don't use the buffer now */
/* Autocommands may have opened or closed windows for this buffer.
@@ -746,11 +733,9 @@ buf_freeall(buf_T *buf, int flags)
#ifdef FEAT_AUTOCMD
int is_curbuf = (buf == curbuf);
bufref_T bufref;
-# ifdef FEAT_WINDOWS
int is_curwin = (curwin != NULL && curwin->w_buffer == buf);
win_T *the_curwin = curwin;
tabpage_T *the_curtab = curtab;
-# endif
/* Make sure the buffer isn't closed by autocommands. */
++buf->b_locked;
@@ -781,7 +766,6 @@ buf_freeall(buf_T *buf, int flags)
}
--buf->b_locked;
-# ifdef FEAT_WINDOWS
/* If the buffer was in curwin and the window has changed, go back to that
* window, if it still exists. This avoids that ":edit x" triggering a
* "tabnext" BufUnload autocmd leaves a window behind without a buffer. */
@@ -791,7 +775,6 @@ buf_freeall(buf_T *buf, int flags)
goto_tabpage_win(the_curtab, the_curwin);
unblock_autocmds();
}
-# endif
# ifdef FEAT_EVAL
if (aborting()) /* autocmds may abort script processing */
@@ -818,7 +801,6 @@ buf_freeall(buf_T *buf, int flags)
#ifdef FEAT_FOLDING
/* No folds in an empty buffer. */
-# ifdef FEAT_WINDOWS
{
win_T *win;
tabpage_T *tp;
@@ -827,10 +809,6 @@ buf_freeall(buf_T *buf, int flags)
if (win->w_buffer == buf)
clearFolding(win);
}
-# else
- if (curwin != NULL && curwin->w_buffer == buf)
- clearFolding(curwin);
-# endif
#endif
#ifdef FEAT_TCL
@@ -1001,7 +979,7 @@ goto_buffer(
int dir,
int count)
{
-# if defined(FEAT_WINDOWS) && defined(HAS_SWAP_EXISTS_ACTION)
+# if defined(HAS_SWAP_EXISTS_ACTION)
bufref_T old_curbuf;
set_bufref(&old_curbuf, curbuf);
@@ -1010,7 +988,7 @@ goto_buffer(
# endif
(void)do_buffer(*eap->cmd == 's' ? DOBUF_SPLIT : DOBUF_GOTO,
start, dir, count, eap->forceit);
-# if defined(FEAT_WINDOWS) && defined(HAS_SWAP_EXISTS_ACTION)
+# if defined(HAS_SWAP_EXISTS_ACTION)
if (swap_exists_action == SEA_QUIT && *eap->cmd == 's')
{
# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
@@ -1269,11 +1247,9 @@ empty_curbuf(
}
set_bufref(&bufref, buf);
-#ifdef FEAT_WINDOWS
if (close_others)
/* Close any other windows on this buffer, then make it empty. */
close_windows(buf, TRUE);
-#endif
setpcmark();
retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE,
@@ -1410,11 +1386,9 @@ do_buffer(
if (unload)
{
int forward;
-# if defined(FEAT_AUTOCMD) || defined(FEAT_WINDOWS)
bufref_T bufref;
set_bufref(&bufref, buf);
-# endif
/* When unloading or deleting a buffer that's already unloaded and
* unlisted: fail silently. */
@@ -1461,33 +1435,28 @@ do_buffer(
if (bp == NULL && buf == curbuf)
return empty_curbuf(TRUE, forceit, action);
-#ifdef FEAT_WINDOWS
/*
* If the deleted buffer is the current one, close the current window
* (unless it's the only window). Repeat this so long as we end up in
* a window with this buffer.
*/
while (buf == curbuf
-# ifdef FEAT_AUTOCMD
+#ifdef FEAT_AUTOCMD
&& !(curwin->w_closing || curwin->w_buffer->b_locked > 0)
-# endif
+#endif
&& (!ONE_WINDOW || first_tabpage->tp_next != NULL))
{
if (win_close(curwin, FALSE) == FAIL)
break;
}
-#endif
/*
* If the buffer to be deleted is not the current one, delete it here.
*/
if (buf != curbuf)
{
-#ifdef FEAT_WINDOWS
close_windows(buf, FALSE);
- if (buf != curbuf && bufref_valid(&bufref))
-#endif
- if (buf->b_nwindows <= 0)
+ if (buf != curbuf && bufref_valid(&bufref) && buf->b_nwindows <= 0)
close_buffer(NULL, buf, action, FALSE);
return OK;
}
@@ -1606,7 +1575,6 @@ do_buffer(
*/
if (action == DOBUF_SPLIT) /* split window first */
{
-# ifdef FEAT_WINDOWS
/* If 'switchbuf' contains "useopen": jump to first window containing
* "buf" if one exists */
if ((swb_flags & SWB_USEOPEN) && buf_jump_open_win(buf))
@@ -1616,7 +1584,6 @@ do_buffer(
if ((swb_flags & SWB_USETAB) && buf_jump_open_tab(buf))
return OK;
if (win_split(0, 0) == FAIL)
-# endif
return FAIL;
}
#endif
@@ -1648,7 +1615,7 @@ do_buffer(
if (bufIsChanged(curbuf))
#endif
{
- EMSG(_(e_nowrtmsg));
+ no_write_message();
return FAIL;
}
}
@@ -1719,30 +1686,24 @@ set_curbuf(buf_T *buf, int action)
if (prevbuf == curwin->w_buffer)
reset_synblock(curwin);
#endif
-#ifdef FEAT_WINDOWS
if (unload)
close_windows(prevbuf, FALSE);
-#endif
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
if (bufref_valid(&bufref) && !aborting())
#else
if (bufref_valid(&bufref))
#endif
{
-#ifdef FEAT_WINDOWS
win_T *previouswin = curwin;
-#endif
if (prevbuf == curbuf)
u_sync(FALSE);
close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
unload ? action : (action == DOBUF_GOTO
&& !buf_hide(prevbuf)
&& !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
-#ifdef FEAT_WINDOWS
if (curwin != previouswin && win_valid(previouswin))
/* autocommands changed curwin, Grr! */
curwin = previouswin;
-#endif
}
}
#ifdef FEAT_AUTOCMD
@@ -1751,12 +1712,9 @@ set_curbuf(buf_T *buf, int action)
* If curwin->w_buffer is null, enter_buffer() will make it valid again */
if ((buf_valid(buf) && buf != curbuf
# ifdef FEAT_EVAL
- && !aborting()
+ && !aborting()
# endif
-# ifdef FEAT_WINDOWS
- ) || curwin->w_buffer == NULL
-# endif
- )
+ ) || curwin->w_buffer == NULL)
#endif
{
enter_buffer(buf);
@@ -1897,6 +1855,28 @@ do_autochdir(void)
}
#endif
+ void
+no_write_message(void)
+{
+#ifdef FEAT_TERMINAL
+ if (term_job_running(curbuf->b_term))
+ EMSG(_("E948: Job still running (add ! to end the job)"));
+ else
+#endif
+ EMSG(_("E37: No write since last change (add ! to override)"));
+}
+
+ void
+no_write_message_nobang(void)
+{
+#ifdef FEAT_TERMINAL
+ if (term_job_running(curbuf->b_term))
+ EMSG(_("E948: Job still running"));
+ else
+#endif
+ EMSG(_("E37: No write since last change"));
+}
+
/*
* functions for dealing with the buffer list
*/
@@ -2305,9 +2285,7 @@ buflist_getfile(
int forceit)
{
buf_T *buf;
-#ifdef FEAT_WINDOWS
win_T *wp = NULL;
-#endif
pos_T *fpos;
colnr_T col;
@@ -2345,7 +2323,6 @@ buflist_getfile(
else
col = 0;
-#ifdef FEAT_WINDOWS
if (options & GETF_SWITCH)
{
/* If 'switchbuf' contains "useopen": jump to first window containing
@@ -2371,7 +2348,6 @@ buflist_getfile(
RESET_BINDING(curwin);
}
}
-#endif
++RedrawingDisabled;
if (GETFILE_SUCCESS(getfile(buf->b_fnum, NULL, NULL,
@@ -2576,7 +2552,6 @@ buflist_findpat(
{
/* Ignore the match if the buffer is not open in
* the current tab. */
-#ifdef FEAT_WINDOWS
win_T *wp;
FOR_ALL_WINDOWS(wp)
@@ -2584,10 +2559,6 @@ buflist_findpat(
break;
if (wp == NULL)
continue;
-#else
- if (curwin->w_buffer != buf)
- continue;
-#endif
}
if (match >= 0) /* already found a match */
{
@@ -3067,7 +3038,10 @@ buflist_list(exarg_T *eap)
#ifdef FEAT_TERMINAL
if (term_job_running(buf->b_term))
{
- ro_char = 'R';
+ if (term_none_open(buf->b_term))
+ ro_char = '?';
+ else
+ ro_char = 'R';
changed_char = ' '; /* bufIsChanged() returns TRUE to avoid
* closing, but it's not actually changed. */
}
@@ -3270,9 +3244,7 @@ buf_name_changed(buf_T *buf)
#ifdef FEAT_TITLE
maketitle(); /* set window title */
#endif
-#ifdef FEAT_WINDOWS
status_redraw_all(); /* status lines need to be redrawn */
-#endif
fmarks_check_names(buf); /* check named file marks */
ml_timestamp(buf); /* reset timestamp */
}
@@ -3893,8 +3865,8 @@ build_stl_str_hl(
char_u *t;
int byteval;
#ifdef FEAT_EVAL
- win_T *o_curwin;
- buf_T *o_curbuf;
+ win_T *save_curwin;
+ buf_T *save_curbuf;
#endif
int empty_line;
colnr_T virtcol;
@@ -3936,6 +3908,9 @@ build_stl_str_hl(
char_u tmp[TMPLEN];
char_u *usefmt = fmt;
struct stl_hlrec *sp;
+ int save_must_redraw = must_redraw;
+ int save_redr_type = curwin->w_redr_type;
+ int save_highlight_shcnaged = need_highlight_changed;
#ifdef FEAT_EVAL
/*
@@ -4245,15 +4220,15 @@ build_stl_str_hl(
vim_snprintf((char *)tmp, sizeof(tmp), "%d", curbuf->b_fnum);
set_internal_string_var((char_u *)"actual_curbuf", tmp);
- o_curbuf = curbuf;
- o_curwin = curwin;
+ save_curbuf = curbuf;
+ save_curwin = curwin;
curwin = wp;
curbuf = wp->w_buffer;
str = eval_to_string_safe(p, &t, use_sandbox);
- curwin = o_curwin;
- curbuf = o_curbuf;
+ curwin = save_curwin;
+ curbuf = save_curbuf;
do_unlet((char_u *)"g:actual_curbuf", TRUE);
if (str != NULL && *str != 0)
@@ -4397,7 +4372,7 @@ build_stl_str_hl(
break;
#endif
-#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+#if defined(FEAT_QUICKFIX)
case STL_PREVIEWFLAG:
case STL_PREVIEWFLAG_ALT:
itemisflag = TRUE;
@@ -4708,6 +4683,13 @@ build_stl_str_hl(
sp->userhl = 0;
}
+ /* We do not want redrawing a stausline, ruler, title, etc. to trigger
+ * another redraw, it may cause an endless loop. This happens when a
+ * statusline changes a highlight group. */
+ must_redraw = save_must_redraw;
+ curwin->w_redr_type = save_redr_type;
+ need_highlight_changed = save_highlight_shcnaged;
+
return width;
}
#endif /* FEAT_STL_OPT */
@@ -4876,7 +4858,6 @@ alist_name(aentry_T *aep)
return bp->b_fname;
}
-#if defined(FEAT_WINDOWS) || defined(PROTO)
/*
* do_arg_all(): Open up to 'count' windows, one for each argument.
*/
@@ -5025,23 +5006,19 @@ do_arg_all(
}
#endif
}
-#ifdef FEAT_WINDOWS
/* don't close last window */
if (ONE_WINDOW
&& (first_tabpage->tp_next == NULL || !had_tab))
-#endif
use_firstwin = TRUE;
-#ifdef FEAT_WINDOWS
else
{
win_close(wp, !buf_hide(buf) && !bufIsChanged(buf));
-# ifdef FEAT_AUTOCMD
+#ifdef FEAT_AUTOCMD
/* check if autocommands removed the next window */
if (!win_valid(wpnext))
wpnext = firstwin; /* start all over... */
-# endif
- }
#endif
+ }
}
}
}
@@ -5073,13 +5050,11 @@ do_arg_all(
last_curwin = curwin;
last_curtab = curtab;
win_enter(lastwin, FALSE);
-#ifdef FEAT_WINDOWS
/* ":drop all" should re-use an empty window to avoid "--remote-tab"
* leaving an empty tab page when executed locally. */
if (keep_tabs && BUFEMPTY() && curbuf->b_nwindows == 1
&& curbuf->b_ffname == NULL && !curbuf->b_changed)
use_firstwin = TRUE;
-#endif
for (i = 0; i < count && i < opened_len && !got_int; ++i)
{
@@ -5190,10 +5165,8 @@ ex_buffer_all(exarg_T *eap)
int r;
int count; /* Maximum number of windows to open. */
int all; /* When TRUE also load inactive buffers. */
-#ifdef FEAT_WINDOWS
int had_tab = cmdmod.tab;
tabpage_T *tpnext;
-#endif
if (eap->addr_count == 0) /* make as many windows as possible */
count = 9999;
@@ -5214,25 +5187,20 @@ ex_buffer_all(exarg_T *eap)
* Close superfluous windows (two windows for the same buffer).
* Also close windows that are not full-width.
*/
-#ifdef FEAT_WINDOWS
if (had_tab > 0)
goto_tabpage_tp(first_tabpage, TRUE, TRUE);
for (;;)
{
-#endif
tpnext = curtab->tp_next;
for (wp = firstwin; wp != NULL; wp = wpnext)
{
wpnext = wp->w_next;
if ((wp->w_buffer->b_nwindows > 1
-#ifdef FEAT_WINDOWS
|| ((cmdmod.split & WSP_VERT)
? wp->w_height + wp->w_status_height < Rows - p_ch
- tabline_height()
: wp->w_width != Columns)
- || (had_tab > 0 && wp != firstwin)
-#endif
- ) && !ONE_WINDOW
+ || (had_tab > 0 && wp != firstwin)) && !ONE_WINDOW
#ifdef FEAT_AUTOCMD
&& !(wp->w_closing || wp->w_buffer->b_locked > 0)
#endif
@@ -5250,13 +5218,11 @@ ex_buffer_all(exarg_T *eap)
++open_wins;
}
-#ifdef FEAT_WINDOWS
/* Without the ":tab" modifier only do the current tab page. */
if (had_tab == 0 || tpnext == NULL)
break;
goto_tabpage_tp(tpnext, TRUE, TRUE);
}
-#endif
/*
* Go through the buffer list. When a buffer doesn't have a window yet,
@@ -5277,7 +5243,6 @@ ex_buffer_all(exarg_T *eap)
if ((!all && buf->b_ml.ml_mfp == NULL) || !buf->b_p_bl)
continue;
-#ifdef FEAT_WINDOWS
if (had_tab != 0)
{
/* With the ":tab" modifier don't move the window. */
@@ -5287,7 +5252,6 @@ ex_buffer_all(exarg_T *eap)
wp = NULL;
}
else
-#endif
{
/* Check if this buffer already has a window */
FOR_ALL_WINDOWS(wp)
@@ -5369,11 +5333,9 @@ ex_buffer_all(exarg_T *eap)
if (aborting())
break;
#endif
-#ifdef FEAT_WINDOWS
/* When ":tab" was used open a new tab for a new window repeatedly. */
if (had_tab > 0 && tabpage_index(NULL) <= p_tpm)
cmdmod.tab = 9999;
-#endif
}
#ifdef FEAT_AUTOCMD
--autocmd_no_enter;
@@ -5414,7 +5376,6 @@ ex_buffer_all(exarg_T *eap)
}
# endif /* FEAT_LISTCMDS */
-#endif /* FEAT_WINDOWS */
static int chk_modeline(linenr_T, int);
@@ -5641,10 +5602,8 @@ read_viminfo_bufferlist(
write_viminfo_bufferlist(FILE *fp)
{
buf_T *buf;
-#ifdef FEAT_WINDOWS
win_T *win;
tabpage_T *tp;
-#endif
char_u *line;
int max_buffers;
@@ -5660,12 +5619,8 @@ write_viminfo_bufferlist(FILE *fp)
if (line == NULL)
return;
-#ifdef FEAT_WINDOWS
FOR_ALL_TAB_WINDOWS(tp, win)
set_last_cursor(win);
-#else
- set_last_cursor(curwin);
-#endif
fputs(_("\n# Buffer list:\n"), fp);
FOR_ALL_BUFFERS(buf)
@@ -5778,7 +5733,7 @@ buf_hide(buf_T *buf)
char_u *
buf_spname(buf_T *buf)
{
-#if defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)
+#if defined(FEAT_QUICKFIX)
if (bt_quickfix(buf))
{
win_T *win;
@@ -5803,8 +5758,8 @@ buf_spname(buf_T *buf)
if (buf->b_term != NULL)
return term_get_status_text(buf->b_term);
#endif
- if (buf->b_sfname != NULL)
- return buf->b_sfname;
+ if (buf->b_fname != NULL)
+ return buf->b_fname;
return (char_u *)_("[Scratch]");
}
@@ -5856,9 +5811,7 @@ restore_win_for_buf(
}
#endif
-#if (defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)) \
- || defined(SWITCH_TO_WIN) \
- || defined(PROTO)
+#if defined(FEAT_QUICKFIX) || defined(SWITCH_TO_WIN) || defined(PROTO)
/*
* Find a window for buffer "buf".
* If found OK is returned and "wp" and "tp" are set to the window and tabpage.
diff --git a/src/channel.c b/src/channel.c
index e803079..49bab16 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -138,7 +138,7 @@ ch_log_active(void)
}
static void
-ch_log_lead(char *what, channel_T *ch)
+ch_log_lead(const char *what, channel_T *ch)
{
if (log_fd != NULL)
{
@@ -503,6 +503,10 @@ channel_gui_register_one(channel_T *channel, ch_part_T part)
if (!CH_HAS_GUI)
return;
+ /* gets stuck in handling events for a not connected channel */
+ if (channel->ch_keep_open)
+ return;
+
# ifdef FEAT_GUI_X11
/* Tell notifier we are interested in being called
* when there is input on the editor connection socket. */
@@ -548,9 +552,12 @@ channel_gui_register(channel_T *channel)
{
if (channel->CH_SOCK_FD != INVALID_FD)
channel_gui_register_one(channel, PART_SOCK);
- if (channel->CH_OUT_FD != INVALID_FD)
+ if (channel->CH_OUT_FD != INVALID_FD
+ && channel->CH_OUT_FD != channel->CH_SOCK_FD)
channel_gui_register_one(channel, PART_OUT);
- if (channel->CH_ERR_FD != INVALID_FD)
+ if (channel->CH_ERR_FD != INVALID_FD
+ && channel->CH_ERR_FD != channel->CH_SOCK_FD
+ && channel->CH_ERR_FD != channel->CH_OUT_FD)
channel_gui_register_one(channel, PART_ERR);
}
@@ -962,7 +969,13 @@ ch_close_part(channel_T *channel, ch_part_T part)
if ((part == PART_IN || channel->CH_IN_FD != *fd)
&& (part == PART_OUT || channel->CH_OUT_FD != *fd)
&& (part == PART_ERR || channel->CH_ERR_FD != *fd))
+ {
+#ifdef WIN32
+ if (channel->ch_named_pipe)
+ DisconnectNamedPipe((HANDLE)fd);
+#endif
fd_close(*fd);
+ }
}
*fd = INVALID_FD;
@@ -1293,11 +1306,16 @@ write_buf_line(buf_T *buf, linenr_T lnum, channel_T *channel)
return;
memcpy((char *)p, (char *)line, len);
- for (i = 0; i < len; ++i)
- if (p[i] == NL)
- p[i] = NUL;
+ if (channel->ch_write_text_mode)
+ p[len] = CAR;
+ else
+ {
+ for (i = 0; i < len; ++i)
+ if (p[i] == NL)
+ p[i] = NUL;
- p[len] = NL;
+ p[len] = NL;
+ }
p[len + 1] = NUL;
channel_send(channel, PART_IN, p, len + 1, "write_buf_line");
vim_free(p);
@@ -1373,7 +1391,7 @@ can_write_buf_line(channel_T *channel)
}
/*
- * Write any lines to the input channel.
+ * Write any buffer lines to the input channel.
*/
static void
channel_write_in(channel_T *channel)
@@ -1410,6 +1428,12 @@ channel_write_in(channel_T *channel)
in_part->ch_buf_top = lnum;
if (lnum > buf->b_ml.ml_line_count || lnum > in_part->ch_buf_bot)
{
+#if defined(FEAT_TERMINAL)
+ /* Send CTRL-D or "eof_chars" to close stdin on MS-Windows. */
+ if (channel->ch_job != NULL)
+ term_send_eof(channel);
+#endif
+
/* Writing is done, no longer need the buffer. */
in_part->ch_bufref.br_buf = NULL;
ch_log(channel, "Finished writing all lines to channel");
@@ -1446,6 +1470,25 @@ channel_buffer_free(buf_T *buf)
}
/*
+ * Write any lines waiting to be written to "channel".
+ */
+ static void
+channel_write_input(channel_T *channel)
+{
+ chanpart_T *in_part = &channel->ch_part[PART_IN];
+
+ if (in_part->ch_writeque.wq_next != NULL)
+ channel_send(channel, PART_IN, (char_u *)"", 0, "channel_write_input");
+ else if (in_part->ch_bufref.br_buf != NULL)
+ {
+ if (in_part->ch_buf_append)
+ channel_write_new_lines(in_part->ch_bufref.br_buf);
+ else
+ channel_write_in(channel);
+ }
+}
+
+/*
* Write any lines waiting to be written to a channel.
*/
void
@@ -1454,17 +1497,7 @@ channel_write_any_lines(void)
channel_T *channel;
for (channel = first_channel; channel != NULL; channel = channel->ch_next)
- {
- chanpart_T *in_part = &channel->ch_part[PART_IN];
-
- if (in_part->ch_bufref.br_buf != NULL)
- {
- if (in_part->ch_buf_append)
- channel_write_new_lines(in_part->ch_bufref.br_buf);
- else
- channel_write_in(channel);
- }
- }
+ channel_write_input(channel);
}
/*
@@ -1780,12 +1813,11 @@ channel_save(channel_T *channel, ch_part_T part, char_u *buf, int len,
head->rq_prev = node;
}
- if (log_fd != NULL && lead != NULL)
+ if (ch_log_active() && lead != NULL)
{
ch_log_lead(lead, channel);
fprintf(log_fd, "'");
- if (fwrite(buf, len, 1, log_fd) != 1)
- return FAIL;
+ ignored = (int)fwrite(buf, len, 1, log_fd);
fprintf(log_fd, "'\n");
}
return OK;
@@ -2871,7 +2903,7 @@ channel_close(channel_T *channel, int invoke_close_cb)
if (channel_need_redraw)
{
channel_need_redraw = FALSE;
- redraw_after_callback();
+ redraw_after_callback(TRUE);
}
if (!channel->ch_drop_never)
@@ -2897,14 +2929,27 @@ channel_close_in(channel_T *channel)
ch_close_part(channel, PART_IN);
}
+ static void
+remove_from_writeque(writeq_T *wq, writeq_T *entry)
+{
+ ga_clear(&entry->wq_ga);
+ wq->wq_next = entry->wq_next;
+ if (wq->wq_next == NULL)
+ wq->wq_prev = NULL;
+ else
+ wq->wq_next->wq_prev = NULL;
+ vim_free(entry);
+}
+
/*
* Clear the read buffer on "channel"/"part".
*/
static void
channel_clear_one(channel_T *channel, ch_part_T part)
{
- jsonq_T *json_head = &channel->ch_part[part].ch_json_head;
- cbq_T *cb_head = &channel->ch_part[part].ch_cb_head;
+ chanpart_T *ch_part = &channel->ch_part[part];
+ jsonq_T *json_head = &ch_part->ch_json_head;
+ cbq_T *cb_head = &ch_part->ch_cb_head;
while (channel_peek(channel, part) != NULL)
vim_free(channel_get(channel, part));
@@ -2924,10 +2969,13 @@ channel_clear_one(channel_T *channel, ch_part_T part)
remove_json_node(json_head, json_head->jq_next);
}
- free_callback(channel->ch_part[part].ch_callback,
- channel->ch_part[part].ch_partial);
- channel->ch_part[part].ch_callback = NULL;
- channel->ch_part[part].ch_partial = NULL;
+ free_callback(ch_part->ch_callback, ch_part->ch_partial);
+ ch_part->ch_callback = NULL;
+ ch_part->ch_partial = NULL;
+
+ while (ch_part->ch_writeque.wq_next != NULL)
+ remove_from_writeque(&ch_part->ch_writeque,
+ ch_part->ch_writeque.wq_next);
}
/*
@@ -2942,7 +2990,7 @@ channel_clear(channel_T *channel)
channel_clear_one(channel, PART_SOCK);
channel_clear_one(channel, PART_OUT);
channel_clear_one(channel, PART_ERR);
- /* there is no callback or queue for PART_IN */
+ channel_clear_one(channel, PART_IN);
free_callback(channel->ch_callback, channel->ch_partial);
channel->ch_callback = NULL;
channel->ch_partial = NULL;
@@ -2984,7 +3032,9 @@ channel_fill_wfds(int maxfd_arg, fd_set *wfds)
{
chanpart_T *in_part = &ch->ch_part[PART_IN];
- if (in_part->ch_fd != INVALID_FD && in_part->ch_bufref.br_buf != NULL)
+ if (in_part->ch_fd != INVALID_FD
+ && (in_part->ch_bufref.br_buf != NULL
+ || in_part->ch_writeque.wq_next != NULL))
{
FD_SET((int)in_part->ch_fd, wfds);
if ((int)in_part->ch_fd >= maxfd)
@@ -3007,7 +3057,9 @@ channel_fill_poll_write(int nfd_in, struct pollfd *fds)
{
chanpart_T *in_part = &ch->ch_part[PART_IN];
- if (in_part->ch_fd != INVALID_FD && in_part->ch_bufref.br_buf != NULL)
+ if (in_part->ch_fd != INVALID_FD
+ && (in_part->ch_bufref.br_buf != NULL
+ || in_part->ch_writeque.wq_next != NULL))
{
in_part->ch_poll_idx = nfd;
fds[nfd].fd = in_part->ch_fd;
@@ -3055,7 +3107,20 @@ channel_wait(channel_T *channel, sock_T fd, int timeout)
if (r && nread > 0)
return CW_READY;
if (r == 0)
- return CW_ERROR;
+ {
+ DWORD err = GetLastError();
+
+ if (err != ERROR_BAD_PIPE && err != ERROR_BROKEN_PIPE)
+ return CW_ERROR;
+
+ if (channel->ch_named_pipe)
+ {
+ DisconnectNamedPipe((HANDLE)fd);
+ ConnectNamedPipe((HANDLE)fd, NULL);
+ }
+ else
+ return CW_ERROR;
+ }
/* perhaps write some buffer lines */
channel_write_any_lines();
@@ -3234,11 +3299,13 @@ channel_read(channel_T *channel, ch_part_T part, char *func)
/* Reading a disconnection (readlen == 0), or an error. */
if (readlen <= 0)
- ch_close_part_on_error(channel, part, (len < 0), func);
-
+ {
+ if (!channel->ch_keep_open)
+ ch_close_part_on_error(channel, part, (len < 0), func);
+ }
#if defined(CH_HAS_GUI) && defined(FEAT_GUI_GTK)
- /* signal the main loop that there is something to read */
- if (CH_HAS_GUI && gtk_main_level() > 0)
+ else if (CH_HAS_GUI && gtk_main_level() > 0)
+ /* signal the main loop that there is something to read */
gtk_main_quit();
#endif
}
@@ -3317,7 +3384,7 @@ channel_read_block(channel_T *channel, ch_part_T part, int timeout)
channel_consume(channel, part, (int)(nl - buf) + 1);
}
}
- if (log_fd != NULL)
+ if (ch_log_active())
ch_log(channel, "Returning %d bytes", (int)STRLEN(msg));
return msg;
}
@@ -3496,13 +3563,14 @@ channel_fd2channel(sock_T fd, ch_part_T *partp)
}
# endif
-# if defined(WIN32) || defined(PROTO)
+# if defined(WIN32) || defined(FEAT_GUI) || defined(PROTO)
/*
* Check the channels for anything that is ready to be read.
* The data is put in the read queue.
+ * if "only_keep_open" is TRUE only check channels where ch_keep_open is set.
*/
void
-channel_handle_events(void)
+channel_handle_events(int only_keep_open)
{
channel_T *channel;
ch_part_T part;
@@ -3510,6 +3578,9 @@ channel_handle_events(void)
for (channel = first_channel; channel != NULL; channel = channel->ch_next)
{
+ if (only_keep_open && !channel->ch_keep_open)
+ continue;
+
/* check the socket and pipes */
for (part = PART_SOCK; part < PART_IN; ++part)
{
@@ -3529,6 +3600,45 @@ channel_handle_events(void)
}
# endif
+# if defined(FEAT_GUI) || defined(PROTO)
+/*
+ * Return TRUE when there is any channel with a keep_open flag.
+ */
+ int
+channel_any_keep_open()
+{
+ channel_T *channel;
+
+ for (channel = first_channel; channel != NULL; channel = channel->ch_next)
+ if (channel->ch_keep_open)
+ return TRUE;
+ return FALSE;
+}
+# endif
+
+/*
+ * Set "channel"/"part" to non-blocking.
+ * Only works for sockets and pipes.
+ */
+ void
+channel_set_nonblock(channel_T *channel, ch_part_T part)
+{
+ chanpart_T *ch_part = &channel->ch_part[part];
+ int fd = ch_part->ch_fd;
+
+ if (fd != INVALID_FD)
+ {
+#ifdef _WIN32
+ u_long val = 1;
+
+ ioctlsocket(fd, FIONBIO, &val);
+#else
+ (void)fcntl(fd, F_SETFL, O_NONBLOCK);
+#endif
+ ch_part->ch_nonblocking = TRUE;
+ }
+}
+
/*
* Write "buf" (NUL terminated string) to "channel"/"part".
* When "fun" is not NULL an error message might be given.
@@ -3538,14 +3648,16 @@ channel_handle_events(void)
channel_send(
channel_T *channel,
ch_part_T part,
- char_u *buf,
- int len,
+ char_u *buf_arg,
+ int len_arg,
char *fun)
{
int res;
sock_T fd;
+ chanpart_T *ch_part = &channel->ch_part[part];
+ int did_use_queue = FALSE;
- fd = channel->ch_part[part].ch_fd;
+ fd = ch_part->ch_fd;
if (fd == INVALID_FD)
{
if (!channel->ch_error && fun != NULL)
@@ -3557,33 +3669,153 @@ channel_send(
return FAIL;
}
- if (log_fd != NULL)
+ if (ch_log_active())
{
ch_log_lead("SEND ", channel);
fprintf(log_fd, "'");
- ignored = (int)fwrite(buf, len, 1, log_fd);
+ ignored = (int)fwrite(buf_arg, len_arg, 1, log_fd);
fprintf(log_fd, "'\n");
fflush(log_fd);
did_log_msg = TRUE;
}
- if (part == PART_SOCK)
- res = sock_write(fd, (char *)buf, len);
- else
- res = fd_write(fd, (char *)buf, len);
- if (res != len)
+ for (;;)
{
- if (!channel->ch_error && fun != NULL)
+ writeq_T *wq = &ch_part->ch_writeque;
+ char_u *buf;
+ int len;
+
+ if (wq->wq_next != NULL)
{
- ch_error(channel, "%s(): write failed", fun);
- EMSG2(_("E631: %s(): write failed"), fun);
+ /* first write what was queued */
+ buf = wq->wq_next->wq_ga.ga_data;
+ len = wq->wq_next->wq_ga.ga_len;
+ did_use_queue = TRUE;
+ }
+ else
+ {
+ if (len_arg == 0)
+ /* nothing to write, called from channel_select_check() */
+ return OK;
+ buf = buf_arg;
+ len = len_arg;
}
- channel->ch_error = TRUE;
- return FAIL;
- }
- channel->ch_error = FALSE;
- return OK;
+ if (part == PART_SOCK)
+ res = sock_write(fd, (char *)buf, len);
+ else
+ {
+ res = fd_write(fd, (char *)buf, len);
+#ifdef WIN32
+ if (channel->ch_named_pipe && res < 0)
+ {
+ DisconnectNamedPipe((HANDLE)fd);
+ ConnectNamedPipe((HANDLE)fd, NULL);
+ }
+#endif
+
+ }
+ if (res < 0 && (errno == EWOULDBLOCK
+#ifdef EAGAIN
+ || errno == EAGAIN
+#endif
+ ))
+ res = 0; /* nothing got written */
+
+ if (res >= 0 && ch_part->ch_nonblocking)
+ {
+ writeq_T *entry = wq->wq_next;
+
+ if (did_use_queue)
+ ch_log(channel, "Sent %d bytes now", res);
+ if (res == len)
+ {
+ /* Wrote all the buf[len] bytes. */
+ if (entry != NULL)
+ {
+ /* Remove the entry from the write queue. */
+ remove_from_writeque(wq, entry);
+ continue;
+ }
+ if (did_use_queue)
+ ch_log(channel, "Write queue empty");
+ }
+ else
+ {
+ /* Wrote only buf[res] bytes, can't write more now. */
+ if (entry != NULL)
+ {
+ if (res > 0)
+ {
+ /* Remove the bytes that were written. */
+ mch_memmove(entry->wq_ga.ga_data,
+ (char *)entry->wq_ga.ga_data + res,
+ len - res);
+ entry->wq_ga.ga_len -= res;
+ }
+ buf = buf_arg;
+ len = len_arg;
+ }
+ else
+ {
+ buf += res;
+ len -= res;
+ }
+ ch_log(channel, "Adding %d bytes to the write queue", len);
+
+ /* Append the not written bytes of the argument to the write
+ * buffer. Limit entries to 4000 bytes. */
+ if (wq->wq_prev != NULL
+ && wq->wq_prev->wq_ga.ga_len + len < 4000)
+ {
+ writeq_T *last = wq->wq_prev;
+
+ /* append to the last entry */
+ if (ga_grow(&last->wq_ga, len) == OK)
+ {
+ mch_memmove((char *)last->wq_ga.ga_data
+ + last->wq_ga.ga_len,
+ buf, len);
+ last->wq_ga.ga_len += len;
+ }
+ }
+ else
+ {
+ writeq_T *last = (writeq_T *)alloc((int)sizeof(writeq_T));
+
+ if (last != NULL)
+ {
+ last->wq_prev = wq->wq_prev;
+ last->wq_next = NULL;
+ if (wq->wq_prev == NULL)
+ wq->wq_next = last;
+ else
+ wq->wq_prev->wq_next = last;
+ wq->wq_prev = last;
+ ga_init2(&last->wq_ga, 1, 1000);
+ if (ga_grow(&last->wq_ga, len) == OK)
+ {
+ mch_memmove(last->wq_ga.ga_data, buf, len);
+ last->wq_ga.ga_len = len;
+ }
+ }
+ }
+ }
+ }
+ else if (res != len)
+ {
+ if (!channel->ch_error && fun != NULL)
+ {
+ ch_error(channel, "%s(): write failed", fun);
+ EMSG2(_("E631: %s(): write failed"), fun);
+ }
+ channel->ch_error = TRUE;
+ return FAIL;
+ }
+
+ channel->ch_error = FALSE;
+ return OK;
+ }
}
/*
@@ -3795,13 +4027,7 @@ channel_poll_check(int ret_in, void *fds_in)
idx = in_part->ch_poll_idx;
if (ret > 0 && idx != -1 && (fds[idx].revents & POLLOUT))
{
- if (in_part->ch_buf_append)
- {
- if (in_part->ch_bufref.br_buf != NULL)
- channel_write_new_lines(in_part->ch_bufref.br_buf);
- }
- else
- channel_write_in(channel);
+ channel_write_input(channel);
--ret;
}
}
@@ -3865,6 +4091,7 @@ channel_select_check(int ret_in, void *rfds_in, void *wfds_in)
if (ret > 0 && fd != INVALID_FD && FD_ISSET(fd, rfds))
{
channel_read(channel, part, "channel_select_check");
+ FD_CLR(fd, rfds);
--ret;
}
}
@@ -3873,13 +4100,8 @@ channel_select_check(int ret_in, void *rfds_in, void *wfds_in)
if (ret > 0 && in_part->ch_fd != INVALID_FD
&& FD_ISSET(in_part->ch_fd, wfds))
{
- if (in_part->ch_buf_append)
- {
- if (in_part->ch_bufref.br_buf != NULL)
- channel_write_new_lines(in_part->ch_bufref.br_buf);
- }
- else
- channel_write_in(channel);
+ channel_write_input(channel);
+ FD_CLR(in_part->ch_fd, wfds);
--ret;
}
}
@@ -3976,7 +4198,7 @@ channel_parse_messages(void)
if (channel_need_redraw)
{
channel_need_redraw = FALSE;
- redraw_after_callback();
+ redraw_after_callback(TRUE);
}
--safe_to_invoke_callback;
@@ -4456,6 +4678,20 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
return FAIL;
}
}
+ else if (STRCMP(hi->hi_key, "eof_chars") == 0)
+ {
+ char_u *p;
+
+ if (!(supported2 & JO2_EOF_CHARS))
+ break;
+ opt->jo_set2 |= JO2_EOF_CHARS;
+ p = opt->jo_eof_chars = get_tv_string_chk(item);
+ if (p == NULL)
+ {
+ EMSG2(_(e_invarg2), "term_opencmd");
+ return FAIL;
+ }
+ }
else if (STRCMP(hi->hi_key, "term_rows") == 0)
{
if (!(supported2 & JO2_TERM_ROWS))
@@ -4654,7 +4890,8 @@ job_free_contents(job_T *job)
}
mch_clear_job(job);