diff options
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/autoload/syntaxcomplete.vim | 4 | ||||
-rw-r--r-- | runtime/doc/eval.txt | 35 | ||||
-rw-r--r-- | runtime/doc/index.txt | 3 | ||||
-rw-r--r-- | runtime/doc/intro.txt | 5 | ||||
-rw-r--r-- | runtime/doc/spell.txt | 2 | ||||
-rw-r--r-- | runtime/doc/tags | 8 | ||||
-rw-r--r-- | runtime/doc/testing.txt | 2 | ||||
-rw-r--r-- | runtime/doc/textprop.txt | 2 | ||||
-rw-r--r-- | runtime/doc/todo.txt | 34 | ||||
-rw-r--r-- | runtime/doc/various.txt | 5 | ||||
-rw-r--r-- | runtime/doc/vim.1 | 4 | ||||
-rw-r--r-- | runtime/filetype.vim | 3 | ||||
-rw-r--r-- | runtime/makemenu.vim | 1 | ||||
-rw-r--r-- | runtime/synmenu.vim | 23 | ||||
-rw-r--r-- | runtime/syntax/dockerfile.vim | 4 | ||||
-rw-r--r-- | runtime/syntax/hollywood.vim | 181 | ||||
-rw-r--r-- | runtime/tutor/Makefile | 4 | ||||
-rw-r--r-- | runtime/tutor/tutor.ko.euc | 420 | ||||
-rw-r--r-- | runtime/tutor/tutor.tr.iso9 | 149 | ||||
-rw-r--r-- | runtime/tutor/tutor.tr.utf-8 | 149 |
20 files changed, 699 insertions, 339 deletions
diff --git a/runtime/autoload/syntaxcomplete.vim b/runtime/autoload/syntaxcomplete.vim index a18c3c360c..98584b4074 100644 --- a/runtime/autoload/syntaxcomplete.vim +++ b/runtime/autoload/syntaxcomplete.vim @@ -2,7 +2,7 @@ " Language: All languages, uses existing syntax highlighting rules " Maintainer: David Fishburn <dfishburn dot vim at gmail dot com> " Version: 13.0 -" Last Change: 2013 May 14 +" Last Change: 2019 Aug 08 " Usage: For detailed help, ":help ft-syntax-omni" " History @@ -597,7 +597,7 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full ) " Remove all non-word characters " let syn_list = substitute( syn_list, '\<match /\zs.\{-}\<\W\+\>.\{-}\ze\/ ', "", 'g' ) " let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\W\+\ze.\{-}\/ ', ' ', 'g' ) - " Do this by using the outer substitue() call to gather all + " Do this by using the outer substitute() call to gather all " text between the match /.../ tags. " The inner substitute() call operates on the text selected " and replaces all non-word characters. diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 1e5b5a0a0d..96feb7daab 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 8.1. Last change: 2019 Aug 08 +*eval.txt* For Vim version 8.1. Last change: 2019 Aug 17 VIM REFERENCE MANUAL by Bram Moolenaar @@ -483,7 +483,7 @@ String automatically. Thus the String '4' and the number 4 will find the same entry. Note that the String '04' and the Number 04 are different, since the Number will be converted to the String '4'. The empty string can also be used as a key. - *literal-Dict* + *literal-Dict* *#{}* To avoid having to put quotes around every key the #{} form can be used. This does require the key to consist only of ASCII letters, digits, '-' and '_'. Example: > @@ -1219,7 +1219,7 @@ When expr8 is a |Funcref| type variable, invoke the function it refers to. expr8->name([args]) method call *method* *->* expr8->{lambda}([args]) - + *E276* For methods that are also available as global functions this is the same as: > name(expr8 [, args]) There can also be methods specifically for the type of "expr8". @@ -1230,7 +1230,7 @@ next method: > < Example of using a lambda: > GetPercentage->{x -> x * 100}()->printf('%d%%') - +< *E274* "->name(" must not contain white space. There can be white space before the "->" and after the "(", thus you can split the lines like this: > @@ -1239,7 +1239,10 @@ Example of using a lambda: > \ ->map(mapexpr) \ ->sort() \ ->join() -< + +When using the lambda form there must be no white space between the } and the +(. + *expr9* number @@ -2035,14 +2038,19 @@ v:progname Contains the name (with path removed) with which Vim was Read-only. *v:progpath* *progpath-variable* -v:progpath Contains the command with which Vim was invoked, including the - path. Useful if you want to message a Vim server using a +v:progpath Contains the command with which Vim was invoked, in a form + that when passed to the shell will run the same Vim executable + as the current one (if $PATH remains unchanged). + Useful if you want to message a Vim server using a |--remote-expr|. To get the full path use: > echo exepath(v:progpath) -< If the path is relative it will be expanded to the full path, - so that it still works after `:cd`. Thus starting "./vim" - results in "/home/user/path/to/vim/src/vim". +< If the command has a relative path it will be expanded to the + full path, so that it still works after `:cd`. Thus starting + "./vim" results in "/home/user/path/to/vim/src/vim". + On Linux and other systems it will always be the full path. + On Mac it may just be "vim" and using exepath() as mentioned + above should be used to get the full path. On MS-Windows the executable may be called "vim.exe", but the ".exe" is not added to v:progpath. Read-only. @@ -9320,6 +9328,7 @@ win_execute({id}, {command} [, {silent}]) *win_execute()* autocommands and not actually show syntax highlighting. *E994* Not all commands are allowed in popup windows. + When window {id} does not exist then no error is given. win_findbuf({bufnr}) *win_findbuf()* Returns a list with |window-ID|s for windows that contain @@ -10341,6 +10350,12 @@ This does NOT work: > :let ${env-name} = {expr1} *:let-environment* *:let-$* Set environment variable {env-name} to the result of the expression {expr1}. The type is always String. + + On some systems making an environment variable empty + causes it to be deleted. Many systems do not make a + difference between an environment variable that is not + set and an environment variable that is empty. + :let ${env-name} .= {expr1} Append {expr1} to the environment variable {env-name}. If the environment variable didn't exist yet this diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt index f20c706727..f6cf2b5a3a 100644 --- a/runtime/doc/index.txt +++ b/runtime/doc/index.txt @@ -1,4 +1,4 @@ -*index.txt* For Vim version 8.1. Last change: 2019 Jun 16 +*index.txt* For Vim version 8.1. Last change: 2019 Aug 16 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1592,6 +1592,7 @@ tag command action ~ |:spelldump| :spelld[ump] split window and fill with all correct words |:spellgood| :spe[llgood] add good word for spelling |:spellinfo| :spelli[nfo] show info about loaded spell files +|:spellrare| :spellra[re] add rare word for spelling |:spellrepall| :spellr[epall] replace all bad words like last |z=| |:spellundo| :spellu[ndo] remove good or bad word |:spellwrong| :spellw[rong] add spelling mistake diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt index 6d86ba9c53..2c524bf945 100644 --- a/runtime/doc/intro.txt +++ b/runtime/doc/intro.txt @@ -1,4 +1,4 @@ -*intro.txt* For Vim version 8.1. Last change: 2019 Jun 26 +*intro.txt* For Vim version 8.1. Last change: 2019 Aug 16 VIM REFERENCE MANUAL by Bram Moolenaar @@ -508,6 +508,9 @@ the ":map" command. The rules are: <M-a> Meta- a ('a' with bit 8 set) <M-A> Meta- A ('A' with bit 8 set) <t_kd> "kd" termcap entry (cursor down key) + Although you can specify <M-{char}> with {char} being a multi-byte + character, Vim may not be able to know what byte sequence that is and then + it won't work. If you want to use the full <> notation in Vim, you have to make sure the '<' flag is excluded from 'cpoptions' (when 'compatible' is not set, it already is diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt index 540b836d15..8269caca4b 100644 --- a/runtime/doc/spell.txt +++ b/runtime/doc/spell.txt @@ -1,4 +1,4 @@ -*spell.txt* For Vim version 8.1. Last change: 2019 May 05 +*spell.txt* For Vim version 8.1. Last change: 2019 Aug 16 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/tags b/runtime/doc/tags index 735a4d2d8f..0d67202639 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -1,6 +1,7 @@ ! change.txt /*!* !! change.txt /*!!* # pattern.txt /*#* +#{} eval.txt /*#{}* $ motion.txt /*$* $HOME options.txt /*$HOME* $HOME-use version5.txt /*$HOME-use* @@ -1266,6 +1267,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX* +cindent various.txt /*+cindent* +clientserver various.txt /*+clientserver* +clipboard various.txt /*+clipboard* ++clipboard_working various.txt /*+clipboard_working* +cmd editing.txt /*+cmd* +cmdline_compl various.txt /*+cmdline_compl* +cmdline_hist various.txt /*+cmdline_hist* @@ -1434,6 +1436,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX* --ttyfail starting.txt /*--ttyfail* --version starting.txt /*--version* --windowid starting.txt /*--windowid* +-> eval.txt /*->* -? starting.txt /*-?* -A starting.txt /*-A* -C starting.txt /*-C* @@ -3093,6 +3096,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX* :spelli spell.txt /*:spelli* :spellinfo spell.txt /*:spellinfo* :spellr spell.txt /*:spellr* +:spellra spell.txt /*:spellra* +:spellrare spell.txt /*:spellrare* :spellrepall spell.txt /*:spellrepall* :spellu spell.txt /*:spellu* :spellundo spell.txt /*:spellundo* @@ -4028,6 +4033,8 @@ E271 if_ruby.txt /*E271* E272 if_ruby.txt /*E272* E273 if_ruby.txt /*E273* E274 eval.txt /*E274* +E275 textprop.txt /*E275* +E276 eval.txt /*E276* E277 remote.txt /*E277* E28 syntax.txt /*E28* E280 if_tcl.txt /*E280* @@ -8350,6 +8357,7 @@ prop_type_list() textprop.txt /*prop_type_list()* psql ft_sql.txt /*psql* ptcap.vim syntax.txt /*ptcap.vim* pterm-mouse options.txt /*pterm-mouse* +pum_getpos() eval.txt /*pum_getpos()* pumvisible() eval.txt /*pumvisible()* put change.txt /*put* put-Visual-mode change.txt /*put-Visual-mode* diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt index 0dbe014f21..84aeb57834 100644 --- a/runtime/doc/testing.txt +++ b/runtime/doc/testing.txt @@ -1,4 +1,4 @@ -*testing.txt* For Vim version 8.1. Last change: 2019 Aug 04 +*testing.txt* For Vim version 8.1. Last change: 2019 Aug 16 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/textprop.txt b/runtime/doc/textprop.txt index 14ea58fde0..d3389cb300 100644 --- a/runtime/doc/textprop.txt +++ b/runtime/doc/textprop.txt @@ -1,4 +1,4 @@ -*textprop.txt* For Vim version 8.1. Last change: 2019 Jul 20 +*textprop.txt* For Vim version 8.1. Last change: 2019 Aug 13 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index 9515f4bf2e..3214db238a 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 8.1. Last change: 2019 Aug 08 +*todo.txt* For Vim version 8.1. Last change: 2019 Aug 17 VIM REFERENCE MANUAL by Bram Moolenaar @@ -38,25 +38,9 @@ browser use: https://github.com/vim/vim/issues/1234 *known-bugs* -------------------- Known bugs and current work ----------------------- - -Methods: -- Support lambda? #4768 - echo (10.0 / 100.0)->{x -> x * 100} -- Define a user defined function for a specific type only? - func Len(expr) method=list,dict - return a:expr->len() - endfunc - echo [1, 2, 3]->Len() - 3 - call Len([1, 2, 3]) - error! - Popup windows: -- :pedit from help doesn't reset help flag, see pedit example -- check popupmenu using preview window -- modeless selection fails over ssh and with putty. Mouse dragging not - supported? Can we force it on? -- modeless selection extends into the scrollbar. (#4773) +- check popupmenu using preview window #4544 overlaps complete menu + set completeopt+=preview - Implement flip option - Have a way to scroll to the bottom, e.g. set 'firstline' to -1? (#4577) - Why does 'nrformats' leak from the popup window buffer??? @@ -148,11 +132,13 @@ Terminal emulator window: - When 'encoding' is not utf-8, or the job is using another encoding, setup conversions. -Error numbers available: E274, E275, E276, +Error numbers available: E278, E279, E290, E292, E362, E366, E450, E451, E452, E453, E454, E460, E489, E491, E565, E578, E610, E611, E653, E654, E856, E857, E860, E861, E863, E889, E900 +undo result wrong: Masato Nishihata, #4798 + Sound: support on Mac? Or does libcanberra work there? Patch to add win_splitmove() function. (Andy Massimino, #4561) @@ -173,8 +159,6 @@ terminal.c and then CTRL-N twice. Should do current file first and not split it up when more results are found. (Also #1890) -Patch to add :spellrare. (#4291) - Patch to use timers in matchparen. (Daniel Hahler, #1338) Ready to include now? @@ -209,6 +193,7 @@ When using :packadd files under "later" are not used, which is inconsistent with packages under "start". (xtal8, #1994) Modeless selection doesn't work in gvim. (#4783) +Caused by patch 8.1.1534. Visual highlight not removed when 'dipslay' is "lastline" and line doesn't fit. (Kevin Lawler, #4457) @@ -220,7 +205,7 @@ Does not build with MinGW out of the box: Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May 13, #2910) Can't reproduce? -Columns and Rows are long, they should be int. +Check_external_diff() is used too often. (Daniel Hahler, #4800) Errors found with random data: heap-buffer-overflow in alist_add (#2472) @@ -494,9 +479,6 @@ Patch to implement 'diffref' option. (#3535) Patch to specify color for cterm=underline and cterm=undercurl, like "guisp". Patch #2405 does something like this, but in the wrong way. -:pedit resets the 'buflisted' option unexpectedly. (Wang Shidong, 2018 Oct 12, -#3536) - home_replace() uses $HOME instead of "homedir". (Cesar Martins, 2018 Aug 9) When the status line uses term_gettitle(), it does not get updated when the diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt index 8c5885af72..a1fd19b663 100644 --- a/runtime/doc/various.txt +++ b/runtime/doc/various.txt @@ -1,4 +1,4 @@ -*various.txt* For Vim version 8.1. Last change: 2019 Aug 01 +*various.txt* For Vim version 8.1. Last change: 2019 Aug 12 VIM REFERENCE MANUAL by Bram Moolenaar @@ -332,7 +332,8 @@ N *+byte_offset* support for 'o' flag in 'statusline' option, "go" m *+channel* inter process communication |channel| N *+cindent* |'cindent'|, C indenting N *+clientserver* Unix and Win32: Remote invocation |clientserver| - *+clipboard* |clipboard| support + *+clipboard* |clipboard| support compiled-in + *+clipboard_working* |clipboard| support compiled-in and working N *+cmdline_compl* command line completion |cmdline-completion| S *+cmdline_hist* command line history |cmdline-history| N *+cmdline_info* |'showcmd'| and |'ruler'| diff --git a/runtime/doc/vim.1 b/runtime/doc/vim.1 index 3c29361344..d19317d4dc 100644 --- a/runtime/doc/vim.1 +++ b/runtime/doc/vim.1 @@ -266,7 +266,7 @@ Otherwise an error message is given and aborts. .TP \-i {viminfo} -When using the viminfo file is enabled, this option sets the filename to use, +Specifies the filename to use when reading or writing the viminfo file, instead of the default "~/.viminfo". This can also be used to skip the use of the .viminfo file, by giving the name "NONE". @@ -289,7 +289,7 @@ so that changes are not allowed and files can not be written. Note that these options can be set to enable making modifications. .TP \-N -No-compatible mode. Reset the 'compatible' option. +No-compatible mode. Resets the 'compatible' option. This will make .B Vim behave a bit better, but less Vi compatible, even though a .vimrc file does diff --git a/runtime/filetype.vim b/runtime/filetype.vim index 0a50c302b7..895ac065a3 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -701,6 +701,9 @@ au BufNewFile,BufRead *.vc,*.ev,*.sum,*.errsum setf hercules " HEX (Intel) au BufNewFile,BufRead *.hex,*.h32 setf hex +" Hollywood +au BufRead,BufNewFile *.hws setf hollywood + " Tilde (must be before HTML) au BufNewFile,BufRead *.t.html setf tilde diff --git a/runtime/makemenu.vim b/runtime/makemenu.vim index 7fb126977a..ff29d59063 100644 --- a/runtime/makemenu.vim +++ b/runtime/makemenu.vim @@ -267,6 +267,7 @@ SynMenu HIJK.Hercules:hercules SynMenu HIJK.Hex\ dump.XXD:xxd SynMenu HIJK.Hex\ dump.Intel\ MCS51:hex SynMenu HIJK.Hg\ commit:hgcommit +SynMenu HIJK.Hollywood:hollywood SynMenu HIJK.HTML.HTML:html SynMenu HIJK.HTML.HTML\ with\ M4:htmlm4 SynMenu HIJK.HTML.HTML\ with\ Ruby\ (eRuby):eruby diff --git a/runtime/synmenu.vim b/runtime/synmenu.vim index e8c9933abf..70e0e83ba7 100644 --- a/runtime/synmenu.vim +++ b/runtime/synmenu.vim @@ -247,17 +247,18 @@ an 50.50.170 &Syntax.HIJK.Hercules :cal SetSyn("hercules")<CR> an 50.50.180 &Syntax.HIJK.Hex\ dump.XXD :cal SetSyn("xxd")<CR> an 50.50.190 &Syntax.HIJK.Hex\ dump.Intel\ MCS51 :cal SetSyn("hex")<CR> an 50.50.200 &Syntax.HIJK.Hg\ commit :cal SetSyn("hgcommit")<CR> -an 50.50.210 &Syntax.HIJK.HTML.HTML :cal SetSyn("html")<CR> -an 50.50.220 &Syntax.HIJK.HTML.HTML\ with\ M4 :cal SetSyn("htmlm4")<CR> -an 50.50.230 &Syntax.HIJK.HTML.HTML\ with\ Ruby\ (eRuby) :cal SetSyn("eruby")<CR> -an 50.50.240 &Syntax.HIJK.HTML.Cheetah\ HTML\ template :cal SetSyn("htmlcheetah")<CR> -an 50.50.250 &Syntax.HIJK.HTML.Django\ HTML\ template :cal SetSyn("htmldjango")<CR> -an 50.50.260 &Syntax.HIJK.HTML.Vue.js\ HTML\ template :cal SetSyn("vuejs")<CR> -an 50.50.270 &Syntax.HIJK.HTML.HTML/OS :cal SetSyn("htmlos")<CR> -an 50.50.280 &Syntax.HIJK.HTML.XHTML :cal SetSyn("xhtml")<CR> -an 50.50.290 &Syntax.HIJK.Host\.conf :cal SetSyn("hostconf")<CR> -an 50.50.300 &Syntax.HIJK.Hosts\ access :cal SetSyn("hostsaccess")<CR> -an 50.50.310 &Syntax.HIJK.Hyper\ Builder :cal SetSyn("hb")<CR> +an 50.50.210 &Syntax.HIJK.Hollywood :cal SetSyn("hollywood")<CR> +an 50.50.220 &Syntax.HIJK.HTML.HTML :cal SetSyn("html")<CR> +an 50.50.230 &Syntax.HIJK.HTML.HTML\ with\ M4 :cal SetSyn("htmlm4")<CR> +an 50.50.240 &Syntax.HIJK.HTML.HTML\ with\ Ruby\ (eRuby) :cal SetSyn("eruby")<CR> +an 50.50.250 &Syntax.HIJK.HTML.Cheetah\ HTML\ template :cal SetSyn("htmlcheetah")<CR> +an 50.50.260 &Syntax.HIJK.HTML.Django\ HTML\ template :cal SetSyn("htmldjango")<CR> +an 50.50.270 &Syntax.HIJK.HTML.Vue.js\ HTML\ template :cal SetSyn("vuejs")<CR> +an 50.50.280 &Syntax.HIJK.HTML.HTML/OS :cal SetSyn("htmlos")<CR> +an 50.50.290 &Syntax.HIJK.HTML.XHTML :cal SetSyn("xhtml")<CR> +an 50.50.300 &Syntax.HIJK.Host\.conf :cal SetSyn("hostconf")<CR> +an 50.50.310 &Syntax.HIJK.Hosts\ access :cal SetSyn("hostsaccess")<CR> +an 50.50.320 &Syntax.HIJK.Hyper\ Builder :cal SetSyn("hb")<CR> an 50.50.330 &Syntax.HIJK.Icewm\ menu :cal SetSyn("icemenu")<CR> an 50.50.340 &Syntax.HIJK.Icon :cal SetSyn("icon")<CR> an 50.50.350 &Syntax.HIJK.IDL\Generic\ IDL :cal SetSyn("idl")<CR> diff --git a/runtime/syntax/dockerfile.vim b/runtime/syntax/dockerfile.vim index 15b66925e5..4cf50d999f 100644 --- a/runtime/syntax/dockerfile.vim +++ b/runtime/syntax/dockerfile.vim @@ -1,7 +1,7 @@ " dockerfile.vim - Syntax highlighting for Dockerfiles " Maintainer: Honza Pokorny <https://honza.ca> " Version: 0.6 -" Last Change: 2016 Aug 9 +" Last Change: 2019 Aug 16 " License: BSD @@ -15,6 +15,8 @@ syntax case ignore syntax match dockerfileKeyword /\v^\s*(ONBUILD\s+)?(ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)\s/ +syntax match dockerfileKeyword /\v(AS)/ + syntax region dockerfileString start=/\v"/ skip=/\v\\./ end=/\v"/ syntax match dockerfileComment "\v^\s*#.*$" diff --git a/runtime/syntax/hollywood.vim b/runtime/syntax/hollywood.vim new file mode 100644 index 0000000000..34fbb45c54 --- /dev/null +++ b/runtime/syntax/hollywood.vim @@ -0,0 +1,181 @@ +" Vim syntax file +" Language: Hollywood 8.0 +" Maintainer: Tom Crecelius <holly@net-eclipse.net> +" First Author: Tom Crecelius <holly@net-eclipse.net> +" Last Change: 2018 May 18 +" Highlighting Issues: +" Depending on your colour schema, Strings or Comments might be highlighted in +" a way, you don't like. If so, try one of the following settings after +" opening a hollywood script: +" +" :hi link hwString MoreMsg +" :hi link hwString NonText +" :hi link hwString String +" +" and for comments: +" +" :hi link hwComment MoreMsg +" :hi link hwComment NonText +" :hi link hwComment Comment +" +" Remember the setting you like and change the corresponding definition at +" the bottom of this file. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +if !exists("hw_version") + let hw_version = 8 + let hw_subversion = 0 +elseif !exists("hw_subversion") + let hw_subversion = 0 +endif + +syn case match + +" syncing method +syn sync minlines=100 + +" catch errors caused by wrong parenthesis and wrong curly brackets or +" keywords placed outside their respective blocks +syn region hwParen transparent start='(' end=')' contains=ALLBUT,hwParenError,hwTodo,hwSpecial,hwIfEndIf,hwElseIf,hwElse,hwBlock,hwLoopBlock,hwIn,hwStatement,hwStep,hwFallThrough,hwLineStatement +syn region hwTableBlock transparent matchgroup=hwTable start="{" end="}" contains=ALLBUT,hwBraceError,hwTodo,hwSpecial,hwIfEndIf,hwElseIf,hwElse,hwBlock,hwLoopBlock,hwIn,hwStatement,hwStep,hwFallThrough,hwLineStatement + +syn match hwParenError ")" +syn match hwBraceError "}" +syn match hwError "\<\%(If\|End\|Else\|ElseIf\|Then\|Until\|In\|EndIf\|EndSwitch\|FallThrough\|Case\|Default\|Wend\|Until\|Forever\)\>" + +" Function ... End +syn region hwFunctionBlock transparent matchgroup=hwFunction start="\<Function\>" end="\<EndFunction\>" contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElse,hwIn,hwStep,hwFallThrough,hwLineStatement + +" If .. Then +syn region hwIfThen transparent matchgroup=hwCond start="\<If\>" end="\<Then\>\{-}"me=e-4 skipwhite skipempty +" Then ... Else +syn region hwThenElse transparent matchgroup=hwCond start="\<Then\>" end="$" end="\<Else\>" contains=ALLBUT,hwTodo,hwSpecial,hwIn,hwStep,hwLineStatement,hwIfEndIf,hwElseEndif,hwIfThen,hwThenElse skipwhite skipempty + +" If .. EndIf +syn region hwIfEndIf transparent matchgroup=hwCond start="\<If\>\(\(.\{-}Then.\{-}\)\@!\)" end="\<EndIf\>" contains=ALLBUT,hwTodo,hwSpecial,hwIn,hwStep,hwLineStatement skipwhite skipempty +" Else ... EndIf +syn region hwElseEndIf contained transparent matchgroup=hwCond start="\<Else\>" end="\<EndIf\>"me=e-5 contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElseEndIf,hwIn,hwStep,hwFallThrough,hwLineStatement + +" Then +"syn keyword hwLineStatement Then contained +" Forever +syn keyword hwLineStatement Forever contained +" Do +syn keyword hwLineStatement Do contained +" ElseIf +syn keyword hwElseIf ElseIf contained + + +" Switch ... EndSwitch +syn region hwSwitchEnd transparent matchgroup=hwCond start="\<Switch\>" end="\<EndSwitch\>" contains=hwCase,hwDefCase skipwhite skipempty + +" Case ... : +syn region hwCase transparent matchgroup=hwCond start="\<Case\>" end="\<EndSwitch\>"me=e-9 end="\<Default\>:"me=e-8 end="\<Case\>"me=e-4 contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElseEndIf,hwLineStatement,hwIn,hwStep skipwhite skipempty +" Default: +syn region hwDefCase transparent matchgroup=hwCond start="\<Default\>" end="\<EndSwitch\>"me=e-9 contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElseEndIf,hwIn,hwStep,hwCase,hwDefCase,hwFallThrough,hwLineStatement skipwhite skipempty + +syn keyword hwFallThrough contained FallThrough + +" Block ... EndBlock +syn region hwBlock transparent matchgroup=hwStatement start="\<Block\>" end="\<EndBlock\>" contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElse,hwIn,hwStep,hwLineStatement + +" Repeat ... Until/Forever +syn region hwLoopBlock transparent matchgroup=hwRepeat start="\<Repeat\>" end="\<Forever\>" end="\<Until\>" contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElse,hwIn,hwStep,hwLineStatement + +" While ... Wend/Do +syn region hwLoopBlock transparent matchgroup=hwRepeat start="\<While\>" end="\<Do\>" end="\<Wend\>" contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElse,hwIn,hwStep,hwLineStatement skipwhite skipempty + +" For .. To +syn region hwForTo transparent matchgroup=hwRepeat start="\<For\>" end="\<To\>"me=e-2 skipwhite skipempty nextgroup=hwToNext + +" To .. Next +syn region hwToNext transparent matchgroup=hwRepeat start="\<To\>" end="\<Next\>" contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElse,hwIn,hwLineStatement skipwhite skipempty + +syn keyword hwStep contained Step +syn keyword hwIn contained In + +" other keywords +syn keyword hwStatement Return Break Continue +syn keyword hwStatement Goto Gosub Dim DimStr Const Local Global +syn match hwLabel "::\I\i*::" +syn match hwOperator "\%(&\|\*\|+\|-\|\.\||\|//\|/\|:\|<\|=\|>\|<>\|<=\|=>\|\^\|\~\|\\\|\<And\>\|\<Not\>\|\<Or\>\)" +syn keyword hwConstant Nil +syn keyword hwConstant True False +" predefined preprocessing commands +syn match hwPreProcessor "@\<\%(BGPIC\|BRUSH\|ANIM\|SPRITE\|SAMPLE\|MUSIC\|FILE\|FONT\|VIDEO\|VERSION\|APPTITLE\|APPAUTHOR\|APPCOPYRIGHT\|APPDESCRIPTION\|APPVERSION\|APPICON\|BACKFILL\|SCREEN\|DISPLAY\|INCLUDE\|OPTIONS\|REQUIRE\|MENU\|APPIDENTIFIER\|WARNING\|ERROR\|IF\|ELSEIF\|ELSE\|ENDIF\)\>"ms=s+1 +" predefined constants +syn match hwConstant "#\<\%(ERR_PORTNOTAVAIL\|SEEK_END\|ERR_CREATESHORTCUT\|PURPLE\|ERR_ALLOCCHANNEL\|PRGTYPE_SCRIPT\|ERR_NORETVAL\|ERR_DDRECVIDEO\|ERR_FINDPATH\|LANGUAGE_RUNDI\|ERR_STRINGCST\|COUNTRY_COLOMBIA\|LANGUAGE_KOREAN\|ERR_USERABORT\|ERR_WENDWOWHILE\|FONT\|FILEATTR_WRITE_OTH\|ERR_MODIFYABGPIC\|COUNTRY_DRCONGO\|LANGUAGE_KIRGHIZ\|LANGUAGE_ROMANSH\|FILEATTR_EXECUTE_GRP\|ERR_READVIDEOPIXELS\|SCROLLTOP\|ERR_ANIMDISK\|COUNTRY_IVORYCOAST\|LANGUAGE_GUJARATI\|SHORT\|COUNTRY_SOUTHAFRICA\|VIDEO\|ERR_BLKWOENDBLK\|ERR_WRONGHEX\|SPRITE_VS_BRUSH\|LANGUAGE_HIRIMOTU\|ZOOMSOUTHEAST\|COUNTRY_SLOVAKIA\|COUNTRY_GIBRALTAR\|ERR_INVALIDDATE\|RTS_ON\|PIXELZOOM1\|ATTRFRAMEDELAY\|AQUA\|ATTRFONTSCALABLE\|FILEATTR_NORMAL\|COUNTRY_ALBANIA\|COUNTRY_JAMAICA\|FONTWEIGHT_MEDIUM\|ERR_MALFORMPAT1\|COUNTRY_FRENCHGUIANA\|ERR_MAXPARAMS\|ERR_FORWONEXT\|COUNTRY_CONGO\|COUNTRY_GAMBIA\|UPNDOWN\|COUNTRY_ANDORRA\|BRUSH\|ERR_SELECTALPHACHANNEL\|MODLCOMMAND\|CLIENT\|COUNTRY_TRINIDADANDTOBAGO\|DIRECTORY\|LANGUAGE_ESPERANTO\|ATTRRAWHEIGHT\|COUNTRY_DENMARK\|FILETYPE_SOUND\|CLIPBOARD_TEXT\|LANGUAGE_FULAH\|ATTRPOSITION\|PLUGINCAPS_CONVERT\|ERR_APPLETVERSION\|COUNTRY_VANUATU\|COUNTDIRECTORIES\|ATTRNOHIDE\|VSTRIPES64\|AMIGAICON_SETPOSITION\|PUSHBOTTOM\|ERR_BACKFILL\|COUNTRY_MOROCCO\|ERR_FILEFORMAT\|COUNTRY_CHILE\|ATTRHOSTSCALEY\|ERR_AHI\|HW_VERSION\|ERR_ALRDYDECLRD\|ATTRRAWWIDTH\|ERR_PIXELFORMAT\|IMGFMT_PLUGIN\|LANGUAGE_HEBREW\|ERR_SETMENU\|ERR_NOLAYERS\|CRUSHTOP\|ERR_MAXLINES\|ATTRHASMASK\|LEFT\|ERR_SELECTANIM\|WALLPAPERLEFT\|TEXTOBJECT\|ERR_AFILEPROP\|LANGUAGE_CZECH\|LANGUAGE_XHOSA\|ERR_PIPE\|LANGUAGE_MANX\|ERR_EXECUTE\|ERR_ENDDOUBLEBUFFER\|ATTRGROUP\|ERR_NAMETOOLONG\|ATTRBORDERRIGHT\|COUNTRY_BOSNIAANDHERZEGOVINA\|ATTRMARGINRIGHT\|RTS_OFF\|LANGUAGE_MARSHALLESE\|LANGUAGE_AZERBAIJANI\|LANGUAGE_TAHITIAN\|JOINMITER\|ATTRNOCLOSE\|REQICON_WARNING\|ERR_NOTPROTRACKER\|LANGUAGE_LAO\|ERR_EMPTYPATH\|ERR_NOCALLBACK\|COUNTRY_UGANDA\|ERR_READFUNC\|IMGFMT_UNKNOWN\|ADF_ANIM\|ERR_LAYERSWITCH\|ERR_RECVCLOSED\|ERR_CTRLSTRUCT\|ERR_TABLEOVERFLOW\|SCROLLBOTTOM\|VSTRIPES\|ERR_VAREXPECTED\|ERR_NOTIGER\|BEEPSYSTEM\|ERR_LOWFREQ\|COUNTFILES\|COUNTRY_MONACO\|BLUE\|ERR_VFONT\|STRUDEL\|REQ_GALLERY\|ERR_NOCOORDCST\|MENU\|HSTRIPES64\|COUNTRY_COCOSISLANDS\|LANGUAGE_SOUTHNDEBELE\|COUNTRY_FALKLANDISLANDS\|COUNTRY_UAE\|LANGUAGE_KANNADA\|ERR_VIDRECMULTI\|FILETYPE_VIDEO\|LANGUAGE_ESTONIAN\|COUNTRY_CAYMANISLANDS\|ERR_BADINTEGER\|MONO16\|COUNTRY_CAMEROON\|COUNTRY_GUAM\|ERR_DISPLAYDESKTOP\|ERR_SETENV\|ERR_INTERNAL\|MASKVISIBLE\|ERR_OPENFONT\|LANGUAGE_WELSH\|ATTRRAWXPOS\|LANGUAGE_THAI\|ATTRHOSTMONITORS\|LANGUAGE_GALICIAN\|COUNTRY_GUATEMALA\|ATTRYPOS\|COUNTRY_UZBEKISTAN\|ERR_ELSEIFAFTERELSE\|MODRCONTROL\|BAUD_4800\|JOYDOWNRIGHT\|COUNTRY_LUXEMBOURG\|COUNTRY_MOZAMBIQUE\|ERR_PAKFORMAT\|LANGUAGE_TAJIK\|LANGUAGE_PANJABI\|ERR_MISSINGFIELD\|PLUGINCAPS_LIBRARY\|ERR_FUNCARGS\|LANGUAGE_MALAY\|COUNTRY_PORTUGAL\|COUNTRY_JAPAN\|ERR_ICONPARMS\|COUNTRY_NEWCALEDONIA\|REMOVELAYER\|MOVEWINDOW\|ATTRFONTASCENDER\|PLUGINCAPS_DIRADAPTER\|ERR_VARLENGTH\|ATTRSIZEABLE\|ERR_SENDUNKNOWN\|MENUITEM_RADIO\|COUNTRY_BELIZE\|ERR_LABELDOUBLE\|QUADRECT\|VBLINDS8\|ERR_UNKNOWNCMD\|SCROLLEAST\|ONBUTTONCLICKALL\|RECTNORTHEAST\|FONTWEIGHT_EXTRABOLD\|COUNTRY_SAINTKITTSANDNEVIS\|ERR_CLOSEDDISPLAY\|PLUGINCAPS_SAVEANIM\|ERR_WINDOW\|LANGUAGE_ZHUANG\|CAPROUND\|ERR_OUTOFRANGE\|REQ_CAMERA\|ERR_WARPOS\|COUNTRY_ELSALVADOR\|ERR_GROUPNAMEUSED\|COUNTRY_GUYANA\|ERR_ALREADYASYNC\|COUNTRY_PALESTINE\|DISPMODE_FAKEFULLSCREEN\|ERR_SYNTAXLEVELS\|ERR_BADPLATFORM\|ERR_VERSION\|ATTRVISIBLE\|HSTRETCHCENTER\|COUNTRY_REUNION\|COUNTRY_INDIA\|STRETCHLEFT\|ERR_ZERODIVISION\|LANGUAGE_NORTHERNSAMI\|SIMPLEBUTTON\|ERR_FINDMENU\|ERR_EMPTYOBJ\|LANGUAGE_BIHARI\|LANGUAGE_LIMBURGAN\|LANGUAGE_BOSNIAN\|ERR_SYSTOOOLD\|ERR_WRITEJPEG\|STOP_1\|COPYFILE_OVERWRITE\|ERR_REVDWORD\|PLUGINCAPS_ANIM\|ERR_ASSERTFAILED\|ERR_BRACEOPEN\|ERR_NEEDMORPHOS2\|BLACK\|LANGUAGE_SWEDISH\|ERR_DBLENCODING\|COPYFILE_STATUS\|ERR_WRONGOPCST\|ERR_BADIP\|ERR_UNKNOWNSEQ\|LANGUAGE_LUXEMBOURGISH\|ERR_WITHWOENDWITH\|ERR_LABINIF\|LANGUAGE_TATAR\|ERR_VIDEOLAYERDRV\|ERR_LEGACYPTMOD\|ERR_SAVEPNG\|NOTRANSPARENCY\|ATTRMASKMODE\|LANGUAGE_VENDA\|ERR_NEWHWPLUGIN\|LANGUAGE_LATIN\|LANGUAGE_EWE\|MENUITEM_TOGGLE\|ERR_BRACKETOPEN\|JOYUP\|COUNTRY_SENEGAL\|LANGUAGE_CHURCHSLAVIC\|ERR_ZLIBIO\|RECTBACKNORTHWEST\|MOVELIST\|ERR_TEXTARG\|ONBUTTONOVER\|VIDDRV_HOLLYWOOD\|IMGFMT_JPEG\|REQ_MULTISELECT\|COUNTRY_NIGERIA\|LANGUAGE_GUARANI\|LANGUAGE_POLISH\|ERR_ICONSTANDARD\|REQ_HIDEICONS\|LANGUAGE_CORSICAN\|DISPMODE_MODEREQUESTER\|ERR_NOABSPATH\|LANGUAGE_GERMAN\|ERR_RANDOMIZE\|ERR_ARGS\|PLUGINCAPS_AUDIOADAPTER\|IMAGETYPE_VECTOR\|LANGUAGE_GREEK\|COUNTRY_HOLYSEE\|COUNTRY_NORTHKOREA\|LANGUAGE_MALAYALAM\|COUNTRY_BOTSWANA\|LANGUAGE_CREE\|ATTRNUMENTRIES\|REQICON_ERROR\|IMGFMT_GIF\|FTPBINARY\|WORD\|VIDDRV_OS\|ATTRDURATION\|LANGUAGE_AKAN\|ERR_FTPERROR\|PLUGINCAPS_VIDEO\|ERR_EXAMINE\|HSTRIPES8\|COUNTRY_OMAN\|CIRCLE\|ERR_BRUSHLINK\|ERR_STREAMASSAMPLE\|ERR_DISPLAYSIZE\|ERR_WRONGFLOAT\|PLUGINCAPS_FILEADAPTER\|ERR_UNSUPPORTEDFEAT\|DISPLAY\|ERR_MUSPAUSED\|INTEGER\|COUNTRY_BOLIVIA\|ERR_RECVTIMEOUT\|ATTRMONITOR\|LANGUAGE_INUKTITUT\|ATTRPAUSED\|LANGUAGE_LITHUANIAN\|DATEYEAR\|JOYUPRIGHT\|ERR_LAYERSOFF\|ERR_EMPTYSCRIPT\|LIGHTUSERDATA\|ERR_FINDTIMER\|ALPHACHANNEL\|LANGUAGE_WALLOON\|ERR_ADFWRONGDISP\|ERR_HTTPERROR\|ERR_REWINDDIR\|ERR_LOCKEDOBJ\|COUNTRY_NEPAL\|HSTRIPES2\|RECTSOUTH\|ERR_UNKPROTOCOL\|COUNTRY_CANADA\|COUNTRY_VENEZUELA\|COUNTRY_MALDIVES\|ERR_SQBRACKETCLOSE\|ERR_HTTPTE\|VSTRIPES2\|COUNTRY_NORWAY\|ERR_FIRSTPREPROC\|SNAPDESKTOP\|LANGUAGE_FINNISH\|COUNTRY_TURKEY\|LANGUAGE_VIETNAMESE\|VBLINDS64\|ERR_FONTFORMAT\|ERR_PIXELRANGE\|LANGUAGE_AVESTAN\|ERR_SYSIMAGE\|BIGSINE\|CLIPBOARD_EMPTY\|ERR_WRONGCLIPREG\|AMIGAICON_NONE\|FONTWEIGHT_EXTRABLACK\|LANGUAGE_IDO\|ATTRFORMAT\|ERR_FUNCJMP\|PARITY_NONE\|ATTRHOSTDEPTH\|ERR_RENDERCALLBACK\|ERR_FINDPORT\|LANGUAGE_NEPALI\|COUNTRY_AMERICANSAMOA\|ERR_MISSINGSEPARTR\|MODRALT\|COUNTRY_BESISLANDS\|LANGUAGE_AVARIC\|ERR_VIDNOTPAUSED\|TOPOUT\|ERR_VALUEEXPECTED\|ERR_WRONGUSAGE\|TURNDOWNLEFT\|ERR_ICONDIMS\|LANGUAGE_HAUSA\|ERR_TRANSBGMOBILE\|SEEK_CURRENT\|ERR_MONITORRANGE\|COUNTRY_FAROEISLANDS\|SHAPE\|COUNTRY_SOLOMONISLANDS\|NAVY\|ERR_PREPROCSYM\|COUNTRY_GEORGIA\|LANGUAGE_OSSETIAN\|ERR_THREAD\|DATA_5\|ERR_INISYNTAX\|ERR_MUSFMTSUPPORT\|LANGUAGE_YIDDISH\|ATTRLAYERS\|SMOOTHOUT\|LANGUAGE_KONGO\|COUNTRY_KYRGYZSTAN\|ATTRDOUBLEBUFFER\|TOP\|ERR_SYSBUTTON\|ERR_DATATYPESAVE\|COUNTRY_LIBYA\|ERR_FUNCWOENDFUNC\|ANIMSTREAM\|ATTRUSERDATA\|LANGUAGE_NORTHNDEBELE\|UDPCLIENT\|ERR_MUSNOTPLYNG\|FILEATTR_READ_OTH\|ERR_EVNTEXPCTED\|ERR_BADDIMENSIONS\|ATTROUTPUTDEVICE\|LANGUAGE_BULGARIAN\|LANGUAGE_SPANISH\|DISPMODE_FULLSCREENSCALE\|LANGUAGE_INTERLINGUE\|FASTSPEED\|ERR_NODISPMODES\|LANGUAGE_CHAMORRO\|ATTRACTIVE\|COUNTRY_TOGO\|INACTIVEWINDOW\|ERR_CREATEEVENT\|COUNTRY_SAUDIARABIA\|FILEATTR_EXECUTE_OTH\|IPAUTO\|SHDWNORTHEAST\|MEMORY\|ERR_XF86VIDMODEEXT\|ARC\|TIMER\|COUNTRY_ICELAND\|FUCHSIA\|NETWORKUDP\|ERR_FINDCLIPREGION\|NETWORKSERVER\|NETWORKCONNECTION\|ATTRFONTNAME\|UDPOBJECT\|ERR_UNTERMINTDSTR\|LANGUAGE_NORWEGIANNYNORSK\|RECTBACKCENTER\|COUNTRY_BANGLADESH\|UPLOADFILE_RESPONSE\|COUNTRY_ITALY\|MASKINVISIBLE\|UPLOADFILE_STATUS\|ERR_FOREVERWOREPEAT\|STRETCHBOTTOM\|STRETCHRIGHT\|MOVEFILE_COPY\|FTPASCII\|RECEIVELINE\|RECEIVEBYTES\|ERR_DRAWPATH\|ATTRFONTAA\|VSTRANGEPUSH\|ERR_BADBASE64\|ERR_NOCLIPREG\|SCROLLNORTHWEST\|RECEIVEALL\|ERR_PLUGINARCH\|DTR_OFF\|HEXNUMERICAL\|FLOW_XON_XOFF\|ERR_LAYERSUPPORT2\|FLOW_HARDWARE\|LANGUAGE_GAELIC\|FLOW_OFF\|COUNTRY_ANTARCTICA\|ERR_REQAUTH\|STOP_2\|SERIF\|ERR_FINDANIM\|PARITY_ODD\|DATA_8\|VSTRIPES32\|COUNTRY_FRANCE\|DATA_6\|BAUD_460800\|HKEY_CURRENT_USER\|COUNTRY_BELARUS\|BAUD_115200\|BAUD_57600\|BAUD_38400\|BAUD_19200\|VSTRIPES4\|COUNTRY_ALANDISLANDS\|LANGUAGE_UKRAINIAN\|ERR_ICONSIZE\|BAUD_9600\|COUNTRY_SYRIA\|COUNTRY_NICARAGUA\|COUNTRY_PERU\|ERR_SIGNAL\|BAUD_2400\|JOYDOWN\|BAUD_300\|FILLRULEEVENODD\|ERR_COMMODITY\|ERR_UNKNOWN\|LANGUAGE_CORNISH\|FONTWEIGHT_LIGHT\|ERR_BAD8SVX\|ONBUTTONOVERALL\|CROSSFADE\|CAPSQUARE\|CAPBUTT\|ERR_STRORNUM\|LANGUAGE_SINDHI\|BEEPQUESTION\|JOINBEVEL\|ERR_PLUGINDOUBLET\|JOINROUND\|LANGUAGE_WESTERNFRISIAN\|ERR_PROTMETATABLE\|LANGUAGE_TURKISH\|BOTTOM\|ZOOMNORTH\|ERR_DATATYPEALPHA\|ERR_FINDUDPOBJECT\|SUN\|TURNDOWNRIGHT\|UDPSERVER\|MODRCOMMAND\|LANGUAGE_SWATI\|COUNTRY_MALAWI\|KEEPASPRAT\|DEFAULTICON\|LANGUAGE_TONGA\|ERR_NUMCALLBACK\|STRING\|ATTRPITCH\|ERR_ELSEWOIF\|COUNTRY_SAMOA\|LANGUAGE_PASHTO\|CARDTOP\|DENSITY_NONE\|ITALIC\|PLUGINCAPS_DISPLAYADAPTER\|FILEATTR_READ_USR\|LANGUAGE_UIGHUR\|ERR_EMPTYTABLE\|COUNTRY_CAPEVERDE\|ERR_FGRABVIDSTATE\|ERR_LOCK2\|LANGUAGE_ICELANDIC\|LIME\|ATTRCURSUBSONG\|CENTER\|ERR_VECGFXPLUGIN\|THREAD\|SLIDERIGHT\|NORMALSPEED\|SELMODE_LAYERS\|SLIDELEFT\|HLOWFLIPCOIN\|HFLIPCOIN\|VLOWFLIPCOIN\|ERR_INVCAPIDX\|VFLIPCOIN\|ASYNCDRAW\|ERR_INCOMPATBRUSH\|RECTBACKWEST\|FILEATTR_WRITE_USR\|ATTRONSCREEN\|CRUSHRIGHT\|LANGUAGE_BRETON\|ERR_REPEATWOUNTIL\|ERR_NOLOOP\|ATTRDISPLAY\|ERR_FILENOTFOUND\|ATTRDENSITY\|ERR_GETMONITORINFO\|ERR_POINTERFORMAT\|ZOOMIN\|PIXELZOOM2\|HSTRANGEPUSH\|FILEATTR_SYSTEM\|ERR_COLORSPACE\|LANGUAGE_ZULU\|ATTRHOSTWIDTH\|LANGUAGE_SANGO\|ERR_SOCKET\|STAR\|ERR_FINDBUTTON\|CLOCKWIPE\|FILLCOLOR\|USELAYERPOSITION\|LANGUAGE_BELARUSIAN\|COUNTRY_MICRONESIA\|COPYFILE_UNPROTECT\|DISSOLVE\|UNDERLINED\|WATER4\|COUNTRY_BURKINAFASO\|LANGUAGE_LINGALA\|WATER3\|MASK\|ATTRNOMODESWITCH\|ERR_SETFILEATTR\|LANGUAGE_KASHMIRI\|FILEATTR_HIDDEN\|DELETEFILE_UNPROTECT\|COUNTRY_CUBA\|HKEY_USERS\|ATTRKEYBOARD\|COUNTBOTH\|ROLLLEFT\|HSTRIPES\|CRUSHBOTTOM\|RECTBACKSOUTHWEST\|LANGUAGE_TSONGA\|RECTBACKSOUTH\|ERR_DIFFDEPTH\|RECTBACKSOUTHEAST\|RECTBACKEAST\|ERR_TRIALLIMIT\|ERR_FINDMOVE\|ERR_SCREEN\|ERR_FINDPLUGIN\|LANGUAGE_ITALIAN\|ERR_MULTIBGPIC\|ERR_BADLAYERTYPE\|JUSTIFIED\|ERR_ADDAPPWIN\|LANGUAGE_NAURU\|ERR_UNKNOWNFILTER\|RECTBACKNORTHEAST\|JOYDOWNLEFT\|RECTBACKNORTH\|WALLPAPERTOP\|ROLLTOP\|ERR_NOFALLTHROUGH\|BRUSH_VS_BOX\|USERDATA\|RANDOMPARAMETER\|IMAGETYPE_RASTER\|NATIVE\|DIAGONAL\|COUNTRY_SUDAN\|PUZZLE\|ERR_ENDIFWOIF\|ERR_MEM\|ERR_OPENSERIAL\|PUSHRIGHT\|NEXTFRAME\|DOSTYPE_FILE\|PUSHLEFT\|ERR_SORTFUNC\|ENCODING_ISO8859_1\|VOPENGATE\|ERR_XFIXES\|HCLOSEGATE\|ZOOMSOUTHWEST\|HOPENGATE\|VFLOWRIGHT\|ERR_BADBYTECODE\|VFLOWLEFT\|HFLOWBOTTOM\|HFLOWTOP\|ERR_DLOPEN\|ZOOMNORTHWEST\|ZOOMWEST\|ERR_NODOUBLEBUFFER\|ZOOMSOUTH\|ZOOMEAST\|ZOOMNORTHEAST\|COUNTRY_UK\|ZOOMCENTER\|ERR_FINDMEMBLK\|ERR_BGPICBUTTON\|VSTRETCHCENTER\|ERR_FREEABGPIC\|STRETCHTOP\|SCROLLNORTHEAST\|ATTRFUNCTION\|ERR_TABLEINDEX\|ERR_MULDISMOBILE\|COUNTRY_INDONESIA\|SCROLLSOUTHEAST\|NOCOLOR\|ERR_SELECTBGPIC2\|JOYUPLEFT\|MASKAND\|CLIPBOARD_SOUND\|SCROLLSOUTH\|SCROLLNORTH\|ERR_NOMENU\|ERR_NOANMLAYER\|SCROLLWEST\|ERR_CHANNELRANGE\|ERR_STRTABLEARG\|SCROLLRIGHT\|SCROLLLEFT\|RECTNORTHWEST\|ERR_BEGINREFRESH\|COUNTRY_SPAIN\|RECTSOUTHWEST\|COUNTRY_PHILIPPINES\|RECTSOUTHEAST\|ERR_LOADSOUND\|RECTEAST\|RECTNORTH\|LANGUAGE_ARABIC\|COUNTRY_JORDAN\|RECTCENTER\|ERR_TRANSBRUSH\|BLEND\|ERR_PLUGINVER\|RANDOMEFFECT\|FILLRULEWINDING\|ANMFMT_GIF\|VLINES\|ERR_LABINFOR\|DISPMODE_SYSTEMSCALE\|VLINES2\|ERR_NOARGBVISUAL\|C |