Mercurial > octave
changeset 27909:a29db5c46706
fix use of escape sequences when running code with F9 (bug #57469)
* octave-qscintilla.cc (contextmenu_run): call temporary function for
displaying command and adding it to history with single quoted arguments,
which also allows to simplify the replacement of % and \ in the code
strings
author | Torsten Lilge <ttl-octave@mailbox.org> |
---|---|
date | Sat, 28 Dec 2019 00:30:18 +0100 |
parents | f658d41003e4 |
children | 543520386e1e |
files | libgui/src/m-editor/octave-qscintilla.cc |
diffstat | 1 files changed, 12 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/m-editor/octave-qscintilla.cc Fri Jan 03 20:37:22 2020 -0800 +++ b/libgui/src/m-editor/octave-qscintilla.cc Sat Dec 28 00:30:18 2019 +0100 @@ -843,12 +843,10 @@ for (int i = 0; i < lines.count (); i++) { QString line = lines.at (i); - QString line_clean_1 = line; - line_clean_1.replace (QString ("\""), QString ("\\\"")); - - line = line.replace (QString ("%"), QString ("%%")); - QString line_clean_2 = line; - line_clean_2.replace (QString ("\""), QString ("\\\"")); + QString line_history = line; + line_history.replace (QString ("\\"), QString ("\\\\")); + line_history.replace (QString ("\""), QString ("\\\"")); + line_history.replace (QString ("%"), QString ("%%")); // Prevent output of breakpoint in temp. file for keyboard QString next_bp_quiet; @@ -862,16 +860,19 @@ } // Add codeline togetcher with call to echo/hitory function to tmp - code += QString ("%1 (%2, \"%3\", \"%4\");\n" + // %1 : function name for displaying and adding to history + // %2 : line number + // %3 : command line (eval and display) + // %4 : command line for history (via fprintf) + code += QString ("%1 (%2, '%3', '%4');\n" + next_bp_quiet - + "%5\n" + + "%3\n" + next_bp_quiet_reset + "\n") .arg (tmp_script_name) .arg (i) - .arg (line_clean_1) - .arg (line_clean_2) - .arg (line); + .arg (line) + .arg (line_history); } code += QString ("munlock (\"%1\"); clear %1;\n").arg (tmp_script_name);