forked from KolibriOS/kolibrios
KFar 0.65: fixed error handler
KFar_Arc 0.16: fixed crash when handling some extremely big 7z+lzma archives git-svn-id: svn://kolibrios.org@1122 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
3d9673dba4
commit
44e90288dd
@ -7,8 +7,8 @@ memsize dd mem
|
|||||||
dd stacktop
|
dd stacktop
|
||||||
dd 0, app_path
|
dd 0, app_path
|
||||||
|
|
||||||
version equ '0.64'
|
version equ '0.65'
|
||||||
version_dword equ 0*10000h + 64
|
version_dword equ 0*10000h + 65
|
||||||
|
|
||||||
min_width = 54
|
min_width = 54
|
||||||
max_width = 255
|
max_width = 255
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
; 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.15
|
; version: 0.16
|
||||||
; last update: 2009-02-01 (Feb 01, 2009)
|
; last update: 2009-07-03 (Jul 03, 2009)
|
||||||
; minimal KFar version: 0.43
|
; minimal KFar version: 0.43
|
||||||
; minimal kernel: no limit
|
; minimal kernel: no limit
|
||||||
;
|
;
|
||||||
|
@ -134,6 +134,7 @@ end virtual
|
|||||||
jb .literal
|
jb .literal
|
||||||
mov edx, edi
|
mov edx, edi
|
||||||
sub edx, [ebp+.rep0]
|
sub edx, [ebp+.rep0]
|
||||||
|
jc .before_buf
|
||||||
cmp edx, [ebp+streamInfo.bufPtr]
|
cmp edx, [ebp+streamInfo.bufPtr]
|
||||||
jb .before_buf
|
jb .before_buf
|
||||||
@@:
|
@@:
|
||||||
@ -177,12 +178,14 @@ end virtual
|
|||||||
lea ebx, [9 + ebx + ebx]
|
lea ebx, [9 + ebx + ebx]
|
||||||
mov edx, edi
|
mov edx, edi
|
||||||
sub edx, [ebp+.rep0]
|
sub edx, [ebp+.rep0]
|
||||||
|
jc @f
|
||||||
cmp edx, [ebp+streamInfo.bufPtr]
|
cmp edx, [ebp+streamInfo.bufPtr]
|
||||||
jae @f
|
jae .copy_byte
|
||||||
|
@@:
|
||||||
add edx, [ebp+streamInfo.bufSize]
|
add edx, [ebp+streamInfo.bufSize]
|
||||||
cmp edx, [ebp+streamInfo.bufPtr]
|
cmp edx, [ebp+streamInfo.bufPtr]
|
||||||
jb return.err
|
jb return.err
|
||||||
@@:
|
.copy_byte:
|
||||||
mov al, [edx]
|
mov al, [edx]
|
||||||
stosb
|
stosb
|
||||||
mov [ebp+.previousByte], al
|
mov [ebp+.previousByte], al
|
||||||
@ -277,6 +280,7 @@ end virtual
|
|||||||
ja return.err
|
ja return.err
|
||||||
mov esi, edi
|
mov esi, edi
|
||||||
sub esi, eax
|
sub esi, eax
|
||||||
|
jc .repmovsb0a
|
||||||
mov eax, [ebp+streamInfo.bufPtr]
|
mov eax, [ebp+streamInfo.bufPtr]
|
||||||
sub eax, esi
|
sub eax, esi
|
||||||
ja .repmovsb0
|
ja .repmovsb0
|
||||||
@ -299,6 +303,9 @@ end virtual
|
|||||||
mov [ebp+.continue], .restart_repmovsb
|
mov [ebp+.continue], .restart_repmovsb
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
.repmovsb0a:
|
||||||
|
mov eax, [ebp+streamInfo.bufPtr]
|
||||||
|
sub eax, esi
|
||||||
.repmovsb0:
|
.repmovsb0:
|
||||||
mov edx, [ebp+.dictSize]
|
mov edx, [ebp+.dictSize]
|
||||||
; cmp edx, [ebp+streamInfo.bufSize]
|
; cmp edx, [ebp+streamInfo.bufSize]
|
||||||
|
@ -168,6 +168,7 @@ get_error_msg:
|
|||||||
pop eax
|
pop eax
|
||||||
dec edi
|
dec edi
|
||||||
push edx ecx
|
push edx ecx
|
||||||
|
push -'0'
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jns @f
|
jns @f
|
||||||
mov byte [edi], '-'
|
mov byte [edi], '-'
|
||||||
@ -177,13 +178,15 @@ get_error_msg:
|
|||||||
xor edx, edx
|
xor edx, edx
|
||||||
mov ecx, 10
|
mov ecx, 10
|
||||||
div ecx
|
div ecx
|
||||||
add edx, '0'
|
push edx
|
||||||
mov byte [edi], dl
|
|
||||||
inc edi
|
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jnz @b
|
jnz @b
|
||||||
pop ecx edx
|
@@:
|
||||||
|
pop eax
|
||||||
|
add al, '0'
|
||||||
stosb
|
stosb
|
||||||
|
jnz @b
|
||||||
|
pop ecx edx
|
||||||
jmp .ret
|
jmp .ret
|
||||||
|
|
||||||
libini_alloc:
|
libini_alloc:
|
||||||
|
@ -100,9 +100,9 @@ view_file:
|
|||||||
mov dword [ebp+viewer_data.col+4], eax
|
mov dword [ebp+viewer_data.col+4], eax
|
||||||
call viewer_clear_selection
|
call viewer_clear_selection
|
||||||
pop eax
|
pop eax
|
||||||
push eax
|
|
||||||
mov ebx, attrinfo
|
mov ebx, attrinfo
|
||||||
mov [ebx+21], eax
|
mov [ebx+21], eax
|
||||||
|
mov [readinfo.name], eax
|
||||||
.attr_retry:
|
.attr_retry:
|
||||||
mov edx, [ebp+viewer_data.hPlugin]
|
mov edx, [ebp+viewer_data.hPlugin]
|
||||||
test edx, edx
|
test edx, edx
|
||||||
@ -155,7 +155,6 @@ view_file:
|
|||||||
lea eax, [ebp+viewer_data.buf]
|
lea eax, [ebp+viewer_data.buf]
|
||||||
mov [readinfo.data], eax
|
mov [readinfo.data], eax
|
||||||
mov [ebp+viewer_data.buf_pos], eax
|
mov [ebp+viewer_data.buf_pos], eax
|
||||||
pop dword [readinfo.name]
|
|
||||||
mov eax, [ebp+viewer_data.hPlugin]
|
mov eax, [ebp+viewer_data.hPlugin]
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jz .retry
|
jz .retry
|
||||||
|
Loading…
Reference in New Issue
Block a user