Skip to content
This repository has been archived by the owner on Sep 20, 2023. It is now read-only.

Commit

Permalink
\V<pattern> regexps can spell trouble if <pattern> contains backslashes.
Browse files Browse the repository at this point in the history
  • Loading branch information
lcd047 committed Mar 9, 2014
1 parent 223d00a commit da6520c
Show file tree
Hide file tree
Showing 13 changed files with 14 additions and 14 deletions.
2 changes: 1 addition & 1 deletion plugin/syntastic.vim
Expand Up @@ -18,7 +18,7 @@ if has('reltime')
let g:syntastic_start = reltime()
endif

let g:syntastic_version = '3.3.0-120'
let g:syntastic_version = '3.3.0-121'

" Sanity checks {{{1

Expand Down
2 changes: 1 addition & 1 deletion syntax_checkers/actionscript/mxmlc.vim
Expand Up @@ -41,7 +41,7 @@ function! SyntaxCheckers_actionscript_mxmlc_GetHighlightRegex(item)

endif

return term != '' ? '\V\<' . term . '\>' : ''
return term != '' ? '\V\<' . escape(term, '\') . '\>' : ''
endfunction

function! SyntaxCheckers_actionscript_mxmlc_GetLocList() dict
Expand Down
2 changes: 1 addition & 1 deletion syntax_checkers/css/prettycss.vim
Expand Up @@ -26,7 +26,7 @@ set cpo&vim
function! SyntaxCheckers_css_prettycss_GetHighlightRegex(item)
let term = matchstr(a:item["text"], '\m (\zs[^)]\+\ze)$')
if term != ''
let term = '\V' . term
let term = '\V' . escape(term, '\')
endif
return term
endfunction
Expand Down
2 changes: 1 addition & 1 deletion syntax_checkers/javascript/jslint.vim
Expand Up @@ -22,7 +22,7 @@ set cpo&vim
function! SyntaxCheckers_javascript_jslint_GetHighlightRegex(item)
let term = matchstr(a:item['text'], '\mExpected .* and instead saw ''\zs.*\ze''')
if term != ''
let term = '\V' . term
let term = '\V' . escape(term, '\')
endif
return term
endfunction
Expand Down
2 changes: 1 addition & 1 deletion syntax_checkers/lex/flex.vim
Expand Up @@ -26,7 +26,7 @@ function! SyntaxCheckers_lex_flex_GetHighlightRegex(item)
\ '\m^\(Definition value for\|undefined definition\) \zs{[^}]\+}\ze')
endif

return term != '' ? '\V' . term : ''
return term != '' ? '\V' . escape(term, '\') : ''
endfunction

function! SyntaxCheckers_lex_flex_GetLocList() dict
Expand Down
4 changes: 2 additions & 2 deletions syntax_checkers/lua/luac.vim
Expand Up @@ -28,7 +28,7 @@ function! SyntaxCheckers_lua_luac_GetHighlightRegex(pos)
let a:pos['col'] = p[2]
let result = '\%' . p[2] . 'c'
else
let result = '\V' . near
let result = '\V' . escape(near, '\')
endif

" XXX the following piece of code is evil, and is likely to break
Expand All @@ -38,7 +38,7 @@ function! SyntaxCheckers_lua_luac_GetHighlightRegex(pos)
"if open != ''
" let line = str2nr(matchstr(a:pos['text'], '\m(to close ''[^'']\+'' at line \zs[0-9]\+\ze)'))
" let group = a:pos['type'] ==? 'E' ? 'SyntasticError' : 'SyntasticWarning'
" call matchadd(group, '\%' . line . 'l\V' . open)
" call matchadd(group, '\%' . line . 'l\V' . escape(open, '\'))
"endif
endif
return result
Expand Down
2 changes: 1 addition & 1 deletion syntax_checkers/php/php.vim
Expand Up @@ -20,7 +20,7 @@ set cpo&vim

function! SyntaxCheckers_php_php_GetHighlightRegex(item)
let term = matchstr(a:item['text'], "\\munexpected '\\zs[^']\\+\\ze'")
return term != '' ? '\V' . term : ''
return term != '' ? '\V' . escape(term, '\') : ''
endfunction

function! SyntaxCheckers_php_php_GetLocList() dict
Expand Down
2 changes: 1 addition & 1 deletion syntax_checkers/po/msgfmt.vim
Expand Up @@ -20,7 +20,7 @@ set cpo&vim

function! SyntaxCheckers_po_msgfmt_GetHighlightRegex(item)
let term = matchstr(a:item['text'], '\mkeyword "\zs[^"]\+\ze" unknown')
return term != '' ? '\V' . term : ''
return term != '' ? '\V' . escape(term, '\') : ''
endfunction

function! SyntaxCheckers_po_msgfmt_GetLocList() dict
Expand Down
2 changes: 1 addition & 1 deletion syntax_checkers/python/frosted.vim
Expand Up @@ -39,7 +39,7 @@ function! SyntaxCheckers_python_frosted_GetLocList() dict
if len(parts) >= 4
let e["type"] = parts[1][0]
let e["text"] = parts[3] . ' [' . parts[1] . ']'
let e["hl"] = '\V' . parts[2]
let e["hl"] = '\V' . escape(parts[2], '\')
elseif e["text"] =~? '\v^I\d+:'
let e["valid"] = 0
else
Expand Down
2 changes: 1 addition & 1 deletion syntax_checkers/ruby/mri.vim
Expand Up @@ -21,7 +21,7 @@ set cpo&vim
function! SyntaxCheckers_ruby_mri_GetHighlightRegex(i)
if stridx(a:i['text'], 'assigned but unused variable') >= 0
let term = split(a:i['text'], ' - ')[1]
return '\V\<'.term.'\>'
return '\V\<' . escape(term, '\') . '\>'
endif

return ''
Expand Down
2 changes: 1 addition & 1 deletion syntax_checkers/texinfo/makeinfo.vim
Expand Up @@ -20,7 +20,7 @@ set cpo&vim

function! SyntaxCheckers_texinfo_makeinfo_GetHighlightRegex(item)
let term = matchstr(a:item['text'], "\\m`\\zs[^']\\+\\ze'")
return term != '' ? '\V' . term : ''
return term != '' ? '\V' . escape(term, '\') : ''
endfunction

function! SyntaxCheckers_texinfo_makeinfo_GetLocList() dict
Expand Down
2 changes: 1 addition & 1 deletion syntax_checkers/text/atdtool.vim
Expand Up @@ -22,7 +22,7 @@ function! SyntaxCheckers_text_atdtool_GetHighlightRegex(item)
let term = matchstr(a:item['text'], '\m "\zs[^"]\+\ze"\($\| | suggestions:\)')
if term != ''
let col = get(a:item, 'col', 0)
let term = (col != 0 ? '\%' . col . 'c' : '') . '\V' . term
let term = (col != 0 ? '\%' . col . 'c' : '') . '\V' . escape(term, '\')
endif
return term
endfunction
Expand Down
2 changes: 1 addition & 1 deletion syntax_checkers/vim/vimlint.vim
Expand Up @@ -29,7 +29,7 @@ function! SyntaxCheckers_vim_vimlint_GetHighlightRegex(item)
endif
endif

return '\V' . (col ? '\%' . col . 'c' : '') . term
return '\V' . (col ? '\%' . col . 'c' : '') . escape(term, '\')
endif

return ''
Expand Down

0 comments on commit da6520c

Please sign in to comment.