]> git.pld-linux.org Git - packages/rpm-pld-macros.git/commitdiff
- %_clean_env: proper quoting rules
authorsparky <sparky@pld-linux.org>
Mon, 24 Nov 2008 14:34:06 +0000 (14:34 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    rpm.macros -> 1.497

rpm.macros

index 8602f5ce14765ceaca251a1d8043b3647858ffbf..efa438152dab9ed1bea9feca7d9add235d6b031d 100644 (file)
 
 %_preserve_env PATH HOME TMP TMPDIR
 
-%_clean_env            env -i %(awk 'BEGIN {
+%_clean_env            env -i %(awk -vq="'" -vqq="\\"'\\"" -vq2q="'\\"'" 'BEGIN {
        split("%{?_preserve_env:%_preserve_env}", P);
        for (i in P) {
                p = P[i];
                if (ENVIRON[p]) {
-                       val = ENVIRON[p];
-                       gsub(/[\\\\"$`]/, "\\\\\\&", val);
-                       printf("\\"" p "=" val "\\" ");
+                       split( ENVIRON[p], V, "" );
+                       val = p "=";
+                       for ( j = 1; j in V; j++ ) {
+                               v = V[j];
+                               if ( v == q )
+                                       v = qq;
+                               else if ( v == "\\"" )
+                                       v = q2q;
+                               else if ( v == "\\\\" )
+                                       v = "\\\\\\\\";
+                               else
+                                       gsub( "[^a-zA-Z0-9/]", "\\"&\\"", v );
+                               val = val "" v;
+                       }
+                       printf( val " " );
                }
        }
 }')
This page took 0.054916 seconds and 4 git commands to generate.