changeset 27752:e0cdaad8017d

fix execution of selected code containing quotation marks by F9 (bug #57312) * octave-qscintilla.cc (contextmenu_run): replace quotation marks in selected code lines by escaped ones
author Torsten Lilge <ttl-octave@mailbox.org>
date Thu, 28 Nov 2019 19:15:06 +0100
parents 8ac3222bf951
children dcf6569cd973
files libgui/src/m-editor/octave-qscintilla.cc
diffstat 1 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/m-editor/octave-qscintilla.cc	Thu Nov 28 09:24:42 2019 +0100
+++ b/libgui/src/m-editor/octave-qscintilla.cc	Thu Nov 28 19:15:06 2019 +0100
@@ -837,7 +837,12 @@
     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 ("\\\""));
 
         // Prevent output of breakpoint in temp. file for keyboard
         QString next_bp_quiet;
@@ -851,14 +856,15 @@
           }
 
         // Add codeline togetcher with call to echo/hitory function to tmp
-        code += QString ("%1 (%2, '%3', '%4');\n"
+        code += QString ("%1 (%2, \"%3\", \"%4\");\n"
                           + next_bp_quiet
-                          + "%4\n"
+                          + "%5\n"
                           + next_bp_quiet_reset
                           + "\n")
                          .arg (tmp_script_name)
                          .arg (i)
-                         .arg (lines.at (i))
+                         .arg (line_clean_1)
+                         .arg (line_clean_2)
                          .arg (line);
       }