182 lines
7.5 KiB
Diff
182 lines
7.5 KiB
Diff
Index: ebcdic.h
|
|
===================================================================
|
|
--- ebcdic.h.orig 2008-03-21 13:04:22.000000000 +0100
|
|
+++ ebcdic.h 2010-05-21 14:07:51.000091055 +0200
|
|
@@ -254,6 +254,25 @@ ZCONST uch Far iso2oem_850[] = {
|
|
0xD0, 0xA4, 0x95, 0xA2, 0x93, 0xE4, 0x94, 0xF6, /* F0 - F7 */
|
|
0x9B, 0x97, 0xA3, 0x96, 0x81, 0xEC, 0xE7, 0x98 /* F8 - FF */
|
|
};
|
|
+
|
|
+ZCONST uch Far iso2oem_2[] = {
|
|
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
|
|
+ 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
|
|
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
|
|
+ 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
|
|
+ 0x20, 0xA4, 0xF4, 0x9D, 0xCF, 0x95, 0x97, 0xF5,
|
|
+ 0xF9, 0xE6, 0xB8, 0x9B, 0x8D, 0x2D, 0xA6, 0xBD,
|
|
+ 0x20, 0xA5, 0xF2, 0x88, 0xEF, 0x96, 0x98, 0xF3,
|
|
+ 0xF7, 0xE7, 0xAD, 0x9C, 0xAB, 0xF1, 0xA7, 0xBE,
|
|
+ 0xE8, 0xB5, 0xB6, 0xC6, 0x8E, 0x91, 0x8F, 0x80,
|
|
+ 0xAC, 0x90, 0xA8, 0xD3, 0xB7, 0xD6, 0xD7, 0xD2,
|
|
+ 0xD1, 0xE3, 0xD5, 0xE0, 0xE2, 0x8A, 0x99, 0x9E,
|
|
+ 0xFC, 0xDE, 0xE9, 0xEB, 0x9A, 0xED, 0xDD, 0xE1,
|
|
+ 0xEA, 0xA0, 0x83, 0xC7, 0x84, 0x92, 0x86, 0x87,
|
|
+ 0x9F, 0x82, 0xA9, 0x89, 0xD8, 0xA1, 0x8C, 0xD4,
|
|
+ 0xD0, 0xE4, 0xE5, 0xA2, 0x93, 0x8B, 0x94, 0xF6,
|
|
+ 0xFD, 0x85, 0xA3, 0xFB, 0x81, 0xEC, 0xEE, 0xFA
|
|
+};
|
|
#endif /* IZ_ISO2OEM_ARRAY */
|
|
|
|
#ifdef IZ_OEM2ISO_ARRAY
|
|
@@ -275,6 +294,25 @@ ZCONST uch Far oem2iso_850[] = {
|
|
0xAD, 0xB1, 0x3D, 0xBE, 0xB6, 0xA7, 0xF7, 0xB8, /* F0 - F7 */
|
|
0xB0, 0xA8, 0xB7, 0xB9, 0xB3, 0xB2, 0xA6, 0xA0 /* F8 - FF */
|
|
};
|
|
+
|
|
+ZCONST uch Far oem2iso_2[] = {
|
|
+ 0xC7, 0xFC, 0xE9, 0xE2, 0xE4, 0xF9, 0xE6, 0xE7,
|
|
+ 0xB3, 0xEB, 0xD5, 0xF5, 0xEE, 0xAC, 0xC4, 0xC6,
|
|
+ 0xC9, 0xC5, 0xE5, 0xF4, 0xF6, 0xA5, 0xB5, 0xA6,
|
|
+ 0xB6, 0xD6, 0xDC, 0xAB, 0xBB, 0xA3, 0xD7, 0xE8,
|
|
+ 0xE1, 0xED, 0xF3, 0xFA, 0xA1, 0xB1, 0xAE, 0xBE,
|
|
+ 0xCA, 0xEA, 0xAA, 0xBC, 0xC8, 0xBA, 0x3C, 0x3E,
|
|
+ 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xC1, 0xC2, 0xCC,
|
|
+ 0xAA, 0xB9, 0xBA, 0xBB, 0xBC, 0xAF, 0xBF, 0xBF,
|
|
+ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC3, 0xE3,
|
|
+ 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xA4,
|
|
+ 0xF0, 0xD0, 0xCF, 0xCB, 0xEF, 0xD2, 0xCD, 0xCE,
|
|
+ 0xEC, 0xD9, 0xDA, 0xDB, 0xDC, 0xDE, 0xD9, 0xDF,
|
|
+ 0xD3, 0xDF, 0xD4, 0xD1, 0xF1, 0xF2, 0xA9, 0xB9,
|
|
+ 0xC0, 0xDA, 0xE0, 0xDB, 0xFD, 0xDD, 0xFE, 0xB4,
|
|
+ 0xF0, 0xBD, 0xB2, 0xB7, 0xA2, 0xA7, 0xF7, 0xB8,
|
|
+ 0xF8, 0xA8, 0xFF, 0xFB, 0xD8, 0xF8, 0xFE, 0xFF
|
|
+};
|
|
#endif /* IZ_OEM2ISO_ARRAY */
|
|
|
|
/* The following pointers to the OEM<-->ISO translation tables are used
|
|
Index: man/unzip.1
|
|
===================================================================
|
|
--- man/unzip.1.orig 2009-04-20 02:33:10.000000000 +0200
|
|
+++ man/unzip.1 2010-05-21 14:23:25.824590928 +0200
|
|
@@ -25,7 +25,7 @@
|
|
unzip \- list, test and extract compressed files in a ZIP archive
|
|
.PD
|
|
.SH SYNOPSIS
|
|
-\fBunzip\fP [\fB\-Z\fP] [\fB\-cflptTuvz\fP[\fBabjnoqsCDKLMUVWX$/:^\fP]]
|
|
+\fBunzip\fP [\fB\-Z\fP] [\fB\-cflptTuvz\fP[\fBabjnoqsCDKLMOUVWX$/:^\fP]]
|
|
\fIfile\fP[\fI.zip\fP] [\fIfile(s)\fP\ .\|.\|.]
|
|
[\fB\-x\fP\ \fIxfile(s)\fP\ .\|.\|.] [\fB\-d\fP\ \fIexdir\fP]
|
|
.PD
|
|
@@ -386,6 +386,9 @@ of \fIzip\fP(1L), which stores filenotes
|
|
overwrite existing files without prompting. This is a dangerous option, so
|
|
use it with care. (It is often used with \fB\-f\fP, however, and is the only
|
|
way to overwrite directory EAs under OS/2.)
|
|
+.TP
|
|
+.B \-O
|
|
++file names will be converted to ISO8859-2 instead of to ISO8859-1
|
|
.IP \fB\-P\fP\ \fIpassword\fP
|
|
use \fIpassword\fP to decrypt encrypted zipfile entries (if any). \fBTHIS IS
|
|
INSECURE!\fP Many multi-user operating systems provide ways for any user to
|
|
Index: unzip.c
|
|
===================================================================
|
|
--- unzip.c.orig 2009-04-16 20:26:52.000000000 +0200
|
|
+++ unzip.c 2010-05-21 14:23:25.824590928 +0200
|
|
@@ -1592,6 +1592,12 @@ int uz_opts(__G__ pargc, pargv)
|
|
} else
|
|
++uO.overwrite_all;
|
|
break;
|
|
+ case ('O'): /* spaces in filenames: allow by default */
|
|
+ if (negative)
|
|
+ uO.iso8859_2 = FALSE, negative = 0;
|
|
+ else
|
|
+ uO.iso8859_2 = TRUE;
|
|
+ break;
|
|
case ('p'): /* pipes: extract to stdout, no messages */
|
|
if (negative) {
|
|
uO.cflag = FALSE;
|
|
Index: unzip.h
|
|
===================================================================
|
|
--- unzip.h.orig 2009-02-15 19:12:54.000000000 +0100
|
|
+++ unzip.h 2010-05-21 14:23:25.824590928 +0200
|
|
@@ -502,6 +502,7 @@ typedef struct _UzpOpts {
|
|
int K_flag; /* -K: keep setuid/setgid/tacky permissions */
|
|
#endif
|
|
int lflag; /* -12slmv: listing format (zipinfo) */
|
|
+ int iso8859_2; /* -O: ISO8859-2 is used instead ISO8859-1 */
|
|
int L_flag; /* -L: convert filenames from some OSes to lowercase */
|
|
int overwrite_none; /* -n: never overwrite files (no prompting) */
|
|
#ifdef AMIGA
|
|
Index: unzpriv.h
|
|
===================================================================
|
|
--- unzpriv.h.orig 2009-04-20 01:59:26.000000000 +0200
|
|
+++ unzpriv.h 2010-05-21 14:24:02.641090783 +0200
|
|
@@ -2899,8 +2899,15 @@ char *GetLoadPath OF((__GPRO));
|
|
# define IZ_ISO2OEM_ARRAY
|
|
# endif
|
|
# define _ISO_INTERN(str1) if (iso2oem) {register uch *p;\
|
|
- for (p=(uch *)(str1); *p; p++)\
|
|
- *p = native((*p & 0x80) ? iso2oem[*p & 0x7f] : *p);}
|
|
+ if (uO.iso8859_2 == FALSE) { \
|
|
+ for (p=(uch *)(str1); *p; p++) \
|
|
+ *p = native((*p & 0x80) ? iso2oem[*p & 0x7f] : *p); \
|
|
+ } \
|
|
+ else { \
|
|
+ for (p=(uch *)(str1); *p; p++) \
|
|
+ *p = native((*p & 0x80) ? iso2oem_2[*p & 0x7f] : *p); \
|
|
+ }; \
|
|
+ }
|
|
# else
|
|
# define _ISO_INTERN(str1) A_TO_N(str1)
|
|
# endif
|
|
@@ -2914,8 +2921,15 @@ char *GetLoadPath OF((__GPRO));
|
|
# define IZ_OEM2ISO_ARRAY
|
|
# endif
|
|
# define _OEM_INTERN(str1) if (oem2iso) {register uch *p;\
|
|
- for (p=(uch *)(str1); *p; p++)\
|
|
- *p = native((*p & 0x80) ? oem2iso[*p & 0x7f] : *p);}
|
|
+ if (uO.iso8859_2 == FALSE) { \
|
|
+ for (p=(uch *)(str1); *p; p++) \
|
|
+ *p = native((*p & 0x80) ? oem2iso[*p & 0x7f] : *p); \
|
|
+ } \
|
|
+ else { \
|
|
+ for (p=(uch *)(str1); *p; p++) \
|
|
+ *p = native((*p & 0x80) ? oem2iso_2[*p & 0x7f] : *p); \
|
|
+ } \
|
|
+ }
|
|
# endif
|
|
#endif
|
|
|
|
@@ -2942,6 +2956,7 @@ char *GetLoadPath OF((__GPRO));
|
|
/* know: "ASCII" is "OEM" */
|
|
# define ASCII2ISO(c) \
|
|
((((c) & 0x80) && oem2iso) ? oem2iso[(c) & 0x7f] : (c))
|
|
+ (( ((c) & 0x80) ? ((uO.iso8859_2 == FALSE) ? (oem2iso ? oem2iso[(c) & 0x7f] : (c)) : oem2iso_2[(c) & 0x7f]) : (c))
|
|
# if (defined(NEED_STR2ISO) && !defined(CRYP_USES_OEM2ISO))
|
|
# define CRYP_USES_OEM2ISO
|
|
# endif
|
|
@@ -2957,8 +2972,9 @@ char *GetLoadPath OF((__GPRO));
|
|
# define ASCII2OEM(c) (c)
|
|
# else
|
|
/* assume: "ASCII" is "ISO-ANSI" */
|
|
-# define ASCII2OEM(c) \
|
|
- ((((c) & 0x80) && iso2oem) ? iso2oem[(c) & 0x7f] : (c))
|
|
+# define ASCII2OEM(c) (((c) & 0x80) ? \
|
|
+ ((uO.iso8859_2 == FALSE) ? (iso2oem ? iso2oem[(c) & 0x7f] : (c)) : iso2oem_2[(c) & 0x7f]) : \
|
|
+ (c))
|
|
# if (defined(NEED_STR2OEM) && !defined(CRYP_USES_ISO2OEM))
|
|
# define CRYP_USES_ISO2OEM
|
|
# endif
|
|
@@ -3029,10 +3045,12 @@ char *GetLoadPath OF((__GPRO));
|
|
#endif
|
|
#ifdef IZ_ISO2OEM_ARRAY
|
|
extern ZCONST uch Far *iso2oem;
|
|
+ extern ZCONST uch Far iso2oem_2[];
|
|
extern ZCONST uch Far iso2oem_850[];
|
|
#endif
|
|
#ifdef IZ_OEM2ISO_ARRAY
|
|
extern ZCONST uch Far *oem2iso;
|
|
+ extern ZCONST uch Far oem2iso_2[];
|
|
extern ZCONST uch Far oem2iso_850[];
|
|
#endif
|
|
|