KFar_Arc 0.17: fixed incorrect handling of some archives

git-svn-id: svn://kolibrios.org@1148 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond)
2009-09-03 18:46:38 +00:00
parent 65ba162394
commit cadcbb20ef
2 changed files with 30 additions and 25 deletions

View File

@@ -5,11 +5,12 @@ ini=/sys/TinyPad
txt=/sys/TinyPad txt=/sys/TinyPad
jpg=/sys/media/kiv jpg=/sys/media/kiv
jpeg=/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 wav=/sys/media/AC97SND
mp3=/sys/media/AC97SND mp3=/sys/media/AC97SND
mid=/sys/media/MIDAMP mid=/sys/media/MIDAMP
bmp=/sys/media/kiv; BmpMenu1,MenuAnimage bmp=/sys/media/kiv; MenuKiv,MenuAnimage
png=/sys/media/kiv png=/sys/media/kiv
rtf=/sys/RtfRead rtf=/sys/RtfRead
3ds=/sys/3d/view3ds 3ds=/sys/3d/view3ds
@@ -26,42 +27,41 @@ htm=/sys/HTMLv
html=/sys/HTMLv html=/sys/HTMLv
[Menu] [Menu]
AsmMenu1=&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,/sys/TinyPad AsmMenu1=&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,/sys/TinyPad
AsmMenu2=&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD>,/sys/develop/fasm AsmMenu2=&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD>,/sys/develop/fasm
GifMenu1=&<26><><EFBFBD><EFBFBD><E1ACAE>,/sys/media/GIFVIEW MenuKiv=&<26><><EFBFBD><EFBFBD><E1ACAE>,/sys/media/kiv
BmpMenu1=&<26><><EFBFBD><EFBFBD><E1ACAE>,/sys/media/kiv
MenuAnimage=&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,/sys/media/animage MenuAnimage=&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,/sys/media/animage
[Panels] [Panels]
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⮡ࠦ<E2AEA1><E0A0A6><EFBFBD><EFBFBD><><E4A0A9><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⮡ࠦ<E2AEA1><E0A0A6><EFBFBD><EFBFBD><><E4A0A9><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
# <20><><EFBFBD><EFBFBD><E7A5AD> ᮮ⢥<E1AEAE><E2A2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><20><><EFBFBD> LCtrl+<1-4> ; <20><><EFBFBD><EFBFBD><E7A5AD> ᮮ⢥<E1AEAE><E2A2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><20><><EFBFBD> LCtrl+<1-4>
LeftViewMode=2 LeftViewMode=2
RightViewMode=2 RightViewMode=2
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><><E4A0A9><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><><E4A0A9><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
# <20><><EFBFBD><EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 2 * N + M, <20><><EFBFBD> ; <20><><EFBFBD><EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 2 * N + M, <20><><EFBFBD>
# M = 0 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2>, M = 1 - <20><><EFBFBD><EFBFBD><EFBFBD> ; M = 0 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2>, M = 1 - <20><><EFBFBD><EFBFBD><EFBFBD>
# N = 0-6 ᮮ⢥<E1AEAE><E2A2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E0A5A6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD> Ctrl+F<3-9> ; N = 0-6 ᮮ⢥<E1AEAE><E2A2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E0A5A6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><><EFBFBD> Ctrl+F<3-9>
LeftSortMode=0 LeftSortMode=0
RightSortMode=0 RightSortMode=0
[Editor] [Editor]
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><E2A0A2><EFBFBD><EFBFBD> ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><E2A0A2><EFBFBD><EFBFBD>
#<><E0A5A4><EFBFBD><EFBFBD><EFBFBD> kfar <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>: ;<><E0A5A4><EFBFBD><EFBFBD><EFBFBD> kfar <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>:
# DOS - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DOS/Win (0D 0A), Unix - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Unix (0A), ; DOS - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DOS/Win (0D 0A), Unix - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Unix (0A),
# Mac - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Mac (0D) ; Mac - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Mac (0D)
EOLStyle=Unix EOLStyle=Unix
[FolderShortcuts] [FolderShortcuts]
# <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> Shortcut0...Shortcut9, ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> Shortcut0...Shortcut9,
# <20><><><E2A0AA> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><><E1A4A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><> RCtrl+<<3C><><EFBFBD><EFBFBD><EFBFBD>> ; <20><><><E2A0AA> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><><E1A4A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><> RCtrl+<<3C><><EFBFBD><EFBFBD><EFBFBD>>
Shortcut0=/rd/1 Shortcut0=/rd/1
[Confirmations] [Confirmations]
Delete=1 Delete=1
DeleteIncomplete=0 DeleteIncomplete=0
# <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><><E0A0A2><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2A0A2><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1ABA5><EFBFBD><EFBFBD> ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><><E0A0A2><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2A0A2><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1ABA5><EFBFBD><EFBFBD>
# <20><><EFBFBD>; <20><><EFBFBD> - <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. ; <20><><EFBFBD>; <20><><EFBFBD> - <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
# <20><20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>⥭, <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><E0ADA8><EFBFBD> kfar. ; <20><20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>⥭, <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><E0ADA8><EFBFBD> kfar.
[Plugins] [Plugins]
ArchiveReader=kfar_arc.obj ArchiveReader=kfar_arc.obj

View File

@@ -2,14 +2,14 @@
; project name: KFar_Arc - plugin for KFar, which supports various archives ; project name: KFar_Arc - plugin for KFar, which supports various archives
; target platform: KolibriOS ; target platform: KolibriOS
; compiler: FASM 1.67.14 ; compiler: FASM 1.67.14
; version: 0.16 ; version: 0.17
; last update: 2009-07-03 (Jul 03, 2009) ; last update: 2009-09-03 (Sep 03, 2009)
; minimal KFar version: 0.43 ; minimal KFar version: 0.43
; minimal kernel: no limit ; minimal kernel: no limit
; ;
; author: Diamond ; author: Diamond
; email: diamondz@land.ru ; email: diamondz@land.ru
; web: http://diamondz.land.ru ; web: http://diamond.kolibrios.org
; ;
; standard start of Kolibri dynamic library ; standard start of Kolibri dynamic library
@@ -871,6 +871,13 @@ endg
; !!! in this case .fullname is not null-terminated !!! ; !!! in this case .fullname is not null-terminated !!!
mov ecx, [edx+file_common.fullname] mov ecx, [edx+file_common.fullname]
mov [eax+file_common.fullname], ecx 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 ecx
pop esi pop esi
; ecx = parent item, eax = current item ; ecx = parent item, eax = current item
@@ -878,7 +885,6 @@ endg
inc dword [ecx+16] ; new item in parent folder inc dword [ecx+16] ; new item in parent folder
push ecx push ecx
; add new item to end of L2-list ; add new item to end of L2-list
and [eax+file_common.next], 0
cmp [eax+file_common.bIsDirectory], 0 cmp [eax+file_common.bIsDirectory], 0
jnz @f jnz @f
add ecx, 8 add ecx, 8
@@ -901,7 +907,6 @@ endg
@@: @@:
pop ecx pop ecx
; set parent link ; set parent link
and [eax+file_common.parent], 0
cmp ecx, edi cmp ecx, edi
jz @f jz @f
sub ecx, file_common.subfolders sub ecx, file_common.subfolders