mirror of
https://github.com/junegunn/fzf.vim.git
synced 2026-02-08 10:51:07 +08:00
Fix escaping of query arguments
This commit is contained in:
@@ -49,6 +49,10 @@ function! s:escape(path)
|
|||||||
return escape(a:path, ' $%#''"\')
|
return escape(a:path, ' $%#''"\')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:q1(str)
|
||||||
|
return "'".substitute(a:str, "'", "'\\\\''", 'g')."'"
|
||||||
|
endfunction
|
||||||
|
|
||||||
if v:version >= 704
|
if v:version >= 704
|
||||||
function! s:function(name)
|
function! s:function(name)
|
||||||
return function(a:name)
|
return function(a:name)
|
||||||
@@ -526,10 +530,10 @@ endfunction
|
|||||||
|
|
||||||
" query, [[ag options], options]
|
" query, [[ag options], options]
|
||||||
function! fzf#vim#ag(query, ...)
|
function! fzf#vim#ag(query, ...)
|
||||||
let query = escape(empty(a:query) ? '^(?=.)' : a:query, '"\-')
|
let query = empty(a:query) ? '^(?=.)' : a:query
|
||||||
let args = copy(a:000)
|
let args = copy(a:000)
|
||||||
let ag_opts = len(args) > 1 ? remove(args, 0) : ''
|
let ag_opts = len(args) > 1 ? remove(args, 0) : ''
|
||||||
let command = printf('%s "%s"', ag_opts, query)
|
let command = ag_opts . ' ' . s:q1(query)
|
||||||
return call('fzf#vim#ag_raw', insert(args, command, 0))
|
return call('fzf#vim#ag_raw', insert(args, command, 0))
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@@ -589,7 +593,7 @@ function! s:btags_sink(lines)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:q(query)
|
function! s:q(query)
|
||||||
return ' --query "'.escape(a:query, '"\').'"'
|
return ' --query '.s:q1(a:query)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" query, [[tag commands], options]
|
" query, [[tag commands], options]
|
||||||
|
|||||||
Reference in New Issue
Block a user