1,6 → 1,6 |
; ¬ ªà®á ¤«ï á¨á⥬®© ¡¨¡«¨®â¥ª¨ box_lib.obj |
; í«¥¬¥â TextEditor ¤«ï Kolibri OS |
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 22.08.2011 IgorA |
; ä ©« ¯®á«¥¤¨© à § ¨§¬¥ï«áï 19.06.2012 IgorA |
; ª®¤ ¯à¨¬¥¥ GPL2 «¨æ¥§¨ï |
|
;input: |
2339,15 → 2339,60 |
; 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 |
;if open file |
call ted_on_open_file |
.ret_f: |
pop edi |
pop edi edx ecx |
ret |
endp |
|