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

closes: vim/vim#15270

27f53346a3

Co-authored-by: Ubaldo Tiberi <ubaldo.tiberi@google.com>
This commit is contained in:
zeertzjq 2024-07-18 13:26:16 +08:00
parent 8ce85d5fc7
commit be7b577453

View File

@ -1181,6 +1181,12 @@ func s:DeleteCommands()
let s:BreakpointSigns = [] let s:BreakpointSigns = []
endfunc 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 " :Until - Execute until past a specified position or current line
func s:Until(at) func s:Until(at)
if s:stopped if s:stopped
@ -1188,7 +1194,7 @@ func s:Until(at)
let s:stopped = v:false let s:stopped = v:false
" call ch_log('assume that program is running after this command') " call ch_log('assume that program is running after this command')
" Use the fname:lnum format " 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}') call s:SendCommand($'-exec-until {at}')
" else " else
" call ch_log('dropping command, program is running: exec-until') " call ch_log('dropping command, program is running: exec-until')
@ -1207,7 +1213,7 @@ func s:SetBreakpoint(at, tbreak=v:false)
endif endif
" Use the fname:lnum format, older gdb can't handle --source. " 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 if a:tbreak
let cmd = $'-break-insert -t {at}' let cmd = $'-break-insert -t {at}'
else else