Subversion Repositories Kolibri OS

Rev

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

Rev 4060 Rev 4143
Line 1... Line 1...
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                                 ;;
2
;;                                                                 ;;
3
;; Copyright (C) KolibriOS team 2004-2013. All rights reserved.    ;;
3
;; Copyright (C) KolibriOS team 2004-2013. All rights reserved.    ;;
4
;; Distributed under terms of the GNU General Public License       ;;
4
;; Distributed under terms of the GNU General Public License       ;;
5
;;                                                                 ;;
5
;;                                                                 ;;
-
 
6
;;   Written by hidnplayr@kolibrios.org                            ;;
6
;;                                                                 ;;
7
;;                                                                 ;;
7
;;         GNU GENERAL PUBLIC LICENSE                              ;;
8
;;         GNU GENERAL PUBLIC LICENSE                              ;;
8
;;          Version 2, June 1991                                   ;;
9
;;          Version 2, June 1991                                   ;;
9
;;                                                                 ;;
10
;;                                                                 ;;
10
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
11
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 46... Line 47...
46
 
47
 
Line 47... Line 48...
47
server_commands:
48
server_commands:
48
 
49
 
-
 
50
        dd      '322 ', cmd_322         ; RPL_LIST
49
        dd      '322 ', cmd_322         ; RPL_LIST
51
        dd      '323 ', cmd_323         ; RPL_LISTEND
-
 
52
        dd      '324 ', cmd_324 ;;;;
50
        dd      '323 ', cmd_323         ; RPL_LISTEND
53
        dd      '328 ', cmd_328         ; RPL_CHANNEL_URL
51
        dd      '328 ', cmd_328         ; RPL_CHANNEL_URL
54
        dd      '329 ', cmd_329
52
        dd      '332 ', cmd_topic
55
        dd      '332 ', cmd_topic
53
        dd      '333 ', cmd_333         ; nickname and time of topic
56
        dd      '333 ', cmd_333         ; nickname and time of topic
54
        dd      '353 ', cmd_353         ; name reply
57
        dd      '353 ', cmd_353         ; name reply
Line 108... Line 111...
108
  .not_equal:
111
  .not_equal:
109
        or      eax, -1
112
        or      eax, -1
110
        pop     esi
113
        pop     esi
111
        ret
114
        ret
Line -... Line 115...
-
 
115
 
-
 
116
 
112
 
117
 
113
align 4
118
align 4
Line 114... Line 119...
114
skip_nick:
119
skip_nick:
115
 
120
 
Line 133... Line 138...
133
 
138
 
Line -... Line 139...
-
 
139
        ret
-
 
140
 
134
        ret
141
 
135
 
142
 
136
 
143
cmd_324:
137
 
144
cmd_329:
138
cmd_328:
145
cmd_328:
Line 147... Line 154...
147
 
154
 
148
        cmp     byte[servercommand], ':'
155
        cmp     byte[servercommand], ':'
Line 149... Line 156...
149
        jne     .gogogo
156
        jne     .gogogo
-
 
157
 
-
 
158
        mov     byte [esi-1], 0
-
 
159
        if TIMESTAMP
-
 
160
        call    print_timestamp
150
 
161
        end if
151
        mov     byte [esi-1], 0
162
 
152
        push    esi
163
        push    esi
153
        mov     esi, str_1
164
        mov     esi, str_1
-
 
165
        call    print_text2
154
        call    print_text2
166
        mov     eax, servercommand+1
155
        mov     esi, servercommand+1
167
        mov     dl, '!'
156
        call    print_text2
168
        call    print_text
157
        mov     esi, str_2
169
        mov     esi, str_2
Line 158... Line 170...
158
        call    print_text2
170
        call    print_text2
Line 175... Line 187...
175
        cmp     byte [esi], ' '
187
        cmp     byte [esi], ' '
176
        je      .loop2
188
        je      .loop2
177
        cmp     byte [esi], ':'
189
        cmp     byte [esi], ':'
178
        je      .loop2
190
        je      .loop2
Line -... Line 191...
-
 
191
 
179
 
192
  .fail:
180
        call    print_text2
193
        call    print_text2
181
        mov     esi, str_newline
194
        mov     esi, str_newline
Line 182... Line -...
182
        call    print_text2
-
 
183
 
-
 
184
  .fail:
195
        call    print_text2
Line 185... Line 196...
185
 
196
 
Line 210... Line 221...
210
 
221
 
Line -... Line 222...
-
 
222
 
-
 
223
 
-
 
224
cmd_privmsg:
-
 
225
 
211
 
226
        mov     eax, dword[esi+4]
212
 
227
        or      eax, 0x20202020
Line 213... Line 228...
213
cmd_privmsg:
228
        cmp     eax, 'msg '
214
 
229
        jne     .fail
Line 215... Line -...
215
        add     esi, 8          ; skip 'PRIVMSG '
-
 
216
        call    window_open     ; esi now points to end of destination name
-
 
217
 
-
 
218
        cmp     byte[esi], 1
230
        add     esi, 8          ; skip 'PRIVMSG '
219
        je      cmd_ctcp
231
        call    window_open     ; esi now points to end of destination name
220
 
232
 
221
        cmp     dword[esi], 'ACTI'      ; Action?
233
        cmp     byte[esi], 1    ; Client to Client protocol?
Line 222... Line 234...
222
        je      .action
234
        je      cmd_ctcp
Line 247... Line 259...
247
        call    print_character
259
        call    print_character
Line 248... Line 260...
248
 
260
 
249
  .fail:
261
  .fail:
Line 250... Line -...
250
        ret
-
 
251
 
-
 
252
  .action:
-
 
253
        add     esi, 8
-
 
254
        push    esi
-
 
255
        if TIMESTAMP
-
 
256
        call    print_timestamp
-
 
257
        end if
-
 
258
 
-
 
259
        mov     esi, action_header_short
-
 
260
        call    print_text2
-
 
261
 
-
 
262
        mov     eax, servercommand+1
-
 
263
        mov     dl, ' '
-
 
264
        call    print_text
-
 
265
 
-
 
266
        mov     bl, ' '
-
 
267
        call    print_character
-
 
268
 
-
 
269
        pop     esi
-
 
270
        call    print_text2
-
 
271
 
-
 
272
        mov     bl, 10
-
 
273
        call    print_character
-
 
Line 274... Line 262...
274
 
262
        ret
-
 
263
 
-
 
264
 
-
 
265
 
275
        ret
266
 
-
 
267
cmd_ctcp:
-
 
268
 
Line 276... Line 269...
276
 
269
        cmp     byte [esi+4], ' '
277
 
270
        jne     .fail
278
 
-
 
279
cmd_ctcp:
271
        inc     esi
280
        inc     esi
272
        mov     eax, dword[esi]
281
 
-
 
282
        cmp     dword[esi], 'VERS'
273
        or      eax, 0x20202020
283
        je      .version
274
 
-
 
275
        cmp     eax, 'vers'
-
 
276
        je      .version
-
 
277
        cmp     eax, 'time'
-
 
278
        je      .time
-
 
279
        cmp     eax, 'ping'
-
 
280
        je      .ping
-
 
281
        cmp     eax, 'acti'
-
 
282
        je      .action
Line 284... Line 283...
284
 
283
;        cmp     eax, 'dcc '    ; TODO
Line 285... Line 284...
285
        cmp     dword[esi], 'TIME'
284
;        je      cmd_dcc
286
        je      .time
285
 
Line 373... Line 372...
373
        mov     esi, ctcp_ping
372
        mov     esi, ctcp_ping
374
        call    print_text2
373
        call    print_text2
Line 375... Line 374...
375
 
374
 
Line -... Line 375...
-
 
375
        ret
-
 
376
 
-
 
377
  .action:
-
 
378
        add     esi, 7
-
 
379
        push    esi
-
 
380
 
-
 
381
        if TIMESTAMP
-
 
382
        call    print_timestamp
-
 
383
        end if
-
 
384
 
-
 
385
        mov     esi, action_header
-
 
386
        call    print_text2
-
 
387
 
-
 
388
        mov     eax, servercommand+1    ; print nickname
-
 
389
        mov     dl, '!'
-
 
390
        call    print_text
-
 
391
 
-
 
392
        mov     bl, ' '
-
 
393
        call    print_character
-
 
394
 
-
 
395
        pop     esi
-
 
396
        call    print_text2             ; print message
-
 
397
 
-
 
398
        mov     bl, 10
-
 
399
        call    print_character
-
 
400
 
-
 
401
        ret
-
 
402
 
-
 
403
 
-
 
404
cmd_dcc:
-
 
405
        add     esi, 4
-
 
406
        mov     eax, dword[esi]
-
 
407
        or      eax, 0x202020
-
 
408
 
-
 
409
        cmp     eax, 'send'
-
 
410
        je      .send
-
 
411
 
-
 
412
        ret
-
 
413
 
-
 
414
  .send:
-
 
415
 
Line 376... Line 416...
376
        ret
416
        ret
Line 377... Line 417...
377
 
417
 
378
 
-
 
379
 
418
 
380
ctcp_reply:
419
 
Line 381... Line 420...
381
 
420
ctcp_reply:
382
        push    esi
421
 
Line 423... Line 462...
423
        ret
462
        ret
Line 424... Line 463...
424
 
463
 
-
 
464
 
-
 
465
 
-
 
466
cmd_part:
425
 
467
 
426
 
-
 
427
cmd_part:
-
 
428
        add     esi, 5  ; skip 'PART '
-
 
429
        push    esi
-
 
Line 430... Line 468...
430
        call    skip_nick
468
        cmp     byte [esi+4], ' '
431
        call    window_open
469
        jne     .fail
432
        pop     esi
470
        add     esi, 5  ; skip 'PART '
433
 
471
 
Line 434... Line 472...
434
; Is it me who parted?
472
; Is it me who parted?
435
        mov     edi, servercommand+1
473
        mov     edi, servercommand+1
-
 
474
        call    compare_to_nick
-
 
475
        jne     .dont_close
436
        call    compare_to_nick
476
 
-
 
477
; yes, close the window (if its open)
-
 
478
        call    window_find
Line 437... Line 479...
437
        jne     .dont_close
479
        test    ebx, ebx
Line -... Line 480...
-
 
480
        jz      @f
438
 
481
        call    window_close
439
; yes, close the window
482
  @@:
440
        mov     edi, [window_print]
483
  .fail:
-
 
484
 
-
 
485
        ret
-
 
486
 
441
        mov     [edi + window.flags], FLAG_UPDATED + FLAG_CLOSE
487
 
442
 
488
; somebody else parted, just print message
Line 443... Line 489...
443
        ret
489
  .dont_close:
444
 
490
        push    esi
445
; somebody else parted, just print message
491
        call    skip_nick
Line 469... Line 515...
469
        ret
515
        ret
Line 470... Line 516...
470
 
516
 
-
 
517
 
-
 
518
 
-
 
519
cmd_join:
471
 
520
 
Line 472... Line 521...
472
 
521
        cmp     byte [esi+4], ' '
473
cmd_join:
522
        jne     .fail
474
        add     esi, 5  ; skip 'JOIN '
523
        add     esi, 5  ; skip 'JOIN '
Line 486... Line 535...
486
        je      .free_found
535
        je      .free_found
487
        add     ebx, sizeof.window
536
        add     ebx, sizeof.window
488
        dec     ecx
537
        dec     ecx
489
        jnz     .loop
538
        jnz     .loop
490
; Error: no more available windows!! ;;;;; TODO
539
; Error: no more available windows!! ;;;;; TODO
491
  .fail:
540
 
492
        ret
541
        ret
Line 493... Line 542...
493
 
542
 
494
  .free_found:
-
 
495
        push    ebx
543
  .free_found:
496
        call    window_create
-
 
497
        pop     ebx
544
        call    window_create
498
        test    eax, eax
545
        test    eax, eax
499
        jz      .fail
-
 
500
        mov     [ebx + window.data_ptr], eax
546
        jz      .fail
501
        mov     [ebx + window.type], WINDOWTYPE_CHANNEL
-
 
Line 502... Line 547...
502
        mov     [ebx + window.flags], 0
547
        mov     [ebx + window.type], WINDOWTYPE_CHANNEL
Line 503... Line 548...
503
 
548
 
504
        call    window_set_name
549
        call    window_set_name
-
 
550
 
-
 
551
        mov     [window_active], ebx
505
 
552
        mov     [window_print], ebx
-
 
553
 
Line 506... Line 554...
506
        mov     [window_active], ebx
554
        if TIMESTAMP
507
        mov     [window_print], ebx
555
        call    print_timestamp
508
        call    window_refresh
556
        end if
Line 509... Line 557...
509
 
557
 
510
        push    esi
558
        push    esi
Line 527... Line 575...
527
 
575
 
528
  .no_new_window:
576
  .no_new_window:
529
        push    esi
577
        push    esi
Line -... Line 578...
-
 
578
        call    window_open
-
 
579
 
-
 
580
        if TIMESTAMP
-
 
581
        call    print_timestamp
530
        call    window_open
582
        end if
531
 
583
 
Line 532... Line 584...
532
        mov     esi, action_header
584
        mov     esi, join_header
533
        call    print_text2
585
        call    print_text2
534
 
586
 
Line 547... Line 599...
547
 
599
 
548
        mov     ebx, [window_print]
600
        mov     ebx, [window_print]
549
        mov     esi, servercommand+1
601
        mov     esi, servercommand+1
Line -... Line 602...
-
 
602
        call    user_add
-
 
603
 
550
        call    user_add
604
  .fail:
Line 551... Line 605...
551
 
605
 
552
        ret
-
 
553
 
-
 
Line -... Line 606...
-
 
606
        ret
-
 
607
 
554
 
608
 
-
 
609
 
555
 
610
 
556
 
611
cmd_nick:
557
cmd_nick:
612
 
Line 558... Line -...
558
; NOTE: This command applies to a user, and thus has no specific channel
-
 
559
        add     esi, 5  ; skip 'NICK '
-
 
560
 
-
 
561
        cmp     byte[esi], ':'          ; TODO: skip all spaces and semicolons?
-
 
562
        jne     @f
-
 
563
        inc     esi
-
 
564
       @@:
-
 
565
 
-
 
566
; Change the nick in the current userlist. TODO: check other channels too!
-
 
567
        push    esi
-
 
568
        mov     ebx, [window_print]
-
 
569
 
-
 
570
        mov     esi, servercommand+1
613
        cmp     byte[esi+4], ' '
-
 
614
        jne     .fail
571
        call    user_remove
615
        add     esi, 5          ; skip 'NICK '
572
 
616
        cmp     byte[esi], ':'
573
        mov     esi, [esp]
-
 
574
        call    user_add
617
        jne     @f
Line 575... Line 618...
575
 
618
        inc     esi
576
        call    redraw_channel_list
619
  @@:
577
 
620
 
578
; Is it me who changed nick?
621
; Is it me who changed nick?
579
        mov     edi, servercommand+1
622
        push    esi
580
        call    compare_to_nick
623
        mov     edi, servercommand+1
581
        pop     esi
624
        call    compare_to_nick
-
 
625
        jne     .not_me
-
 
626
 
582
        jne     .not_me
627
        mov     ecx, MAX_NICK_LEN-1
-
 
628
        mov     esi, [esp]
-
 
629
  @@:
583
 
630
        lodsb
584
        mov     ecx, MAX_NICK_LEN-1
631
        test    al, al
585
        push    esi
632
        jz      @f
586
  .copyloop:
633
        cmp     al, ' '
587
        lodsb
634
        je      @f
588
        test    al, al
635
        cmp     al, 10
589
        jz      .copydone
-
 
590
        cmp     al, ' '
636
        je      @f
Line -... Line 637...
-
 
637
        cmp     al, 13
591
        je      .copydone
638
        je      @f
-
 
639
        stosb
592
        stosb
640
        dec     ecx
-
 
641
        jnz     @r
-
 
642
  @@:
-
 
643
        xor     al, al
-
 
644
        stosb
-
 
645
  .not_me:
-
 
646
 
-
 
647
        mov     ebx, windows
-
 
648
        mov     ecx, MAX_WINDOWS
-
 
649
  .window_loop:
-
 
650
        push    ecx ebx
-
 
651
        cmp     [ebx + window.type], WINDOWTYPE_CHANNEL
-
 
652
        jne     .next_window
-
 
653
 
-
 
654
        mov     esi, servercommand+1
-
 
655
        call    user_remove
-
 
656
        test    edi, edi
-
 
657
        jz      .next_window
593
        dec     ecx
658
 
594
        jnz     .copyloop
659
        mov     esi, [esp + 8]
Line 595... Line 660...
595
  .copydone:
660
        call    user_add
596
        xor     al, al
661
 
597
        stosb
662
        mov     [window_print], ebx
Line 598... Line 663...
598
        pop     esi
663
 
599
  .not_me:
664
        if TIMESTAMP
Line 600... Line 665...
600
 
665
        call    print_timestamp
601
; Now print a message on the current channel
666
        end if
Line 602... Line 667...
602
        push    esi
667
 
603
        mov     esi, action_header_short
668
        mov     esi, nick_header
Line -... Line 669...
-
 
669
        call    print_text2
-
 
670
 
-
 
671
        mov     eax, servercommand+1
-
 
672
        mov     dl, '!'
-
 
673
        call    print_text
-
 
674
 
-
 
675
        mov     esi, is_now_known_as
-
 
676
        call    print_text2
-
 
677
 
-
 
678
        mov     esi, [esp + 8]  ; FIXME: dont print the 0x0a0d!!!
604
        call    print_text2
679
        call    print_text2
Line 605... Line 680...
605
 
680
 
-
 
681
        mov     esi, str_newline
-
 
682
        call    print_text2
-
 
683
 
606
        mov     eax, servercommand+1
684
  .next_window:
607
        mov     dl, '!'
685
        pop     ebx ecx
608
        call    print_text
686
        add     ebx, sizeof.window
609
 
687
        dec     ecx
610
        mov     esi, is_now_known_as
688
        jnz     .window_loop
Line 634... Line 712...
634
; find the channel user has been kicked from
712
; find the channel user has been kicked from
635
        push    esi
713
        push    esi
636
        call    skip_nick
714
        call    skip_nick
637
        call    window_open
715
        call    window_open
Line -... Line 716...
-
 
716
 
-
 
717
        if TIMESTAMP
-
 
718
        call    print_timestamp
-
 
719
        end if
638
 
720
 
639
        mov     esi, action_header_short
721
        mov     esi, kick_header
Line 640... Line 722...
640
        call    print_text2
722
        call    print_text2
641
 
723
 
642
        mov     eax, servercommand+1
724
        mov     eax, servercommand+1
Line 654... Line 736...
654
 
736
 
655
        mov     ebx, [window_print]
737
        mov     ebx, [window_print]
656
        mov     esi, servercommand+1
738
        mov     esi, servercommand+1
Line -... Line 739...
-
 
739
        call    user_remove
-
 
740
 
657
        call    user_remove
741
  .fail:
Line 658... Line 742...
658
 
742
 
659
        ret
-
 
Line -... Line 743...
-
 
743
        ret
-
 
744
 
-
 
745
 
-
 
746
 
-
 
747
cmd_quit:
-
 
748
 
-
 
749
        cmp     byte [esi+4], ' '
-
 
750
        jne     .fail
-
 
751
 
-
 
752
        mov     ebx, windows
-
 
753
        mov     ecx, MAX_WINDOWS
-
 
754
 
-
 
755
  .window_loop:
-
 
756
        push    ecx
-
 
757
        cmp     [ebx + window.type], WINDOWTYPE_CHANNEL
-
 
758
        jne     .next_window
-
 
759
 
-
 
760
        mov     esi, servercommand+1
-
 
761
        call    user_remove
-
 
762
        test    edi, edi
-
 
763
        jz      .next_window
-
 
764
 
-
 
765
        push    ebx
660
 
766
        mov     [window_print], ebx
661
 
767
 
Line 662... Line 768...
662
 
768
        if TIMESTAMP
663
cmd_quit:
769
        call    print_timestamp
664
; NOTE: This command applies to a user, and thus has no specific channel
770
        end if
Line 665... Line 771...
665
 
771
 
666
        mov     esi, action_header
772
        mov     esi, quit_header
Line 667... Line 773...
667
        call    print_text2
773
        call    print_text2
668
 
774
 
-
 
775
        mov     eax, servercommand+1
-
 
776
        mov     dl, '!'
669
        mov     eax, servercommand+1
777
        call    print_text
-
 
778
 
670
        mov     dl, '!'
779
        mov     esi, has_quit_irc
-
 
780
        call    print_text2
-
 
781
 
-
 
782
; TODO: check if quit message was given, and print it to the window
Line 671... Line 783...
671
        call    print_text
783
        pop     ebx
Line 672... Line 784...
672
 
784
  .next_window:
Line -... Line 785...
-
 
785
        pop     ecx
-
 
786
        add     ebx, sizeof.window
673
        mov     esi, has_quit_irc
787
        dec     ecx
-
 
788
        jnz     .window_loop
-
 
789
 
-
 
790
  .fail:
Line -... Line 791...
-
 
791
 
-
 
792
 
-
 
793
        ret
-
 
794
 
-
 
795
 
-
 
796
 
-
 
797
cmd_mode:
-
 
798
 
-
 
799
        cmp     byte [esi+4], ' '
-
 
800
        jne     .fail
-
 
801
        add     esi, 5  ; skip 'MODE '
674
        call    print_text2
802
        call    window_find
-
 
803
        test    ebx, ebx
-
 
804
        jz      .fail
-
 
805
 
-
 
806
; skip channel name
-
 
807
  @@:
675
 
808
        lodsb
676
; TODO: check other channels on same server too!
809
        test    al, al
Line 677... Line 810...
677
        mov     ebx, [window_print]
810
        jz      .fail
678
        mov     esi, servercommand+1
811
        cmp     al, 10
679
        call    user_remove
812
        je      .fail
Line 680... Line 813...
680
 
813
        cmp     al, 13
681
        ret
814
        je      .fail
Line 703... Line 836...
703
        mov     esi, str_newline
836
        mov     esi, str_newline
704
        call    print_text2
837
        call    print_text2
Line 705... Line 838...
705
 
838
 
Line -... Line 839...
-
 
839
;;; TODO: change username if needed
-
 
840
 
706
;;; TODO: change username if needed
841
  .fail:
Line 707... Line 842...
707
 
842
 
Line 737... Line 872...
737
        cmp     al, ' '                 ; names list is separated with spaces
872
        cmp     al, ' '                 ; names list is separated with spaces
738
        jne     .namesloop
873
        jne     .namesloop
739
        jmp     .add
874
        jmp     .add
Line 740... Line 875...
740
 
875
 
741
  .done:
876
  .done:
Line 742... Line 877...
742
        call    redraw_channel_list
877
        call    draw_channel_list
Line 765... Line 900...
765
 
900
 
766
        add     esi, 4          ; skip '332 '
901
        add     esi, 4          ; skip '332 '
767
        call    skip_nick
902
        call    skip_nick
Line -... Line 903...
-
 
903
        call    window_open
-
 
904
 
-
 
905
        if TIMESTAMP
-
 
906
        call    print_timestamp
768
        call    window_open
907
        end if
769
 
908
 
770
        push    esi
909
        push    esi
Line 771... Line 910...
771
        mov     esi, action_header
910
        mov     esi, topic_header
772
        call    print_text2
911
        call    print_text2
Line 797... Line 936...
797
;        cmp     al, ' '
936
;        cmp     al, ' '
798
;        jne     .loop
937
;        jne     .loop
799
;        dec     ecx
938
;        dec     ecx
800
;        jnz     .loop   ; find some more spaces
939
;        jnz     .loop   ; find some more spaces
Line -... Line 940...
-
 
940
 
-
 
941
        if TIMESTAMP
-
 
942
        call    print_timestamp
-
 
943
        end if
801
 
944
 
802
        push    esi
945
        push    esi
803
        mov     esi, action_header
946
        mov     esi, topic_header
Line 804... Line 947...
804
        call    print_text2
947
        call    print_text2
805
 
948
 
Line 817... Line 960...
817
        call    print_text2
960
        call    print_text2
Line 818... Line 961...
818
 
961
 
819
  .fail:
962
  .fail:
Line 820... Line 963...
820
        ret
963
        ret
-
 
964
 
821
 
965
cmd_322:        ; LIST
Line -... Line 966...
-
 
966
 
822
cmd_322:
967
        add     esi, 4
823
        add     esi, 4
-
 
-
 
968
 
-
 
969
        mov     [window_print], windows         ; FIXME
824
 
970
        call    skip_nick
825
        call    skip_nick
-
 
826
 
971
        mov     eax, esi
827
        call    print_text2
972
        mov     dl, 13
Line 828... Line 973...
828
 
973
        call    print_text
Line 829... Line 974...
829
        mov     esi, str_newline
974
        mov     esi, str_newline
Line 830... Line 975...
830
        call    print_text2
975
        call    print_text2
831
 
976