Subversion Repositories Kolibri OS

Rev

Rev 589 | Rev 997 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 589 Rev 814
Line 1... Line 1...
1
virtual at 0
1
virtual at 0
2
viewer_data:
2
viewer_data:
-
 
3
        .hPlugin        dd      ?
-
 
4
        .hFile          dd      ?
3
        .buf_start      dq      ?
5
        .buf_start      dq      ?
4
        .cur_pos        dq      ?
6
        .cur_pos        dq      ?
5
        .filesize       dq      ?
7
        .filesize       dq      ?
6
        .buf_pos        dd      ?
8
        .buf_pos        dd      ?
7
        .buf_size       dd      ?
9
        .buf_size       dd      ?
8
        .col            dq      ?
10
        .col            dq      ?
9
        .hPlugin        dd      ?
-
 
10
        .hFile          dd      ?
-
 
11
        .hWorkFile      dd      ?
11
        .hWorkFile      dd      ?
12
        .encoding       db      ?
12
        .encoding       db      ?
13
        .bEofReached    db      ?
-
 
14
        .flags          db      ?       ; & 1: hex mode
13
        .flags          db      ?       ; & 1: hex mode
15
                                        ; & 2: unwrap
14
                                        ; & 2: unwrap
16
                                        ; & 4: big-endian unicode
15
                                        ; & 4: big-endian unicode
-
 
16
        .bEofReached    db      ?
17
                        rb      1
17
                        rb      1
-
 
18
        align 200h
18
        .filename       rb      1024
19
        .filename       rb      1024
19
        .hostname       rb      1024
20
        .hostname       rb      1024
20
        .buf            rb      16384
21
        .buf            rb      16384
21
        .size = $
22
        .size = $
22
end virtual
23
end virtual
Line 152... Line 153...
152
        call    [eax+PluginInfo.open]
153
        call    [eax+PluginInfo.open]
153
        pop     ebp ebx
154
        pop     ebp ebx
154
        mov     [ebp+viewer_data.hWorkFile], eax
155
        mov     [ebp+viewer_data.hWorkFile], eax
155
        test    eax, eax
156
        test    eax, eax
156
        jnz     .retry
157
        jnz     .retry
-
 
158
..openerr_in_screen:
157
        push    ContinueBtn
159
        push    ContinueBtn
158
        push    1
160
        push    1
159
        push    aCannotOpenFile_ptr
161
        push    aCannotOpenFile_ptr
160
        push    1
162
        push    1
161
        call    SayErr
163
        call    SayErr
Line 210... Line 212...
210
        jnz     .nounicode
212
        jnz     .nounicode
211
        or      byte [ebp+viewer_data.flags], 4
213
        or      byte [ebp+viewer_data.flags], 4
212
@@:
214
@@:
213
        mov     [ebp+viewer_data.encoding], encodings.unicode
215
        mov     [ebp+viewer_data.encoding], encodings.unicode
214
.nounicode:
216
.nounicode:
-
 
217
viewer_OnRedraw:
-
 
218
        or      [cursor_x], -1
-
 
219
        or      [cursor_y], -1
215
        call    viewer_set_keybar
220
        call    viewer_set_keybar
216
        call    viewer_draw_text
221
        call    viewer_draw_text
217
        ret
222
        ret
Line 218... Line 223...
218
 
223
 
Line 416... Line 421...
416
        call    viewer_seek_to_current
421
        call    viewer_seek_to_current
417
        xor     eax, eax
422
        xor     eax, eax
418
        xor     edx, edx
423
        xor     edx, edx
419
        call    get_console_ptr
424
        call    get_console_ptr
420
        mov     ah, [view_status_color]
425
        mov     ah, [view_status_color]
421
        lea     esi, [ebp+viewer_data.filename]
-
 
422
        mov     dl, 3
-
 
423
        mov     ecx, [cur_width]
426
        mov     ecx, [cur_width]
424
        sub     ecx, 44
427
        sub     ecx, 44
425
        cmp     ecx, 20
428
        cmp     ecx, 20
426
        jae     .5
429
        jae     @f
427
        mov     cl, 20
430
        mov     cl, 20
428
.5:
-
 
429
        lodsb
-
 
430
        cmp     al, '/'
-
 
431
        jnz     @f
-
 
432
        dec     edx
-
 
433
        jz      .6
-
 
434
@@:
-
 
435
        stosw
-
 
436
        loop    .5
-
 
437
.6:
-
 
438
        dec     ecx
-
 
439
        stosw
-
 
440
        push    esi
-
 
441
@@:
431
@@:
442
        inc     esi
-
 
443
        cmp     byte [esi-1], 0
432
        call    viewedit_draw_filename
444
        jnz     @b
-
 
445
        sub     esi, [esp]
-
 
446
        dec     esi
-
 
447
        cmp     ecx, esi
-
 
448
        jae     .7
-
 
449
        mov     al, '.'
-
 
450
        stosw
-
 
451
        stosw
-
 
452
        stosw
-
 
453
        sub     ecx, 3
-
 
454
        sub     esi, ecx
-
 
455
        add     [esp], esi
-
 
456
.7:
-
 
457
        pop     esi
-
 
458
@@:
-
 
459
        lodsb
-
 
460
        test    al, al
-
 
461
        jz      @f
-
 
462
        dec     ecx
-
 
463
        stosw
-
 
464
        jmp     @b
-
 
465
@@:
-
 
466
        mov     al, ' '
-
 
467
        add     ecx, 8
433
        add     ecx, 11
468
        rep     stosw
434
        rep     stosw
469
        movzx   esi, [ebp+viewer_data.encoding]
435
        movzx   esi, [ebp+viewer_data.encoding]
470
        lea     esi, [encodings.names+esi*8]
436
        lea     esi, [encodings.names+esi*8]
-
 
437
        push    edi esi
-
 
438
        dec     edi
-
 
439
        dec     edi
-
 
440
        std
471
        mov     cl, 8
441
        add     esi, 8
-
 
442
@@:
-
 
443
        dec     esi
-
 
444
        cmp     byte [esi], ' '
-
 
445
        jz      @b
472
@@:
446
@@:
473
        lodsb
447
        lodsb
474
        stosw
448
        stosw
-
 
449
        cmp     esi, [esp]
475
        loop    @b
450
        jae     @b
-
 
451
        cld
-
 
452
        pop     esi edi
476
        mov     al, ' '
453
        mov     al, ' '
477
        mov     cl, 8
454
        mov     cl, 13
478
        rep     stosw
455
        rep     stosw
479
        std
456
        std
480
        push    edi
457
        push    edi
481
        mov     edx, dword [ebp+viewer_data.filesize+4]
458
        mov     edx, dword [ebp+viewer_data.filesize+4]
482
        mov     eax, dword [ebp+viewer_data.filesize]
459
        mov     eax, dword [ebp+viewer_data.filesize]
Line 698... Line 675...
698
        inc     ecx
675
        inc     ecx
699
        jns     .1
676
        jns     .1
700
        push    edx
677
        push    edx
701
        mov     eax, ecx
678
        mov     eax, ecx
702
        xor     edx, edx
679
        xor     edx, edx
703
        div     [tabsize]
680
        div     [viewer_tabsize]
704
        mov     ecx, edx
681
        mov     ecx, edx
705
        pop     edx
682
        pop     edx
706
        jmp     .1
683
        jmp     .1
707
.3:
684
.3:
708
        mov     bl, al
685
        mov     bl, al
Line 714... Line 691...
714
        jmp     .2
691
        jmp     .2
715
.tab:
692
.tab:
716
        push    edx
693
        push    edx
717
        push    ecx
694
        push    ecx
718
        mov     eax, ecx
695
        mov     eax, ecx
719
        mov     ecx, [tabsize]
696
        mov     ecx, [viewer_tabsize]
720
        xor     edx, edx
697
        xor     edx, edx
721
        div     ecx
698
        div     ecx
722
        pop     eax
699
        pop     eax
723
        sub     ecx, edx
700
        sub     ecx, edx
724
        add     eax, ecx
701
        add     eax, ecx
Line 999... Line 976...
999
        pop     eax ecx
976
        pop     eax ecx
1000
        add     dword [scrpos], 1
977
        add     dword [scrpos], 1
1001
        adc     dword [scrpos+4], 0
978
        adc     dword [scrpos+4], 0
1002
        ret
979
        ret
Line -... Line 980...
-
 
980
 
-
 
981
viewedit_draw_filename:
-
 
982
        lea     esi, [ebp+viewer_data.filename]
-
 
983
        xor     edx, edx
-
 
984
        cmp     [ebp+viewer_data.hPlugin], edx
-
 
985
        mov     dl, 3
-
 
986
        jz      .5
-
 
987
        mov     dl, 1
-
 
988
.5:
-
 
989
        lodsb
-
 
990
        cmp     al, '/'
-
 
991
        jnz     @f
-
 
992
        dec     edx
-
 
993
        jz      .6
-
 
994
@@:
-
 
995
        stosw
-
 
996
        loop    .5
-
 
997
.6:
-
 
998
        dec     ecx
-
 
999
        stosw
-
 
1000
        push    esi
-
 
1001
@@:
-
 
1002
        inc     esi
-
 
1003
        cmp     byte [esi-1], 0
-
 
1004
        jnz     @b
-
 
1005
        sub     esi, [esp]
-
 
1006
        dec     esi
-
 
1007
        cmp     ecx, esi
-
 
1008
        jae     .7
-
 
1009
        mov     al, '.'
-
 
1010
        stosw
-
 
1011
        stosw
-
 
1012
        stosw
-
 
1013
        sub     ecx, 3
-
 
1014
        sub     esi, ecx
-
 
1015
        add     [esp], esi
-
 
1016
.7:
-
 
1017
        pop     esi
-
 
1018
@@:
-
 
1019
        lodsb
-
 
1020
        test    al, al
-
 
1021
        jz      @f
-
 
1022
        dec     ecx
-
 
1023
        stosw
-
 
1024
        jmp     @b
-
 
1025
@@:
-
 
1026
        mov     al, ' '
-
 
1027
        ret
1003
 
1028
 
1004
viewer_seek_to_current:
1029
viewer_seek_to_current:
1005
        mov     eax, dword [ebp+viewer_data.cur_pos]
1030
        mov     eax, dword [ebp+viewer_data.cur_pos]
1006
        mov     edx, dword [ebp+viewer_data.cur_pos+4]
1031
        mov     edx, dword [ebp+viewer_data.cur_pos+4]
1007
viewer_seek:
1032
viewer_seek:
Line 1211... Line 1236...
1211
        call    viewer_get_prev_char
1236
        call    viewer_get_prev_char
1212
        jmp     .2
1237
        jmp     .2
1213
.tab:
1238
.tab:
1214
        push    ecx
1239
        push    ecx
1215
        mov     eax, ecx
1240
        mov     eax, ecx
1216
        mov     ecx, [tabsize]
1241
        mov     ecx, [viewer_tabsize]
1217
        xor     edx, edx
1242
        xor     edx, edx
1218
        div     ecx
1243
        div     ecx
1219
        sub     ecx, edx
1244
        sub     ecx, edx
1220
        add     [esp], ecx
1245
        add     [esp], ecx
1221
        pop     ecx
1246
        pop     ecx
Line 1230... Line 1255...
1230
        dec     [ebp+viewer_data.buf_pos]
1255
        dec     [ebp+viewer_data.buf_pos]
1231
        cmp     [ebp+viewer_data.encoding], encodings.unicode
1256
        cmp     [ebp+viewer_data.encoding], encodings.unicode
1232
        jnz     .2
1257
        jnz     .2
1233
        dec     [ebp+viewer_data.buf_pos]
1258
        dec     [ebp+viewer_data.buf_pos]
1234
.2:
1259
.2:
-
 
1260
        clc
1235
.ret:
1261
.ret:
-
 
1262
        pushf
1236
        call    viewer_set_curpos
1263
        call    viewer_set_curpos
-
 
1264
        popf
1237
        ret
1265
        ret
Line 1238... Line 1266...
1238
 
1266
 
1239
viewer_prev_newline:
1267
viewer_prev_newline:
1240
        test    [ebp+viewer_data.flags], 1
1268
        test    [ebp+viewer_data.flags], 1
Line 1361... Line 1389...
1361
        lea     edi, [eax+keybar_cp-keybar_viewer]
1389
        lea     edi, [eax+keybar_cp-keybar_viewer]
1362
        movsd
1390
        movsd
1363
        movsw
1391
        movsw
1364
        jmp     draw_keybar
1392
        jmp     draw_keybar
Line 1365... Line -...
1365
 
-
 
1366
viewer_OnRedraw:
-
 
1367
        call    viewer_set_keybar
-
 
1368
        call    viewer_draw_text
-
 
1369
        ret
-
 
1370
 
1393
 
1371
viewer_OnExit:
1394
viewer_OnExit:
1372
        mov     edx, [ebp+viewer_data.hPlugin]
1395
        mov     edx, [ebp+viewer_data.hPlugin]
1373
        test    edx, edx
1396
        test    edx, edx
1374
        jz      @f
1397
        jz      @f
Line 1381... Line 1404...
1381
        call    close_handle_if_unused
1404
        call    close_handle_if_unused
1382
@@:
1405
@@:
1383
        ret
1406
        ret
Line 1384... Line 1407...
1384
 
1407
 
-
 
1408
viewer_IsHandleUsed:
1385
viewer_IsHandleUsed:
1409
editor_IsHandleUsed:
1386
        cmp     edx, [ebp+viewer_data.hPlugin]
1410
        cmp     edx, [ebp+viewer_data.hPlugin]
1387
        jnz     @f
1411
        jnz     @f
1388
        cmp     ebx, [ebp+viewer_data.hFile]
1412
        cmp     ebx, [ebp+viewer_data.hFile]
1389
@@:
1413
@@:
Line 1577... Line 1601...
1577
        mov     eax, '    '
1601
        mov     eax, '    '
1578
        stosd
1602
        stosd
1579
        stosd
1603
        stosd
1580
        stosb
1604
        stosb
1581
end if
1605
end if
-
 
1606
        jmp     viewedit_getname
-
 
1607
editor_getname:
-
 
1608
if lang eq ru
-
 
1609
        mov     eax, '¥¤ '
-
 
1610
        stosd
-
 
1611
        mov     eax, 'ªâ®à'
-
 
1612
        stosd
-
 
1613
        mov     eax, '    '
-
 
1614
        stosd
-
 
1615
        stosb
-
 
1616
else
-
 
1617
        mov     eax, 'Edit'
-
 
1618
        stosd
-
 
1619
        mov     eax, '    '
-
 
1620
        stosd
-
 
1621
        stosd
-
 
1622
        stosb
-
 
1623
end if
-
 
1624
viewedit_getname:
1582
        sub     ecx, 13
1625
        sub     ecx, 13
1583
        cmp     [ebp+viewer_data.hPlugin], 0
1626
        cmp     [ebp+viewer_data.hPlugin], 0
1584
        jz      .native
1627
        jz      .native
1585
        lea     esi, [ebp+viewer_data.hostname]
1628
        lea     esi, [ebp+viewer_data.hostname]
1586
        push    ecx edi
1629
        push    ecx edi