Subject: Re: bug#59626: 29.0.50; [PATCH] comint-fontify-input: Fix field boundary issue

From: <[email-masked]>
Date: Sun, 27 Nov 2022 13:22:50 +0100

Eli Zaretskii <[email-masked]> writes:

>> Date: Sun, 27 Nov 2022 10:23:57 +0100
>> From: miha--- via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <[email-masked]>
>> 
>> Please find attached a patch which fixes a minor issue with narrowing to
>> fields during comint input fontification. The issue didn't cause any
>> visible bugs that I know of, I only noticed it during experimentation
>> with tree-sitter integration.
>
> Thanks.  Do you have a recipe for demonstrating the problem which you are
> trying to fix?

Instrument comint input fontification with this diff:

diff --git a/lisp/comint.el b/lisp/comint.el
index f47e6089f2..c83da95ad2 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -4083,7 +4083,10 @@ comint--fontify-input-fontify-region
            nil (lambda (beg end)
                  (unless (get-text-property
                           beg 'comint--fontify-input-inhibit-fontification)
-                   (font-lock-fontify-region beg end verbose)))
+                   (font-lock-fontify-region beg end verbose)
+                   ;; Output contents of the visible portion of the
+                   ;; buffer to *Messages*.
+                   (message "%S" (buffer-substring-no-properties (point-min) (point-max)))))
            beg end)))
     (`((jit-lock-bounds ,beg1 . ,_) . (jit-lock-bounds ,_ . ,end1))
      (setq beg (min beg beg1))

Now open up an M-x shell and type "date RET" into the buffer to make
your shell output the current date and an new prompt. Press "C-p C-p
C-e" to move point to "date" and change it into "datee".

Open up *Messages* and find the following strings:

"date"

"date
"

"datee
Sun Nov 27 01:05:27 PM CET 2022
~$ "

These strings represent the context in which shell fontification was
performed on the input. The last one includes "Sun Nov 27 01:05:27 PM
CET 2022\n~$ ", which is a mistake that this patch attempts to fix.
However, in pretty much all cases, this didn't result in any user
visible inaccuracies, since shell fontification of a command rarely
depends on the contents of the lines that follow it.

>> Not that my copyright paperwork renewal is currently in progress, but I
>> hope that the number of lines in this patch fall below the threshold.
>
> Since when your previous assignment became outdated?  I need to know that to
> make sure the cumulative amount of changes we already received from you
> doesn't exceed the limit.

24. of October this year.

Thanks, best regards.