Mercurial > hg > octave-nkf
annotate scripts/prefs/getpref.m @ 20038:9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Try to trim long lines to < 80 chars.
Use '##' for single line comments.
Use '(...)' around tests for if/elseif/switch/while.
Abut cell indexing operator '{' next to variable.
Abut array indexing operator '(' next to variable.
Use space between negation operator '!' and following expression.
Use two newlines between endfunction and start of %!test or %!demo code.
Remove unnecessary parens grouping between short-circuit operators.
Remove stray extra spaces (typos) between variables and assignment operators.
Remove stray extra spaces from ends of lines.
author | Rik <rik@octave.org> |
---|---|
date | Mon, 23 Feb 2015 14:54:39 -0800 |
parents | 4197fc428c7d |
children | 03b9d17a2d95 |
rev | line source |
---|---|
19898
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
17744
diff
changeset
|
1 ## Copyright (C) 2012-2015 John W. Eaton |
13261
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
2 ## |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
3 ## This file is part of Octave. |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
4 ## |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
5 ## Octave is free software; you can redistribute it and/or modify it |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
6 ## under the terms of the GNU General Public License as published by |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
7 ## the Free Software Foundation; either version 3 of the License, or (at |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
8 ## your option) any later version. |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
9 ## |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
10 ## Octave is distributed in the hope that it will be useful, but |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
13 ## General Public License for more details. |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
14 ## |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
15 ## You should have received a copy of the GNU General Public License |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
16 ## along with Octave; see the file COPYING. If not, see |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
17 ## <http://www.gnu.org/licenses/>. |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
18 |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
19 ## -*- texinfo -*- |
13929
9cae456085c2
Grammarcheck of documentation before 3.6.0 release.
Rik <octave@nomad.inbox5.com>
parents:
13261
diff
changeset
|
20 ## @deftypefn {Function File} {} getpref (@var{group}, @var{pref}, @var{default}) |
13261
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
21 ## Return the preference value corresponding to the named preference |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
22 ## @var{pref} in the preference group @var{group}. |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
23 ## |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
24 ## The named preference group must be a character string. |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
25 ## |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
26 ## If @var{pref} does not exist in @var{group} and @var{default} is |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
27 ## specified, return @var{default}. |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
28 ## |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
29 ## The preference @var{pref} may be a character string or a cell array |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
30 ## of character strings. The corresponding default value @var{default} |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
31 ## may be any value, or, if @var{pref} is a cell array of strings, |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
32 ## @var{default} must be a cell array of values with the same size as |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
33 ## @var{pref}. |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
34 ## |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
35 ## If neither @var{pref} nor @var{default} are specified, return a |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
36 ## structure of preferences for the preference group @var{group}. |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
37 ## |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
38 ## If no arguments are specified, return a structure containing all |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
39 ## groups of preferences and their values. |
13943
5820f8ce683e
doc: Add undocumented functions to manual for 3.6.0 release
Rik <octave@nomad.inbox5.com>
parents:
13929
diff
changeset
|
40 ## @seealso{addpref, setpref, ispref, rmpref} |
13261
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
41 ## @end deftypefn |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
42 |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
43 ## Author: jwe |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
44 |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
45 function retval = getpref (group, pref, default) |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
46 |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
47 if (nargin == 0) |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
48 retval = loadprefs (); |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
49 elseif (nargin == 1) |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
50 if (ischar (group)) |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
51 prefs = loadprefs (); |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
52 if (isfield (prefs, group)) |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
53 retval = prefs.(group); |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
54 else |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
55 retval = []; |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
56 endif |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
57 else |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
58 error ("expecting group to be a character string"); |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
59 endif |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
60 elseif (nargin == 2 || nargin == 3) |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
61 grp = getpref (group); |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
62 if (ischar (pref)) |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
63 if (isfield (grp, pref)) |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
64 retval = grp.(pref); |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
65 elseif (nargin == 3) |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
66 retval = default; |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
67 else |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
68 error ("preference %s does not exist in group %s", pref, group); |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
69 endif |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
70 elseif (iscellstr (pref)) |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
71 if (nargin == 2 || size_equal (pref, default)) |
14868
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
72 for i = 1:numel (pref) |
13261
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
73 if (isfield (grp, pref{i})) |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
74 retval.(pref) = grp.(pref{i}); |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
75 elseif (nargin == 3) |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
76 retval.(pref) = default{i}; |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
77 else |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
78 error ("preference %s does not exist in group %s", pref{i}, group); |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
79 endif |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
80 endfor |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
81 else |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
82 error ("size mismatch for pref and default"); |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
83 endif |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
84 else |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
85 error ("expecting pref to be a character string or cellstr"); |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
86 endif |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
87 else |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
88 print_usage (); |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
89 endif |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
90 |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
91 endfunction |
9134ca9d4ec8
new functions for Matlab compatibility
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
92 |
17338
1c89599167a6
maint: End m-files with 1 blank line.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
93 |
20038
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
94 ## Testing these functions will require some care to avoid wiping out |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
95 ## existing (or creating unwanted) preferences for the user running the |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19898
diff
changeset
|
96 ## tests. |
17338
1c89599167a6
maint: End m-files with 1 blank line.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
97 |