File zip-3.0-nomutilation.patch of Package zip

Date: Thu Apr  3 23:00:00 UTC 2014
From: tbehrens@suse.com

Don't clobber include/exclude pattern lists by in2ex/ex2in's chopping
off path prefixes.

--- zip.c~	2008-07-05 18:34:06.000000000 +0200
+++ zip.c	2014-04-03 22:38:36.855065116 +0200
@@ -3217,9 +3217,14 @@
           /* if nothing matches include list then still create an empty archive */
           allow_empty_archive = 1;
         case 'x':   /* Exclude following files */
+        {
+          int old_pathput = pathput;
+          pathput = 1;
           add_filter((int) option, value);
+          pathput = old_pathput;
           free(value);
           break;
+        }
 #ifdef S_IFLNK
         case 'y':   /* Store symbolic links as such */
           linkput = 1;  break;
@@ -3322,8 +3327,11 @@
             /* just ignore as just marks what follows as non-option arguments */
 
           } else if (kk == 6) {
+            int old_pathput = pathput;
+            pathput = 1;
             /* value is R pattern */
             add_filter((int)'R', value);
+            pathput = old_pathput;
             free(value);
             if (first_listarg == 0) {
               first_listarg = argnum;
@@ -3387,8 +3395,11 @@
                 {
                   kk = 4;
                   if (recurse == 2) {
+                    int old_pathput = pathput;
+                    pathput = 1;
                     /* reading patterns from stdin */
                     add_filter((int)'R', pp);
+                    pathput = old_pathput;
                   } else {
                     /* file argument now processed later */
                     add_name(pp);
openSUSE Build Service is sponsored by