element 't_edit' fix function 'ted_on_open_file'

git-svn-id: svn://kolibrios.org@2348 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA
2012-02-13 11:46:40 +00:00
parent 5ed633942d
commit 4a23260a83

View File

@@ -817,15 +817,16 @@ proc ted_on_open_file
add eax,2
mov dword [eax],0 ; first sumbol 'perv=0'
mov edx,ted_tex
mov edx,ted_tex ; <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA9> <20><>砫쭮<E7A0AB><ECADAE> <20><><EFBFBD><E3A6A5><EFBFBD><EFBFBD><EFBFBD><><E1A8AC><EFBFBD><EFBFBD>
; begining sumbol 'perv=0' 'next=2'
mov dword [edx+2],0
mov dword [edx+6],2
add edx,sizeof.symbol
add edx,sizeof.symbol ; <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA9> <20><><EFBFBD><EFBFBD><EFBFBD><E7ADAE> <20><><EFBFBD><E3A6A5><EFBFBD><EFBFBD><EFBFBD><><E1A8AC><EFBFBD><EFBFBD>
mov dword [edx+6],0 ; last sumbol 'next=0'
mov dword [edx+2],ebx ; last sumbol 'perv=last'
inc dword [edx+2]
mov dword [edx+10],0 ; <20><EFBFBD><E2A0A2> <20><EFBFBD><><E1AEA7><EFBFBD><EFBFBD><EFBFBD><><E0A0A2><EFBFBD> 0, <20><><EFBFBD> <20><><><E1A8AC><EFBFBD> <20><EFBFBD><E0A0A2><20><><EFBFBD><E0A0A1><EFBFBD><EBA2A0><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⨨ 䠩<><E4A0A9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 28 <20><><EFBFBD><EFBFBD>
mov edx,ebx
inc edx ;2 = rezerv sumbols
@@ -1897,62 +1898,65 @@ ted_get_num_lines:
; <20><EFBFBD><E2ACA5><EFBFBD><EFBFBD> <20><EFBFBD><E2ACA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E3ACA5><EFBFBD>
align 4
proc ted_set_undo
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cmp ted_tim_undo,1
jl .no_work
mov ted_drag_k,0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cmp ted_tim_undo,1
jl .no_work
push eax ebx edx
mov edx,ted_tex
call ted_get_text_next_pos ;long i=tex[0].next;
mov eax,ted_tim_undo
sub ted_tim_ch,eax ;ted_tim_ch-=ted_tim_undo;
mov eax,ted_tim_ch
cmp ted_tim_ls,eax ;if(ted_tim_ls>ted_tim_ch)
jle @f
mov ted_tim_ls,0
@@:
cmp edx,ted_tex
je @f
push eax ebx edx
mov edx,ted_tex
call ted_get_text_next_pos ;long i=tex[0].next;
mov eax,ted_tim_undo
sub ted_tim_ch,eax ;ted_tim_ch-=ted_tim_undo;
mov eax,ted_tim_ch
cmp ted_tim_ls,eax ;if(ted_tim_ls>ted_tim_ch)
jle @f
mov ted_tim_ls,0
@@:
cmp edx,ted_tex_1
jle @f
;if(tex[i].tc>ted_tim_ch){ // <20>᫨ ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD><><E1A8AC><EFBFBD><EFBFBD> <20><20><EFBFBD><E2ACA5><EFBFBD><EFBFBD>
cmp [edx+10],eax
jle .no_u1
mov dword [edx+10],0
mov dword [edx+14],0
;if(tex[i].tc>ted_tim_ch){ // <20>᫨ ᮧ<><E1AEA7><EFBFBD><EFBFBD><EFBFBD><><E1A8AC><EFBFBD><EFBFBD> <20><20><EFBFBD><E2ACA5><EFBFBD><EFBFBD>
cmp [edx+10],eax
jle .no_u1
mov dword [edx+10],0
mov dword [edx+14],0
mov ebx,[edx+2]
imul ebx,sizeof.symbol
add ebx,ted_tex;.next
m2m dword [ebx+6],dword [edx+6] ;tex[tex[i].perv].next=tex[i].next;
mov ebx,[edx+2]
imul ebx,sizeof.symbol
add ebx,ted_tex ;ebx=tex[i].perv
m2m dword [ebx+6],dword [edx+6] ;tex[tex[i].perv].next=tex[i].next;
mov ebx,[edx+6]
imul ebx,sizeof.symbol
add ebx,ted_tex;.perv
m2m dword [ebx+2],dword [edx+2] ;tex[tex[i].next].perv=tex[i].perv;
mov ebx,[edx+6]
imul ebx,sizeof.symbol
add ebx,ted_tex ;ebx=tex[i].next
m2m dword [ebx+2],dword [edx+2] ;tex[tex[i].next].perv=tex[i].perv;
cmp ted_ptr_free_symb,edx
jle .no_u1
mov ted_ptr_free_symb,edx ;<3B><><EFBFBD>塞 㪠<><E3AAA0><EFBFBD> <20><><><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A8AC><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.no_u1:
cmp ted_ptr_free_symb,edx
jle .no_cor_free
mov ted_ptr_free_symb,edx ;<3B><><EFBFBD>塞 㪠<><E3AAA0><EFBFBD> <20><><><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A8AC><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.no_cor_free:
mov edx,ebx ;<3B><><EFBFBD><E2A8AC><EFBFBD><EFBFBD><20><><><E1AAAE><EFBFBD><EFBFBD><EFBFBD> (edx <20><><20><EFBFBD><EBA7AE> ted_get_text_next_pos <20><EFBFBD><><E0A0A2> ebx)
jmp @b
.no_u1:
;else if(tex[i].td>ted_tim_ch) tex[i].td=0; // <20>᫨ 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><><E1A8AC><EFBFBD><EFBFBD> <20><20><EFBFBD><E2ACA5><EFBFBD><EFBFBD>
cmp [edx+14],eax
jle .no_u2
mov dword [edx+14],0
.no_u2:
;else if(tex[i].td>ted_tim_ch) tex[i].td=0; // <20>᫨ 㤠<><E3A4A0><EFBFBD><EFBFBD><EFBFBD><><E1A8AC><EFBFBD><EFBFBD> <20><20><EFBFBD><E2ACA5><EFBFBD><EFBFBD>
cmp [edx+14],eax
jle .no_u2
mov dword [edx+14],0
.no_u2:
call ted_get_text_next_pos
jmp @b
@@:
mov ted_tim_undo,0
mov eax,ted_tim_co
cmp ted_tim_ch,eax
jge @f
mov ted_tim_co,0
@@:
pop edx ebx eax
.no_work:
ret
call ted_get_text_next_pos
jmp @b
@@:
mov ted_tim_undo,0
mov eax,ted_tim_co
cmp ted_tim_ch,eax
jge @f
mov ted_tim_co,0
@@:
pop edx ebx eax
.no_work:
ret
endp
;input: