Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

\V<pattern> regexps can spell trouble if <pattern> contains backslashes.

  • Loading branch information...
commit da6520c69f6556113d791056b7f7956ed39e9019 1 parent 223d00a
@lcd047 lcd047 authored
View
2  plugin/syntastic.vim
@@ -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
View
2  syntax_checkers/actionscript/mxmlc.vim
@@ -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
View
2  syntax_checkers/css/prettycss.vim
@@ -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
View
2  syntax_checkers/javascript/jslint.vim
@@ -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
View
2  syntax_checkers/lex/flex.vim
@@ -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
View
4 syntax_checkers/lua/luac.vim
@@ -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
@@ -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
View
2  syntax_checkers/php/php.vim
@@ -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
View
2  syntax_checkers/po/msgfmt.vim
@@ -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
View
2  syntax_checkers/python/frosted.vim
@@ -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
View
2  syntax_checkers/ruby/mri.vim
@@ -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 ''
View
2  syntax_checkers/texinfo/makeinfo.vim
@@ -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
View
2  syntax_checkers/text/atdtool.vim
@@ -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
View
2  syntax_checkers/vim/vimlint.vim
@@ -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 ''
Please sign in to comment.
Something went wrong with that request. Please try again.