annotate scripts/plot/util/colstyle.m @ 19069:afab3a2f57e7

doc: Update docstring for exist(). * variables.cc (Fexist): Update documentation string.
author Rik <rik@octave.org>
date Sun, 29 Jun 2014 12:58:22 -0700
parents 1a9be98119c5
children 4197fc428c7d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17744
d63878346099 maint: Update copyright notices for release.
John W. Eaton <jwe@octave.org>
parents: 17572
diff changeset
1 ## Copyright (C) 2012-2013 David Bateman
12607
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
2 ##
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
3 ## This file is part of Octave.
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
4 ##
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
6 ## under the terms of the GNU General Public License as published by
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
8 ## your option) any later version.
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
9 ##
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
13 ## General Public License for more details.
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
14 ##
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
17 ## <http://www.gnu.org/licenses/>.
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
18
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
19 ## -*- texinfo -*-
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
20 ## @deftypefn {Function File} {[@var{style}, @var{color}, @var{marker}, @var{msg}] =} colstyle (@var{linespec})
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
21 ## Parse @var{linespec} and return the line style, color, and markers given.
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
22 ## In the case of an error, the string @var{msg} will return the text of the
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
23 ## error.
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
24 ## @end deftypefn
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
25
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
26 function [l, c, m, msg] = colstyle (style)
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
27
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
28 if (nargin != 1)
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
29 print_usage ();
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
30 endif
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
31
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
32 if (! ischar (style))
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
33 error ("colstyle: STYLE must be a string");
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
34 endif
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
35
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
36 try
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
37 opt = __pltopt__ ("colstyle", style);
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
38 l = opt.linestyle;
18401
1a9be98119c5 colstyle.m: Tweaks to improve code style.
Rik <rik@octave.org>
parents: 17744
diff changeset
39 switch (opt.color)
12607
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
40 case [0 0 0]
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
41 c = "k";
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
42 case [1 0 0]
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
43 c = "r";
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
44 case [0 1 0]
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
45 c = "g";
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
46 case [0 0 1]
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
47 c = "b";
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
48 case [1 1 0]
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
49 c = "y";
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
50 case [1 0 1]
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
51 c = "m";
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
52 case [0 1 1]
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
53 c = "c";
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
54 case [0 1 1]
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
55 c = "w";
18401
1a9be98119c5 colstyle.m: Tweaks to improve code style.
Rik <rik@octave.org>
parents: 17744
diff changeset
56 otherwise
1a9be98119c5 colstyle.m: Tweaks to improve code style.
Rik <rik@octave.org>
parents: 17744
diff changeset
57 c = opt.color;
12607
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
58 endswitch
18401
1a9be98119c5 colstyle.m: Tweaks to improve code style.
Rik <rik@octave.org>
parents: 17744
diff changeset
59 m = opt.marker;
1a9be98119c5 colstyle.m: Tweaks to improve code style.
Rik <rik@octave.org>
parents: 17744
diff changeset
60 msg = [];
12607
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
61 catch
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
62 l = c = m = [];
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
63 msg = lasterr ();
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
64 end_try_catch
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
65
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
66 endfunction
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
67
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
68
12607
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
69 %!test
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
70 %! [l, c, m, msg] = colstyle ("r:x");
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
71 %! assert (isempty (msg));
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
72 %! assert (l, ":");
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
73 %! assert (c, "r");
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
74 %! assert (m, "x");
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
75
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
76 %!test
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
77 %! [l, c, m, msg] = colstyle (".");
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
78 %! assert (isempty (msg));
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
79 %! assert (l, "none");
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
80 %! assert (c, []);
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
81 %! assert (m, ".");
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
82
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
83 %!test
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
84 %! [l, c, m, msg] = colstyle ("~");
15466
d174210ce1ec use ' instead of ` in error messages, warnings and most comments
John W. Eaton <jwe@octave.org>
parents: 14138
diff changeset
85 %! assert (msg, "colstyle: unrecognized format character: '~'");
12607
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
86
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
87 %% Test input validation
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
88 %!error colstyle ()
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
89 %!error colstyle (1, 2)
18401
1a9be98119c5 colstyle.m: Tweaks to improve code style.
Rik <rik@octave.org>
parents: 17744
diff changeset
90 %!error <STYLE must be a string> colstyle (1.5)
12607
2846ea58b288 colstyle.m: Add new function (bug #33063)
Rik <octave@nomad.inbox5.com>
parents:
diff changeset
91