48 lines
1.6 KiB
Diff
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);
|