Rev 826 | Rev 1480 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 826 | Rev 987 | ||
---|---|---|---|
Line 76... | Line 76... | ||
76 | @@: |
76 | @@: |
Line 77... | Line 77... | ||
77 | 77 | ||
78 | mov esi,accel_table_main |
78 | mov esi,accel_table_main |
79 | .acc: cmp eax,[esi] |
79 | .acc: cmp eax,[esi] |
80 | jne @f |
80 | jne @f |
81 | test [options],OPTS_SECURESEL |
81 | test [secure_sel],1 |
82 | jz .lp1 |
82 | jz .lp1 |
83 | m2m [cur_editor.SelStart.X],[cur_editor.Caret.X] |
83 | m2m [cur_editor.SelStart.X],[cur_editor.Caret.X] |
84 | m2m [cur_editor.SelStart.Y],[cur_editor.Caret.Y] |
84 | m2m [cur_editor.SelStart.Y],[cur_editor.Caret.Y] |
85 | .lp1: mov [s_status],0 |
85 | .lp1: mov [s_status],0 |
Line 100... | Line 100... | ||
100 | or al,al |
100 | or al,al |
101 | jz still.skip_write |
101 | jz still.skip_write |
102 | movzx eax,[eax+key1] |
102 | movzx eax,[eax+key1] |
103 | push eax |
103 | push eax |
Line 104... | Line 104... | ||
104 | 104 | ||
105 | test [options],OPTS_SECURESEL |
105 | test [secure_sel],1 |
106 | jz .lp2 |
106 | jz .lp2 |
107 | m2m [cur_editor.SelStart.X],[cur_editor.Caret.X] |
107 | m2m [cur_editor.SelStart.X],[cur_editor.Caret.X] |
108 | m2m [cur_editor.SelStart.Y],[cur_editor.Caret.Y] |
108 | m2m [cur_editor.SelStart.Y],[cur_editor.Caret.Y] |
109 | jmp .put |
109 | jmp .put |
Line 110... | Line 110... | ||
110 | .lp2: call delete_selection |
110 | .lp2: call delete_selection |
111 | 111 | ||
112 | test [options],OPTS_AUTOBRACES |
112 | test [auto_braces],1 |
113 | jz .put |
113 | jz .put |
114 | cmp al,'[' |
114 | cmp al,'[' |
115 | jne @f |
115 | jne @f |
Line 272... | Line 272... | ||
272 | mov ebx,[cur_editor.Caret.Y] |
272 | mov ebx,[cur_editor.Caret.Y] |
273 | mov edx,[cur_editor.Caret.X] |
273 | mov edx,[cur_editor.Caret.X] |
274 | cld |
274 | cld |
275 | mov ecx,ebx |
275 | mov ecx,ebx |
276 | call get_line_offset |
276 | call get_line_offset |
277 | .lp1: cmp dx,[esi] |
277 | .lp1: cmp edx,[esi+EDITOR_LINE_DATA.Size] |
278 | jle @f |
278 | jle @f |
279 | movzx edx,word[esi] |
279 | mov edx,[esi+EDITOR_LINE_DATA.Size] |
280 | @@: dec edx |
280 | @@: dec edx |
281 | jl .nx1 |
281 | jl .nx1 |
282 | add esi,4 |
282 | add esi,sizeof.EDITOR_LINE_DATA |
283 | add esi,edx |
283 | add esi,edx |
284 | mov ecx,edx |
284 | mov ecx,edx |
285 | @@: push ecx |
285 | @@: push ecx |
286 | mov edi,symbols_ex |
286 | mov edi,symbols_ex |
287 | mov ecx,symbols_ex.size+symbols.size |
287 | mov ecx,symbols_ex.size+symbols.size |
Line 295... | Line 295... | ||
295 | jnz @b |
295 | jnz @b |
296 | .nx1: dec ebx |
296 | .nx1: dec ebx |
297 | js .exit.2 |
297 | js .exit.2 |
298 | mov ecx,ebx |
298 | mov ecx,ebx |
299 | call get_line_offset |
299 | call get_line_offset |
300 | movzx edx,word[esi] |
300 | mov edx,[esi+EDITOR_LINE_DATA.Size] |
301 | dec edx |
301 | dec edx |
302 | jmp .lp1 |
302 | jmp .lp1 |
303 | @@: |
303 | @@: |
304 | mov ecx,ebx |
304 | mov ecx,ebx |
305 | call get_line_offset |
305 | call get_line_offset |
306 | .lp2: cmp dx,[esi] |
306 | .lp2: cmp edx,[esi+EDITOR_LINE_DATA.Size] |
307 | jle @f |
307 | jle @f |
308 | movzx edx,word[esi] |
308 | mov edx,[esi+EDITOR_LINE_DATA.Size] |
309 | @@: or edx,edx |
309 | @@: or edx,edx |
310 | jl .nx2 |
310 | jl .nx2 |
311 | add esi,4 |
311 | add esi,sizeof.EDITOR_LINE_DATA |
312 | add esi,edx |
312 | add esi,edx |
313 | @@: mov edi,symbols_ex |
313 | @@: mov edi,symbols_ex |
314 | mov ecx,symbols_ex.size+symbols.size |
314 | mov ecx,symbols_ex.size+symbols.size |
315 | mov al,[esi] |
315 | mov al,[esi] |
316 | dec esi |
316 | dec esi |
Line 321... | Line 321... | ||
321 | jmp @f |
321 | jmp @f |
322 | .nx2: dec ebx |
322 | .nx2: dec ebx |
323 | js .exit.2 |
323 | js .exit.2 |
324 | mov ecx,ebx |
324 | mov ecx,ebx |
325 | call get_line_offset |
325 | call get_line_offset |
326 | movzx edx,word[esi] |
326 | mov edx,[esi+EDITOR_LINE_DATA.Size] |
327 | dec edx |
327 | dec edx |
328 | jmp .lp2 |
328 | jmp .lp2 |
329 | @@: |
329 | @@: |
330 | inc edx |
330 | inc edx |
331 | mov [cur_editor.Caret.Y],ebx |
331 | mov [cur_editor.Caret.Y],ebx |
Line 365... | Line 365... | ||
365 | mov ebx,[cur_editor.Caret.Y] |
365 | mov ebx,[cur_editor.Caret.Y] |
366 | mov edx,[cur_editor.Caret.X] |
366 | mov edx,[cur_editor.Caret.X] |
367 | cld |
367 | cld |
368 | .lp1: mov ecx,ebx |
368 | .lp1: mov ecx,ebx |
369 | call get_line_offset |
369 | call get_line_offset |
370 | movzx ecx,word[esi] |
370 | mov ecx,[esi+EDITOR_LINE_DATA.Size] |
371 | cmp edx,ecx |
371 | cmp edx,ecx |
372 | jge .nx1 |
372 | jge .nx1 |
373 | add esi,4 |
373 | add esi,sizeof.EDITOR_LINE_DATA |
374 | add esi,edx |
374 | add esi,edx |
375 | sub ecx,edx |
375 | sub ecx,edx |
376 | @@: push ecx |
376 | @@: push ecx |
377 | mov edi,symbols_ex |
377 | mov edi,symbols_ex |
378 | mov ecx,symbols_ex.size+symbols.size |
378 | mov ecx,symbols_ex.size+symbols.size |
Line 390... | Line 390... | ||
390 | jmp .lp1 |
390 | jmp .lp1 |
391 | @@: |
391 | @@: |
Line 392... | Line 392... | ||
392 | 392 | ||
393 | .lp2: mov ecx,ebx |
393 | .lp2: mov ecx,ebx |
394 | call get_line_offset |
394 | call get_line_offset |
395 | movzx ecx,word[esi] |
395 | mov ecx,[esi+EDITOR_LINE_DATA.Size] |
396 | cmp edx,ecx |
396 | cmp edx,ecx |
397 | jge .nx2 |
397 | jge .nx2 |
398 | add esi,4 |
398 | add esi,sizeof.EDITOR_LINE_DATA |
399 | add esi,edx |
399 | add esi,edx |
400 | sub ecx,edx |
400 | sub ecx,edx |
401 | @@: push ecx |
401 | @@: push ecx |
402 | mov edi,symbols_ex |
402 | mov edi,symbols_ex |
Line 475... | Line 475... | ||
475 | call get_real_length |
475 | call get_real_length |
476 | sub eax,[sel.begin.x] |
476 | sub eax,[sel.begin.x] |
477 | jge @f |
477 | jge @f |
478 | xor eax,eax |
478 | xor eax,eax |
479 | @@: add esi,[sel.begin.x] |
479 | @@: add esi,[sel.begin.x] |
480 | add esi,4 |
480 | add esi,sizeof.EDITOR_LINE_DATA |
- | 481 | mov [edi+EDITOR_LINE_DATA.Size],eax |
|
481 | stosd |
482 | add edi,sizeof.EDITOR_LINE_DATA |
482 | mov ecx,eax |
483 | mov ecx,eax |
483 | jecxz @f |
484 | jecxz @f |
484 | rep movsb |
485 | rep movsb |
485 | @@: mov ecx,[sel.end.y] |
486 | @@: mov ecx,[sel.end.y] |
486 | call get_line_offset |
487 | call get_line_offset |
Line 492... | Line 493... | ||
492 | sub eax,esi |
493 | sub eax,esi |
493 | mov ecx,eax |
494 | mov ecx,eax |
494 | rep movsb |
495 | rep movsb |
495 | mov ecx,[sel.end.y] |
496 | mov ecx,[sel.end.y] |
496 | @@: call get_line_offset |
497 | @@: call get_line_offset |
497 | movzx eax,word[esi] |
498 | mov eax,[esi+EDITOR_LINE_DATA.Size] |
498 | add esi,4 |
499 | add esi,sizeof.EDITOR_LINE_DATA |
499 | cmp eax,[sel.end.x] |
500 | cmp eax,[sel.end.x] |
500 | jle @f |
501 | jle @f |
501 | mov eax,[sel.end.x] |
502 | mov eax,[sel.end.x] |
502 | @@: mov ebx,edi |
503 | @@: mov ebx,edi |
- | 504 | mov [edi+EDITOR_LINE_DATA.Size],eax |
|
503 | stosd |
505 | add edi,sizeof.EDITOR_LINE_DATA |
504 | mov ecx,eax |
506 | mov ecx,eax |
505 | jecxz @f |
507 | jecxz @f |
506 | rep movsb |
508 | rep movsb |
507 | sub eax,[sel.end.x] |
509 | sub eax,[sel.end.x] |
508 | jz @f |
510 | jz @f |
Line 522... | Line 524... | ||
522 | 524 | ||
523 | .single_line: |
525 | .single_line: |
524 | mov eax,[sel.end.x] |
526 | mov eax,[sel.end.x] |
525 | sub eax,[sel.begin.x] |
527 | sub eax,[sel.begin.x] |
- | 528 | mov edi,[copy_buf] |
|
526 | mov edi,[copy_buf] |
529 | mov [edi+EDITOR_LINE_DATA.Size],eax |
527 | stosd |
530 | add edi,sizeof.EDITOR_LINE_DATA |
528 | mov ecx,[sel.begin.y] |
531 | mov ecx,[sel.begin.y] |
529 | call get_line_offset |
532 | call get_line_offset |
530 | mov ebx,[sel.begin.x] |
533 | mov ebx,[sel.begin.x] |
531 | mov ecx,[sel.end.x] |
534 | mov ecx,[sel.end.x] |
532 | cmp ebx,[esi] |
535 | cmp ebx,[esi+EDITOR_LINE_DATA.Size] |
533 | jge .add_spaces |
536 | jge .add_spaces |
534 | cmp ecx,[esi] |
537 | cmp ecx,[esi+EDITOR_LINE_DATA.Size] |
535 | jle .lp1 |
538 | jle .lp1 |
536 | mov ecx,[esi] |
539 | mov ecx,[esi+EDITOR_LINE_DATA.Size] |
537 | .lp1: sub ecx,[sel.begin.x] |
540 | .lp1: sub ecx,[sel.begin.x] |
538 | sub eax,ecx |
541 | sub eax,ecx |
539 | lea esi,[esi+ebx+4] |
542 | lea esi,[esi+ebx+sizeof.EDITOR_LINE_DATA] |
Line 540... | Line 543... | ||
540 | rep movsb |
543 | rep movsb |
541 | 544 | ||
542 | .add_spaces: |
545 | .add_spaces: |
Line 563... | Line 566... | ||
563 | stdcall mem.ReAlloc,[cur_editor.Lines],ebx |
566 | stdcall mem.ReAlloc,[cur_editor.Lines],ebx |
564 | mov [cur_editor.Lines],eax |
567 | mov [cur_editor.Lines],eax |
Line 565... | Line 568... | ||
565 | 568 | ||
566 | mov ecx,[cur_editor.Caret.Y] |
569 | mov ecx,[cur_editor.Caret.Y] |
567 | call get_line_offset |
570 | call get_line_offset |
568 | pushd [esi] esi |
571 | pushd [esi+EDITOR_LINE_DATA.Size] esi |
569 | mov ecx,[cur_editor.Caret.X] |
572 | mov ecx,[cur_editor.Caret.X] |
570 | call line_add_spaces |
573 | call line_add_spaces |
571 | add [esp],eax |
574 | add [esp],eax |
572 | add esi,eax |
575 | add esi,eax |
573 | mov ecx,[copy_size] |
576 | mov ecx,[copy_size] |
574 | sub ecx,4 |
577 | sub ecx,sizeof.EDITOR_LINE_DATA |
575 | mov edi,[cur_editor.Lines] |
578 | mov edi,[cur_editor.Lines] |
576 | add edi,[cur_editor.Lines.Size] ;*** add edi,[edi-4] |
579 | add edi,[cur_editor.Lines.Size] ;*** add edi,[edi-4] |
577 | dec edi |
580 | dec edi |
578 | mov eax,esi |
581 | mov eax,esi |
579 | mov esi,edi |
582 | mov esi,edi |
580 | sub esi,ecx |
583 | sub esi,ecx |
581 | lea ecx,[eax+4] |
584 | lea ecx,[eax+sizeof.EDITOR_LINE_DATA] |
582 | add ecx,[cur_editor.Caret.X] |
585 | add ecx,[cur_editor.Caret.X] |
583 | neg ecx |
586 | neg ecx |
584 | lea ecx,[esi+ecx+1] |
587 | lea ecx,[esi+ecx+1] |
585 | std |
588 | std |
Line 589... | Line 592... | ||
589 | dec ecx |
592 | dec ecx |
590 | jz .single_line |
593 | jz .single_line |
Line 591... | Line 594... | ||
591 | 594 | ||
592 | cld |
595 | cld |
593 | pop edi |
596 | pop edi |
594 | add edi,4 |
597 | add edi,sizeof.EDITOR_LINE_DATA |
- | 598 | mov esi,[copy_buf] |
|
595 | mov esi,[copy_buf] |
599 | mov eax,[esi+EDITOR_LINE_DATA.Size] |
Line 596... | Line 600... | ||
596 | lodsd |
600 | add esi,sizeof.EDITOR_LINE_DATA |
597 | 601 | ||
598 | mov ebx,[cur_editor.Caret.X] |
602 | mov ebx,[cur_editor.Caret.X] |
599 | add eax,ebx |
603 | add eax,ebx |
600 | mov [edi-4],ax |
604 | mov [edi-sizeof.EDITOR_LINE_DATA+EDITOR_LINE_DATA.Size],eax |
601 | mov byte[edi-4+2],0x0001 |
605 | mov [edi-sizeof.EDITOR_LINE_DATA+EDITOR_LINE_DATA.Flags],EDITOR_LINE_FLAG_MOFIFIED |
602 | sub eax,ebx |
606 | sub eax,ebx |
603 | call .check_columns |
607 | call .check_columns |
604 | add edi,ebx |
608 | add edi,ebx |
605 | @@: push ecx |
609 | @@: push ecx |
606 | mov ecx,eax |
610 | mov ecx,eax |
607 | rep movsb |
611 | rep movsb |
608 | lodsd |
612 | mov eax,[esi+EDITOR_LINE_DATA.Size] |
- | 613 | add esi,sizeof.EDITOR_LINE_DATA |
|
609 | and eax,0x0000FFFF |
614 | mov [edi+EDITOR_LINE_DATA.Size],eax |
610 | stosd |
615 | mov [edi+EDITOR_LINE_DATA.Flags],EDITOR_LINE_FLAG_MOFIFIED |
611 | mov byte[edi-4+2],0x0001 |
616 | add edi,sizeof.EDITOR_LINE_DATA |
Line 612... | Line 617... | ||
612 | pop ecx |
617 | pop ecx |
613 | loop @b |
618 | loop @b |
614 | 619 | ||
615 | pop ecx |
620 | pop ecx |
616 | sub ecx,ebx |
621 | sub ecx,ebx |
617 | add [edi-4],cx |
622 | add [edi-sizeof.EDITOR_LINE_DATA+EDITOR_LINE_DATA.Size],ecx |
Line 618... | Line 623... | ||
618 | call .check_columns |
623 | call .check_columns |
Line 631... | Line 636... | ||
631 | jmp .exit |
636 | jmp .exit |
Line 632... | Line 637... | ||
632 | 637 | ||
633 | .single_line: |
638 | .single_line: |
634 | cld |
639 | cld |
635 | pop edi |
640 | pop edi |
636 | add edi,4 |
641 | add edi,sizeof.EDITOR_LINE_DATA |
637 | mov esi,[copy_buf] |
- | |
638 | lodsd |
642 | mov esi,[copy_buf] |
639 | add [edi-4],ax |
643 | mov eax,[esi+EDITOR_LINE_DATA.Size] |
640 | and dword[edi-4],not 0x00020000 |
644 | add esi,sizeof.EDITOR_LINE_DATA |
- | 645 | add [edi-sizeof.EDITOR_LINE_DATA+EDITOR_LINE_DATA.Size],eax |
|
- | 646 | and [edi-sizeof.EDITOR_LINE_DATA+EDITOR_LINE_DATA.Flags],not EDITOR_LINE_FLAG_SAVED |
|
641 | or dword[edi-4],0x00010000 |
647 | or [edi-sizeof.EDITOR_LINE_DATA+EDITOR_LINE_DATA.Flags],EDITOR_LINE_FLAG_MOFIFIED |
642 | call .check_columns |
648 | call .check_columns |
643 | add edi,[cur_editor.Caret.X] |
649 | add edi,[cur_editor.Caret.X] |
644 | add esp,4 |
650 | add esp,4 |
645 | mov ecx,eax |
651 | mov ecx,eax |
Line 653... | Line 659... | ||
653 | .exit: |
659 | .exit: |
654 | ret |
660 | ret |
Line 655... | Line 661... | ||
655 | 661 | ||
656 | .check_columns: |
662 | .check_columns: |
657 | push eax |
663 | push eax |
658 | movzx eax,word[edi-4] |
664 | mov eax,[edi-sizeof.EDITOR_LINE_DATA+EDITOR_LINE_DATA.Size] |
659 | cmp eax,[cur_editor.Columns.Count] |
665 | cmp eax,[cur_editor.Columns.Count] |
660 | jbe @f |
666 | jbe @f |
661 | mov [cur_editor.Columns.Count],eax |
667 | mov [cur_editor.Columns.Count],eax |
662 | @@: pop eax |
668 | @@: pop eax |
663 | ret |
669 | ret |
Line 664... | Line 670... | ||
664 | endp |
670 | endp |
665 | 671 | ||
666 | ;----------------------------------------------------------------------------- |
672 | ;----------------------------------------------------------------------------- |
667 | proc key.ctrl_d ;///// INSERT SEPARATOR ////////////////////////////////////// |
673 | proc key.ctrl_d ;///// INSERT SEPARATOR ////////////////////////////////////// |
668 | ;----------------------------------------------------------------------------- |
674 | ;----------------------------------------------------------------------------- |
Line 669... | Line 675... | ||
669 | mov eax,94 |
675 | mov eax,90+sizeof.EDITOR_LINE_DATA |
670 | call editor_realloc_lines |
676 | call editor_realloc_lines |
671 | 677 | ||
Line 672... | Line 678... | ||
672 | mov ecx,[cur_editor.Caret.Y] |
678 | mov ecx,[cur_editor.Caret.Y] |
673 | call get_line_offset |
679 | call get_line_offset |
674 | mov ebx,esi |
680 | mov ebx,esi |
675 | 681 | ||
676 | mov ecx,[cur_editor.Lines.Count] |
682 | mov ecx,[cur_editor.Lines.Count] |
677 | call get_line_offset |
683 | call get_line_offset |
678 | lea edi,[esi+90+4] |
684 | lea edi,[esi+90+sizeof.EDITOR_LINE_DATA] |
Line 679... | Line 685... | ||
679 | lea ecx,[esi+4] |
685 | lea ecx,[esi+sizeof.EDITOR_LINE_DATA] |
680 | sub ecx,ebx |
686 | sub ecx,ebx |
681 | std |
687 | std |
682 | rep movsb |
688 | rep movsb |
683 | 689 | ||
684 | lea edi,[ebx+5] |
690 | lea edi,[ebx+sizeof.EDITOR_LINE_DATA+1] |
685 | mov word[ebx],90 |
691 | mov [ebx+EDITOR_LINE_DATA.Size],90 |
686 | mov al,ASEPC |
692 | mov al,ASEPC |
687 | mov ecx,79 |
693 | mov ecx,79 |
688 | cld |
694 | cld |
Line 689... | Line 695... | ||
689 | rep stosb |
695 | rep stosb |
690 | mov al,' ' |
696 | mov al,' ' |
691 | mov ecx,10 |
697 | mov ecx,10 |
Line 711... | Line 717... | ||
711 | jge .exit |
717 | jge .exit |
Line 712... | Line 718... | ||
712 | 718 | ||
713 | mov ecx,[cur_editor.Caret.Y] |
719 | mov ecx,[cur_editor.Caret.Y] |
714 | call get_line_offset |
720 | call get_line_offset |
715 | mov edi,esi |
- | |
716 | lodsd |
721 | mov edi,esi |
717 | and eax,0x0000FFFF |
722 | mov eax,[esi+EDITOR_LINE_DATA.Size] |
718 | add esi,eax |
723 | lea esi,[esi+eax+sizeof.EDITOR_LINE_DATA] |
Line 719... | Line 724... | ||
719 | push eax |
724 | push eax |
720 | 725 | ||
721 | dec [cur_editor.Lines.Count] |
726 | dec [cur_editor.Lines.Count] |
Line 725... | Line 730... | ||
725 | shr ecx,2 |
730 | shr ecx,2 |
726 | cld |
731 | cld |
727 | rep movsd |
732 | rep movsd |
Line 728... | Line 733... | ||
728 | 733 | ||
729 | pop eax |
734 | pop eax |
730 | add eax,4 |
735 | add eax,sizeof.EDITOR_LINE_DATA |
731 | neg eax |
736 | neg eax |
Line 732... | Line 737... | ||
732 | call editor_realloc_lines |
737 | call editor_realloc_lines |
733 | 738 | ||
Line 1031... | Line 1036... | ||
1031 | call delete_selection |
1036 | call delete_selection |
1032 | jnc .exit |
1037 | jnc .exit |
Line 1033... | Line 1038... | ||
1033 | 1038 | ||
1034 | mov ecx,[cur_editor.Caret.Y] |
1039 | mov ecx,[cur_editor.Caret.Y] |
1035 | call get_line_offset |
1040 | call get_line_offset |
1036 | and dword[esi],not 0x00020000 |
1041 | and [esi+EDITOR_LINE_DATA.Flags],not EDITOR_LINE_FLAG_SAVED |
1037 | or dword[esi],0x00010000 |
1042 | or [esi+EDITOR_LINE_DATA.Flags],EDITOR_LINE_FLAG_MOFIFIED |
1038 | lea ebx,[esi+4] |
1043 | lea ebx,[esi+sizeof.EDITOR_LINE_DATA] |
Line 1039... | Line 1044... | ||
1039 | mov ebp,esi |
1044 | mov ebp,esi |
1040 | 1045 | ||
1041 | call get_real_length |
1046 | call get_real_length |
Line 1045... | Line 1050... | ||
1045 | mov ecx,[cur_editor.Caret.X] |
1050 | mov ecx,[cur_editor.Caret.X] |
1046 | cmp ecx,eax |
1051 | cmp ecx,eax |
1047 | jae .line_up |
1052 | jae .line_up |
1048 | lea edi,[ebx+ecx] |
1053 | lea edi,[ebx+ecx] |
1049 | neg ecx |
1054 | neg ecx |
1050 | movzx eax,word[ebp] |
1055 | mov eax,[ebp+EDITOR_LINE_DATA.Size] |
1051 | add ecx,eax;[ebp] |
1056 | add ecx,eax;[ebp] |
1052 | repe scasb |
1057 | repe scasb |
1053 | je .line_up |
1058 | je .line_up |
Line 1054... | Line 1059... | ||
1054 | 1059 | ||
1055 | mov edi,ebx |
1060 | mov edi,ebx |
1056 | mov ecx,[cur_editor.Caret.X] |
1061 | mov ecx,[cur_editor.Caret.X] |
1057 | add edi,ecx |
1062 | add edi,ecx |
1058 | lea esi,[edi+1] |
1063 | lea esi,[edi+1] |
1059 | neg ecx |
1064 | neg ecx |
1060 | movzx eax,word[ebp] |
1065 | mov eax,[ebp+EDITOR_LINE_DATA.Size] |
1061 | add ecx,eax;[ebp] |
1066 | add ecx,eax;[ebp] |
1062 | dec ecx |
1067 | dec ecx |
1063 | rep movsb |
1068 | rep movsb |
Line 1072... | Line 1077... | ||
1072 | mov eax,[cur_editor.Lines.Count] |
1077 | mov eax,[cur_editor.Lines.Count] |
1073 | dec eax |
1078 | dec eax |
1074 | cmp eax,[cur_editor.Caret.Y] |
1079 | cmp eax,[cur_editor.Caret.Y] |
1075 | je .exit |
1080 | je .exit |
1076 | mov edi,[temp_buf] |
1081 | mov edi,[temp_buf] |
1077 | add edi,4 |
1082 | add edi,sizeof.EDITOR_LINE_DATA |
1078 | mov esi,ebx |
1083 | mov esi,ebx |
1079 | mov ecx,[cur_editor.Caret.X] |
1084 | mov ecx,[cur_editor.Caret.X] |
1080 | rep movsb |
1085 | rep movsb |
1081 | mov ecx,[cur_editor.Caret.X] |
1086 | mov ecx,[cur_editor.Caret.X] |
1082 | mov eax,[temp_buf] |
1087 | mov eax,[temp_buf] |
1083 | mov [eax],ecx |
1088 | mov [eax+EDITOR_LINE_DATA.Size],ecx |
1084 | cmp cx,[ebp] |
1089 | cmp ecx,[ebp+EDITOR_LINE_DATA.Size] |
1085 | jbe @f |
1090 | jbe @f |
1086 | movzx eax,word[ebp] |
1091 | mov eax,[ebp+EDITOR_LINE_DATA.Size] |
1087 | sub ecx,eax |
1092 | sub ecx,eax |
1088 | sub edi,ecx |
1093 | sub edi,ecx |
1089 | mov al,' ' |
1094 | mov al,' ' |
1090 | rep stosb |
1095 | rep stosb |
1091 | @@: lea esi,[ebx+4] |
1096 | @@: lea esi,[ebx+sizeof.EDITOR_LINE_DATA] |
1092 | movzx eax,word[ebp] |
1097 | mov eax,[ebp+EDITOR_LINE_DATA.Size] |
1093 | add esi,eax |
1098 | add esi,eax |
1094 | movzx ecx,word[esi-4] |
1099 | mov ecx,[esi-sizeof.EDITOR_LINE_DATA+EDITOR_LINE_DATA.Size] |
1095 | mov eax,[temp_buf] |
1100 | mov eax,[temp_buf] |
1096 | add [eax],ecx |
1101 | add [eax+EDITOR_LINE_DATA.Size],ecx |
1097 | or dword[eax],0x00010000 |
1102 | or [eax+EDITOR_LINE_DATA.Flags],EDITOR_LINE_FLAG_MOFIFIED |
1098 | rep movsb |
1103 | rep movsb |
Line 1099... | Line 1104... | ||
1099 | 1104 | ||
1100 | mov ecx,edi |
1105 | mov ecx,edi |
Line 1108... | Line 1113... | ||
1108 | @@: |
1113 | @@: |
1109 | push ecx |
1114 | push ecx |
1110 | mov edi,[cur_editor.Lines] |
1115 | mov edi,[cur_editor.Lines] |
1111 | add edi,[cur_editor.Lines.Size] ;*** add edi,[edi-4] |
1116 | add edi,[cur_editor.Lines.Size] ;*** add edi,[edi-4] |
1112 | dec edi |
1117 | dec edi |
1113 | lea esi,[edi+8] |
1118 | lea esi,[edi+sizeof.EDITOR_LINE_DATA*2] ; !!! CHECK THIS !!! |
1114 | sub esi,ecx |
1119 | sub esi,ecx |
1115 | movzx eax,word[ebp] |
1120 | mov eax,[ebp+EDITOR_LINE_DATA.Size] |
1116 | add esi,eax |
1121 | add esi,eax |
1117 | movzx eax,word[ebp] |
- | |
1118 | movzx eax,word[ebp+eax+4] |
1122 | mov eax,[ebp+eax+sizeof.EDITOR_LINE_DATA+EDITOR_LINE_DATA.Size] |
1119 | add esi,eax |
1123 | add esi,eax |
1120 | lea ecx,[esi-4] |
1124 | lea ecx,[esi-sizeof.EDITOR_LINE_DATA] |
1121 | sub ecx,ebp |
1125 | sub ecx,ebp |
1122 | std |
1126 | std |
1123 | cmp esi,edi |
1127 | cmp esi,edi |
1124 | jb @f |
1128 | jb @f |
1125 | jz .lp1 |
1129 | jz .lp1 |
1126 | mov edi,ebp |
1130 | mov edi,ebp |
1127 | add edi,[esp] |
1131 | add edi,[esp] |
1128 | lea esi,[ebp+8] |
1132 | lea esi,[ebp+sizeof.EDITOR_LINE_DATA*2] ; !!! CHECK THIS !!! |
1129 | movzx eax,word[esi-8] |
1133 | mov eax,[esi-sizeof.EDITOR_LINE_DATA*2+EDITOR_LINE_DATA.Size] ; !!! CHECK THIS !!! |
1130 | add esi,eax |
1134 | add esi,eax |
1131 | movzx eax,word[esi-4] |
1135 | mov eax,[esi-sizeof.EDITOR_LINE_DATA+EDITOR_LINE_DATA.Size] ; !!! CHECK THIS !!! |
1132 | add esi,eax |
1136 | add esi,eax |
1133 | mov ecx,[cur_editor.Lines] |
1137 | mov ecx,[cur_editor.Lines] |
1134 | add ecx,[cur_editor.Lines.Size] ;*** add ecx,[ecx-4] |
1138 | add ecx,[cur_editor.Lines.Size] ;*** add ecx,[ecx-4] |
1135 | sub ecx,esi |
1139 | sub ecx,esi |
1136 | cld |
1140 | cld |
Line 1151... | Line 1155... | ||
1151 | @@: m2m [cur_editor.SelStart.X],[cur_editor.Caret.X] |
1155 | @@: m2m [cur_editor.SelStart.X],[cur_editor.Caret.X] |
1152 | m2m [cur_editor.SelStart.Y],[cur_editor.Caret.Y] |
1156 | m2m [cur_editor.SelStart.Y],[cur_editor.Caret.Y] |
Line 1153... | Line 1157... | ||
1153 | 1157 | ||
1154 | mov ecx,[cur_editor.Lines.Count] |
1158 | mov ecx,[cur_editor.Lines.Count] |
1155 | call get_line_offset |
1159 | call get_line_offset |
1156 | movzx eax,word[esi] |
1160 | mov eax,[esi+EDITOR_LINE_DATA.Size] |
1157 | lea esi,[esi+eax+4] |
1161 | lea esi,[esi+eax+sizeof.EDITOR_LINE_DATA] |
1158 | mov eax,[cur_editor.Lines] |
1162 | mov eax,[cur_editor.Lines] |
1159 | add eax,[cur_editor.Lines.Size] ;*** add eax,[eax-4] |
1163 | add eax,[cur_editor.Lines.Size] ;*** add eax,[eax-4] |
1160 | sub esi,eax |
1164 | sub esi,eax |
1161 | lea eax,[esi+4096] |
1165 | lea eax,[esi+4096] |
Line 1189... | Line 1193... | ||
1189 | js .line_up |
1193 | js .line_up |
Line 1190... | Line 1194... | ||
1190 | 1194 | ||
1191 | dec [cur_editor.Caret.X] |
1195 | dec [cur_editor.Caret.X] |
1192 | mov ecx,[cur_editor.Caret.Y] |
1196 | mov ecx,[cur_editor.Caret.Y] |
1193 | call get_line_offset |
1197 | call get_line_offset |
1194 | and dword[esi],not 0x00020000 |
1198 | and [esi+EDITOR_LINE_DATA.Flags],not EDITOR_LINE_FLAG_SAVED |
Line 1195... | Line 1199... | ||
1195 | or dword[esi],0x00010000 |
1199 | or [esi+EDITOR_LINE_DATA.Flags],EDITOR_LINE_FLAG_MOFIFIED |
1196 | 1200 | ||
1197 | mov ebx,eax |
1201 | mov ebx,eax |
1198 | call get_real_length |
1202 | call get_real_length |
1199 | cmp eax,[cur_editor.Caret.X] |
1203 | cmp eax,[cur_editor.Caret.X] |
1200 | jae @f |
1204 | jae @f |
1201 | m2m [cur_editor.SelStart.X],[cur_editor.Caret.X] |
1205 | m2m [cur_editor.SelStart.X],[cur_editor.Caret.X] |
Line 1202... | Line 1206... | ||
1202 | mov [cur_editor.Modified],1 |
1206 | mov [cur_editor.Modified],1 |
1203 | ret |
1207 | ret |
1204 | 1208 | ||
1205 | @@: lea edi,[esi+4+ebx] |
1209 | @@: lea edi,[esi+sizeof.EDITOR_LINE_DATA+ebx] |
1206 | mov ecx,ebx |
1210 | mov ecx,ebx |
1207 | neg ecx |
1211 | neg ecx |
1208 | movzx eax,word[esi] |
1212 | mov eax,[esi+EDITOR_LINE_DATA.Size] |
1209 | add ecx,eax |
1213 | add ecx,eax |
1210 | dec ecx |
1214 | dec ecx |
Line 1223... | Line 1227... | ||
1223 | jne @f |
1227 | jne @f |
1224 | ret |
1228 | ret |
1225 | @@: mov ecx,[cur_editor.Caret.Y] |
1229 | @@: mov ecx,[cur_editor.Caret.Y] |
1226 | dec ecx |
1230 | dec ecx |
1227 | call get_line_offset |
1231 | call get_line_offset |
1228 | and dword[esi],not 0x00020000 |
1232 | and [esi+EDITOR_LINE_DATA.Flags],not EDITOR_LINE_FLAG_SAVED |
1229 | or dword[esi],0x00010000 |
1233 | or [esi+EDITOR_LINE_DATA.Flags],EDITOR_LINE_FLAG_MOFIFIED |
Line 1230... | Line 1234... | ||
1230 | 1234 | ||
1231 | mov ebp,esi |
1235 | mov ebp,esi |
1232 | lea ebx,[esi+4] |
1236 | lea ebx,[esi+sizeof.EDITOR_LINE_DATA] |
1233 | movzx ecx,word[ebp] |
1237 | mov ecx,[ebp+EDITOR_LINE_DATA.Size] |
1234 | @@: cmp byte[ebx+ecx-1],' ' |
1238 | @@: cmp byte[ebx+ecx-1],' ' |
1235 | jne @f |
1239 | jne @f |
1236 | dec ecx |
1240 | dec ecx |
1237 | jg @b |
1241 | jg @b |
Line 1256... | Line 1260... | ||
1256 | push eax |
1260 | push eax |
1257 | call editor_realloc_lines |
1261 | call editor_realloc_lines |
1258 | pop eax |
1262 | pop eax |
1259 | mov ecx,[cur_editor.Caret.Y] |
1263 | mov ecx,[cur_editor.Caret.Y] |
1260 | call get_line_offset |
1264 | call get_line_offset |
1261 | and dword[esi],not 0x00020000 |
1265 | and [esi+EDITOR_LINE_DATA.Flags],not EDITOR_LINE_FLAG_SAVED |
1262 | or dword[esi],0x00010000 |
1266 | or [esi+EDITOR_LINE_DATA.Flags],EDITOR_LINE_FLAG_MOFIFIED |
Line 1263... | Line 1267... | ||
1263 | 1267 | ||
Line 1264... | Line 1268... | ||
1264 | xchg eax,ecx |
1268 | xchg eax,ecx |
1265 | 1269 | ||
1266 | call get_real_length |
1270 | call get_real_length |
1267 | cmp eax,[cur_editor.Caret.X] |
1271 | cmp eax,[cur_editor.Caret.X] |
1268 | jae @f |
1272 | jae @f |
1269 | mov eax,[cur_editor.Caret.X] |
1273 | mov eax,[cur_editor.Caret.X] |
1270 | @@: movzx edx,word[esi] |
1274 | @@: mov edx,[esi+EDITOR_LINE_DATA.Size] |
1271 | sub edx,eax |
1275 | sub edx,eax |
1272 | cmp ecx,edx |
1276 | cmp ecx,edx |
1273 | jl @f |
1277 | jl @f |
Line 1280... | Line 1284... | ||
1280 | mov ecx,[cur_editor.Lines] |
1284 | mov ecx,[cur_editor.Lines] |
1281 | add ecx,[cur_editor.Lines.Size] ;*** add ecx,[ecx-4] |
1285 | add ecx,[cur_editor.Lines.Size] ;*** add ecx,[ecx-4] |
1282 | dec ecx |
1286 | dec ecx |
1283 | mov edi,ecx |
1287 | mov edi,ecx |
1284 | add ecx,-10+1 |
1288 | add ecx,-10+1 |
1285 | movzx eax,word[esi] |
1289 | mov eax,[esi+EDITOR_LINE_DATA.Size] |
1286 | lea eax,[esi+eax+4] |
1290 | lea eax,[esi+eax+sizeof.EDITOR_LINE_DATA] |
1287 | sub ecx,eax |
1291 | sub ecx,eax |
1288 | lea esi,[edi-10] |
1292 | lea esi,[edi-10] |
1289 | std |
1293 | std |
1290 | rep movsb |
1294 | rep movsb |
1291 | mov ecx,10 |
1295 | mov ecx,10 |
1292 | mov al,' ' |
1296 | mov al,' ' |
1293 | rep stosb |
1297 | rep stosb |
1294 | popad |
1298 | popad |
1295 | add word[esi],10 |
1299 | add [esi+EDITOR_LINE_DATA.Size],10 |
1296 | jmp @b |
1300 | jmp @b |
1297 | @@: lea ebx,[esi+4] |
1301 | @@: lea ebx,[esi+sizeof.EDITOR_LINE_DATA] |
1298 | push ecx |
1302 | push ecx |
1299 | movzx edi,word[esi] |
1303 | mov edi,[esi+EDITOR_LINE_DATA.Size] |
1300 | lea edi,[ebx+edi-1] |
1304 | lea edi,[ebx+edi-1] |
1301 | mov esi,edi |
1305 | mov esi,edi |
1302 | sub esi,ecx |
1306 | sub esi,ecx |
1303 | lea ecx,[esi+1] |
1307 | lea ecx,[esi+1] |
1304 | sub ecx,ebx |
1308 | sub ecx,ebx |
Line 1308... | Line 1312... | ||
1308 | .ok: pop ecx |
1312 | .ok: pop ecx |
1309 | pop eax |
1313 | pop eax |
1310 | rep stosb |
1314 | rep stosb |
1311 | cld |
1315 | cld |
1312 | pop [cur_editor.Caret.X] |
1316 | pop [cur_editor.Caret.X] |
1313 | lea esi,[ebx-4] |
1317 | lea esi,[ebx-sizeof.EDITOR_LINE_DATA] |
1314 | call get_real_length |
1318 | call get_real_length |
1315 | cmp eax,[cur_editor.Caret.X] |
1319 | cmp eax,[cur_editor.Caret.X] |
1316 | jae @f |
1320 | jae @f |
1317 | mov eax,[cur_editor.Caret.X] |
1321 | mov eax,[cur_editor.Caret.X] |
1318 | @@: cmp eax,[cur_editor.Columns.Count] |
1322 | @@: cmp eax,[cur_editor.Columns.Count] |
Line 1336... | Line 1340... | ||
1336 | 1340 | ||
1337 | mov ecx,[cur_editor.Caret.Y] |
1341 | mov ecx,[cur_editor.Caret.Y] |
Line 1338... | Line 1342... | ||
1338 | call get_line_offset |
1342 | call get_line_offset |
1339 | 1343 | ||
1340 | mov ebx,[cur_editor.Caret.X] |
1344 | mov ebx,[cur_editor.Caret.X] |
1341 | cmp bx,[esi] |
1345 | cmp ebx,[esi+EDITOR_LINE_DATA.Size] |
1342 | jb @f |
1346 | jb @f |
1343 | movzx ebx,word[esi] |
1347 | mov ebx,[esi+EDITOR_LINE_DATA.Size] |
1344 | dec ebx |
1348 | dec ebx |
1345 | jns @f |
1349 | jns @f |
1346 | xor ebx,ebx |
1350 | xor ebx,ebx |
Line 1350... | Line 1354... | ||
1350 | mov edi,[temp_buf] |
1354 | mov edi,[temp_buf] |
1351 | mov ebp,esi |
1355 | mov ebp,esi |
1352 | lea ecx,[ebx+1] |
1356 | lea ecx,[ebx+1] |
1353 | @@: dec ecx |
1357 | @@: dec ecx |
1354 | jz @f |
1358 | jz @f |
1355 | cmp byte[esi+ecx+4-1],' ' |
1359 | cmp byte[esi+ecx+sizeof.EDITOR_LINE_DATA-1],' ' |
1356 | je @b |
1360 | je @b |
1357 | @@: lea eax,[ecx+10] |
1361 | @@: lea eax,[ecx+10] |
1358 | or eax,0x00010000 |
1362 | mov [edi+EDITOR_LINE_DATA.Size],eax |
- | 1363 | mov [edi+EDITOR_LINE_DATA.Flags],EDITOR_LINE_FLAG_MOFIFIED |
|
1359 | stosd |
1364 | add edi,sizeof.EDITOR_LINE_DATA |
1360 | jecxz @f |
1365 | jecxz @f |
1361 | push esi |
1366 | push esi |
1362 | add esi,4 |
1367 | add esi,sizeof.EDITOR_LINE_DATA |
1363 | rep movsb |
1368 | rep movsb |
1364 | pop esi |
1369 | pop esi |
1365 | @@: mov al,' ' |
1370 | @@: mov al,' ' |
1366 | mov ecx,10 |
1371 | mov ecx,10 |
1367 | rep stosb |
1372 | rep stosb |
Line 1368... | Line 1373... | ||
1368 | 1373 | ||
1369 | movzx ecx,word[esi] |
1374 | mov ecx,[esi+EDITOR_LINE_DATA.Size] |
1370 | sub ecx,ebx |
1375 | sub ecx,ebx |
1371 | add esi,ebx |
1376 | add esi,ebx |
1372 | add esi,4 |
1377 | add esi,sizeof.EDITOR_LINE_DATA |
1373 | inc ecx |
1378 | inc ecx |
1374 | @@: dec ecx |
1379 | @@: dec ecx |
1375 | jz @f |
1380 | jz @f |
1376 | cmp byte[esi+ecx-1],' ' |
1381 | cmp byte[esi+ecx-1],' ' |
1377 | je @b |
1382 | je @b |
1378 | @@: jz .lp1 |
1383 | @@: jz .lp1 |
1379 | @@: cmp byte[esi],' ' |
1384 | @@: cmp byte[esi],' ' |
1380 | jne .lp1 |
1385 | jne .lp1 |
1381 | inc esi |
1386 | inc esi |
1382 | loop @b |
1387 | loop @b |
1383 | .lp1: test [options],OPTS_AUTOINDENT |
1388 | .lp1: test [auto_indent],1 |
1384 | jz .lp2 |
1389 | jz .lp2 |
1385 | push edi ecx |
1390 | push edi ecx |
1386 | movzx ecx,word[ebp] |
1391 | mov ecx,[ebp+EDITOR_LINE_DATA.Size] |
1387 | lea edi,[ebp+4] |
1392 | lea edi,[ebp+sizeof.EDITOR_LINE_DATA] |
1388 | mov al,' ' |
1393 | mov al,' ' |
1389 | repe scasb |
1394 | repe scasb |
1390 | mov eax,ecx |
1395 | mov eax,ecx |
1391 | pop ecx edi |
1396 | pop ecx edi |
1392 | je .lp2 |
1397 | je .lp2 |
1393 | neg eax |
1398 | neg eax |
1394 | movzx edx,word[ebp] |
1399 | mov edx,[ebp+EDITOR_LINE_DATA.Size] |
1395 | add eax,edx;[ebp] |
1400 | add eax,edx;[ebp] |
1396 | dec eax |
1401 | dec eax |
1397 | jmp @f |
1402 | jmp @f |
1398 | .lp2: xor eax,eax |
1403 | .lp2: xor eax,eax |
1399 | @@: mov edx,edi |
1404 | @@: mov edx,edi |
1400 | add edi,4 |
1405 | add edi,sizeof.EDITOR_LINE_DATA |
1401 | mov [cur_editor.Caret.X],eax |
1406 | mov [cur_editor.Caret.X],eax |
1402 | jecxz @f |
1407 | jecxz @f |
1403 | push ecx |
1408 | push ecx |
1404 | mov ecx,eax |
1409 | mov ecx,eax |
Line 1409... | Line 1414... | ||
1409 | rep movsb |
1414 | rep movsb |
1410 | @@: mov ecx,10 |
1415 | @@: mov ecx,10 |
1411 | mov al,' ' |
1416 | mov al,' ' |
1412 | rep stosb |
1417 | rep stosb |
Line 1413... | Line 1418... | ||
1413 | 1418 | ||
1414 | lea eax,[edi-4] |
1419 | lea eax,[edi-sizeof.EDITOR_LINE_DATA] |
1415 | sub eax,edx |
1420 | sub eax,edx |
1416 | or eax,0x00010000 |
1421 | mov [edx+EDITOR_LINE_DATA.Size],eax |
Line 1417... | Line 1422... | ||
1417 | mov [edx],eax |
1422 | mov [edx+EDITOR_LINE_DATA.Flags],EDITOR_LINE_FLAG_MOFIFIED |
1418 | 1423 | ||
Line 1419... | Line 1424... | ||
1419 | mov ecx,edi |
1424 | mov ecx,edi |
1420 | sub ecx,[temp_buf] |
1425 | sub ecx,[temp_buf] |
1421 | 1426 | ||
1422 | push ecx |
1427 | push ecx |
1423 | mov edi,[cur_editor.Lines] |
1428 | mov edi,[cur_editor.Lines] |
1424 | add edi,[cur_editor.Lines.Size] ;*** add edi,[edi-4] |
1429 | add edi,[cur_editor.Lines.Size] ;*** add edi,[edi-4] |
1425 | dec edi |
1430 | dec edi |
1426 | lea esi,[edi+4] |
1431 | lea esi,[edi+sizeof.EDITOR_LINE_DATA] |
1427 | sub esi,ecx |
1432 | sub esi,ecx |
1428 | movzx ecx,word[ebp] |
1433 | mov ecx,[ebp+EDITOR_LINE_DATA.Size] |
1429 | add esi,ecx |
1434 | add esi,ecx |
1430 | lea ecx,[esi-4] |
1435 | lea ecx,[esi-sizeof.EDITOR_LINE_DATA] |
1431 | sub ecx,ebp |
1436 | sub ecx,ebp |
1432 | std |
1437 | std |
1433 | cmp esi,edi |
1438 | cmp esi,edi |
1434 | jb @f |
1439 | jb @f |
1435 | je .lp3 |
1440 | je .lp3 |
1436 | lea esi,[ebp+4] |
1441 | lea esi,[ebp+sizeof.EDITOR_LINE_DATA] |
1437 | mov eax,[esp] |
1442 | mov eax,[esp] |
1438 | lea edi,[esi+eax-4] |
1443 | lea edi,[esi+eax-sizeof.EDITOR_LINE_DATA] |
1439 | movzx ecx,word[ebp] |
1444 | mov ecx,[ebp+EDITOR_LINE_DATA.Size] |
1440 | add esi,ecx |
1445 | add esi,ecx |
1441 | mov ecx,[cur_editor.Lines] |
1446 | mov ecx,[cur_editor.Lines] |
Line 1591... | Line 1596... | ||
1591 | mov eax,[tab_bar.Items.Count] |
1596 | mov eax,[tab_bar.Items.Count] |
1592 | mov [exit_tab_num],eax |
1597 | mov [exit_tab_num],eax |
1593 | .direct: |
1598 | .direct: |
1594 | call try_to_close_tabs |
1599 | call try_to_close_tabs |
1595 | or eax,eax |
1600 | or eax,eax |
1596 | jz .close |
1601 | jz @f |
1597 | mov [bot_mode2],2 |
1602 | mov [bot_mode2],2 |
1598 | jmp key.ctrl_o.direct |
1603 | jmp key.ctrl_o.direct |
Line 1599... | Line -... | ||
1599 | - | ||
1600 | .close: |
- | |
1601 | mov esi,self_path |
- | |
1602 | mov byte[esi+PATHL-1],0 |
- | |
1603 | mov edi,f_info.path |
- | |
1604 | cld |
1604 | |
1605 | @@: lodsb |
- | |
1606 | stosb |
- | |
1607 | or al,al |
- | |
1608 | jnz @b |
- | |
1609 | - | ||
1610 | mov [f_info70+0],2 |
- | |
1611 | mov [f_info70+4],0 |
- | |
1612 | mov [f_info70+8],0 |
- | |
1613 | mov [f_info70+12],TINYPAD_END |
- | |
1614 | mov [f_info70+16],0 |
- | |
1615 | mov byte[f_info70+20],0 |
- | |
1616 | mov [f_info70+21],f_info.path |
- | |
Line -... | Line 1605... | ||
- | 1605 | @@: stdcall save_settings |
|
1617 | mcall 70,f_info70 |
1606 | |
1618 | 1607 | .close: |
|
1619 | mov [main_closed],1 |
1608 | mov [main_closed],1 |
Line 1620... | Line 1609... | ||
1620 | mcall -1 |
1609 | mcall -1 |