forked from KolibriOS/kolibrios
Fixed major issue in libini (set_* affected) connected with wrong parameters to file.seek
Commented out wildcards test from test001 (function is no longer exported thus can't be tested) git-svn-id: svn://kolibrios.org@919 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
5847ff53fc
commit
1af612e4d2
@ -137,6 +137,7 @@ START:
|
|||||||
or eax,eax
|
or eax,eax
|
||||||
jnz exit
|
jnz exit
|
||||||
|
|
||||||
|
@^ ; commenting out, file.aux.match_wildcard is no longer exported
|
||||||
mov esi,_str1 + 4
|
mov esi,_str1 + 4
|
||||||
mov edi,_str2 + 4
|
mov edi,_str2 + 4
|
||||||
mov ecx,_str3
|
mov ecx,_str3
|
||||||
@ -152,6 +153,7 @@ START:
|
|||||||
add ecx,4
|
add ecx,4
|
||||||
cmp dword[esi-4],0
|
cmp dword[esi-4],0
|
||||||
jnz @b
|
jnz @b
|
||||||
|
^@
|
||||||
|
|
||||||
invoke ini.set_int,s_ini,s_sec,s_key1,100
|
invoke ini.set_int,s_ini,s_sec,s_key1,100
|
||||||
invoke ini.set_int,s_ini,s_sec,s_key2,101
|
invoke ini.set_int,s_ini,s_sec,s_key2,101
|
||||||
@ -382,7 +384,7 @@ import libini, \
|
|||||||
ini.enum_keys,'ini.enum_keys'
|
ini.enum_keys,'ini.enum_keys'
|
||||||
|
|
||||||
import libio, \
|
import libio, \
|
||||||
file.aux.match_wildcard,'file.aux.match_wildcard',\
|
\; file.aux.match_wildcard,'file.aux.match_wildcard',\
|
||||||
file.find_first,'file.find_first',\
|
file.find_first,'file.find_first',\
|
||||||
file.find_next,'file.find_next',\
|
file.find_next,'file.find_next',\
|
||||||
file.find_close,'file.find_close',\
|
file.find_close,'file.find_close',\
|
||||||
|
@ -102,7 +102,7 @@ endl
|
|||||||
lea ebx, [f]
|
lea ebx, [f]
|
||||||
mov [f_addr], ebx
|
mov [f_addr], ebx
|
||||||
|
|
||||||
invoke file.seek, [f.fh], SEEK_SET, 0
|
invoke file.seek, [f.fh], 0, SEEK_SET
|
||||||
stdcall libini._.preload_block, [f_addr]
|
stdcall libini._.preload_block, [f_addr]
|
||||||
|
|
||||||
.next_section:
|
.next_section:
|
||||||
@ -382,7 +382,6 @@ endl
|
|||||||
jnz .create_key
|
jnz .create_key
|
||||||
|
|
||||||
.modify_key:
|
.modify_key:
|
||||||
|
|
||||||
stdcall libini._.get_value_length, [f_addr]
|
stdcall libini._.get_value_length, [f_addr]
|
||||||
sub eax, [_buf_len]
|
sub eax, [_buf_len]
|
||||||
stdcall libini._.shift_content, [f_addr], eax
|
stdcall libini._.shift_content, [f_addr], eax
|
||||||
@ -391,7 +390,7 @@ endl
|
|||||||
invoke file.tell, [f.fh]
|
invoke file.tell, [f.fh]
|
||||||
sub eax, [f.cnt]
|
sub eax, [f.cnt]
|
||||||
; dec eax
|
; dec eax
|
||||||
invoke file.seek, [f.fh], SEEK_SET, eax
|
invoke file.seek, [f.fh], eax, SEEK_SET
|
||||||
invoke file.write, [f.fh], [_buffer], [_buf_len]
|
invoke file.write, [f.fh], [_buffer], [_buf_len]
|
||||||
|
|
||||||
pop edi esi ebx
|
pop edi esi ebx
|
||||||
|
@ -176,7 +176,7 @@ proc libini._.unload_block _f ;/////////////////////////////////////////////////
|
|||||||
mov ebx, [_f]
|
mov ebx, [_f]
|
||||||
mov eax, [ebx + IniFile.pos]
|
mov eax, [ebx + IniFile.pos]
|
||||||
add eax, -ini.BLOCK_SIZE
|
add eax, -ini.BLOCK_SIZE
|
||||||
invoke file.seek, [ebx + IniFile.fh], SEEK_SET, eax
|
invoke file.seek, [ebx + IniFile.fh], eax, SEEK_SET
|
||||||
stdcall libini._.preload_block, ebx
|
stdcall libini._.preload_block, ebx
|
||||||
add esi, eax ; ini.BLOCK_SIZE
|
add esi, eax ; ini.BLOCK_SIZE
|
||||||
mov [ebx + IniFile.cnt], 0
|
mov [ebx + IniFile.cnt], 0
|
||||||
@ -228,7 +228,7 @@ proc libini._.reload_block _f ;/////////////////////////////////////////////////
|
|||||||
mov ebx, [_f]
|
mov ebx, [_f]
|
||||||
push [ebx + IniFile.bsize]
|
push [ebx + IniFile.bsize]
|
||||||
push esi [ebx + IniFile.cnt]
|
push esi [ebx + IniFile.cnt]
|
||||||
invoke file.seek, [ebx + IniFile.fh], SEEK_SET, [ebx + IniFile.pos]
|
invoke file.seek, [ebx + IniFile.fh], [ebx + IniFile.pos], SEEK_SET
|
||||||
stdcall libini._.preload_block, ebx
|
stdcall libini._.preload_block, ebx
|
||||||
pop [ebx + IniFile.cnt] esi
|
pop [ebx + IniFile.cnt] esi
|
||||||
pop eax
|
pop eax
|
||||||
@ -276,8 +276,8 @@ endl
|
|||||||
; push eax
|
; push eax
|
||||||
sub eax, ecx
|
sub eax, ecx
|
||||||
; dec eax
|
; dec eax
|
||||||
invoke file.seek, ebx, SEEK_SET, eax
|
invoke file.seek, ebx, eax, SEEK_SET
|
||||||
@@: invoke file.seek, ebx, SEEK_CUR, [_delta]
|
@@: invoke file.seek, ebx, [_delta], SEEK_CUR
|
||||||
invoke file.eof?, ebx
|
invoke file.eof?, ebx
|
||||||
or eax, eax
|
or eax, eax
|
||||||
jnz .done
|
jnz .done
|
||||||
@ -285,14 +285,14 @@ endl
|
|||||||
mov ecx, eax
|
mov ecx, eax
|
||||||
mov eax, [_delta]
|
mov eax, [_delta]
|
||||||
neg eax
|
neg eax
|
||||||
sub eax,ecx;ini.BLOCK_SIZE
|
sub eax, ecx;ini.BLOCK_SIZE
|
||||||
invoke file.seek,ebx,SEEK_CUR,eax
|
invoke file.seek, ebx, eax, SEEK_CUR
|
||||||
invoke file.write,ebx,[buf],ecx;ini.BLOCK_SIZE
|
invoke file.write, ebx, [buf], ecx;ini.BLOCK_SIZE
|
||||||
jmp @b
|
jmp @b
|
||||||
.done:
|
.done:
|
||||||
mov eax, [_delta]
|
mov eax, [_delta]
|
||||||
neg eax
|
neg eax
|
||||||
invoke file.seek, ebx, SEEK_CUR, eax
|
invoke file.seek, ebx, eax, SEEK_CUR
|
||||||
invoke file.seteof, ebx
|
invoke file.seteof, ebx
|
||||||
; pop eax
|
; pop eax
|
||||||
; invoke file.seek, ebx, SEEK_SET;, eax
|
; invoke file.seek, ebx, SEEK_SET;, eax
|
||||||
@ -317,7 +317,7 @@ endl
|
|||||||
sub eax, ecx
|
sub eax, ecx
|
||||||
lea edx, [eax - 1]
|
lea edx, [eax - 1]
|
||||||
push edx
|
push edx
|
||||||
@@: invoke file.seek, ebx, SEEK_SET, edx
|
@@: invoke file.seek, ebx, edx, SEEK_SET
|
||||||
invoke file.eof?, ebx
|
invoke file.eof?, ebx
|
||||||
or eax, eax
|
or eax, eax
|
||||||
jnz @f
|
jnz @f
|
||||||
@ -328,12 +328,12 @@ endl
|
|||||||
add edx, -ini.BLOCK_SIZE
|
add edx, -ini.BLOCK_SIZE
|
||||||
cmp edx, [esp]
|
cmp edx, [esp]
|
||||||
jl @f
|
jl @f
|
||||||
invoke file.seek, ebx, SEEK_SET, edx
|
invoke file.seek, ebx, edx, SEEK_SET
|
||||||
invoke file.read, ebx, [buf], ini.BLOCK_SIZE
|
invoke file.read, ebx, [buf], ini.BLOCK_SIZE
|
||||||
mov ecx, eax
|
mov ecx, eax
|
||||||
mov eax, [_delta]
|
mov eax, [_delta]
|
||||||
sub eax, ecx
|
sub eax, ecx
|
||||||
invoke file.seek, ebx, SEEK_CUR, eax
|
invoke file.seek, ebx, eax, SEEK_CUR
|
||||||
invoke file.write, ebx, [buf], ecx
|
invoke file.write, ebx, [buf], ecx
|
||||||
jmp @b
|
jmp @b
|
||||||
@@:
|
@@:
|
||||||
@ -372,8 +372,8 @@ proc libini._.get_value_length _f ;/////////////////////////////////////////////
|
|||||||
sub eax, edx
|
sub eax, edx
|
||||||
mov [esp + 4 * 3], eax
|
mov [esp + 4 * 3], eax
|
||||||
|
|
||||||
; pop eax
|
pop eax
|
||||||
invoke file.seek, [ebx + IniFile.fh], SEEK_SET;, eax
|
invoke file.seek, [ebx + IniFile.fh], eax, SEEK_SET
|
||||||
stdcall libini._.preload_block, [_f]
|
stdcall libini._.preload_block, [_f]
|
||||||
pop [ebx + IniFile.cnt] esi
|
pop [ebx + IniFile.cnt] esi
|
||||||
pop eax edx ecx ebx
|
pop eax edx ecx ebx
|
||||||
@ -442,7 +442,7 @@ proc libini._.find_section _f, _sec_name ;//////////////////////////////////////
|
|||||||
push ebx edi
|
push ebx edi
|
||||||
|
|
||||||
mov ecx, [_f]
|
mov ecx, [_f]
|
||||||
invoke file.seek, [ecx + IniFile.fh], SEEK_SET, 0
|
invoke file.seek, [ecx + IniFile.fh], 0, SEEK_SET
|
||||||
stdcall libini._.preload_block, [_f]
|
stdcall libini._.preload_block, [_f]
|
||||||
|
|
||||||
.next_section:
|
.next_section:
|
||||||
|
Loading…
Reference in New Issue
Block a user