/programs/network/ircc/ircc.asm |
---|
13,7 → 13,7 |
;; ;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
version equ '0.33' |
version equ '0.34' |
; connection status |
STATUS_DISCONNECTED = 0 |
/programs/network/ircc/serverparser.inc |
---|
1,6 → 1,6 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;; ;; |
;; Copyright (C) KolibriOS team 2004-2018. All rights reserved. ;; |
;; Copyright (C) KolibriOS team 2004-2021. All rights reserved. ;; |
;; Distributed under terms of the GNU General Public License ;; |
;; ;; |
;; Written by hidnplayr@kolibrios.org ;; |
65,7 → 65,9 |
dd '311 ', cmd_justprint ; RPL_WHOISUSER |
dd '312 ', cmd_justprint ; RPL_WHOISSERVER |
dd '317 ', cmd_justprint ; RPL_WHOISIDLE |
dd '318 ', cmd_justprint ; RPL_ENDOFWHOIS |
dd '319 ', cmd_justprint ; RPL_WHOISCHANNELS |
dd '322 ', cmd_322 ; RPL_LIST |
dd '323 ', cmd_323 ; RPL_LISTEND |
dd '324 ', cmd_justprint ; RPL_CHANNELMODEIS |
74,6 → 76,7 |
dd '330 ', cmd_justprint |
dd '332 ', cmd_topic ; topic |
dd '333 ', cmd_333 ; nickname and time of topic |
dd '338 ', cmd_justprint ; RPL_CHANPASSOK |
dd '353 ', cmd_353 ; name reply |
dd '366 ', cmd_366 ; end of names list |
dd '372 ', cmd_justprint ; motd |
83,6 → 86,7 |
dd '432 ', cmd_justprint ; erroneous nickname |
dd '433 ', cmd_justprint ; nickname already in use |
dd '436 ', cmd_justprint ; nickname collision |
dd '671 ', cmd_justprint ; RPL_WHOISSECURE |
dd 'join', cmd_join |
dd 'kick', cmd_kick |
/programs/network/ircc/textbox.inc |
---|
1,6 → 1,6 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;; ;; |
;; Copyright (C) KolibriOS team 2004-2016. All rights reserved. ;; |
;; Copyright (C) KolibriOS team 2004-2021. All rights reserved. ;; |
;; Distributed under terms of the GNU General Public License ;; |
;; ;; |
;; Written by hidnplayr@kolibrios.org ;; |
175,6 → 175,12 |
;----------------------------------------------- |
; Draw text of the current window to the screen |
; |
; IN: / |
; OUT: / |
;----------------------------------------------- |
draw_channel_text: |
mov edi, [window_active] |
312,7 → 318,6 |
popa |
push eax |
mov esi, [textbox_width] |
.line: |
cmp byte[edx], 0 |
je .end_of_text |
321,7 → 326,6 |
cmp byte[edx], 10 |
je .newline_hard |
push esi |
cmp byte[edx], 3 ; escape code for mIRC colors |
jne .no_colors |
inc edx |
339,30 → 343,47 |
or ecx, 0x40000000 |
.no_colors: |
mov esi, 1 |
mcall 4 ; draw text |
;------------------------------------------- |
; Count characters until 0, 10, 13 or 3 byte |
mov esi, 1 |
push edx |
xor esi, esi |
dec esi |
.next_char: |
inc esi |
cmp esi, [textbox_width] |
je .cnt_done |
mov al, byte[edx] |
cmp al, 13 |
jbe .cnt_done |
inc edx |
test al, 10000000b |
jz @f |
mov esi, 4 |
jz .next_char ; 1 byte wide |
add edx, 4 |
and al, 11111000b |
cmp al, 11110000b |
je @f |
dec esi |
je .next_char ; 4 bytes wide |
dec edx |
and al, 11110000b |
cmp al, 11100000b |
je @f |
dec esi |
@@: |
je .next_char ; 3 bytes wide |
dec edx ; 2 bytes wide |
jmp .next_char |
.cnt_done: |
mov eax, edx |
pop edx |
push eax |
mcall 4 ; draw text |
pop edx ; next start ptr |
add ebx, FONT_WIDTH shl 16 |
add edx, esi |
pop esi |
dec esi |
jnz .line |
jmp .line_full |
cmp esi, [textbox_width] |
je .line_full |
imul esi, FONT_WIDTH shl 16 |
add ebx, esi |
jmp .line |
.newline_hard: |
mov ecx, [colors.work_text] |