Mercurial > vim
annotate runtime/syntax/tsalt.vim @ 30487:79e2d9b7780c v9.0.0579
patch 9.0.0579: using freed memory when 'tagfunc' wipes out buffer
Commit: https://github.com/vim/vim/commit/0ff01835a40f549c5c4a550502f62a2ac9ac447c
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Sep 24 19:20:30 2022 +0100
patch 9.0.0579: using freed memory when 'tagfunc' wipes out buffer
Problem: Using freed memory when 'tagfunc' wipes out buffer that holds
'complete'.
Solution: Make a copy of the option. Make sure cursor position is valid.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 24 Sep 2022 20:30:03 +0200 |
parents | 46763b01cd9a |
children | d46f974fd69e |
rev | line source |
---|---|
7 | 1 " Vim syntax file |
2 " Language: Telix (Modem Comm Program) SALT Script | |
3 " Maintainer: Sean M. McKee <mckee@misslink.net> | |
3312 | 4 " Last Change: 2012 Feb 03 by Thilo Six |
7 | 5 " Version Info: @(#)tsalt.vim 1.5 97/12/16 08:11:15 |
6 | |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
3312
diff
changeset
|
7 " quit when a syntax file was already loaded |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
3312
diff
changeset
|
8 if exists("b:current_syntax") |
7 | 9 finish |
10 endif | |
11 | |
3312 | 12 let s:cpo_save = &cpo |
13 set cpo&vim | |
14 | |
7 | 15 " turn case matching off |
16 syn case ignore | |
17 | |
18 "FUNCTIONS | |
19 " Character Handling Functions | |
20 syn keyword tsaltFunction IsAscii IsAlNum IsAlpha IsCntrl IsDigit | |
21 syn keyword tsaltFunction IsLower IsUpper ToLower ToUpper | |
22 | |
23 " Connect Device Operations | |
24 syn keyword tsaltFunction Carrier cInp_Cnt cGetC cGetCT cPutC cPutN | |
25 syn keyword tsaltFunction cPutS cPutS_TR FlushBuf Get_Baud | |
26 syn keyword tsaltFunction Get_DataB Get_Port Get_StopB Hangup | |
27 syn keyword tsaltFunction KillConnectDevice MakeConnectDevice | |
28 syn keyword tsaltFunction Send_Brk Set_ConnectDevice Set_Port | |
29 | |
30 " File Input/Output Operations | |
31 syn keyword tsaltFunction fClearErr fClose fDelete fError fEOF fFlush | |
32 syn keyword tsaltFunction fGetC fGetS FileAttr FileFind FileSize | |
33 syn keyword tsaltFunction FileTime fnStrip fOpen fPutC fPutS fRead | |
34 syn keyword tsaltFunction fRename fSeek fTell fWrite | |
35 | |
36 " File Transfers and Logs | |
37 syn keyword tsaltFunction Capture Capture_Stat Printer Receive Send | |
38 syn keyword tsaltFunction Set_DefProt UsageLog Usage_Stat UStamp | |
39 | |
40 " Input String Matching | |
41 syn keyword tsaltFunction Track Track_AddChr Track_Free Track_Hit | |
42 syn keyword tsaltFunction WaitFor | |
43 | |
44 " Keyboard Operations | |
45 syn keyword tsaltFunction InKey InKeyW KeyGet KeyLoad KeySave KeySet | |
46 | |
47 " Miscellaneous Functions | |
48 syn keyword tsaltFunction ChatMode Dos Dial DosFunction ExitTelix | |
49 syn keyword tsaltFunction GetEnv GetFon HelpScreen LoadFon NewDir | |
50 syn keyword tsaltFunction Randon Redial RedirectDOS Run | |
51 syn keyword tsaltFunction Set_Terminal Show_Directory TelixVersion | |
52 syn keyword tsaltFunction Terminal TransTab Update_Term | |
53 | |
54 " Script Management | |
55 syn keyword tsaltFunction ArgCount Call CallD CompileScript GetRunPath | |
56 syn keyword tsaltFunction Is_Loaded Load_Scr ScriptVersion | |
57 syn keyword tsaltFunction TelixForWindows Unload_Scr | |
58 | |
59 " Sound Functions | |
60 syn keyword tsaltFunction Alarm PlayWave Tone | |
61 | |
62 " String Handling | |
63 syn keyword tsaltFunction CopyChrs CopyStr DelChrs GetS GetSXY | |
64 syn keyword tsaltFunction InputBox InsChrs ItoS SetChr StoI StrCat | |
65 syn keyword tsaltFunction StrChr StrCompI StrLen StrLower StrMaxLen | |
66 syn keyword tsaltFunction StrPos StrPosI StrUpper SubChr SubChrs | |
67 syn keyword tsaltFunction SubStr | |
68 | |
69 " Time, Date, and Timer Operations | |
70 syn keyword tsaltFunction CurTime Date Delay Delay_Scr Get_OnlineTime | |
71 syn keyword tsaltFunction tDay tHour tMin tMonth tSec tYear Time | |
72 syn keyword tsaltFunction Time_Up Timer_Free Time_Restart | |
73 syn keyword tsaltFunction Time_Start Time_Total | |
74 | |
75 " Video Operations | |
76 syn keyword tsaltFunction Box CNewLine Cursor_OnOff Clear_Scr | |
77 syn keyword tsaltFunction GetTermHeight GetTermWidth GetX GetY | |
78 syn keyword tsaltFunction GotoXY MsgBox NewLine PrintC PrintC_Trm | |
79 syn keyword tsaltFunction PrintN PrintN_Trm PrintS PrintS_Trm | |
80 syn keyword tsaltFunction PrintSC PRintSC_Trm | |
81 syn keyword tsaltFunction PStrA PStrAXY Scroll Status_Wind vGetChr | |
82 syn keyword tsaltFunction vGetChrs vGetChrsA vPutChr vPutChrs | |
83 syn keyword tsaltFunction vPutChrsA vRstrArea vSaveArea | |
84 | |
85 " Dynamic Data Exchange (DDE) Operations | |
86 syn keyword tsaltFunction DDEExecute DDEInitate DDEPoke DDERequest | |
87 syn keyword tsaltFunction DDETerminate DDETerminateAll | |
88 "END FUNCTIONS | |
89 | |
90 "PREDEFINED VARAIABLES | |
91 syn keyword tsaltSysVar _add_lf _alarm_on _answerback_str _asc_rcrtrans | |
92 syn keyword tsaltSysVar _asc_remabort _asc_rlftrans _asc_scpacing | |
93 syn keyword tsaltSysVar _asc_scrtrans _asc_secho _asc_slpacing | |
94 syn keyword tsaltSysVar _asc_spacechr _asc_striph _back_color | |
95 syn keyword tsaltSysVar _capture_fname _connect_str _dest_bs | |
96 syn keyword tsaltSysVar _dial_pause _dial_time _dial_post | |
97 syn keyword tsaltSysVar _dial_pref1 _dial_pref2 _dial_pref3 | |
98 syn keyword tsaltSysVar _dial_pref4 _dir_prog _down_dir | |
99 syn keyword tsaltSysVar _entry_bbstype _entry_comment _entry_enum | |
100 syn keyword tsaltSysVar _entry_name _entry_num _entry_logonname | |
101 syn keyword tsaltSysVar _entry_pass _fore_color _image_file | |
102 syn keyword tsaltSysVar _local_echo _mdm_hang_str _mdm_init_str | |
103 syn keyword tsaltSysVar _no_connect1 _no_connect2 _no_connect3 | |
104 syn keyword tsaltSysVar _no_connect4 _no_connect5 _redial_stop | |
105 syn keyword tsaltSysVar _scr_chk_key _script_dir _sound_on | |
106 syn keyword tsaltSysVar _strip_high _swap_bs _telix_dir _up_dir | |
107 syn keyword tsaltSysVar _usage_fname _zmodauto _zmod_rcrash | |
108 syn keyword tsaltSysVar _zmod_scrash | |
109 "END PREDEFINED VARAIABLES | |
110 | |
111 "TYPE | |
112 syn keyword tsaltType str int | |
113 "END TYPE | |
114 | |
115 "KEYWORDS | |
116 syn keyword tsaltStatement goto break return continue | |
117 syn keyword tsaltConditional if then else | |
118 syn keyword tsaltRepeat while for do | |
119 "END KEYWORDS | |
120 | |
121 syn keyword tsaltTodo contained TODO | |
122 | |
123 " the rest is pretty close to C ----------------------------------------- | |
124 | |
125 " String and Character constants | |
126 " Highlight special characters (those which have a backslash) differently | |
127 syn match tsaltSpecial contained "\^\d\d\d\|\^." | |
128 syn region tsaltString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=tsaltSpecial | |
129 syn match tsaltCharacter "'[^\\]'" | |
130 syn match tsaltSpecialCharacter "'\\.'" | |
131 | |
132 "catch errors caused by wrong parenthesis | |
133 syn region tsaltParen transparent start='(' end=')' contains=ALLBUT,tsaltParenError,tsaltIncluded,tsaltSpecial,tsaltTodo | |
134 syn match tsaltParenError ")" | |
135 syn match tsaltInParen contained "[{}]" | |
136 | |
137 hi link tsaltParenError tsaltError | |
138 hi link tsaltInParen tsaltError | |
139 | |
140 "integer number, or floating point number without a dot and with "f". | |
141 syn match tsaltNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" | |
142 "floating point number, with dot, optional exponent | |
143 syn match tsaltFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" | |
144 "floating point number, starting with a dot, optional exponent | |
145 syn match tsaltFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" | |
146 "floating point number, without dot, with exponent | |
147 syn match tsaltFloat "\<\d\+e[-+]\=\d\+[fl]\=\>" | |
148 "hex number | |
149 syn match tsaltNumber "0x[0-9a-f]\+\(u\=l\=\|lu\)\>" | |
150 "syn match cIdentifier "\<[a-z_][a-z0-9_]*\>" | |
151 | |
152 syn region tsaltComment start="/\*" end="\*/" contains=cTodo | |
153 syn match tsaltComment "//.*" contains=cTodo | |
154 syn match tsaltCommentError "\*/" | |
155 | |
156 syn region tsaltPreCondit start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=tsaltComment,tsaltString,tsaltCharacter,tsaltNumber,tsaltCommentError | |
157 syn region tsaltIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+ | |
158 syn match tsaltIncluded contained "<[^>]*>" | |
159 syn match tsaltInclude "^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=tsaltIncluded | |
160 "syn match TelixSalyLineSkip "\\$" | |
161 syn region tsaltDefine start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,tsaltPreCondit,tsaltIncluded,tsaltInclude,tsaltDefine,tsaltInParen | |
162 syn region tsaltPreProc start="^[ \t]*#[ \t]*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,tsaltPreCondit,tsaltIncluded,tsaltInclude,tsaltDefine,tsaltInParen | |
163 | |
164 " Highlight User Labels | |
165 syn region tsaltMulti transparent start='?' end=':' contains=ALLBUT,tsaltIncluded,tsaltSpecial,tsaltTodo | |
166 | |
167 syn sync ccomment tsaltComment | |
168 | |
169 | |
170 " Define the default highlighting. | |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
3312
diff
changeset
|
171 " Only when an item doesn't have highlighting yet |
7 | 172 |
10051
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
173 hi def link tsaltFunction Statement |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
174 hi def link tsaltSysVar Type |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
175 "hi def link tsaltLibFunc UserDefFunc |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
176 "hi def link tsaltConstants Type |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
177 "hi def link tsaltFuncArg Type |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
178 "hi def link tsaltOperator Operator |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
179 "hi def link tsaltLabel Label |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
180 "hi def link tsaltUserLabel Label |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
181 hi def link tsaltConditional Conditional |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
182 hi def link tsaltRepeat Repeat |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
183 hi def link tsaltCharacter SpecialChar |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
184 hi def link tsaltSpecialCharacter SpecialChar |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
185 hi def link tsaltNumber Number |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
186 hi def link tsaltFloat Float |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
187 hi def link tsaltCommentError tsaltError |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
188 hi def link tsaltInclude Include |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
189 hi def link tsaltPreProc PreProc |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
190 hi def link tsaltDefine Macro |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
191 hi def link tsaltIncluded tsaltString |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
192 hi def link tsaltError Error |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
193 hi def link tsaltStatement Statement |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
194 hi def link tsaltPreCondit PreCondit |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
195 hi def link tsaltType Type |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
196 hi def link tsaltString String |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
197 hi def link tsaltComment Comment |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
198 hi def link tsaltSpecial Special |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
199 hi def link tsaltTodo Todo |
7 | 200 |
201 | |
202 let b:current_syntax = "tsalt" | |
203 | |
3312 | 204 let &cpo = s:cpo_save |
205 unlet s:cpo_save | |
7 | 206 " vim: ts=8 |