Mercurial > vim
view runtime/syntax/cdrdaoconf.vim @ 34511:5397ce113043 v9.1.0161
patch 9.1.0161: expand() removes slash after env variable that ends with colon
Commit: https://github.com/vim/vim/commit/13a014452a7a020a119ac555a690c65b41f3126d
Author: zeertzjq <zeertzjq@outlook.com>
Date: Sat Mar 9 17:44:46 2024 +0100
patch 9.1.0161: expand() removes slash after env variable that ends with colon
Problem: expand() removes a slash after an environment variable that
ends with a colon on Windows.
Solution: Check the correct char for a colon (zeertzjq)
closes: #14161
Note: Vim still removes the path-separator at the end, if another path separator
follows directly after it, e.g. on:
```
echo $FOO='/usr/'
echo expand('$FOO/bar') == '/usr/bar'
```
see:
,----[ misc1.c:1630 ]
| // if var[] ends in a path separator and tail[] starts
| // with it, skip a character
| if (after_pathsep(dst, dst + c)
| #if defined(BACKSLASH_IN_FILENAME) || defined(AMIGA)
| && (dst == save_dst || dst[-1] != ':')
| #endif
| && vim_ispathsep(*tail))
| ++tail;
`----
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 09 Mar 2024 18:15:02 +0100 |
parents | 1218c5353e2b |
children |
line wrap: on
line source
" Vim syntax file " Language: cdrdao(1) configuration file " Previous Maintainer: Nikolai Weibull <now@bitwi.se> " Latest Revision: 2007-09-02 if exists("b:current_syntax") finish endif let s:cpo_save = &cpo set cpo&vim syn keyword cdrdaoconfTodo \ TODO FIXME XXX NOTE syn match cdrdaoconfBegin \ display \ nextgroup=@cdrdaoconfKeyword,cdrdaoconfComment \ '^' syn cluster cdrdaoconfKeyword \ contains=cdrdaoconfIntegerKeyword, \ cdrdaoconfDriverKeyword, \ cdrdaoconfDeviceKeyword, \ cdrdaoconfPathKeyword syn keyword cdrdaoconfIntegerKeyword \ contained \ nextgroup=cdrdaoconfIntegerDelimiter \ write_speed \ write_buffers \ user_capacity \ full_burn \ read_speed \ cddb_timeout syn keyword cdrdaoconfIntegerKeyword \ contained \ nextgroup=cdrdaoconfParanoiaModeDelimiter \ read_paranoia_mode syn keyword cdrdaoconfDriverKeyword \ contained \ nextgroup=cdrdaoconfDriverDelimiter \ write_driver \ read_driver syn keyword cdrdaoconfDeviceKeyword \ contained \ nextgroup=cdrdaoconfDeviceDelimiter \ write_device \ read_device syn keyword cdrdaoconfPathKeyword \ contained \ nextgroup=cdrdaoconfPathDelimiter \ cddb_directory \ tmp_file_dir syn match cdrdaoconfIntegerDelimiter \ contained \ nextgroup=cdrdaoconfInteger \ skipwhite \ ':' syn match cdrdaoconfParanoiaModeDelimiter \ contained \ nextgroup=cdrdaoconfParanoiaMode \ skipwhite \ ':' syn match cdrdaoconfDriverDelimiter \ contained \ nextgroup=cdrdaoconfDriver \ skipwhite \ ':' syn match cdrdaoconfDeviceDelimiter \ contained \ nextgroup=cdrdaoconfDevice \ skipwhite \ ':' syn match cdrdaoconfPathDelimiter \ contained \ nextgroup=cdrdaoconfPath \ skipwhite \ ':' syn match cdrdaoconfInteger \ contained \ '\<\d\+\>' syn match cdrdaoParanoiaMode \ contained \ '[0123]' syn match cdrdaoconfDriver \ contained \ '\<\(cdd2600\|generic-mmc\%(-raw\)\=\|plextor\%(-scan\)\|ricoh-mp6200\|sony-cdu9\%(20\|48\)\|taiyo-yuden\|teac-cdr55\|toshiba\|yamaha-cdr10x\)\>' syn region cdrdaoconfDevice \ contained \ matchgroup=cdrdaoconfDevice \ start=+"+ \ end=+"+ syn region cdrdaoconfPath \ contained \ matchgroup=cdrdaoconfPath \ start=+"+ \ end=+"+ syn match cdrdaoconfComment \ contains=cdrdaoconfTodo,@Spell \ '^.*#.*$' hi def link cdrdaoconfTodo Todo hi def link cdrdaoconfComment Comment hi def link cdrdaoconfKeyword Keyword hi def link cdrdaoconfIntegerKeyword cdrdaoconfKeyword hi def link cdrdaoconfDriverKeyword cdrdaoconfKeyword hi def link cdrdaoconfDeviceKeyword cdrdaoconfKeyword hi def link cdrdaoconfPathKeyword cdrdaoconfKeyword hi def link cdrdaoconfDelimiter Delimiter hi def link cdrdaoconfIntegerDelimiter cdrdaoconfDelimiter hi def link cdrdaoconfDriverDelimiter cdrdaoconfDelimiter hi def link cdrdaoconfDeviceDelimiter cdrdaoconfDelimiter hi def link cdrdaoconfPathDelimiter cdrdaoconfDelimiter hi def link cdrdaoconfInteger Number hi def link cdrdaoconfParanoiaMode Number hi def link cdrdaoconfDriver Identifier hi def link cdrdaoconfDevice cdrdaoconfPath hi def link cdrdaoconfPath String let b:current_syntax = "cdrdaoconf" let &cpo = s:cpo_save unlet s:cpo_save