Mercurial > hg > octave-lyh
annotate scripts/pkg/private/fix_depends.m @ 17295:011e5d67baf1
interpft.m: Widen tolerance on tests to allow for FFT error
* scripts/general/interpft.m: Widen tolerance on tests to allow for
error in FFT routines, for example when not linking with FFTW.
author | Mike Miller <mtmiller@ieee.org> |
---|---|
date | Tue, 20 Aug 2013 09:46:17 -0400 |
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 |