From 113cb513f76d8866cbb6dc85fa18aded753e01da Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 7 Nov 2021 20:27:04 +0000 Subject: Update runtime files --- .../pack/dist/opt/termdebug/plugin/termdebug.vim | 29 ++++++++++++++++------ 1 file changed, 22 insertions(+), 7 deletions(-) (limited to 'runtime/pack') diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim index a7b6953d0c..b549d4ee05 100644 --- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim +++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim @@ -2,7 +2,7 @@ " " Author: Bram Moolenaar " Copyright: Vim license applies, see ":help license" -" Last Change: 2021 Aug 23 +" Last Change: 2021 Oct 26 " " WORK IN PROGRESS - Only the basics work " Note: On MS-Windows you need a recent version of gdb. The one included with @@ -534,7 +534,7 @@ func s:GdbOutCallback(channel, text) if a:text == '(gdb) ' || a:text == '^done' || a:text[0] == '&' return endif - if a:text =~ '^^error,msg=' + if a:text =~ '^\^error,msg=' let text = s:DecodeMessage(a:text[11:]) if exists('s:evalexpr') && text =~ 'A syntax error in expression, near\|No symbol .* in current context' " Silently drop evaluation errors. @@ -736,9 +736,9 @@ func s:HandleDisasmMsg(msg) else let value = substitute(a:msg, '^\~\"[ ]*', '', '') let value = substitute(value, '^=>[ ]*', '', '') - let value = substitute(value, '\\n\" $', '', '') + let value = substitute(value, '\\n\"\r$', '', '') let value = substitute(value, '\\n\"$', '', '') - let value = substitute(value, ' ', '', '') + let value = substitute(value, '\r', '', '') let value = substitute(value, '\\t', ' ', 'g') if value != '' || !empty(s:asm_lines) @@ -982,8 +982,22 @@ func s:Run(args) endfunc func s:SendEval(expr) - call s:SendCommand('-data-evaluate-expression "' . a:expr . '"') - let s:evalexpr = a:expr + " clean up expression that may got in because of range + " (newlines and surrounding spaces) + let expr = a:expr + if &filetype ==# 'cobol' + " extra cleanup for COBOL: _every: expression ends with a period, + " a trailing comma is ignored as it commonly separates multiple expr. + let expr = substitute(expr, '\..*', '', '') + let expr = substitute(expr, '[;\n]', ' ', 'g') + let expr = substitute(expr, ',*$', '', '') + else + let expr = substitute(expr, '\n', ' ', 'g') + endif + let expr = substitute(expr, '^ *\(.*\) *', '\1', '') + + call s:SendCommand('-data-evaluate-expression "' . expr . '"') + let s:evalexpr = expr endfunc " :Evaluate - evaluate what is under the cursor @@ -1058,7 +1072,8 @@ func s:HandleError(msg) let s:evalFromBalloonExpr = 0 return endif - echoerr substitute(a:msg, '.*msg="\(.*\)"', '\1', '') + let msgVal = substitute(a:msg, '.*msg="\(.*\)"', '\1', '') + echoerr substitute(msgVal, '\\"', '"', 'g') endfunc func s:GotoSourcewinOrCreateIt() -- cgit v1.2.3