forked from KolibriOS/kolibrios
'box_lib.obj': update function open file in element 't_edit'
'voxel_editor': small update git-svn-id: svn://kolibrios.org@2808 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
; ¬ ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj
|
||||
; í«¥¬¥â TextEditor ¤«ï Kolibri OS
|
||||
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 22.08.2011 IgorA
|
||||
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 19.06.2012 IgorA
|
||||
; ª®¤ ¯à¨¬¥¥ GPL2 «¨æ¥§¨ï
|
||||
|
||||
;input:
|
||||
@@ -2339,15 +2339,60 @@ endp
|
||||
; ebx = ª®««¨ç¥á⢮ ¯à®ç¨â ëå ¡ ©â
|
||||
align 4
|
||||
proc ted_open_file, edit:dword, file:dword, f_name:dword ;äãªæ¨ï ®âªàëâ¨ï ä ©«
|
||||
push edi
|
||||
push ecx edx edi
|
||||
mov edi,dword[edit]
|
||||
|
||||
; *** ¯à®¢¥à塞 à §¬¥à ¯ ¬ï⨠¨ ¥á«¨ ¥ å¢ â ¥â ⮠㢥«¨ç¨¢ ¥¬ ***
|
||||
;¯à®¡ã¥¬ ¯®«ãç¨âì ¨ä®à¬ æ¨î ® ä ©«¥
|
||||
mov eax,70
|
||||
mov ebx,dword[file]
|
||||
mov dword[ebx], 5
|
||||
mov dword[ebx+4], 0
|
||||
mov dword[ebx+8], 0
|
||||
mov dword[ebx+12], 0
|
||||
m2m dword[ebx+16], ted_tex
|
||||
mov byte[ebx+20], 0
|
||||
push dword[f_name]
|
||||
pop dword[ebx+21]
|
||||
int 0x40
|
||||
cmp eax,0
|
||||
je .end_0
|
||||
mov edx,ted_max_chars
|
||||
cmp eax,2 ;äãªæ¨ï ¥ ¯®¤¤¥à¦¨¢ ¥âáï ¤«ï ¤ ®© ä ©«®¢®© á¨á⥬ë
|
||||
je @f
|
||||
jmp .ret_f
|
||||
.end_0:
|
||||
;¯à®¢¥à塞 å¢ â¨â «¨ ¯ ¬ï⨠¤«ï § £à㧪¨ ä ©«
|
||||
mov ecx,ted_max_chars
|
||||
sub ecx,2 ;ecx = ¬ ªá¨¬ «ì®¥ ç¨á«® ¡ ©â, ¤«ï ª®â®àëå ¡ë« ¢ë¤¥«¥ ¯ ¬ïâì
|
||||
mov edx,ted_tex
|
||||
mov edx,dword[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 eax,70
|
||||
mov ebx,dword[file]
|
||||
mov dword[ebx], 0
|
||||
mov dword[ebx+4], 0
|
||||
mov dword[ebx+8], 0
|
||||
m2m dword[ebx+12], ted_max_chars ;ç¨á«® ¡ ©â, ª®â®àë¥ ¬®£ãâ ¡ëâì áç¨â ë á ä ©«
|
||||
m2m dword[ebx+12], edx ;ç¨á«® ¡ ©â, ª®â®àë¥ ¬®£ãâ ¡ëâì áç¨â ë á ä ©« (¥ ¡®«ìè¥ ç¥¬ ted_max_chars)
|
||||
m2m dword[ebx+16], ted_tex
|
||||
mov byte[ebx+20], 0
|
||||
push dword[f_name]
|
||||
@@ -2365,7 +2410,7 @@ proc ted_open_file, edit:dword, file:dword, f_name:dword ;
|
||||
;if open file
|
||||
call ted_on_open_file
|
||||
.ret_f:
|
||||
pop edi
|
||||
pop edi edx ecx
|
||||
ret
|
||||
endp
|
||||
|
||||
|
||||
Reference in New Issue
Block a user