Bug 24816

Summary: zip: использование natspec в zipnote + сменить умолчание dosify
Product: Sisyphus Reporter: Peter <volkov.peter>
Component: zipAssignee: Andrey Cherepanov <cas>
Status: CLOSED DUPLICATE QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P3 CC: cas, lav
Version: unstable   
Hardware: all   
OS: Linux   

Description Peter 2010-12-24 13:44:07 MSK
В очередно раз народ смотрит на natspec:

http://www.opennet.ru/openforum/vsluhforumID3/72961.html

Просьба просмотреть обновлённые патчи
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-arch/unzip/files/unzip-6.0-natspec.patch?view=log
,
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-arch/zip/files/zip-3.0-natspec.patch?view=log
и, быть может, использовать их в altlinux'е. Изменения следующие: следуя дискуссии на opennet можно узнать, что по умолчанию лучше использовать dosify=1, так как в противном случае русские имена файлов не видны в totalcommander. В Gentoo я добавил небольшое изменение, чтобы zipnote тоже отображал русские названия файлов. Последнее изменение сводиться к следующему патчу:

--- unix/Makefile       2010-12-22 13:02:43 +0000
+++ unix/Makefile       2010-12-22 15:43:40 +0000
@@ -61,6 +61,7 @@
 CFLAGS = -O2 $(CFLAGS_NOOPT)
 LFLAGS1 =
 LFLAGS2 = -s
+LDADD = -lnatspec
 
 # object file lists
 OBJZ = zip.o zipfile.o zipup.o fileio.o util.o globals.o crypt.o ttyio.o \
@@ -125,9 +126,9 @@
 zipsman: $(ZIPS) $(ZIPMANUALs)
 
 zip$E: $(OBJZ) $(OBJI) $(OBJA) $(LIB_BZ)
-       $(BIND) -o zip$E $(LFLAGS1) $(OBJZ) $(OBJI) $(OBJA) $(LFLAGS2)
+       $(BIND) -o zip$E $(LFLAGS1) $(OBJZ) $(OBJI) $(OBJA) $(LFLAGS2) $(LDADD)
 zipnote$E: $(OBJN)
-       $(BIND) -o zipnote$E $(LFLAGS1) $(OBJN) $(LFLAGS2)
+       $(BIND) -o zipnote$E $(LFLAGS1) $(OBJN) $(LFLAGS2) $(LDADD)
 zipcloak$E: $(OBJC) $(OCRCTB)
        $(BIND) -o zipcloak$E $(LFLAGS1) $(OBJC) $(LFLAGS2)
 zipsplit$E: $(OBJS)
=== modified file 'zipnote.c'
--- zipnote.c   2010-12-22 13:02:43 +0000
+++ zipnote.c   2010-12-22 15:42:45 +0000
@@ -21,6 +21,11 @@
 #include "revision.h"
 #include <signal.h>
 
+#ifdef UNIX
+#  include <natspec.h>
+#  include <locale.h>
+#endif
+
 /* Calculate size of static line buffer used in write (-w) mode. */
 #define WRBUFSIZ 2047
 /* The line buffer size should be at least as large as FNMAX. */
@@ -537,7 +542,13 @@
   {
     for (z = zfiles; z != NULL; z = z->nxt)
     {
+#ifdef UNIX
+      char *oem_charset = NULL;
+      oem_charset = natspec_get_charset_by_locale(NATSPEC_DOSCS, "");
+      printf("%c %s\n", MARK, natspec_convert(z->zname, 0, oem_charset, 0));
+#else
       printf("%c %s\n", MARK, z->zname);
+#endif
       putclean(z->comment, z->com);
       printf("%c%s\n", MARK, MARKE);
     }
/usr/portage/app-arch/zip/files/zip-3.0-natspec.patch lines 169-213/213 (END)
Comment 1 Andrey Cherepanov 2012-05-05 15:00:24 MSK
Добавил патч в zip-3.0-alt2

*** This bug has been marked as a duplicate of bug 26954 ***