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 |