GNU bug report logs -
#14717
24.3.50; Info-try-follow-nearest-node misses some footnotes
Previous Next
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
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Thu, 27 Jun 2013 11:37:16 +0200
with message-id <87d2r7vqr7.fsf <at> rosalinde.fritz.box>
and subject line Re: bug#14717: 24.3.50; Info-try-follow-nearest-node misses some footnotes
has caused the debbugs.gnu.org bug report #14717,
regarding 24.3.50; Info-try-follow-nearest-node misses some footnotes
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
14717: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14717
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
0. emacs -Q
1. Type `C-h i m Elisp RET m Using Interactive RET TAB TAB TAB' to put
point on the left parent of the reference mark for footnote (1) in
this node.
2. Type RET, expecting to jump to the footnote, but instead:
=> user-error: No such node or anchor: It may be a string; its contents
are a sequence of elements
The reason is that in Info-try-follow-nearest-node the search for a node
name succeeds, so it never gets to the footnote search, but the matching
string is not a node name, so user-error is signalled. The following
patch makes the footnote search and hence jumping to the footnote in
that node succeed, but I'll defer to the judgment of the Info or regexp
gurus as to whether it's the best fix.
=== modified file 'lisp/info.el'
*** lisp/info.el 2013-05-27 22:42:11 +0000
--- lisp/info.el 2013-06-25 18:24:56 +0000
***************
*** 3870,3892 ****
((setq node (Info-get-token (point) "\\*note[ \n\t]+"
"\\*note[ \n\t]+\\([^:]*\\):\\(:\\|[ \n\t]*(\\)?"))
(Info-follow-reference node fork))
- ;; menu item: node name
- ((setq node (Info-get-token (point) "\\* +" "\\* +\\([^:]*\\)::"))
- (Info-goto-node node fork))
- ;; menu item: node name or index entry
- ((Info-get-token (point) "\\* +" "\\* +\\(.*\\): ")
- (beginning-of-line)
- (forward-char 2)
- (setq node (Info-extract-menu-node-name nil (Info-index-node)))
- (Info-goto-node node fork))
- ((setq node (Info-get-token (point) "Up: " "Up: \\([^,\n\t]*\\)"))
- (Info-goto-node node fork))
- ((setq node (Info-get-token (point) "Next: " "Next: \\([^,\n\t]*\\)"))
- (Info-goto-node node fork))
- ((setq node (Info-get-token (point) "File: " "File: \\([^,\n\t]*\\)"))
- (Info-goto-node "Top" fork))
- ((setq node (Info-get-token (point) "Prev: " "Prev: \\([^,\n\t]*\\)"))
- (Info-goto-node node fork))
;; footnote
((setq node (Info-get-token (point) "(" "\\(([0-9]+)\\)"))
(let ((old-point (point)) new-point)
--- 3870,3875 ----
***************
*** 3904,3910 ****
(progn
(goto-char new-point)
(setq node t))
! (setq node nil)))))
node))
(defun Info-mouse-follow-link (click)
--- 3887,3910 ----
(progn
(goto-char new-point)
(setq node t))
! (setq node nil))))
! ;; menu item: node name
! ((setq node (Info-get-token (point) "\\* +" "\\* +\\([^:]*\\)::"))
! (Info-goto-node node fork))
! ;; menu item: node name or index entry
! ((Info-get-token (point) "\\* +" "\\* +\\(.*\\): ")
! (beginning-of-line)
! (forward-char 2)
! (setq node (Info-extract-menu-node-name nil (Info-index-node)))
! (Info-goto-node node fork))
! ((setq node (Info-get-token (point) "Up: " "Up: \\([^,\n\t]*\\)"))
! (Info-goto-node node fork))
! ((setq node (Info-get-token (point) "Next: " "Next: \\([^,\n\t]*\\)"))
! (Info-goto-node node fork))
! ((setq node (Info-get-token (point) "File: " "File: \\([^,\n\t]*\\)"))
! (Info-goto-node "Top" fork))
! ((setq node (Info-get-token (point) "Prev: " "Prev: \\([^,\n\t]*\\)"))
! (Info-goto-node node fork)))
node))
(defun Info-mouse-follow-link (click)
In GNU Emacs 24.3.50.2 (x86_64-suse-linux-gnu, GTK+ Version 3.4.4)
of 2013-06-25 on rosalinde
Bzr revision: 113175 lekktu <at> gmail.com-20130625172019-xiu7eowuwtknvz39
Windowing system distributor `The X.Org Foundation', version 11.0.11203000
System Description: openSUSE 12.2 (x86_64)
Configured using:
`configure --without-toolkit-scroll-bars CFLAGS=-g3 -O0'
Important settings:
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: @im=local
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t
[Message part 3 (message/rfc822, inline)]
On Thu, 27 Jun 2013 02:39:07 +0300 Juri Linkov <juri <at> jurta.org> wrote:
>> 0. emacs -Q
>> 1. Type `C-h i m Elisp RET m Using Interactive RET TAB TAB TAB' to put
>> point on the left parent of the reference mark for footnote (1) in
>> this node.
>> 2. Type RET, expecting to jump to the footnote, but instead:
>> => user-error: No such node or anchor: It may be a string; its contents
>> are a sequence of elements
>>
>> The following patch makes the footnote search and
>> hence jumping to the footnote in that node succeed
>
> Thanks, your patch correctly fixes the bug,
Thanks for confirming.
> I recommend to commit it.
Done and closing the bug.
> 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.
Steve Berman
This bug report was last modified 11 years and 325 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.