GNU bug report logs -
#77747
'cursor-face-highlight-mode' signals 'args-out-of-range' in narrowed buffer
Previous Next
Reported by: Ship Mints <shipmints <at> gmail.com>
Date: Fri, 11 Apr 2025 15:33:02 UTC
Severity: normal
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
On Fri, Apr 25, 2025 at 2:37 PM Eli Zaretskii <eliz <at> gnu.org> wrote:
> > From: Ship Mints <shipmints <at> gmail.com>
> > Date: Fri, 25 Apr 2025 12:21:40 -0400
> > Cc: 77747 <at> debbugs.gnu.org
> >
> > On Fri, Apr 25, 2025 at 10:58 AM Ship Mints <shipmints <at> gmail.com> wrote:
> >
> > On Fri, Apr 25, 2025 at 9:51 AM Ship Mints <shipmints <at> gmail.com> wrote:
> >
> > On Sun, Apr 13, 2025 at 5:52 AM Eli Zaretskii <eliz <at> gnu.org> wrote:
> >
> > > From: Ship Mints <shipmints <at> gmail.com>
> > > Date: Fri, 11 Apr 2025 11:32:18 -0400
> > >
> > > -Q reproducer
> > >
> > > ;; The culprit appears to be `redisplay--update-cursor-face-highlight'
> > > (setq debug-on-error t)
> > > (cursor-face-highlight-mode)
> > > (save-excursion (insert (propertize "cursor face text\n"
> > > 'cursor-face 'region)))
> > > (narrow-to-region (pos-bol) (pos-eol))
> > > (setq unread-command-events (mapcar #'identity
> > > (kbd "C-n")))
> >
> > Thanks, does the below fix it?
> >
> > diff --git a/lisp/simple.el b/lisp/simple.el
> > index ee09a6f..9e9dd15 100644
> > --- a/lisp/simple.el
> > +++ b/lisp/simple.el
> > @@ -7265,7 +7265,7 @@ redisplay--update-cursor-face-highlight
> > (pt (window-point window))
> > (cursor-face (get-text-property pt 'cursor-face)))
> > (let* ((start (previous-single-property-change
> > - (1+ pt) 'cursor-face nil (point-min)))
> > + (min (1+ pt) (point-min)) 'cursor-face nil
> (point-min)))
> > (end (next-single-property-change
> > pt 'cursor-face nil (point-max)))
> > (new (redisplay--highlight-overlay-function
> >
> > Eli, possible to apply the above soon?
> >
> > Actually, I'm back to thinking this is better or the effect is that the
> whole buffer can wind up being
> > unexpectedly highlighted:
> >
> > (min (1+ pt) (pos-bol)) 'cursor-face nil
> (point-min)))
> >
> > To be clearer:
> >
> > The original condition (1+ pt) 'cursor-face nil (point-min))) works fine
> in a wide buffer.
> >
> > The condition (min (1+ pt) (point-min)) 'cursor-face nil (point-min)))
> in a wide buffer winds up highlighting all
> > the way to point-min in a buffer where every line has 'cursor-face which
> is undesirable.
>
> It should obviously be point-max, not point-min.
>
Yeah. Of course. Feel free to apply AFAIC.
[Message part 2 (text/html, inline)]
This bug report was last modified 118 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.