* Bug 15899 fixed: tree2code(,%T) now indents with Scinotes prefs 53/20653/3
Samuel GOUGEON [Sun, 9 Dec 2018 02:27:09 +0000 (03:27 +0100)]
  http://bugzilla.scilab.org/15899

Change-Id: I0ce62d91f98ec54540b8d02339bce35716eca6e9

scilab/CHANGES.md
scilab/modules/functions/macros/tree2code.sci
scilab/modules/functions/tests/unit_tests/tree2code.tst

index 904e391..f819cbb 100644 (file)
@@ -692,6 +692,7 @@ Known issues
 * [#15886](http://bugzilla.scilab.org/show_bug.cgi?id=15886): Display of polynomials was broken.
 * [#15890](http://bugzilla.scilab.org/show_bug.cgi?id=15890): `evstr` sometimes yielded some `+[]` warnings.
 * [#15891](http://bugzilla.scilab.org/show_bug.cgi?id=15891): Help pages of matrix-wise trigonometrical functions deserved a dedicated subsection.
+* [#15899](http://bugzilla.scilab.org/show_bug.cgi?id=15899): `tree2code(tree, prettyprint=%t)` ignored the indentation width declared in Scinotes preferences.
 * [#15907](http://bugzilla.scilab.org/show_bug.cgi?id=15907): `filter` was corrupting its input state array
 * [#15920](http://bugzilla.scilab.org/show_bug.cgi?id=15920): genlib() did not regenerate a missing .bin if the .sci was unchanged (Scilab 6 regression)
 * [#15924](http://bugzilla.scilab.org/show_bug.cgi?id=15924): sparse inequality to 0 yielded a wrong result.
index 2c1671e..c33b8cb 100644 (file)
@@ -1,7 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) INRIA - Vincent Couvert
-//
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2018 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
@@ -65,7 +65,14 @@ function C = tree2code(P, bprettyprintformat)
     // For each statement, generate corresponding code
     header = ""
     if bprettyprintformat then
-        header = "  "
+        File = "SCIHOME/XConfiguration.xml"
+        if isfile(File)
+            path = "//interface/scinotes/display/body/scinotes-display"
+            tmp = evstr(getPreferencesValue(path, "indent-size", File))
+        else
+            tmp = 4
+        end
+        header = blanks(tmp)
     end
     for i = 1:size(I)-2 // -2 to ignore last return+EOL
         C = cat_code(C, header + instruction2code(I(i), bprettyprintformat));
@@ -77,4 +84,3 @@ function C = tree2code(P, bprettyprintformat)
         C = cat_code(C, "");
     end
 endfunction
-
index cc9b8bf..7d5cd94 100644 (file)
@@ -11,7 +11,7 @@
 
 fp = funcprot(0);
 
-// Test the output prototype:
+// Tests the output prototype:
 // -------------------------
 protos = [
 "function test()"
@@ -39,3 +39,13 @@ for p = protos'
 end
 
 funcprot(fp);
+
+// Tests the indentation width
+// ---------------------------
+function test()
+ disp(2)
+endfunction
+txt = tree2code(macr2tree(test), %t);
+path = "//interface/scinotes/display/body/scinotes-display";
+tmp = evstr(getPreferencesValue(path, "indent-size", "SCIHOME/XConfiguration.xml"));
+assert_checkequal(txt(2), blanks(tmp)+"disp(2)");