GNU bug report logs - #14717
24.3.50; Info-try-follow-nearest-node misses some footnotes

Previous Next

Package: emacs;

Reported by: Stephen Berman <stephen.berman <at> gmx.net>

Date: Tue, 25 Jun 2013 18:36:02 UTC

Severity: normal

Found in version 24.3.50

Done: Stephen Berman <stephen.berman <at> gmx.net>

Bug is archived. No further changes may be made.

Full log


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

From: Juri Linkov <juri <at> jurta.org>
To: Stephen Berman <stephen.berman <at> gmx.net>
Cc: 14717 <at> debbugs.gnu.org
Subject: Re: bug#14717: 24.3.50;
 Info-try-follow-nearest-node misses some footnotes
Date: Sat, 29 Jun 2013 00:50:51 +0300
>> BTW, if you are interested what I'm trying to do in bug#14670
>> where I renamed the text property of footnotes from `link' to `shr-url'
>> is to support shr-url links in Info.  The value of the text properly
>> `shr-url' is the target of the link.  The problem is how to address
>> a footnote?  Maybe add a function that finds a footnote.  But I'm afraid
>> that supporting an arbitrary function on the text properly `shr-url'
>> is too unsafe.  So `shr-url' should contain only a string.  The question
>> is in what format to specify a link to a footnote.  Currently it has
>> the value `t'.  Perhaps as a string it could contain a line number
>> of the footnote like "(elisp) Using Interactive (line 42)".
>
> Would that mean the link would have to be manually updated whenever the
> line number of the footnote in the file changes?  If so, it seems
> error-prone.  But I don't know the implementation, maybe that's not an
> issue.  Otherwise, seems like an interesting idea.

`Info-fontify-node' could calculate the line number dynamically
before putting it to the text property `link', but since I have
no idea in what format to put line numbers in links, I'll leave
it unchanged for now.

The main point for bug#14670 is to put a new condition
that checks general links to `Info-try-follow-nearest-node'
either after checking for footnotes, or before checking
for footnotes but with an additional condition

  `(not (eq node t))'

because for footnotes `Info-fontify-node' puts the text property `link'
with the value `t' that should be skipped when the current link
is a link to footnote and not a general link, so another existing
`cond' branch will check whether text at point contains a link for footnote.
I see no problems for footnotes after adding processing of general links
with this patch:

=== modified file 'lisp/info.el'
--- lisp/info.el	2013-06-27 09:20:04 +0000
+++ lisp/info.el	2013-06-27 23:31:27 +0000
@@ -3863,6 +3919,8 @@ (defun Info-try-follow-nearest-node (&op
 If FORK is non-nil, it is passed to `Info-goto-node'."
   (let (node)
     (cond
+     ((and (setq node (get-text-property (point) 'link)) (not (eq node t)))
+      (Info-goto-node node fork))
      ((setq node (Info-get-token (point) "[hf]t?tps?://"
 				 "\\([hf]t?tps?://[^ \t\n\"`({<>})']+\\)"))
       (browse-url node)




This bug report was last modified 11 years and 326 days ago.

Previous Next


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