X-Git-Url: https://git.distorted.org.uk/~mdw/odin-cgi/blobdiff_plain/c86aee467ae463cd3fc7ff896f09f2a07d79dad5..fafab3ed4e7aff2275500662a3885a6b4d11f501:/lib/Odin.pm diff --git a/lib/Odin.pm b/lib/Odin.pm index 7182af2..a89ba88 100644 --- a/lib/Odin.pm +++ b/lib/Odin.pm @@ -723,6 +723,19 @@ sub arg { 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; }