# HG changeset patch # User Torsten Lilge # Date 1577489418 -3600 # Node ID a29db5c4670650dbf354fe617f8451358a4f7056 # Parent f658d41003e4ca9a2ffbc0ab410486afc8a7de7a 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 diff -r f658d41003e4 -r a29db5c46706 libgui/src/m-editor/octave-qscintilla.cc --- 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);