summaryrefslogtreecommitdiff
path: root/pl/rangeargs.pl
diff options
context:
space:
mode:
Diffstat (limited to 'pl/rangeargs.pl')
-rw-r--r--pl/rangeargs.pl48
1 files changed, 48 insertions, 0 deletions
diff --git a/pl/rangeargs.pl b/pl/rangeargs.pl
new file mode 100644
index 0000000..9212f84
--- /dev/null
+++ b/pl/rangeargs.pl
@@ -0,0 +1,48 @@
+;# $Id$
+;#
+;# Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+;#
+;# You may redistribute only under the terms of the Artistic Licence,
+;# as specified in the README file that comes with the distribution.
+;# You may reuse parts of this distribution only within the terms of
+;# that same Artistic Licence; a copy of which may be found at the root
+;# of the source tree for dist 4.0.
+;#
+;# $Log: rangeargs.pl,v $
+;# Revision 3.0 1993/08/18 12:10:58 ram
+;# Baseline for dist 3.0 netwide release.
+;#
+;#
+sub rangeargs {
+ local($result) = '';
+ local($min,$max,$_);
+ open(PL,"patchlevel.h") || die "Can't open patchlevel.h\n";
+ while (<PL>) {
+ $maxspec = $1 if /^#define\s+PATCHLEVEL\s+(\d+)/;
+ }
+ close PL;
+ die "Malformed patchlevel.h file.\n" if $maxspec eq '';
+ while ($#_ >= 0) {
+ $_ = shift(@_);
+ while (/^\s*\d/) {
+ s/^\s*(\d+)//;
+ $min = $1;
+ if (s/^,//) {
+ $max = $min;
+ } elsif (s/^-(\d*)//) {
+ $max = $1;
+ if ($max == 0 && $maxspec) {
+ $max = $maxspec;
+ }
+ s/^[^,],?//;
+ } else {
+ $max = $min;
+ }
+ for ($i = $min; $i <= $max; ++$i) {
+ $result .= $i . ' ';
+ }
+ }
+ }
+ $result;
+}
+