Mercurial > vim
view runtime/syntax/cabalconfig.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 | 29c5f168c6fd |
children |
line wrap: on
line source
" Vim syntax file " Language: Cabal Config " Maintainer: profunctor@pm.me " Last Change: Marcin Szamotulski " Original Author: Marcin Szamotulski if exists("b:current_syntax") finish endif syn match CabalConfigSection /^\S[[:alpha:]]\+\%(-[[:alpha:]]\+\)*[^:]*$/ syn region CabalConfigRegion matchgroup=CabalConfigKey start=/^\s*[[:alpha:]]\+\%(-[[:alpha:]]\+\)*:/ matchgroup=NONE end=/$/ contains=CabalConfigSeparator,CabalConfigKeyword,CabalConfigPath keepend syn match CabalConfigComment /^\s*--.*$/ syn match CabalConfigValue /.*$/ contained syn match CabalConfigKey /[[:alpha:]]\+\%(-[[:alpha:]]\+\)*\ze:/ syn keyword CabalConfigSeparator : contained syn match CabalConfigVariable /\$[[:alpha:]]\+/ syn keyword CabalConfigKeyword True False ghc syn match CabalConfigPath /\%([[:alpha:]]\+:\)\?\%(\/[[:print:]]\+\)\+/ hi def link CabalConfigComment Comment hi def link CabalConfigSection Title hi def link CabalConfigKey Statement hi def link CabalConfigSeparator NonText hi def link CabalConfigValue Normal hi def link CabalConfigVariable Identifier hi def link CabalConfigKeyword Keyword hi def link CabalConfigPath Directory let b:current_syntax = "cabal.config"