Mercurial > vim
view runtime/syntax/cdrtoc.vim @ 33988:7c30841c60a0 v9.0.2180
patch 9.0.2180: POSIX function name in exarg causes issues
Commit: https://github.com/vim/vim/commit/6fdb6280821a822768df5689a5d727e37d38306c
Author: Zoltan Arpadffy <zoltan.arpadffy@gmail.com>
Date: Tue Dec 19 20:53:07 2023 +0100
patch 9.0.2180: POSIX function name in exarg causes issues
Problem: POSIX function name in exarg struct causes issues
on OpenVMS
Solution: Rename getline member in exarg struct to ea_getline,
remove isinf() workaround for VMS
There are compilers that do not treat well POSIX functions - like
getline - usage in the structs.
Older VMS compilers could digest this... but the newer OpenVMS compilers
( like VSI C x86-64 X7.4-843 (GEM 50XB9) ) cannot deal with these
structs. This could be limited to getline() that is defined via
getdelim() and might not affect all POSIX functions in general - but
avoiding POSIX function names usage in the structs is a "safe side"
practice without compromising the functionality or the code readability.
The previous OpenVMS X86 port used a workaround limiting the compiler
capabilities using __CRTL_VER_OVERRIDE=80400000
In order to make the OpenVMS port future proof, this pull request
proposes a possible solution.
closes: #13704
Signed-off-by: Zoltan Arpadffy <zoltan.arpadffy@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 19 Dec 2023 21:00:04 +0100 |
parents | 1218c5353e2b |
children |
line wrap: on
line source
" Vim syntax file " Language: cdrdao(1) TOC file " Previous Maintainer: Nikolai Weibull <now@bitwi.se> " Latest Revision: 2007-05-10 if exists("b:current_syntax") finish endif let s:cpo_save = &cpo set cpo&vim syn keyword cdrtocTodo \ contained \ TODO \ FIXME \ XXX \ NOTE syn cluster cdrtocCommentContents \ contains= \ cdrtocTodo, \ @Spell syn cluster cdrtocHeaderFollowsInitial \ contains= \ cdrtocHeaderCommentInitial, \ cdrtocHeaderCatalog, \ cdrtocHeaderTOCType, \ cdrtocHeaderCDText, \ cdrtocTrack syn match cdrtocHeaderBegin \ nextgroup=@cdrtocHeaderFollowsInitial \ skipwhite skipempty \ '\%^' let s:mmssff_pattern = '\%([0-5]\d\|\d\):\%([0-5]\d\|\d\):\%([0-6]\d\|7[0-5]\|\d\)\>' let s:byte_pattern = '\<\%([01]\=\d\{1,2}\|2\%([0-4]\d\|5[0-5]\)\)\>' let s:length_pattern = '\%(\%([0-5]\d\|\d\):\%([0-5]\d\|\d\):\%([0-6]\d\|7[0-5]\|\d\)\|\d\+\)\>' function s:def_comment(name, nextgroup) execute 'syn match' a:name \ 'nextgroup=' . a:nextgroup . ',' . a:name \ 'skipwhite skipempty' \ 'contains=@cdrtocCommentContents' \ 'contained' \ "'//.*$'" execute 'hi def link' a:name 'cdrtocComment' endfunction function s:def_keywords(name, nextgroup, keywords) let comment_group = a:name . 'FollowComment' execute 'syn keyword' a:name \ 'nextgroup=' . a:nextgroup . ',' . comment_group \ 'skipwhite skipempty' \ 'contained' \ join(a:keywords) call s:def_comment(comment_group, a:nextgroup) endfunction function s:def_keyword(name, nextgroup, keyword) call s:def_keywords(a:name, a:nextgroup, [a:keyword]) endfunction " NOTE: Pattern needs to escape any “@”s. function s:def_match(name, nextgroup, pattern) let comment_group = a:name . 'FollowComment' execute 'syn match' a:name \ 'nextgroup=' . a:nextgroup . ',' . comment_group \ 'skipwhite skipempty' \ 'contained' \ '@' . a:pattern . '@' call s:def_comment(comment_group, a:nextgroup) endfunction function s:def_region(name, nextgroup, start, skip, end, matchgroup, contains) let comment_group = a:name . 'FollowComment' execute 'syn region' a:name \ 'nextgroup=' . a:nextgroup . ',' . comment_group \ 'skipwhite skipempty' \ 'contained' \ 'matchgroup=' . a:matchgroup \ 'contains=' . a:contains \ 'start=@' . a:start . '@' \ (a:skip != "" ? ('skip=@' . a:skip . '@') : "") \ 'end=@' . a:end . '@' call s:def_comment(comment_group, a:nextgroup) endfunction call s:def_comment('cdrtocHeaderCommentInitial', '@cdrtocHeaderFollowsInitial') call s:def_keyword('cdrtocHeaderCatalog', 'cdrtocHeaderCatalogNumber', 'CATALOG') call s:def_match('cdrtocHeaderCatalogNumber', '@cdrtocHeaderFollowsInitial', '"\d\{13\}"') call s:def_keywords('cdrtocHeaderTOCType', '@cdrtocHeaderFollowsInitial', ['CD_DA', 'CD_ROM', 'CD_ROM_XA']) call s:def_keyword('cdrtocHeaderCDText', 'cdrtocHeaderCDTextStart', 'CD_TEXT') " TODO: Actually, language maps aren’t required by TocParser.g, but let’s keep " things simple (and in agreement with what the manual page says). call s:def_match('cdrtocHeaderCDTextStart', 'cdrtocHeaderCDTextLanguageMap', '{') call s:def_keyword('cdrtocHeaderCDTextLanguageMap', 'cdrtocHeaderLanguageMapStart', 'LANGUAGE_MAP') call s:def_match('cdrtocHeaderLanguageMapStart', 'cdrtocHeaderLanguageMapLanguageNumber', '{') call s:def_match('cdrtocHeaderLanguageMapLanguageNumber', 'cdrtocHeaderLanguageMapColon', '\<[0-7]\>') call s:def_match('cdrtocHeaderLanguageMapColon', 'cdrtocHeaderLanguageMapCountryCode,cdrtocHeaderLanguageMapCountryCodeName', ':') syn cluster cdrtocHeaderLanguageMapCountryCodeFollow \ contains= \ cdrtocHeaderLanguageMapLanguageNumber, \ cdrtocHeaderLanguageMapEnd call s:def_match('cdrtocHeaderLanguageMapCountryCode', \ '@cdrtocHeaderLanguageMapCountryCodeFollow', \ s:byte_pattern) call s:def_keyword('cdrtocHeaderLanguageMapCountryCodeName', \ '@cdrtocHeaderLanguageMapCountryCodeFollow', \ 'EN') call s:def_match('cdrtocHeaderLanguageMapEnd', \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd', \ '}') call s:def_keyword('cdrtocHeaderLanguage', 'cdrtocHeaderLanguageNumber', 'LANGUAGE') call s:def_match('cdrtocHeaderLanguageNumber', 'cdrtocHeaderLanguageStart', '\<[0-7]\>') call s:def_match('cdrtocHeaderLanguageStart', \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd', \ '{') syn cluster cdrtocHeaderCDTextData \ contains= \ cdrtocHeaderCDTextDataString, \ cdrtocHeaderCDTextDataBinaryStart call s:def_keywords('cdrtocHeaderCDTextItem', \ '@cdrtocHeaderCDTextData', \ ['TITLE', 'PERFORMER', 'SONGWRITER', 'COMPOSER', \ 'ARRANGER', 'MESSAGE', 'DISC_ID', 'GENRE', 'TOC_INFO1', \ 'TOC_INFO2', 'UPC_EAN', 'ISRC', 'SIZE_INFO']) call s:def_region('cdrtocHeaderCDTextDataString', \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd', \ '"', \ '\\\\\|\\"', \ '"', \ 'cdrtocHeaderCDTextDataStringDelimiters', \ 'cdrtocHeaderCDTextDataStringSpecialChar') syn match cdrtocHeaderCDTextDataStringSpecialChar \ contained \ display \ '\\\%(\o\o\o\|["\\]\)' call s:def_match('cdrtocHeaderCDTextDataBinaryStart', \ 'cdrtocHeaderCDTextDataBinaryInteger', \ '{') call s:def_match('cdrtocHeaderCDTextDataBinaryInteger', \ 'cdrtocHeaderCDTextDataBinarySeparator,cdrtocHeaderCDTextDataBinaryEnd', \ s:byte_pattern) call s:def_match('cdrtocHeaderCDTextDataBinarySeparator', \ 'cdrtocHeaderCDTextDataBinaryInteger', \ ',') call s:def_match('cdrtocHeaderCDTextDataBinaryEnd', \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd', \ '}') call s:def_match('cdrtocHeaderLanguageEnd', \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd', \ '}') call s:def_match('cdrtocHeaderCDTextEnd', \ 'cdrtocTrack', \ '}') syn cluster cdrtocTrackFollow \ contains= \ @cdrtocTrackFlags, \ cdrtocTrackCDText, \ cdrtocTrackPregap, \ @cdrtocTrackContents call s:def_keyword('cdrtocTrack', 'cdrtocTrackMode', 'TRACK') call s:def_keywords('cdrtocTrackMode', \ 'cdrtocTrackSubChannelMode,@cdrtocTrackFollow', \ ['AUDIO', 'MODE1', 'MODE1_RAW', 'MODE2', 'MODE2_FORM1', \ 'MODE2_FORM2', 'MODE2_FORM_MIX', 'MODE2_RAW']) call s:def_keywords('cdrtocTrackSubChannelMode', \ '@cdrtocTrackFollow', \ ['RW', 'RW_RAW']) syn cluster cdrtocTrackFlags \ contains= \ cdrtocTrackFlagNo, \ cdrtocTrackFlagCopy, \ cdrtocTrackFlagPreEmphasis, \ cdrtocTrackFlag call s:def_keyword('cdrtocTrackFlagNo', \ 'cdrtocTrackFlagCopy,cdrtocTrackFlagPreEmphasis', \ 'NO') call s:def_keyword('cdrtocTrackFlagCopy', '@cdrtocTrackFollow', 'COPY') call s:def_keyword('cdrtocTrackFlagPreEmphasis', '@cdrtocTrackFollow', 'PRE_EMPHASIS') call s:def_keywords('cdrtocTrackFlag', \ '@cdrtocTrackFollow', \ ['TWO_CHANNEL_AUDIO', 'FOUR_CHANNEL_AUDIO']) call s:def_keyword('cdrtocTrackFlag', 'cdrtocTrackISRC', 'ISRC') call s:def_match('cdrtocTrackISRC', \ '@cdrtocTrackFollow', \ '"[[:upper:][:digit:]]\{5}\d\{7}"') call s:def_keyword('cdrtocTrackCDText', 'cdrtocTrackCDTextStart', 'CD_TEXT') call s:def_match('cdrtocTrackCDTextStart', 'cdrtocTrackCDTextLanguage', '{') call s:def_keyword('cdrtocTrackCDTextLanguage', 'cdrtocTrackCDTextLanguageNumber', 'LANGUAGE') call s:def_match('cdrtocTrackCDTextLanguageNumber', 'cdrtocTrackCDTextLanguageStart', '\<[0-7]\>') call s:def_match('cdrtocTrackCDTextLanguageStart', \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd', \ '{') syn cluster cdrtocTrackCDTextData \ contains= \ cdrtocTrackCDTextDataString, \ cdrtocTrackCDTextDataBinaryStart call s:def_keywords('cdrtocTrackCDTextItem', \ '@cdrtocTrackCDTextData', \ ['TITLE', 'PERFORMER', 'SONGWRITER', 'COMPOSER', 'ARRANGER', \ 'MESSAGE', 'ISRC']) call s:def_region('cdrtocTrackCDTextDataString', \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd', \ '"', \ '\\\\\|\\"', \ '"', \ 'cdrtocTrackCDTextDataStringDelimiters', \ 'cdrtocTrackCDTextDataStringSpecialChar') syn match cdrtocTrackCDTextDataStringSpecialChar \ contained \ display \ '\\\%(\o\o\o\|["\\]\)' call s:def_match('cdrtocTrackCDTextDataBinaryStart', \ 'cdrtocTrackCDTextDataBinaryInteger', \ '{') call s:def_match('cdrtocTrackCDTextDataBinaryInteger', \ 'cdrtocTrackCDTextDataBinarySeparator,cdrtocTrackCDTextDataBinaryEnd', \ s:byte_pattern) call s:def_match('cdrtocTrackCDTextDataBinarySeparator', \ 'cdrtocTrackCDTextDataBinaryInteger', \ ',') call s:def_match('cdrtocTrackCDTextDataBinaryEnd', \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd', \ '}') call s:def_match('cdrtocTrackCDTextLanguageEnd', \ 'cdrtocTrackCDTextLanguage,cdrtocTrackCDTextEnd', \ '}') call s:def_match('cdrtocTrackCDTextEnd', \ 'cdrtocTrackPregap,@cdrtocTrackContents', \ '}') call s:def_keyword('cdrtocTrackPregap', 'cdrtocTrackPregapMMSSFF', 'PREGAP') call s:def_match('cdrtocTrackPregapMMSSFF', \ '@cdrtocTrackContents', \ s:mmssff_pattern) syn cluster cdrtocTrackContents \ contains= \ cdrtocTrackSubTrack, \ cdrtocTrackMarker syn cluster cdrtocTrackContentsFollow \ contains= \ @cdrtocTrackContents, \ cdrtocTrackIndex, \ cdrtocTrack call s:def_keywords('cdrtocTrackSubTrack', \ 'cdrtocTrackSubTrackFileFilename', \ ['FILE', 'AUDIOFILE']) call s:def_region('cdrtocTrackSubTrackFileFilename', \ 'cdrtocTrackSubTrackFileStart', \ '"', \ '\\\\\|\\"', \ '"', \ 'cdrtocTrackSubTrackFileFilenameDelimiters', \ 'cdrtocTrackSubTrackFileFilenameSpecialChar') syn match cdrtocTrackSubTrackFileFilenameSpecialChar \ contained \ display \ '\\\%(\o\o\o\|["\\]\)' call s:def_match('cdrtocTrackSubTrackFileStart', \ 'cdrtocTrackSubTrackFileLength,@cdrtocTrackContentsFollow', \ s:length_pattern) call s:def_match('cdrtocTrackSubTrackFileLength', \ '@cdrtocTrackContentsFollow', \ s:length_pattern) call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentDatafileFilename', 'DATAFILE') call s:def_region('cdrtocTrackSubTrackDatafileFilename', \ 'cdrtocTrackSubTrackDatafileLength', \ '"', \ '\\\\\|\\"', \ '"', \ 'cdrtocTrackSubTrackDatafileFilenameDelimiters', \ 'cdrtocTrackSubTrackDatafileFilenameSpecialChar') syn match cdrtocTrackSubTrackdatafileFilenameSpecialChar \ contained \ display \ '\\\%(\o\o\o\|["\\]\)' call s:def_match('cdrtocTrackDatafileLength', \ '@cdrtocTrackContentsFollow', \ s:length_pattern) call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentFifoFilename', 'DATAFILE') call s:def_region('cdrtocTrackSubTrackFifoFilename', \ 'cdrtocTrackSubTrackFifoLength', \ '"', \ '\\\\\|\\"', \ '"', \ 'cdrtocTrackSubTrackFifoFilenameDelimiters', \ 'cdrtocTrackSubTrackFifoFilenameSpecialChar') syn match cdrtocTrackSubTrackdatafileFilenameSpecialChar \ contained \ display \ '\\\%(\o\o\o\|["\\]\)' call s:def_match('cdrtocTrackFifoLength', \ '@cdrtocTrackContentsFollow', \ s:length_pattern) call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackSilenceLength', 'SILENCE') call s:def_match('cdrtocTrackSilenceLength', \ '@cdrtocTrackContentsFollow', \ s:length_pattern) call s:def_keyword('cdrtocTrackSubTrack', \ 'cdrtocTrackSubTrackZeroDataMode,' . \ 'cdrtocTrackSubTrackZeroDataSubChannelMode,' . \ 'cdrtocTrackSubTrackZeroDataLength', \ 'ZERO') call s:def_keywords('cdrtocTrackSubTrackZeroDataMode', \ 'cdrtocTrackSubTrackZeroSubChannelMode,cdrtocTrackSubTrackZeroDataLength', \ ['AUDIO', 'MODE1', 'MODE1_RAW', 'MODE2', 'MODE2_FORM1', \ 'MODE2_FORM2', 'MODE2_FORM_MIX', 'MODE2_RAW']) call s:def_keywords('cdrtocTrackSubTrackZeroDataSubChannelMode', \ 'cdrtocTrackSubTrackZeroDataLength', \ ['RW', 'RW_RAW']) call s:def_match('cdrtocTrackSubTrackZeroDataLength', \ '@cdrtocTrackContentsFollow', \ s:length_pattern) call s:def_keyword('cdrtocTrackMarker', \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerStartMMSSFF', \ 'START') call s:def_match('cdrtocTrackMarkerStartMMSSFF', \ '@cdrtocTrackContentsFollow', \ s:mmssff_pattern) call s:def_keyword('cdrtocTrackMarker', \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerEndMMSSFF', \ 'END') call s:def_match('cdrtocTrackMarkerEndMMSSFF', \ '@cdrtocTrackContentsFollow', \ s:mmssff_pattern) call s:def_keyword('cdrtocTrackIndex', 'cdrtocTrackIndexMMSSFF', 'INDEX') call s:def_match('cdrtocTrackIndexMMSSFF', \ 'cdrtocTrackIndex,cdrtocTrack', \ s:mmssff_pattern) delfunction s:def_region delfunction s:def_match delfunction s:def_keyword delfunction s:def_keywords delfunction s:def_comment syn sync fromstart hi def link cdrtocKeyword Keyword hi def link cdrtocHeaderKeyword cdrtocKeyword hi def link cdrtocHeaderCDText cdrtocHeaderKeyword hi def link cdrtocDelimiter Delimiter hi def link cdrtocCDTextDataBinaryEnd cdrtocDelimiter hi def link cdrtocHeaderCDTextDataBinaryEnd cdrtocHeaderCDTextDataBinaryEnd hi def link cdrtocNumber Number hi def link cdrtocCDTextDataBinaryInteger cdrtocNumber hi def link cdrtocHeaderCDTextDataBinaryInteger cdrtocCDTextDataBinaryInteger hi def link cdrtocCDTextDataBinarySeparator cdrtocDelimiter hi def link cdrtocHeaderCDTextDataBinarySeparator cdrtocCDTextDataBinarySeparator hi def link cdrtocCDTextDataBinaryStart cdrtocDelimiter hi def link cdrtocHeaderCDTextDataBinaryStart cdrtocCDTextDataBinaryStart hi def link cdrtocString String hi def link cdrtocCDTextDataString cdrtocString hi def link cdrtocHeaderCDTextDataString cdrtocCDTextDataString hi def link cdrtocCDTextDataStringDelimiters cdrtocDelimiter hi def link cdrtocHeaderCDTextDataStringDelimiters cdrtocCDTextDataStringDelimiters hi def link cdrtocCDTextDataStringSpecialChar SpecialChar hi def link cdrtocHeaderCDTextDataStringSpecialChar cdrtocCDTextDataStringSpecialChar hi def link cdrtocCDTextEnd cdrtocDelimiter hi def link cdrtocHeaderCDTextEnd cdrtocCDTextEnd hi def link cdrtocType Type hi def link cdrtocCDTextItem cdrtocType hi def link cdrtocHeaderCDTextItem cdrtocCDTextItem hi def link cdrtocHeaderCDTextLanguageMap cdrtocHeaderKeyword hi def link cdrtocCDTextStart cdrtocDelimiter hi def link cdrtocHeaderCDTextStart cdrtocCDTextStart hi def link cdrtocHeaderCatalog cdrtocHeaderKeyword hi def link cdrtocHeaderCatalogNumber cdrtocString hi def link cdrtocComment Comment hi def link cdrtocHeaderCommentInitial cdrtocComment hi def link cdrtocHeaderLanguage cdrtocKeyword hi def link cdrtocLanguageEnd cdrtocDelimiter hi def link cdrtocHeaderLanguageEnd cdrtocLanguageEnd hi def link cdrtocHeaderLanguageMapColon cdrtocDelimiter hi def link cdrtocIdentifier Identifier hi def link cdrtocHeaderLanguageMapCountryCode cdrtocNumber hi def link cdrtocHeaderLanguageMapCountryCodeName cdrtocIdentifier hi def link cdrtocHeaderLanguageMapEnd cdrtocDelimiter hi def link cdrtocHeaderLanguageMapLanguageNumber cdrtocNumber hi def link cdrtocHeaderLanguageMapStart cdrtocDelimiter hi def link cdrtocLanguageNumber cdrtocNumber hi def link cdrtocHeaderLanguageNumber cdrtocLanguageNumber hi def link cdrtocLanguageStart cdrtocDelimiter hi def link cdrtocHeaderLanguageStart cdrtocLanguageStart hi def link cdrtocHeaderTOCType cdrtocType hi def link cdrtocTodo Todo hi def link cdrtocTrackKeyword cdrtocKeyword hi def link cdrtocTrack cdrtocTrackKeyword hi def link cdrtocTrackCDText cdrtocTrackKeyword hi def link cdrtocTrackCDTextDataBinaryEnd cdrtocHeaderCDTextDataBinaryEnd hi def link cdrtocTrackCDTextDataBinaryInteger cdrtocHeaderCDTextDataBinaryInteger hi def link cdrtocTrackCDTextDataBinarySeparator cdrtocHeaderCDTextDataBinarySeparator hi def link cdrtocTrackCDTextDataBinaryStart cdrtocHeaderCDTextDataBinaryStart hi def link cdrtocTrackCDTextDataString cdrtocHeaderCDTextDataString hi def link cdrtocTrackCDTextDataStringDelimiters cdrtocCDTextDataStringDelimiters hi def link cdrtocTrackCDTextDataStringSpecialChar cdrtocCDTextDataStringSpecialChar hi def link cdrtocTrackCDTextEnd cdrtocCDTextEnd hi def link cdrtocTrackCDTextItem cdrtocCDTextItem hi def link cdrtocTrackCDTextStart cdrtocCDTextStart hi def link cdrtocLength cdrtocNumber hi def link cdrtocTrackDatafileLength cdrtocLength hi def link cdrtocTrackFifoLength cdrtocLength hi def link cdrtocPreProc PreProc hi def link cdrtocTrackFlag cdrtocPreProc hi def link cdrtocTrackFlagCopy cdrtocTrackFlag hi def link cdrtocSpecial Special hi def link cdrtocTrackFlagNo cdrtocSpecial hi def link cdrtocTrackFlagPreEmphasis cdrtocTrackFlag hi def link cdrtocTrackISRC cdrtocTrackFlag hi def link cdrtocTrackIndex cdrtocTrackKeyword hi def link cdrtocMMSSFF cdrtocLength hi def link cdrtocTrackIndexMMSSFF cdrtocMMSSFF hi def link cdrtocTrackCDTextLanguage cdrtocTrackKeyword hi def link cdrtocTrackCDTextLanguageEnd cdrtocLanguageEnd hi def link cdrtocTrackCDTextLanguageNumber cdrtocLanguageNumber hi def link cdrtocTrackCDTextLanguageStart cdrtocLanguageStart hi def link cdrtocTrackContents StorageClass hi def link cdrtocTrackMarker cdrtocTrackContents hi def link cdrtocTrackMarkerEndMMSSFF cdrtocMMSSFF hi def link cdrtocTrackMarkerStartMMSSFF cdrtocMMSSFF hi def link cdrtocTrackMode Type hi def link cdrtocTrackPregap cdrtocTrackContents hi def link cdrtocTrackPregapMMSSFF cdrtocMMSSFF hi def link cdrtocTrackSilenceLength cdrtocLength hi def link cdrtocTrackSubChannelMode cdrtocPreProc hi def link cdrtocTrackSubTrack cdrtocTrackContents hi def link cdrtocFilename cdrtocString hi def link cdrtocTrackSubTrackDatafileFilename cdrtocFilename hi def link cdrtocTrackSubTrackDatafileFilenameDelimiters cdrtocTrackSubTrackDatafileFilename hi def link cdrtocSpecialChar SpecialChar hi def link cdrtocTrackSubTrackDatafileFilenameSpecialChar cdrtocSpecialChar hi def link cdrtocTrackSubTrackDatafileLength cdrtocLength hi def link cdrtocTrackSubTrackFifoFilename cdrtocFilename hi def link cdrtocTrackSubTrackFifoFilenameDelimiters cdrtocTrackSubTrackFifoFilename hi def link cdrtocTrackSubTrackFifoFilenameSpecialChar cdrtocSpecialChar hi def link cdrtocTrackSubTrackFifoLength cdrtocLength hi def link cdrtocTrackSubTrackFileFilename cdrtocFilename hi def link cdrtocTrackSubTrackFileFilenameDelimiters cdrtocTrackSubTrackFileFilename hi def link cdrtocTrackSubTrackFileFilenameSpecialChar cdrtocSpecialChar hi def link cdrtocTrackSubTrackFileLength cdrtocLength hi def link cdrtocTrackSubTrackFileStart cdrtocLength hi def link cdrtocTrackSubTrackZeroDataLength cdrtocLength hi def link cdrtocTrackSubTrackZeroDataMode Type hi def link cdrtocTrackSubTrackZeroDataSubChannelMode cdrtocPreProc hi def link cdrtocTrackSubTrackdatafileFilenameSpecialChar cdrtocSpecialChar let b:current_syntax = "cdrtoc" let &cpo = s:cpo_save unlet s:cpo_save