summaryrefslogtreecommitdiff
path: root/pl/rangeargs.pl
blob: 9212f84933b9001aeadc3ca6da5fd47a794890fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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;
}