Цитата:
что это за формат - этот Windows Imaging Format Archiveboot.wim и т.п.
Цитата:
форматка без сигнатуры работать не будет.Сигнатуру постараюсь вычислить. Работает и без нее.
что это за формат - этот Windows Imaging Format Archiveboot.wim и т.п.
форматка без сигнатуры работать не будет.Сигнатуру постараюсь вычислить. Работает и без нее.
[WIM]
TypeName=Windows Imaging Format
ID=4D 53 57 49 4D
IDOnly=1
IDPos=
Extension=wim
List=7z l -- %%AQ
Start="^-----"
End="^--"
Format0="yyyy tt dd hh mm ss aaaaa zzzzzzzzzzzz pppppppppppp nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
Extract=7z x {-p%%P} -r0 -y -scsDOS -- %%A @%%LQMN
ExtractWithoutPath=7z e {-p%%P} -r0 -y -scsDOS -- %%A @%%LQMN
Test=7z t {-p%%P} -r0 -scsDOS -- %%A @%%LQMN
AllFilesMask="*"
[SWM]
TypeName=Windows Imaging Format
ID=4D 53 57 49 4D
IDOnly=1
IDPos=
Extension=swm
List=7z l -- %%AQ
Start="^-----"
End="^--"
Format0="yyyy tt dd hh mm ss aaaaa zzzzzzzzzzzz pppppppppppp nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
Extract=7z x {-p%%P} -r0 -y -scsDOS -- %%A @%%LQMN
ExtractWithoutPath=7z e {-p%%P} -r0 -y -scsDOS -- %%A @%%LQMN
Test=7z t {-p%%P} -r0 -scsDOS -- %%A @%%LQMN
AllFilesMask="*"

pkzip v4 выдал код ошибки W3 - версия-то libzip.a 78.8, а на файл E9. Ковырялся, я ковырялся - идей особых не наковырял. А похоже задачу надо решать кардинально, чтобы больше не возникала..
Итог таков: InfoZIP - все операции кроме создания SFX? SFX оставляем pkzipc. И всё нормально работает. Специально собрал последние версии из исходников и протестировал. Заодно с ребятами поглядели исходники libzip.a - баг сидит в ней, и только в LINUX варианте.
В итоге меняем 11 строк в /multiarc/zip.cpp со строки 463 и баг уходит в прошлое: // Console InfoZip Zip 3.1/UnZip 6.0 Win32 commands
static const char *Commands[]={
/*Extract */"unzip -o {-P %%P} %%A %%FMQS32768",
/*Extract without paths */"unzip -o -j {-P %%P} %%A %%FMQS32768",
/*Test */"unzip -t %%A",
/*Delete */"zip -d {-b %%W} %%A %%FMQS32768",
/*Comment archive */"zip -z {-b %%W} %%A",
/*Comment files */"zip -c -r {-b %%W} %%A %%FNMQS32768",
/*Convert to SFX use PKZip */"pkzipc -sfx -nozip %%A",
/*Lock archive */"",
/*Protect archive */"",
/*Recover archive */"zip -FF %%A",
/*Add files */"zip -S {-b %%W} {-P %%P} {%%S} %%A %%FQS32768",
/*Move files */"zip -m -S {-b %%W} {-P %%P} {%%S} %%A %%FQS32768",
/*Add files and folders */"zip -r -S {-b %%W} {-P %%P} {%%S} %%A %%FNMQS32768",
/*Move files and folders*/"zip -m -r -S {-b %%W} {-P %%P} {%%S} %%A %%FNMQS32768",
Поэтому я просто скачал исходники InfoZip 6.0 и собрал их в gcc.
Итог таков: InfoZIP - все операции кроме создания SFX? SFX оставляем pkzipc.
А тот же unzipsfx можно просто кинуть в пути и не ломать себе голову.
) - у меня и uharc и 7z аналогично настроены на конвертирование в sfx, через COPY /B Текущая версия - 12.3. До сих пор без проблем работает с zip.fmt. Не нужно ничего затачивать под InfoZip

Потом, когда MultiArc будут собирать в юникоде под Far2

- не копировались changelog, да это уж ладно, хотя и раздражает при этом потоке билдов, и custom.ini - вот это уже хуже.
[more=Патч для Multiarc. Подойдёт пока к любой ревизии после Мая 2009. Только её номер поправить.]Index: makefile_gcc 

Ты можешь точно и уверенно утверждать, что с новой версией pkzipc проблема связанная с неверной распаковкой архивов созданных в libzip.a для LINUX снята?
[HKEY_CURRENT_USER\Software\Far2\Plugins\MultiArc\ZIP]
"Extract"="pkzipc -ext -dir -over=all -noarc -mask=none -times=mod {-pass=%%P} %%A @%%LNMA"
"ExtractWithoutPath"="pkzipc -ext -path=none -over=all -noarc -mask=none -times=mod {-pass=%%P} %%A @%%LNMA"
"Test"="pkzipc -test=all -noarc {-pass=%%P} %%A"
"Delete"="pkzipc -delete -noarc {-temp=%%W} %%A @%%LNMA"
"Comment"="pkzipc -hea -noarc {-temp=%%W} %%A"
"CommentFiles"="pkzipc -com=all -noarc {-temp=%%W} %%A"
"SFX"="pkzipc -sfx -noarc %%A"
"Lock"=""
"Protect"=""
"Recover"="%comspec% /c echo.|pkzipc -fix -noarc %%A"
"Add"="pkzipc -add -attr=all -noarc {-pass=%%P} {-temp=%%W} %%A @%%LNMA"
"Move"="pkzipc -add -move -attr=all -noarc {-pass=%%P} {-temp=%%W} %%A @%%LNMA"
"AddRecurse"="pkzipc -add -attr=all -dir -noarc {-pass=%%P} {-temp=%%W} %%A @%%LNMA"
"MoveRecurse"="pkzipc -add -move -attr=all -dir -noarc {-pass=%%P} {-temp=%%W} %%A @%%LNMA"
"AllFilesMask"="*.*"
"DefExt"="zip"
"AddSwitches"=""
Это конечно хорошо, да вот как поступить с кучей контор и народа которым это "счастье" я имею ввиду старый PKZip по наследству досталось тем или иным путём?
Index: makefile_gcc
===================================================================
--- makefile_gcc (revision 3341)
+++ makefile_gcc (working copy)
@@ -13,1 +13,1 @@
- DOCS = arceng.hlf arcrus.hlf arceng.lng arcrus.lng
+ DOCS = arceng.hlf arcrus.hlf arceng.lng arcrus.lng changelog
@@ -34,1 +34,1 @@
- $(MAKE) -f makefile_gcc_fmt FMT=zip
+ $(MAKE) -f makefile_gcc_fmt FMT=zip
+ $(CP) custom.ini $(DLLDIR)/Formats
Index: zip.cpp
===================================================================
--- zip.cpp (revision 3341)
+++ zip.cpp (working copy)
@@ -463,16 +463,16 @@
- // Console PKZIP 4.0/Win32 commands
- static const char *Commands[]={
- /*Extract */"pkzipc -ext -dir -over=all -nozip -mask=none -times=mod {-pass=%%P} %%A @%%LNMA",
- /*Extract without paths */"pkzipc -ext -over=all -nozip -mask=none -times=mod {-pass=%%P} %%A @%%LNMA",
- /*Test */"pkzipc -test=all -nozip {-pass=%%P} %%A",
- /*Delete */"pkzipc -delete -nozip {-temp=%%W} %%A @%%LNMA",
- /*Comment archive */"pkzipc -hea -nozip {-temp=%%W} %%A",
- /*Comment files */"pkzipc -com=all -nozip {-temp=%%W} %%A",
- /*Convert to SFX */"pkzipc -sfx -nozip %%A",
- /*Lock archive */"",
- /*Protect archive */"",
- /*Recover archive */"%comspec% /c echo.|pkzipc -fix -nozip %%A",
- /*Add files */"pkzipc -add -attr=all -nozip {-pass=%%P} {-temp=%%W} %%A @%%LNMA",
- /*Move files */"pkzipc -add -move -attr=all -nozip {-pass=%%P} {-temp=%%W} %%A @%%LNMA",
- /*Add files and folders */"pkzipc -add -attr=all -dir -nozip {-pass=%%P} {-temp=%%W} %%A @%%LNMA",
- /*Move files and folders*/"pkzipc -add -move -attr=all -dir -nozip {-pass=%%P} {-temp=%%W} %%A @%%LNMA",
+ // Console InfoZip Zip 3.1/UnZip 6.0 Win32 commands
+ static const char *Commands[]={
+ /*Extract */"unzip -o {-P %%P} %%A %%FMQS32768",
+ /*Extract without paths */"unzip -o -j {-P %%P} %%A %%FMQS32768",
+ /*Test */"unzip -t %%A",
+ /*Delete */"zip -d {-b %%W} %%A %%FMQS32768",
+ /*Comment archive */"zip -z {-b %%W} %%A",
+ /*Comment files */"zip -c -r {-b %%W} %%A %%FNMQS32768",
+ /*Convert to SFX */"%COMSPEC% /D /E:ON /V:ON /C SET FN=%%A& SET FN=!FN:.zip=.exe!& COPY /B /V %FARHOME%\\plugins\\multiarc\\Formats\\unzipsfx.exe + %%A !FN! && zip.exe -A !FN!",
+ /*Lock archive */"",
+ /*Protect archive */"",
+ /*Recover archive */"zip -FF %%A",
+ /*Add files */"zip -S {-b %%W} {-P %%P} {%%S} %%A %%FQS32768",
+ /*Move files */"zip -m -S {-b %%W} {-P %%P} {%%S} %%A %%FQS32768",
+ /*Add files and folders */"zip -r -S {-b %%W} {-P %%P} {%%S} %%A %%FNMQS32768",
+ /*Move files and folders*/"zip -m -r -S {-b %%W} {-P %%P} {%%S} %%A %%FNMQS32768",
Index: zip.rc
===================================================================
--- zip.rc (revision 3341)
+++ zip.rc (working copy)
@@ -5,1 +5,1 @@
- #define PLUGIN_MINOR 31
+ #define PLUGIN_MINOR 32
$make -f makefile_gcc_libpcre COMMON=../common && make -f makefile_gcc_fmt FMT=zip
making depends for libpcre/study.c
making depends for libpcre/pcre.c
making depends for libpcre/get.c
compiling libpcre/get.c
compiling libpcre/pcre.c
compiling libpcre/study.c
linking final.32.gcc/obj/libPCRE.a
making depends for zip.cpp
compiling zip.cpp
compiling zip.rc
linking final.32.gcc/Formats/zip.fmt
Index: editor.cpp
===================================================================
--- editor.cpp (revision 3341)
+++ editor.cpp (working copy)
@@ -3934,8 +3934,9 @@
int LeftPos=CurPtr->GetLeftPos();
int TabCurPos=CurPtr->GetTabCurPos();
- if (ObjWidth>8 && TabCurPos-LeftPos+SearchLength>ObjWidth-8)
- CurPtr->SetLeftPos(TabCurPos+SearchLength-ObjWidth+8);
+ int nSearchLenPart = (SelectFound) ? 0 : SearchLength;
+ if (ObjWidth>8 && TabCurPos-LeftPos+nSearchLenPart>ObjWidth-8)
+ CurPtr->SetLeftPos(TabCurPos+nSearchLenPart-ObjWidth+8);
if (ReplaceMode)
{
Вы бы их на форуме где выложили официальном или сразу на багтрекер записали. Потеряются ведь.
ты соавтор патча, в любом варианте - там часть твоего кода для стряпни SFX
+ /*Recover archive */"zip -FF %%A",
Я там такой "радость" не одну поставил - защита от потери данных. Даже из-за моих фокусов с копирайтом - он у меня выводится на русском и буржуинском, тьфу,
английском у "мухобоек" глаза на лоб вечно лезут - орут "Вирус!".
drkns 06.08.2009 19:14:43 +0200 - build 1074
1. Продолжение 1073: лишние преобразования путей при создании ссылок.
Там же - убрана мешанина из табов/пробелов и прочая косметика.
total 71M
4.8M ssxep5ac.zip
4.8M ssxep5ab.zip
4.8M ssxep5aa.zip
4.8M ssxep5af.zip
4.8M ssxep5ae.zip
4.8M ssxep5ad.zip
4.8M ssxep5ai.zip
4.8M ssxep5ah.zip
4.8M ssxep5ag.zip
4.8M ssxep5aj.zip
4.8M ssxep5am.zip
4.8M ssxep5al.zip
4.8M ssxep5ak.zip
3.8M ssxep5an.zip
4.9M ssxep5aa.exe
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
Предыдущая тема: Notebook Hardware Control