From 32b5aca57db1f70f2fc7c483c65a12ba63538bd7 Mon Sep 17 00:00:00 2001 From: hidnplayr Date: Fri, 23 Feb 2024 16:55:00 +0000 Subject: [PATCH] Fixed bug #149 : parsing of subsequent non-printable characters git-svn-id: svn://kolibrios.org@9978 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/network/ircc/ircc.asm | 4 ++-- programs/network/ircc/textbox.inc | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/programs/network/ircc/ircc.asm b/programs/network/ircc/ircc.asm index a12b6be70a..330177187d 100644 --- a/programs/network/ircc/ircc.asm +++ b/programs/network/ircc/ircc.asm @@ -1,6 +1,6 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; -;; Copyright (C) KolibriOS team 2004-2021. All rights reserved. ;; +;; Copyright (C) KolibriOS team 2004-2024. All rights reserved. ;; ;; Distributed under terms of the GNU General Public License ;; ;; ;; ;; IRC client for KolibriOS ;; @@ -13,7 +13,7 @@ ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -version equ '0.34' +version equ '0.35' ; connection status STATUS_DISCONNECTED = 0 diff --git a/programs/network/ircc/textbox.inc b/programs/network/ircc/textbox.inc index c7c47041bd..bedaec6fec 100644 --- a/programs/network/ircc/textbox.inc +++ b/programs/network/ircc/textbox.inc @@ -1,6 +1,6 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; -;; Copyright (C) KolibriOS team 2004-2021. All rights reserved. ;; +;; Copyright (C) KolibriOS team 2004-2024. All rights reserved. ;; ;; Distributed under terms of the GNU General Public License ;; ;; ;; ;; Written by hidnplayr@kolibrios.org ;; @@ -319,6 +319,8 @@ draw_channel_text: push eax .line: + cmp byte[edx], 0x20 + jae .printable cmp byte[edx], 0 je .end_of_text cmp byte[edx], 13 @@ -330,22 +332,27 @@ draw_channel_text: jne .no_colors inc edx call dec_to_esi - jz .no_colors + jz .line mov ecx, [irc_colors + 4*esi] or ecx, 0x30000000 cmp byte[edx], ',' ; background color? - jne .no_colors + jne .line inc edx call dec_to_esi - jz .no_colors + jz .line mov edi, [irc_colors + 4*esi] or ecx, 0x40000000 .no_colors: +; Some non-printable, just skip it + inc edx + jmp .line + ;------------------------------------------- ; Count characters until 0, 10, 13 or 3 byte + .printable: push edx xor esi, esi dec esi @@ -354,8 +361,8 @@ draw_channel_text: cmp esi, [textbox_width] je .cnt_done mov al, byte[edx] - cmp al, 13 - jbe .cnt_done + cmp al, 0x20 + jb .cnt_done inc edx test al, 10000000b