GNU bug report logs - #23899
24.5; mouse-on-link-p breaks for positions

Previous Next

Package: emacs;

Reported by: sbaugh <at> catern.com

Date: Tue, 5 Jul 2016 17:45:02 UTC

Severity: normal

Found in version 24.5

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: sbaugh <at> catern.com
Subject: bug#23899: closed (Re: bug#23899: 24.5; mouse-on-link-p breaks
 for positions)
Date: Thu, 07 Jul 2016 16:17:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#23899: 24.5; mouse-on-link-p breaks for positions

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 23899 <at> debbugs.gnu.org.

-- 
23899: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=23899
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Eli Zaretskii <eliz <at> gnu.org>
To: sbaugh <at> catern.com
Cc: 23899-done <at> debbugs.gnu.org
Subject: Re: bug#23899: 24.5; mouse-on-link-p breaks for positions
Date: Thu, 07 Jul 2016 19:16:20 +0300
> From: sbaugh <at> catern.com
> Date: Tue, 05 Jul 2016 13:32:49 -0400
> 
> The documentation for mouse-on-link-p says:
>     POS must be a buffer position in the current buffer or a mouse
>     event location in the selected window (see `event-start').
> However, doing M-: (mouse-on-link-p (point)) fails with a type
> error. And, in general, passing a buffer position to mouse-on-link-p
> fails with a type error.
> 
> This appears to be due to this section of mouse-on-link-p:
>     (let ((area (posn-area pos)))
>       (when area
>         (key-binding (vector area 'follow-link) nil t pos)))
> 
> I would recommend wrapping this in a (and (consp pos) ...) to avoid
> running posn-area on buffer positions. The rest of the function works
> fine, this part was added later.

I don't think any code changes are required.  This is just a
documentation problem: what the doc string fails to tell is that the
function needs POS as a mouse-click position, which is a list.  If you
want to invoke the function at point, you can get the argument by
calling posn-at-point.

I installed a change to that effect on the emacs-25 branch, and I'm
marking this bug "done".

Thanks.

[Message part 3 (message/rfc822, inline)]
From: sbaugh <at> catern.com
To: bug-gnu-emacs <at> gnu.org
Subject: 24.5; mouse-on-link-p breaks for positions
Date: Tue, 05 Jul 2016 13:32:49 -0400
The documentation for mouse-on-link-p says:
    POS must be a buffer position in the current buffer or a mouse
    event location in the selected window (see `event-start').
However, doing M-: (mouse-on-link-p (point)) fails with a type
error. And, in general, passing a buffer position to mouse-on-link-p
fails with a type error.

This appears to be due to this section of mouse-on-link-p:
    (let ((area (posn-area pos)))
      (when area
        (key-binding (vector area 'follow-link) nil t pos)))

I would recommend wrapping this in a (and (consp pos) ...) to avoid
running posn-area on buffer positions. The rest of the function works
fine, this part was added later.



This bug report was last modified 9 years and 6 days ago.

Previous Next


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