arclite — работа с архивами на основе 7-Zip

Здесь можно обсудить ваш любимый плагин.
2useven10
Posts: 5208
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

Тема для обсуждения arclite — нового альтернативного плагина архиватора 7-Zip для Far.
("Старый" плагин 7zipalt обсуждается в прежней теме.)

Внимание:
Начиная с билда 1762 плагин входит в комплект поставки юникодной версии FAR'а, заменяя собой Multiarc.
В arclite не реализованы некоторые функции, присутствовавшие в Multiarc, в частности упаковка в RAR.

Обсуждение: arclite вместо MultiArc в комплекте Far 2











Кодек LZHAM
DV
Posts: 455
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 31 times
Been thanked: 15 times

arclite — работа с архивами на основе 7-Zip

Post by DV »

Latest post of the previous page:

С build 5200 тоже воспроизводится. Регрессия по отношению к build 5005, который я продолжал использовать до этого :)
2useven10
Posts: 5208
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

DV wrote: Fri 01 Jun, 2018 23:05 Похоже, что в arclite
Не уверен, что дело в арклайт, но баг есть. Диалога у меня тоже не видно. Если копировать не Far.exe - всё ок.
DV
Posts: 455
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 31 times
Been thanked: 15 times

arclite — работа с архивами на основе 7-Zip

Post by DV »

2useven10 wrote: Sat 02 Jun, 2018 03:06Не уверен, что дело в арклайт, но баг есть. Диалога у меня тоже не видно. Если копировать не Far.exe - всё ок.
Похоже, как-то связано с нажатием Enter при запросе копирования/распаковки любого .exe файла.
Изначально я проблему воспроизвёл при попытке обновить проигрыватель 1by1 путём замены имеющихся файлов новыми из архива, в котором 3 файла: 1by1.exe, License.txt и Readme.htm. Я выделил все три, нажал F5 и 3 раза нажал Enter на вопрос о перезаписи. С третьим нажатием Enter случилось то, что я описал.
Last edited by DV on Sat 02 Jun, 2018 10:36, edited 1 time in total.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

arclite — работа с архивами на основе 7-Zip

Post by DrKnS »

DV wrote: Fri 01 Jun, 2018 23:05закрался какой-то жуткий баг
HaRT wrote: Fri 01 Jun, 2018 23:27кнопка Фара в таскбаре покраснела (от стыда?)
Плагин пытается показать диалог "Overwrite file".
Однако, он зачем-то пытается это делать из другого треда, что ни к чему хорошему привести не может:

Code: Select all

>	Far.exe!pluginapi::apiDialogRun(void * hDlg=0x00000000035a8750) Line 1084	C++
 	arclite.dll!0000000063f35bdc()	Unknown
 	arclite.dll!0000000063eda4d6()	Unknown
 	arclite.dll!0000000063eda77a()	Unknown
 	arclite.dll!0000000063efbd60()	Unknown
 	7z.dll!000000001e7657a2()	Unknown
 	7z.dll!000000001e765a67()	Unknown
 	7z.dll!000000001e70c12b()	Unknown
 	7z.dll!000000001e708813()	Unknown
 	7z.dll!000000001e75d4cb()	Unknown
 	7z.dll!000000001e75e86d()	Unknown
 	7z.dll!000000001e70c31b()	Unknown
 	msvcrt.dll!_endthreadex()	Unknown
 	msvcrt.dll!_endthreadex()	Unknown
 	kernel32.dll!BaseThreadInitThunk()	Unknown
 	ntdll.dll!RtlUserThreadStart()	Unknown
2useven10
Posts: 5208
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

DrKnS wrote: Sat 02 Jun, 2018 10:40 он зачем-то пытается это делать из другого треда
Распаковка в последних версиях 7z сильно более многопоточная...
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

arclite — работа с архивами на основе 7-Zip

Post by DrKnS »

2useven10 wrote: Mon 04 Jun, 2018 07:34Распаковка в последних версиях 7z сильно более многопоточная...
Надо или даунгрейдить, или отключать, а в перспективе UI показывать в основном треде через ACTL_SYNCHRO.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

arclite — работа с архивами на основе 7-Zip

Post by Shmuel »

Захожу в 7z-архив, там в подпапке файл базы данных sqlite3, нажимаю Enter, файл открывается плагином Polygon, делаю изменение в базе. Во временном файле, создаваемом плагином Arclite, видно, что дата файла базы данных изменилась на текущую. Выхожу из базы данных, Arclite удаляет временный файл, не предлагая обновить архив. Это нормально?
2useven10
Posts: 5208
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

Shmuel wrote: Mon 04 Jun, 2018 13:12Это нормально?
Видимо нет. Но причём здесь арлайт?
2useven10
Posts: 5208
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

DrKnS wrote: Mon 04 Jun, 2018 08:42 в перспективе UI показывать в основном треде через ACTL_SYNCHRO.
Надо будет запускать распаковку в отдельном потоке (чтобы основной тред был свободен для UI)?
Last edited by 2useven10 on Mon 04 Jun, 2018 13:59, edited 1 time in total.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

arclite — работа с архивами на основе 7-Zip

Post by DrKnS »

2useven10 wrote: Mon 04 Jun, 2018 13:59 Надо будет запускать распаковку в отдельном потоке (чтобы основной тред был свободен для UI)?
Наверное. А как там сейчас в авторском плагине сделано?
2useven10
Posts: 5208
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

DrKnS wrote: Mon 04 Jun, 2018 14:17 А как там сейчас в авторском плагине сделано?
ТамЗдесь просто зовется inArc->Extract(..., extractor) в основном потоке.
Колбеки идут через extractor, тот в котором проверяется необходимость перезаписи
теперь не всегда в основном потоке.
Как Там - не смотрел, но подозреваю что точно также - проверю...
Last edited by 2useven10 on Mon 04 Jun, 2018 16:20, edited 1 time in total.
2useven10
Posts: 5208
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

Там тоже зовётся диалог из неосновного потока.
Но он нормально отрабатывает.
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

arclite — работа с архивами на основе 7-Zip

Post by zg »

потому что там нет критической секции при вызове экспортов.
2useven10
Posts: 5208
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

zg, да, если убрать - диалог нормально показывается.
это самый простой способ вернуть плагин к более адекватному поведению.
даже если проблемы с filefind которые прибиваются этой критической секцией не устранены - они
гораздо меньшее зло чем текущее затыкание. делать перенос всего UI Из колбэков в основной поток
может и правильно, но на такой подвиг у меня времени нет, если кто-то готов - велкам...
Last edited by 2useven10 on Tue 05 Jun, 2018 06:57, edited 1 time in total.
2useven10
Posts: 5208
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

arclite — работа с архивами на основе 7-Zip

Post by 2useven10 »

b289
Оставил одну критическую секцию в GetOpenPanelInfoW().
Диалог показывается и FileFind вроде не падает.
okaa2
Posts: 3
Joined: Tue 05 Jun, 2018 08:11

arclite — работа с архивами на основе 7-Zip

Post by okaa2 »

Если я правильно понял, сломали вывод пути при разархивировании.
У меня настроены file association на открытие файлоа *.fb2 в fbreader.
При входе в архив и нажатии f3 fbreader открывает файл *.fb.
В последних сборках fbreader не видит файла *.fb из архива.
В сборке Far30b5200.x64.20180502.7z все работало нормально.
Предположительно, перестали передавать полный путь к разархивированному файлу.
В сборке Far30b5200.x64.20180502.7z выдается строка:
"FBReader.exe C:\Users\*****\AppData\Local\Temp\F3T83C6.tmp\file.fb2
А в сборке Far30b5225.x64.20180604.7z - только:
FBReader.exe file.fb2
Это можно исправить?
Post Reply

Return to “Обсуждение плагинов”