* Bug #14434 fixed - PlotSparse did not work anymore.
[scilab.git] / scilab / modules / umfpack / macros / ana_style.sci
1 //   Copyright Bruno Pinçon, ESIAL-IECN, Inria CORIDA project
2 //   <bruno.pincon@iecn.u-nancy.fr>
3 //
4 // This set of scilab 's macros provide a few sparse utilities.
5 //
6 // Copyright (C) 2012 - 2016 - Scilab Enterprises
7 //
8 // This file is hereby licensed under the terms of the GNU GPL v2.0,
9 // pursuant to article 5.3.4 of the CeCILL v.2.1.
10 // This file was originally licensed under the terms of the CeCILL v2.1,
11 // and continues to be available under such terms.
12 // For more information, see the COPYING file which you should have received
13 // along with this program.
14
15 function [col, mark] = ana_style(style)
16     //
17     //  an utility for PlotSparse
18     //
19     tab_col  = ["k" "b" "r" "g" "c" "m" "y" "t" "G"]
20     num_col  = [ 1   2   5   3   4   6  32  16  13 ]
21     tab_mark = ["." "+" "x" "*" "D" "d" "^" "v" "o"]
22     num_mark = [ 0   1   2   3   4   5   6   7   9 ]
23
24     n = length(style)
25     if n >= 1 then
26         c = part(style,1) ; ic = 1
27         ind = grep(tab_col, c)
28         if ind == [] then
29             if isdigit(c) then
30                 while %t
31                     ic = ic+1
32                     if ic <= n then
33                         c = part(style,ic)
34                         if ~isdigit(c) then , break, end
35                     else
36                         break
37                     end
38                 end
39                 col = evstr(part(style,1:ic-1))
40                 nb_col = xget("lastpattern")
41                 if col < 1  |  col > nb_col then
42                     col = default_markColor
43                 end
44             else
45                 col = default_markColor
46             end
47         else
48             ic = 2
49             col = num_col(ind)
50         end
51         reste = part(style,ic:n)
52         if reste == "" then
53             mark = default_markId
54         else
55             ind = grep(tab_mark, part(style,ic:n))
56             if ind == [] then
57                 mark = default_markId
58             else
59                 mark = num_mark(ind)
60             end
61         end
62     else
63         col = default_markColor ; mark = default_markId
64     end
65
66 endfunction