Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 9484 → Rev 9485

/programs/develop/libraries/box_lib/trunk/t_edit.asm
1263,20 → 1263,12
cmp ted_increase_size,0
je @f
push eax ebx ecx
mov ecx,ted_increase_size
add ecx,ted_max_chars
mov ted_max_chars,ecx
imul ecx,sizeof.symbol
invoke mem.realloc, ted_tex,ecx
mov ebx,ted_tex
mov ted_tex,eax
mov ted_tex_1,eax
add ted_tex_1,sizeof.symbol
mov ecx,ted_max_chars
call ted_mem_resize.no_2
sub edx,ebx
add edx,eax
add edx,ted_tex
mov ted_ptr_free_symb,edx
add eax,ecx
mov ted_tex_end,eax
pop ecx ebx eax
@@:
ret
2546,11 → 2538,39
ret
endp
 
;description:
; ¨§¬¥­ï¥¬ à §¬¥à ¯ ¬ï⨠¤«ï ⥪áâ  (ãáâ ­®¢ª  ted_ptr_free_symb ­  1 ᨬ¢®«)
;input:
; ecx - ç¨á«® ᨬ¢®«®¢ ¢ ä ©«¥
; edi - pointer to tedit struct
;output:
; eax, ecx - à §àãè îâáï
align 16
ted_mem_resize:
add ecx,2 ;¯ ¬ïâì ¤«ï ⥪áâ  + á«ã¦¥¡­ë¥ ­ ç «ì­ë© ¨ ª®­¥ç­ë© ᨬ¢®«ë
.no_2:
add ecx,ted_increase_size ;¯ ¬ïâì ¤«ï । ªâ¨à®¢ ­¨ï ä ©« 
mov ted_max_chars,ecx
imul ecx,sizeof.symbol
invoke mem.realloc, ted_tex,ecx
mov ted_tex,eax
mov ted_tex_1,eax
add ted_tex_1,sizeof.symbol
add eax,ecx
mov ted_tex_end,eax
mov ecx,ted_tex_1
add ecx,sizeof.symbol
mov ted_ptr_free_symb,ecx
ret
 
;output:
; eax = ª®¤ ®è¨¡ª¨
; ebx = ª®««¨ç¥á⢮ ¯à®ç¨â ­­ëå ¡ ©â
align 16
proc ted_open_file uses ecx edx edi, edit:dword, file:dword, f_name:dword ;äã­ªæ¨ï ®âªàëâ¨ï ä ©« 
proc ted_open_file uses ecx edx edi esi, edit:dword, file:dword, f_name:dword ;äã­ªæ¨ï ®âªàëâ¨ï ä ©« 
locals
unpac_mem dd ?
endl
mov edi,[edit]
 
; *** ¯à®¢¥à塞 à §¬¥à ¯ ¬ï⨠¨ ¥á«¨ ­¥ 墠⠥â ⮠㢥«¨ç¨¢ ¥¬ ***
2580,21 → 2600,8
mov edx,[edx+32] ;+32 = +0x20: qword: à §¬¥à ä ©«  ¢ ¡ ©â å
cmp edx,ecx
jl @f
;㢥«¨ç¨¢ ¥¬ ¯ ¬ïâì ¥á«¨ ­¥ 墠⨫®
mov ecx,edx ;¯ ¬ïâì ­¥®¡å®¤¨¬ ï ¤«ï ®âªàëâ¨ï ä ©« 
add ecx,2 ;¯ ¬ïâì ¤«ï á«ã¦¥¡­ëå ­ ç «ì­®£® ¨ ª®­¥ç­®£® ᨬ¢®«®¢
add ecx,ted_increase_size ;¯ ¬ïâì ¤«ï । ªâ¨à®¢ ­¨ï ä ©« 
mov ted_max_chars,ecx
imul ecx,sizeof.symbol
invoke mem.realloc, ted_tex,ecx
mov ted_tex,eax
mov ted_tex_1,eax
add ted_tex_1,sizeof.symbol
add eax,ecx
mov ted_tex_end,eax
mov ecx,ted_tex_1
add ecx,sizeof.symbol
mov ted_ptr_free_symb,ecx
mov ecx,edx
call ted_mem_resize
@@:
 
; *** ¯à®¡ã¥¬ ®âªàëâì ä ©« ***
2617,6 → 2624,32
cmp ebx,-1
je .ret_f
;if open file
push eax
mov eax,ted_tex
cmp dword[eax],'KPCK'
jne .end_unpack
;¢ë¤¥«¥­¨¥ ¯ ¬ï⨠¤«ï à á¯ ª®¢ª¨ ä ©« 
invoke mem.alloc,[eax+4]
mov [unpac_mem],eax
stdcall unpack,ted_tex,[unpac_mem]
mov ecx,ted_max_chars
sub ecx,2 ;ecx = ¬ ªá¨¬ «ì­®¥ ç¨á«® ¡ ©â, ¤«ï ª®â®àëå ¡ë«  ¢ë¤¥«¥­  ¯ ¬ïâì
mov eax,ted_tex
mov ebx,[eax+4]
cmp ebx,ecx
jl @f ;¥á«¨ ¤«ï à á¯ ª®¢ ­®£® ä ©«  ­¥ 墠⠥⠢뤥«¥­­®© ¯ ¬ïâ¨
mov ecx,ebx
call ted_mem_resize
@@:
mov edi,ted_tex
mov esi,[unpac_mem]
mov ecx,ebx
cld
rep movsb
mov edi,[edit]
invoke mem.free,[unpac_mem]
.end_unpack:
pop eax
call ted_on_open_file
.ret_f:
ret