Index: mozilla-tests/jsDriver.pl |
=================================================================== |
--- mozilla-tests/jsDriver.pl (revision 43940) |
+++ mozilla-tests/jsDriver.pl (working copy) |
@@ -43,7 +43,6 @@ |
# Branched 11/01/99 |
use strict; |
-use Getopt::Mixed "nextOption"; |
use File::Temp qw/ tempfile tempdir /; |
use POSIX qw(sys_wait_h); |
@@ -84,9 +83,11 @@ |
"h help>h i j=s javapath>j k confail>k K linefail>K R report>R l=s list>l " . |
"L=s neglist>L o=s opt>o p=s testpath>p s=s shellpath>s t trace>t " . |
"T=s timeout>T u=s lxrurl>u " . |
- "x noexitmunge>x n:s narcissus>n " . |
+ "x noexitmunge>x n=s narcissus>n " . |
"Q noquitinthandler>Q"; |
+my $last_option; |
+ |
if ($os_type eq "MAC") { |
$opt_suite_path = `directory`; |
$opt_suite_path =~ s/[\n\r]//g; |
@@ -502,16 +503,48 @@ |
} |
+sub next_option { |
+ my ($key, $val, $implied); |
+ |
+ return if @ARGV == 0; |
+ |
+ &dd ("ARGV is now: @ARGV\n"); |
+ |
+ $key = shift @ARGV; |
+ if ($key =~ s/^--?(.*)/$1/) { |
+ $implied = 0; |
+ } else { |
+ $implied = 1; |
+ $val = $key; |
+ $key = $last_option; |
+ } |
+ |
+ if ($key =~ /\w+/ and $options =~ /\b$key>(\w+)/) { |
+ $key = $1; |
+ } |
+ |
+ if ($options =~ /\b$key=s\b/) { |
+ if (!$implied) { |
+ die "option '$key' requires an argument" if @ARGV == 0; |
+ $val = shift @ARGV; |
+ } |
+ } elsif ($options =~ /(^|\s)$key(\s|$)/) { |
+ die "option '$key' doesn't take an argument" if $implied; |
+ $val = 1; |
+ } else { |
+ die "can't figure out option '$key'"; |
+ } |
+ $last_option = $key; |
+ return ($key, $val); |
+} |
+ |
sub parse_args { |
my ($option, $value, $lastopt); |
&dd ("checking command line options."); |
- Getopt::Mixed::init ($options); |
- $Getopt::Mixed::order = $Getopt::Mixed::RETURN_IN_ORDER; |
+ while (($option, $value) = next_option()) { |
- while (($option, $value) = nextOption()) { |
- |
if ($option eq "b") { |
&dd ("opt: setting bugurl to '$value'."); |
$opt_bug_url = $value; |
@@ -625,8 +658,6 @@ |
} |
- Getopt::Mixed::cleanup(); |
- |
if ($#opt_engine_list == -1) { |
die "You must select a shell to test in.\n"; |
} |