Page 37 of 37

MultiArc: Archive support plugin — Модуль работы с архивами

Posted: Tue 26 Feb, 2019 08:39
by www

Latest post of the previous page:

MultiArc не видит SFX архивы RAR5, создавать их может, но не определяет как архивы. Наблюдается на MultiArc.199.x86, WinRAR 5.60 (32 разрядный).

MultiArc: Archive support plugin — Модуль работы с архивами

Posted: Fri 01 Mar, 2019 18:15
by Smitis
www wrote:
Tue 26 Feb, 2019 08:39
MultiArc не видит SFX архивы RAR5
- На всякий случай, обновить unrar.dll
- Увеличить System.PluginMaxReadData (например, до 1048576)

MultiArc: Archive support plugin — Модуль работы с архивами

Posted: Fri 01 Mar, 2019 20:12
by Smitis
ivank wrote:
Sat 23 Feb, 2019 08:36
Для обхода этого бага использую такой макрос (Shift+F1 - ArcLite, Shift+F2 - MultiArc)
Тоже решение.
Но я бы сократил - убрал всё связанное с проверкой конфигурации, для MultiArc включил бы обработку ShiftF1 постоянно. Далее в коде

Code: Select all

if Plugin.Config(arclite_plugin_guid) then
    Keys "Add CtrlEnter"
end
Будет всегда включать обработку для ArcLite. В другом макросе Subtract вместо Add - будет всегда выключать.

MultiArc: Archive support plugin — Модуль работы с архивами

Posted: Sun 03 Mar, 2019 19:04
by www
Smitis wrote:
Fri 01 Mar, 2019 18:15
- Увеличить System.PluginMaxReadData (например, до 1048576)
Спасибо, помогло.

MultiArc: Archive support plugin — Модуль работы с архивами

Posted: Tue 14 Jan, 2020 06:27
by Maks5004
День добрый.
Взялся перебирать старые фидошные архивы с 90-х. Одна беда, сжимал тогда их архиватором HA.
Multiarc архивы понимает, но открывать не желает, дескать нет исполняемого модуля "ha". Это как то лечится?

MultiArc: Archive support plugin — Модуль работы с архивами

Posted: Tue 14 Jan, 2020 06:50
by Raistlin
Maks5004

https://mir.cr/SRIJRDS0

Хотя есть и родной ha.exe, тогда можно ничего не переопределять.

MultiArc: Archive support plugin — Модуль работы с архивами

Posted: Tue 14 Jan, 2020 10:37
by Maks5004
Raistlin wrote:
Tue 14 Jan, 2020 06:50
Хотя есть и родной ha.exe, тогда можно ничего не переопределять.
Спасибо. Вот только FAR под 10-кой 64бит. Не работает такой вариант. Буду с ДосБоксом шаманить.

MultiArc: Archive support plugin — Модуль работы с архивами

Posted: Tue 14 Jan, 2020 10:44
by Raistlin
Maks5004 wrote:
Tue 14 Jan, 2020 10:37
FAR под 10-кой 64бит. Не работает такой вариант.
И тот, который в каталоге NT, не работает? И lgha тоже?

MultiArc: Archive support plugin — Модуль работы с архивами

Posted: Tue 14 Jan, 2020 12:25
by buniak_a_h
Maks5004 wrote:
Tue 14 Jan, 2020 10:37
Raistlin wrote:
Tue 14 Jan, 2020 06:50
Хотя есть и родной ha.exe, тогда можно ничего не переопределять.
Спасибо. Вот только FAR под 10-кой 64бит. Не работает такой вариант. Буду с ДосБоксом шаманить.
Тот, что в каталоге NT, работает под win10x64 . Брал отсюда. ДосБокс не требуется.

MultiArc: Archive support plugin — Модуль работы с архивами

Posted: Tue 14 Jan, 2020 14:37
by Maks5004
Raistlin wrote:
Tue 14 Jan, 2020 10:44
И тот, который в каталоге NT, не работает?
А слона то я и не заметил. Спасибо, работает.

MultiArc: Archive support plugin — Модуль работы с архивами

Posted: Tue 14 Jan, 2020 14:54
by Ajaja
Нашел неприятный баг в custom.cpp.
Когда список парсится регулярным выражением и полное имя файла с путем выходит больше MAX_PATH ( = 260), то плагин валится.
Проблема в :

Code: Select all

void ParseListingItemRegExp(Match match,
    PluginPanelItem *Item, ArcItemInfo *Info,
    SYSTEMTIME &stModification, SYSTEMTIME &stCreation, SYSTEMTIME &stAccess)
{

    if(const char *p = match["name"])
        lstrcat(Item->FindData.cFileName, p);
    if(const char *p = match["description"])
        lstrcat(Info->Description, p);
Желательно изменить на

Code: Select all

void ParseListingItemRegExp(Match match,
    PluginPanelItem *Item, ArcItemInfo *Info,
    SYSTEMTIME &stModification, SYSTEMTIME &stCreation, SYSTEMTIME &stAccess)
{

    if(const char *p = match["name"])
      lstrcpyn(Item->FindData.cFileName, p, sizeof(Item->FindData.cFileName));
    if(const char *p = match["description"])
      lstrcpyn(Info->Description, p, sizeof(Info->Description));

P.S.
Для себя я уже пересобрал модуль. Если централизовано модуль больше не поддерживается и не будет обновляться, то как вариант, если кто наступит еще на эти же грабли, то чтоб избежать глюков нужно использовать конструкции вроде "(?P<name>.{0,259})" в Format-сторке в custom.ini.
Жаль, конечно, что уникодной альтернатывы MultiArc+Custom.fmt с поддержкой MAX_PATH>260 так за все эти годы и не появилось. :(

MultiArc: Archive support plugin — Модуль работы с архивами

Posted: Wed 15 Jan, 2020 10:47
by John Doe
Ajaja wrote:
Tue 14 Jan, 2020 14:54
Если централизовано модуль больше не поддерживается и не будет обновляться
Плагин в официальном репозитории, оформите ваши предложения как PR.