From cadcbb20ef35a0ccfa5d688f1238f5e4390eac29 Mon Sep 17 00:00:00 2001 From: "Evgeny Grechnikov (Diamond)" Date: Thu, 3 Sep 2009 18:46:38 +0000 Subject: [PATCH] KFar_Arc 0.17: fixed incorrect handling of some archives git-svn-id: svn://kolibrios.org@1148 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/fs/kfar/trunk/kfar.ini | 40 ++++++++++---------- programs/fs/kfar/trunk/kfar_arc/kfar_arc.asm | 15 +++++--- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/programs/fs/kfar/trunk/kfar.ini b/programs/fs/kfar/trunk/kfar.ini index 3473f0b880..34a82beac4 100644 --- a/programs/fs/kfar/trunk/kfar.ini +++ b/programs/fs/kfar/trunk/kfar.ini @@ -5,11 +5,12 @@ ini=/sys/TinyPad txt=/sys/TinyPad jpg=/sys/media/kiv jpeg=/sys/media/kiv -gif=/sys/media/GIFVIEW; GifMenu1,MenuAnimage +gif=/sys/media/kiv; MenuKiv,MenuAnimage +ico=/sys/media/kiv wav=/sys/media/AC97SND mp3=/sys/media/AC97SND mid=/sys/media/MIDAMP -bmp=/sys/media/kiv; BmpMenu1,MenuAnimage +bmp=/sys/media/kiv; MenuKiv,MenuAnimage png=/sys/media/kiv rtf=/sys/RtfRead 3ds=/sys/3d/view3ds @@ -26,42 +27,41 @@ htm=/sys/HTMLv html=/sys/HTMLv [Menu] -AsmMenu1=&Редактор,/sys/TinyPad +AsmMenu1=&Внешний редактор,/sys/TinyPad AsmMenu2=&Компилировать,/sys/develop/fasm -GifMenu1=&Просмотр,/sys/media/GIFVIEW -BmpMenu1=&Просмотр,/sys/media/kiv +MenuKiv=&Просмотр,/sys/media/kiv MenuAnimage=&Редактор,/sys/media/animage [Panels] -# Режимы отображения файлов на панелях -# значения соответствуют цифрам для LCtrl+<1-4> +; Режимы отображения файлов на панелях +; значения соответствуют цифрам для LCtrl+<1-4> LeftViewMode=2 RightViewMode=2 -# Режимы сортировки файлов на панелях -# значения имеют вид 2 * N + M, где -# M = 0 - прямая сортировка, M = 1 - обратная -# N = 0-6 соответствует режиму сортировки для Ctrl+F<3-9> +; Режимы сортировки файлов на панелях +; значения имеют вид 2 * N + M, где +; M = 0 - прямая сортировка, M = 1 - обратная +; N = 0-6 соответствует режиму сортировки для Ctrl+F<3-9> LeftSortMode=0 RightSortMode=0 [Editor] -# Символы конца строки, которые будет вставлять -# редактор kfar при добавлении новой строки: -# DOS - наподобие DOS/Win (0D 0A), Unix - наподобие Unix (0A), -# Mac - наподобие Mac (0D) +; Символы конца строки, которые будет вставлять +; редактор kfar при добавлении новой строки: +; DOS - наподобие DOS/Win (0D 0A), Unix - наподобие Unix (0A), +; Mac - наподобие Mac (0D) EOLStyle=Unix [FolderShortcuts] -# Можно определить до десяти ссылок на папки Shortcut0...Shortcut9, -# на такие папки можно сделать быстрый переход по RCtrl+<цифра> +; Можно определить до десяти ссылок на папки Shortcut0...Shortcut9, +; на такие папки можно сделать быстрый переход по RCtrl+<цифра> Shortcut0=/rd/1 [Confirmations] Delete=1 DeleteIncomplete=0 -# Слева от знака равенства можно ставить любое осмысленное или бессмысленное -# имя; справа - путь к плагину. -# Если путь не абсолютен, то он отсчитывается от папки с бинарником kfar. +; Слева от знака равенства можно ставить любое осмысленное или бессмысленное +; имя; справа - путь к плагину. +; Если путь не абсолютен, то он отсчитывается от папки с бинарником kfar. [Plugins] ArchiveReader=kfar_arc.obj diff --git a/programs/fs/kfar/trunk/kfar_arc/kfar_arc.asm b/programs/fs/kfar/trunk/kfar_arc/kfar_arc.asm index c49e302f9c..aa8a7dd74d 100644 --- a/programs/fs/kfar/trunk/kfar_arc/kfar_arc.asm +++ b/programs/fs/kfar/trunk/kfar_arc/kfar_arc.asm @@ -2,14 +2,14 @@ ; project name: KFar_Arc - plugin for KFar, which supports various archives ; target platform: KolibriOS ; compiler: FASM 1.67.14 -; version: 0.16 -; last update: 2009-07-03 (Jul 03, 2009) +; version: 0.17 +; last update: 2009-09-03 (Sep 03, 2009) ; minimal KFar version: 0.43 ; minimal kernel: no limit ; ; author: Diamond ; email: diamondz@land.ru -; web: http://diamondz.land.ru +; web: http://diamond.kolibrios.org ; ; standard start of Kolibri dynamic library @@ -871,6 +871,13 @@ endg ; !!! in this case .fullname is not null-terminated !!! mov ecx, [edx+file_common.fullname] mov [eax+file_common.fullname], ecx + push edi eax + lea edi, [eax+file_common.parent] + xor eax, eax + push 7 + pop ecx + rep stosd + pop eax edi pop ecx pop esi ; ecx = parent item, eax = current item @@ -878,7 +885,6 @@ endg inc dword [ecx+16] ; new item in parent folder push ecx ; add new item to end of L2-list - and [eax+file_common.next], 0 cmp [eax+file_common.bIsDirectory], 0 jnz @f add ecx, 8 @@ -901,7 +907,6 @@ endg @@: pop ecx ; set parent link - and [eax+file_common.parent], 0 cmp ecx, edi jz @f sub ecx, file_common.subfolders