diff options
author | tradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2005-09-02 13:21:05 +0000 |
---|---|---|
committer | tradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2005-09-02 13:21:05 +0000 |
commit | e48e267832a3eb9b417a441900ddc5a2acaf87d9 (patch) | |
tree | dfd7c9090fb5861cb7e7d53084ee563dfe11d997 /lib | |
parent | 6ea8090f2cc4ba2f809d2b7c8eb87e1e49d16749 (diff) |
Check that the ranges and default value for integer parameters
are also given as integers.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4118 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sbin/parameter_parser.pl | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/sbin/parameter_parser.pl b/lib/sbin/parameter_parser.pl index 76ef9239..c9960640 100644 --- a/lib/sbin/parameter_parser.pl +++ b/lib/sbin/parameter_parser.pl @@ -382,6 +382,15 @@ sub parse_param_ccl # Strip out double quotes enclosing a non-numeric parameter range $new_ranges =~ s/^"(.*)"$/$1/ if ($type !~ m:INT|REAL:); + # check integer parameter ranges + if ($type eq 'INT' && ! ( + $new_ranges =~ /^[+-]?\d+$/ || + $new_ranges =~ /^(\*|[(]?[+-]?\d+)?:(\*|[(]?[+-]?\d+)?(:\d+)?$/)) { + &CST_error(0, "Invalid range '$new_ranges' for integer " . + "parameter '$variable' of thorn '$thorn'", + '', __LINE__, __FILE__); + } + $parameter_db{"\U$thorn $variable\E range $parameter_db{\"\U$thorn $variable\E ranges\"} range"} = $new_ranges; # Check description @@ -423,6 +432,11 @@ sub parse_param_ccl $default =~ m:^(.*[^\s])\s*:; $default = $1; + if ($type eq 'INT' && $default !~ /^[+-]?\d+$/) { + &CST_error(0, "Default '$default' for integer parameter " . + "'$variable' in thorn '$thorn' is not an integer", + '', __LINE__, __FILE__); + } if ($type =~ m:INT|REAL: && $default =~ m:":) { &CST_error(0, "String default given for $type $variable in " . |