Subject: bug#14332: 24.3; Octave indentation bug

From: Leo Liu <[email-masked]>
Date: Thu, 02 May 2013 12:04:44 +0800

Indent the following lines in octave mode

if (true)
  a = (1 \(2-3));
else
  a = 0;
endif

gives me

if (true)
  a = (1 \(2-3));
                else
                  a = 0;
                endif

It seems treating \ as escape outside strings is incorrect. Is the
following fix is correct?

diff --git a/lisp/progmodes/octave.el b/lisp/progmodes/octave.el
index a58fdefb..1e2c2425 100644
--- a/lisp/progmodes/octave.el
+++ b/lisp/progmodes/octave.el
@@ -233,7 +233,7 @@ (defvar octave-mode-syntax-table
     (modify-syntax-entry ?& "."   table)
     (modify-syntax-entry ?| "."   table)
     (modify-syntax-entry ?! "."   table)
-    (modify-syntax-entry ?\\ "\\" table)
+    (modify-syntax-entry ?\\ "." table)
     (modify-syntax-entry ?\' "."  table)
     ;; Was "w" for abbrevs, but now that it's not necessary any more,
     (modify-syntax-entry ?\` "."  table)