GNU bug report logs - #59810
[PATCH] Fix rcirc-markup-text-functions applying to the whole message

Previous Next

Package: emacs;

Reported by: Thuna <thuna.cing <at> gmail.com>

Date: Sun, 4 Dec 2022 00:01:02 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 59810 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#59810; Package emacs. (Sun, 04 Dec 2022 00:01:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Thuna <thuna.cing <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 04 Dec 2022 00:01:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Thuna <thuna.cing <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: [PATCH] Fix rcirc-markup-text-functions applying to the whole message
Date: Sun, 04 Dec 2022 01:00:19 +0100
[Message part 1 (text/plain, inline)]
Since `rcirc-markup-text-functions' is meant to apply only to the text,
the changed code, which applied it to the entirety of the message was
bugged.  The simplest example is `\me NICK' with `rcirc-color', where
NICK is supposed to be colored but isn't because the message reads
`[... NICK]' and the `]' is recognized as a part of the nick.

The patch should fix the issue, although it is possible that some
already existing functions put to `rcirc-markup-text-functions' will
break due to them expecting the previous behavior.  I still propose the
patch is applied as the issue is a bug on those functions' end and not
rcirc.

[0001-Fix-rcirc-markup-text-functions-applying-to-the-whol.patch (text/x-patch, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#59810; Package emacs. (Mon, 01 May 2023 12:03:01 GMT) Full text and rfc822 format available.

Message #8 received at 59810 <at> debbugs.gnu.org (full text, mbox):

From: Philip Kaludercic <philipk <at> posteo.net>
To: Thuna <thuna.cing <at> gmail.com>
Cc: 59810 <at> debbugs.gnu.org
Subject: Re: bug#59810: [PATCH] Fix rcirc-markup-text-functions applying to
 the whole message
Date: Mon, 01 May 2023 12:02:35 +0000
Thuna <thuna.cing <at> gmail.com> writes:

> Since `rcirc-markup-text-functions' is meant to apply only to the text,
> the changed code, which applied it to the entirety of the message was
> bugged.  The simplest example is `\me NICK' with `rcirc-color', where
> NICK is supposed to be colored but isn't because the message reads
> `[... NICK]' and the `]' is recognized as a part of the nick.

I can not reproduce this, can you give a different example?

> The patch should fix the issue, although it is possible that some
> already existing functions put to `rcirc-markup-text-functions' will
> break due to them expecting the previous behavior.  I still propose the
> patch is applied as the issue is a bug on those functions' end and not
> rcirc.
>
>>From ae0334e422f84941218acdd0a953b6f1f2d34fac Mon Sep 17 00:00:00 2001
> From: Thuna <thuna.cing <at> gmail.com>
> Date: Sun, 4 Dec 2022 00:42:37 +0100
> Subject: [PATCH] Fix `rcirc-markup-text-functions' applying to the whole
>  message
>
> * lisp/net/rcirc.el (rcirc-print): Apply `rcirc-markup-text-functions'
> only to the text part of the message.
> ---
>  lisp/net/rcirc.el | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
> index 1fdf41a35ee..96109dcd5c9 100644
> --- a/lisp/net/rcirc.el
> +++ b/lisp/net/rcirc.el
> @@ -2080,8 +2080,13 @@ rcirc-print
>                               (point)))
>                (when (rcirc-buffer-process)
>                  (save-excursion (rcirc-markup-timestamp sender response))
> -                (dolist (fn rcirc-markup-text-functions)
> -                  (save-excursion (funcall fn sender response)))
> +                (save-restriction
> +                  (when-let ((prop-match (text-property-search-forward 'rcirc-text)))
> +                    (goto-char (prop-match-beginning prop-match))
> +                    (narrow-to-region (prop-match-beginning prop-match)
> +                                      (prop-match-end prop-match))

Why is this necessary, if the only function that would have modified the
buffer gap is `rcirc-markup-timestamp'?

> +                    (dolist (fn rcirc-markup-text-functions)
> +                      (save-excursion (funcall fn sender response)))))
>                  (when rcirc-fill-flag
>                    (save-excursion (rcirc-markup-fill sender response))))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#59810; Package emacs. (Mon, 01 May 2023 20:33:01 GMT) Full text and rfc822 format available.

Message #11 received at 59810 <at> debbugs.gnu.org (full text, mbox):

From: Thuna <thuna.cing <at> gmail.com>
To: Philip Kaludercic <philipk <at> posteo.net>
Cc: 59810 <at> debbugs.gnu.org
Subject: Re: bug#59810: [PATCH] Fix rcirc-markup-text-functions applying to
 the whole message
Date: Mon, 01 May 2023 22:32:41 +0200
>
>> Since `rcirc-markup-text-functions' is meant to apply only to the text,
>> the changed code, which applied it to the entirety of the message was
>> bugged.  The simplest example is `\me NICK' with `rcirc-color', where
>> NICK is supposed to be colored but isn't because the message reads
>> `[... NICK]' and the `]' is recognized as a part of the nick.
>
> I can not reproduce this, can you give a different example?

Nothing else immediately comes to mind, unfortunately.  I am able to
reproduce it, however:
- emacs -Q 
- Load rcirc-color (version 0.4.5 as of now)
- M-x rcirc
- /query fsbot (assuming you're in libera.chat)
- Type a message so that fsbot responds and its color is registered
- "/me fsbot" --- You will see that fsbot is not colored
- "/me fsbot " --- You will see that fsbot is colored

My emacs version is GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu,
GTK+ Version 3.24.34) of 2023-01-09, in case that matters.

>> The patch should fix the issue, although it is possible that some
>> already existing functions put to `rcirc-markup-text-functions' will
>> break due to them expecting the previous behavior.  I still propose the
>> patch is applied as the issue is a bug on those functions' end and not
>> rcirc.

> Why is this necessary, if the only function that would have modified the
> buffer gap is `rcirc-markup-timestamp'?

I do not understand what you are referring to here.




This bug report was last modified 357 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.