* Bug 16679 fixed: get_function_path('acosh') yielded an error
[scilab.git] / scilab / modules / functions / macros / format_txt.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA - Vincent COUVERT
3 // Copyright (C) 2012 - 2016 - Scilab Enterprises
4 // Copyright (C) 2020 - Samuel GOUGEON
5 //
6 // This file is hereby licensed under the terms of the GNU GPL v2.0,
7 // pursuant to article 5.3.4 of the CeCILL v.2.1.
8 // This file was originally licensed under the terms of the CeCILL v2.1,
9 // and continues to be available under such terms.
10 // For more information, see the COPYING file which you should have received
11 // along with this program.
12
13 function [txt, space] = format_txt(txt, instr, bprettyprintformat, nextinstr)
14     // Add EOL and returns spaces to have good indentation (called by tree2code)
15     // Inputs:
16     // - txt: code to format
17     // - instr: instruction to evaluate as a possible EOL
18     // - bprettyprintformat = %T -> code generated is formatted 
19     //                        %F -> code generated has same format as original code
20     // - nextinstr: next instruction after instr (format EOL between instructions)
21     // Outputs:
22     // - txt: updated txt
23     // - space: indentation margin for control instructions
24
25     rhs = argn(2)
26
27     // Indentation and EOL in control clauses
28     if rhs==3 then
29         if instr<>list("EOL") & bprettyprintformat then
30             txt = cat_code(txt,"")
31             space = "  "
32         elseif instr<>list("EOL") then
33             space = " "
34         else
35             space = "  "
36         end
37         // EOL between instructions
38     else
39         if instr <> list("EOL")
40             if bprettyprintformat & nextinstr<>list("EOL")
41                 if nextinstr(1)(1) <> "comment"  // http://bugzilla.scilab.org/16586
42                     txt = cat_code(txt,"")
43                 else
44                     txt($) = txt($) + "  "
45                 end
46             elseif ~bprettyprintformat & nextinstr(1)(1)=="comment"
47                 txt($) = txt($) + "  "
48             end
49         end
50     end
51 endfunction