IRCC: Dont skip all colons when searching for string, only skip one. Fixed KICK servercommand.

git-svn-id: svn://kolibrios.org@4595 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
hidnplayr 2014-02-25 22:18:36 +00:00
parent 36a222c11c
commit bed902bcfd
2 changed files with 32 additions and 18 deletions

View File

@ -128,7 +128,7 @@ draw_window: ; Completely redraw the window, recalculate all coordinates and
; draw editbox ; draw editbox
mov eax, [ysize] mov eax, [ysize]
sub eax, 12 ;;;;;; sub eax, 13 ;;;;;;
mov [edit1.top], eax mov [edit1.top], eax
mov eax, [xsize] mov eax, [xsize]

View File

@ -121,7 +121,7 @@ compare_to_nick:
align 4 align 4
skip_parameter: skip_parameter:
; First: skip the parameter ; First: skip the parameter (scan untill space or colon)
.part1: .part1:
lodsb lodsb
cmp al, ' ' cmp al, ' '
@ -129,19 +129,28 @@ skip_parameter:
cmp al, ':' cmp al, ':'
jne .part1 jne .part1
; Now, skip all trailing spaces and semicolons ; Skip all trailing spaces
.part3:
lodsb
cmp al, ' '
je .part3
dec esi
ret
; Now, skip all trailing spaces and first semicolon
.part2: .part2:
lodsb lodsb
cmp al, ' ' cmp al, ' '
je .part2 je .part2
cmp al, ':' cmp al, ':'
je .part2 je .part3
dec esi dec esi
ret ret
cmd_324: cmd_324:
cmd_329: cmd_329:
cmd_328: cmd_328:
@ -708,18 +717,15 @@ cmd_kick:
cmp byte [esi+4], ' ' cmp byte [esi+4], ' '
jne .fail jne .fail
add esi, 5 ; skip 'KICK ' add esi, 5 ; skip 'KICK '
; Is it me who got kicked?
mov edi, servercommand+1
call compare_to_nick
jne .not_me
; TODO: mark channel as disconnected ; TODO: Is it me who got kicked?
; if so, mark channel as disconnected
.not_me: .not_me:
; find the channel user has been kicked from ; find the channel user has been kicked from
push esi push esi
call skip_parameter
call window_open call window_open
push esi
if TIMESTAMP if TIMESTAMP
call print_timestamp call print_timestamp
@ -728,17 +734,25 @@ cmd_kick:
mov esi, kick_header mov esi, kick_header
call print_text2 call print_text2
pop eax
mov dl, ' '
call print_text
mov esi, str_kicked
call print_text2
pop eax
mov dl, ' '
call print_text2
mov esi, str_by
call print_text2
mov eax, servercommand+1 mov eax, servercommand+1
mov dl, '!' mov dl, '!'
call print_text call print_text
mov esi, kicked mov esi, str_dotnewline
call print_text2
pop esi
call print_text2
mov esi, str_newline
call print_text2 call print_text2
mov ebx, [window_print] mov ebx, [window_print]