zip/zip-3.0-nomutilation.patch

48 lines
1.6 KiB
Diff

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);