Alexandre Julliard : transl: Use the array form for spawning shell commands .

Alexandre Julliard julliard at winehq.org
Thu Jul 23 09:42:46 CDT 2009


Module: tools
Branch: master
Commit: f6931374185da7ba6c5ee68e837095b2c2f84d10
URL:    http://source.winehq.org/git/tools.git/?a=commit;h=f6931374185da7ba6c5ee68e837095b2c2f84d10

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Jul 23 13:19:34 2009 +0200

transl: Use the array form for spawning shell commands.

---

 transl/scripts/checkmakefile.pl |   29 ++++++++++++++---------------
 1 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/transl/scripts/checkmakefile.pl b/transl/scripts/checkmakefile.pl
index ae964f0..2c31607 100755
--- a/transl/scripts/checkmakefile.pl
+++ b/transl/scripts/checkmakefile.pl
@@ -10,13 +10,12 @@ use File::Basename;
 # configuration parameters
 my (%CONFIG, $srcdir, $objdir, $toolsdir, $workdir, $wrc);
 
-sub shell($)
+sub shell(@)
 {
-    my $cmd = shift;
-    my $ret = system $cmd;
+    my $ret = system @_;
     if ($ret)
     {
-        print STDERR "$cmd\n";
+        print STDERR join(" ", @_) . "\n";
         print "!!!!!!! return value: $ret\n";
         exit 1;
     }
@@ -66,21 +65,21 @@ sub mycheck
     }
     return unless @rcfiles;
 
-    # files in dlls/ are compiled with __WINESRC__    
-    $defs .= " -D__WINESRC__" if ($dir =~ m,^dlls,);
+    # files in dlls/ are compiled with __WINESRC__
+    my @defs = split /s+/, $defs;
+    push @defs, "-D__WINESRC__" if ($dir =~ m,^dlls,);
 
-    print STDERR "*** $dir [$defs]\n";
+    printf STDERR "*** $dir [%s]\n", join( " ", @defs );
 
-    my $incl = "-I$srcdir/$dir -I$objdir/$dir -I$srcdir/include -I$objdir/include";
+    my @incl = ("-I$srcdir/$dir", "-I$objdir/$dir", "-I$srcdir/include", "-I$objdir/include");
     my $norm_fn = $dir;
     $norm_fn =~ s/[^a-zA-Z0-9]/-/g;
 
-    my $targets = join( " ", map { (my $ret = $_) =~ s/.rc$/.res/; $ret; } @rcfiles );
-    my $srcs = join( " ", @srcs );
-    my $objs = join( " ", map { (my $ret = "$objdir/$dir/$_") =~ s/.rc$/.res/; $ret; } @rcfiles );
+    my @targets = map { (my $ret = $_) =~ s/.rc$/.res/; $ret; } @rcfiles;
+    my @objs = map { (my $ret = "$objdir/$dir/$_") =~ s/.rc$/.res/; $ret; } @rcfiles;
 
-    shell "make -C $objdir/$dir -s $targets";
-    shell "$toolsdir/tools/winebuild/winebuild --resources -o $workdir/res/$norm_fn.res $objs";
+    shell "make", "-C", "$objdir/$dir", "-s", @targets;
+    shell "$toolsdir/tools/winebuild/winebuild", "--resources", "-o", "$workdir/res/$norm_fn.res", @objs;
 
     my $type = -1;
     my $resource;
@@ -99,7 +98,7 @@ sub mycheck
 
     if ($mode eq "locale")
     {
-        open(VERIFY, "$wrc $incl --verify-translation $defs $srcs|");
+        open VERIFY, "-|" or exec $wrc, "--verify-translation", @incl, @defs, @srcs;
         while (<VERIFY>)
         {
             if (m/^EXIST ([0-9a-f]{3}:[0-9a-f]{2})/)
@@ -116,7 +115,7 @@ sub mycheck
         return;
     }
 
-    open(VERIFY, "$wrc $incl --verify-translation $defs $srcs|");
+    open VERIFY, "-|" or exec $wrc, "--verify-translation", @incl, @defs, @srcs;
     while (<VERIFY>)
     {
         if (m/^TYPE NEXT/)




More information about the wine-cvs mailing list