chiark
/
gitweb
/
~mdw
/
odin-cgi
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c86aee4
)
lib/Odin.pm: New function for parsing and checking integer arguments.
author
Mark Wooding
<mdw@distorted.org.uk>
Tue, 4 Aug 2015 16:10:44 +0000
(17:10 +0100)
committer
Mark Wooding
<mdw@distorted.org.uk>
Tue, 4 Aug 2015 16:10:44 +0000
(17:10 +0100)
lib/Odin.pm
patch
|
blob
|
blame
|
history
diff --git
a/lib/Odin.pm
b/lib/Odin.pm
index 7182af28e85b43466554e032e7d1a29e662c5b87..a89ba8835f738bb18ff2e51f023f505d91cf3244 100644
(file)
--- a/
lib/Odin.pm
+++ b/
lib/Odin.pm
@@
-723,6
+723,19
@@
sub arg {
return $a;
}
return $a;
}
+sub intarg {
+ my ($me, $what, $min, $max) = @_;
+ $what //= "option `-$me->{opt}'";
+ defined (my $a = $me->arg) or return undef;
+ if ($a !~ /^[-+]?\d+$/ ||
+ (defined $min && $a < $min) ||
+ (defined $max && $a > $max)) {
+ $me->err("invalid value `$a' for $what");
+ $a = undef;
+ }
+ return $a;
+}
+
sub rest { return @{$_[0]->{args}}; }
sub ok { return $_[0]->{ok}; }
sub bad { $_[0]->{ok} = 0; }
sub rest { return @{$_[0]->{args}}; }
sub ok { return $_[0]->{ok}; }
sub bad { $_[0]->{ok} = 0; }