neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit be7b5774531364e6f1e2b2cec3c297a3bb84a60d
parent 8ce85d5fc706ff523950f17d7464eb7dd2842633
Author: zeertzjq <zeertzjq@outlook.com>
Date:   Thu, 18 Jul 2024 13:26:16 +0800

vim-patch:27f5334: runtime(termdebug): quote filename arguments using double quotes

closes: vim/vim#15270

https://github.com/vim/vim/commit/27f53346a303c5cf1bdfb8abca20e4fea8ec05e4

Co-authored-by: Ubaldo Tiberi <ubaldo.tiberi@google.com>

Diffstat:
Mruntime/pack/dist/opt/termdebug/plugin/termdebug.vim | 10++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim @@ -1181,6 +1181,12 @@ func s:DeleteCommands() let s:BreakpointSigns = [] endfunc +func s:QuoteArg(x) + " Find all the occurrences of " and \ and escape them and double quote + " the resulting string. + return printf('"%s"', a:x->substitute('[\\"]', '\\&', 'g')) +endfunc + " :Until - Execute until past a specified position or current line func s:Until(at) if s:stopped @@ -1188,7 +1194,7 @@ func s:Until(at) let s:stopped = v:false " call ch_log('assume that program is running after this command') " Use the fname:lnum format - let at = empty(a:at) ? $"\"{expand('%:p')}:{line('.')}\"" : a:at + let at = empty(a:at) ? s:QuoteArg($"{expand('%:p')}:{line('.')}") : a:at call s:SendCommand($'-exec-until {at}') " else " call ch_log('dropping command, program is running: exec-until') @@ -1207,7 +1213,7 @@ func s:SetBreakpoint(at, tbreak=v:false) endif " Use the fname:lnum format, older gdb can't handle --source. - let at = empty(a:at) ? $"\"{expand('%:p')}:{line('.')}\"" : a:at + let at = empty(a:at) ? s:QuoteArg($"{expand('%:p')}:{line('.')}") : a:at if a:tbreak let cmd = $'-break-insert -t {at}' else