Subject: Re: bug#23899: 24.5; mouse-on-link-p breaks for positions
From: Eli Zaretskii <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Thu, 07 Jul 2016 19:16:20 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: [email-masked]
> 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.