[libav-commits] simplify option handling

Janne Grunau git at libav.org
Thu Apr 3 18:21:50 CEST 2014


Module: gas-preprocessor
Branch: master
Commit: cafe6e55a5606c5423c0a0e4045a97f2c3a86338

Author:    Janne Grunau <janne-libav at jannau.net>
Committer: Janne Grunau <janne-libav at jannau.net>
Date:      Wed Apr  2 12:11:46 2014 +0200

simplify option handling

The first entry in @ARGV not starting with a dash or everything after
'--' is handled as gcc_cmd command. Makes ./gas-preprocessor.pl -help
work as intended.

---

 gas-preprocessor.pl |   33 ++++++++-------------------------
 1 file changed, 8 insertions(+), 25 deletions(-)

diff --git a/gas-preprocessor.pl b/gas-preprocessor.pl
index 1abe9fe..d6d12c3 100755
--- a/gas-preprocessor.pl
+++ b/gas-preprocessor.pl
@@ -18,7 +18,6 @@ my %comments = ("aarch64" => '//',
                 "arm"     => '@',
                 "powerpc" => '#');
 
-my @options;
 my @gcc_cmd;
 my @preprocess_c_cmd;
 
@@ -57,44 +56,28 @@ sub usage() {
 
 while (@ARGV) {
     my $opt = shift;
-    last if ($opt =~ /^--$/);
-    push @options, $opt;
-}
-if (@ARGV) {
-    @gcc_cmd = @ARGV;
-} else {
-    @gcc_cmd = @options;
-    @options = ();
-
-    # backward compatible handling
-    if ($gcc_cmd[0] eq "-fix-unreq") {
-        $fix_unreq = 1;
-        shift @gcc_cmd;
-    } elsif ($gcc_cmd[0] eq "-no-fix-unreq") {
-        $fix_unreq = 0;
-        shift @gcc_cmd;
-    }
-}
 
-while (@options) {
-    my $opt = shift @options;
     if ($opt =~ /^-(no-)?fix-unreq$/) {
         $fix_unreq = $1 ne "no-";
     } elsif ($opt eq "-force-thumb") {
         $force_thumb = 1;
     } elsif ($opt eq "-arch") {
-        $arch = shift @options;
+        $arch = shift;
         die "unknown arch: '$arch'\n" if not exists $comments{$arch};
     } elsif ($opt eq "-as-type") {
-        $as_type = shift @options;
+        $as_type = shift;
         die "unknown as type: '$as_type'\n" if $as_type !~ /^((apple-)?(gas|clang)|armasm)$/;
     } elsif ($opt eq "-help") {
         usage();
         exit 0;
+    } elsif ($opt eq "--" ) {
+	@gcc_cmd = @ARGV;
+    } elsif ($opt =~ /^-/) {
+        die "option '$opt' is not known. See '$0 -help' for usage information\n";
     } else {
-        usage();
-        die "option '$opt' is not known\n";
+	push @gcc_cmd, $opt, @ARGV;
     }
+    last if (@gcc_cmd);
 }
 
 if (grep /\.c$/, @gcc_cmd) {



More information about the libav-commits mailing list