Mercurial > hg > octave-lyh
annotate scripts/pkg/private/fix_depends.m @ 17483:bddb9688e41c
feather.m: Overhaul function for Matlab visual compatibility.
* scripts/plot/feather.m: Reduce length of arrowhead size to 0.20 of arrow
shaft. Change arrow head angle with shaft from 45 to 30 degrees. Use variable
'h' instead of 'retval' to match documentation. Redo input validation.
Add %!error input validation tests.
author | Rik <rik@octave.org> |
---|---|
date | Tue, 24 Sep 2013 13:17:04 -0700 |
parents | 89acf2cd9149 |
children |
rev | line source |
---|---|
14473
a46b8b0bd325
doc: Fix the encoding in Søren's name
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
14467
diff
changeset
|
1 ## Copyright (C) 2005-2012 Søren Hauberg |
14466
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
2 ## Copyright (C) 2010 VZLU Prague, a.s. |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
3 ## |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
4 ## This file is part of Octave. |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
5 ## |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
6 ## Octave is free software; you can redistribute it and/or modify it |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
7 ## under the terms of the GNU General Public License as published by |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
8 ## the Free Software Foundation; either version 3 of the License, or (at |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
9 ## your option) any later version. |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
10 ## |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
11 ## Octave is distributed in the hope that it will be useful, but |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
12 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
14 ## General Public License for more details. |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
15 ## |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
16 ## You should have received a copy of the GNU General Public License |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
17 ## along with Octave; see the file COPYING. If not, see |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
18 ## <http://www.gnu.org/licenses/>. |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
19 |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
20 ## -*- texinfo -*- |
14479
05b59be209ed
doc: grammarcheck new pkg/private functions
Rik <octave@nomad.inbox5.com>
parents:
14473
diff
changeset
|
21 ## @deftypefn {Function File} {@var{deps_cell} =} fix_depends (@var{depends}) |
14466
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
22 ## Undocumented internal function. |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
23 ## @end deftypefn |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
24 |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
25 ## Make sure the depends field is of the right format. |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
26 ## This function returns a cell of structures with the following fields: |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
27 ## package, version, operator |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
28 function deps_cell = fix_depends (depends) |
16724
b7667fcb9fbc
Substitute ostrsplit() for strsplit().
Ben Abbott <bpabbott@mac.com>
parents:
16403
diff
changeset
|
29 deps = strtrim (ostrsplit (tolower (depends), ",")); |
14466
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
30 deps_cell = cell (1, length (deps)); |
17028
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
31 dep_pat = ... |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
32 '\s*(?<name>\w+)+\s*(\(\s*(?<op>[<>=]+)\s*(?<ver>\d+\.\d+(\.\d+)*)\s*\))*\s*'; |
14466
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
33 |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
34 ## For each dependency. |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
35 for i = 1:length (deps) |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
36 dep = deps{i}; |
17028
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
37 [start, nm] = regexp (dep, dep_pat, 'start', 'names'); |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
38 ## Is the dependency specified |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
39 ## in the correct format? |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
40 if (! isempty (start)) |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
41 package = tolower (strtrim (nm.name)); |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
42 ## Does the dependency specify a version |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
43 ## Example: package(>= version). |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
44 if (! isempty (nm.ver)) |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
45 operator = nm.op; |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
46 if (! any (strcmp (operator, {">", ">=", "<=", "<", "=="}))) |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
47 error ("unsupported operator: %s", operator); |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
48 endif |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
49 version = fix_version (nm.ver); |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
50 ## If no version is specified for the dependency |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
51 ## we say that the version should be greater than |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
52 ## or equal to "0.0.0". |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
53 else |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
54 package = tolower (strtrim (dep)); |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
55 operator = ">="; |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
56 version = "0.0.0"; |
14466
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
57 endif |
17028
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
58 deps_cell{i} = struct ("package", package, |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
59 "operator", operator, |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
60 "version", version); |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
61 else |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
62 error ("incorrect syntax for dependency '%s' in the DESCRIPTION file\n", |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
63 dep); |
89acf2cd9149
Simplify the way pkg checks for dependencies.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
16724
diff
changeset
|
64 endif |
14466
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
65 endfor |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
66 endfunction |
cfb0173fe1ca
maint: Refactor pkg.m and move subfunctions to private/ directory.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
diff
changeset
|
67 |