mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-19 03:52:17 +00:00
69f43aff5e
It is practically impossible to use any of the unzip slave ports. This is because archivers/unzip is used by the ports infrastruction (via USES=zip, USES=zip:infozip) and each slave port conflicts with it. If you install the slave port first, then the port infrastructure can't install archivers/unzip (although if attempted, the extracts dependency might be satisfied by the slave port so it might actually work). In any case, this change: * Adds "iconv" support as an non-default option * Add a localization group that can have zero or one selection * That group contains Chinese, Korean, or Russian support * WITH_UNZIP_UNREDUCE support was removed (I'm not sure it even worked) * Makefile was simplified (several loops removed) * Removes unzip-iconv, Chinese, Korean, Russian slave ports PR: 190349 Reported by: Mikhail Rokhin Unzip overhaul: marino Approved by: maintainer (ehaupt@)
86 lines
3.4 KiB
C
86 lines
3.4 KiB
C
--- zipinfo.c.orig 2009-02-08 17:04:30 UTC
|
|
+++ zipinfo.c
|
|
@@ -457,6 +457,10 @@ int zi_opts(__G__ pargc, pargv)
|
|
int tflag_slm=TRUE, tflag_2v=FALSE;
|
|
int explicit_h=FALSE, explicit_t=FALSE;
|
|
|
|
+#ifdef UNIX
|
|
+ extern char OEM_CP[MAX_CP_NAME];
|
|
+ extern char ISO_CP[MAX_CP_NAME];
|
|
+#endif
|
|
|
|
#ifdef MACOS
|
|
uO.lflag = LFLAG; /* reset default on each call */
|
|
@@ -501,6 +505,35 @@ int zi_opts(__G__ pargc, pargv)
|
|
uO.lflag = 0;
|
|
}
|
|
break;
|
|
+#ifdef UNIX
|
|
+ case ('I'):
|
|
+ if (negative) {
|
|
+ Info(slide, 0x401, ((char *)slide,
|
|
+ "error: encodings can't be negated"));
|
|
+ return(PK_PARAM);
|
|
+ } else {
|
|
+ if(*s) { /* Handle the -Icharset case */
|
|
+ /* Assume that charsets can't start with a dash to spot arguments misuse */
|
|
+ if(*s == '-') {
|
|
+ Info(slide, 0x401, ((char *)slide,
|
|
+ "error: a valid character encoding should follow the -I argument"));
|
|
+ return(PK_PARAM);
|
|
+ }
|
|
+ strncpy(ISO_CP, s, sizeof(ISO_CP));
|
|
+ } else { /* -I charset */
|
|
+ ++argv;
|
|
+ if(!(--argc > 0 && *argv != NULL && **argv != '-')) {
|
|
+ Info(slide, 0x401, ((char *)slide,
|
|
+ "error: a valid character encoding should follow the -I argument"));
|
|
+ return(PK_PARAM);
|
|
+ }
|
|
+ s = *argv;
|
|
+ strncpy(ISO_CP, s, sizeof(ISO_CP));
|
|
+ }
|
|
+ while(*(++s)); /* No params straight after charset name */
|
|
+ }
|
|
+ break;
|
|
+#endif /* ?UNIX */
|
|
case 'l': /* longer form of "ls -l" type listing */
|
|
if (negative)
|
|
uO.lflag = -2, negative = 0;
|
|
@@ -521,6 +554,35 @@ int zi_opts(__G__ pargc, pargv)
|
|
G.M_flag = TRUE;
|
|
break;
|
|
#endif
|
|
+#ifdef UNIX
|
|
+ case ('O'):
|
|
+ if (negative) {
|
|
+ Info(slide, 0x401, ((char *)slide,
|
|
+ "error: encodings can't be negated"));
|
|
+ return(PK_PARAM);
|
|
+ } else {
|
|
+ if(*s) { /* Handle the -Ocharset case */
|
|
+ /* Assume that charsets can't start with a dash to spot arguments misuse */
|
|
+ if(*s == '-') {
|
|
+ Info(slide, 0x401, ((char *)slide,
|
|
+ "error: a valid character encoding should follow the -I argument"));
|
|
+ return(PK_PARAM);
|
|
+ }
|
|
+ strncpy(OEM_CP, s, sizeof(OEM_CP));
|
|
+ } else { /* -O charset */
|
|
+ ++argv;
|
|
+ if(!(--argc > 0 && *argv != NULL && **argv != '-')) {
|
|
+ Info(slide, 0x401, ((char *)slide,
|
|
+ "error: a valid character encoding should follow the -O argument"));
|
|
+ return(PK_PARAM);
|
|
+ }
|
|
+ s = *argv;
|
|
+ strncpy(OEM_CP, s, sizeof(OEM_CP));
|
|
+ }
|
|
+ while(*(++s)); /* No params straight after charset name */
|
|
+ }
|
|
+ break;
|
|
+#endif /* ?UNIX */
|
|
case 's': /* default: shorter "ls -l" type listing */
|
|
if (negative)
|
|
uO.lflag = -2, negative = 0;
|