emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#14717: closed (24.3.50; Info-try-follow-nearest-no


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#14717: closed (24.3.50; Info-try-follow-nearest-node misses some footnotes)
Date: Thu, 27 Jun 2013 09:38:01 +0000

Your message dated Thu, 27 Jun 2013 11:37:16 +0200
with message-id <address@hidden>
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
address@hidden)


-- 
14717: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14717
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 24.3.50; Info-try-follow-nearest-node misses some footnotes Date: Tue, 25 Jun 2013 20:34:53 +0200 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)
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 address@hidden
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



--- End Message ---
--- Begin Message --- Subject: Re: bug#14717: 24.3.50; Info-try-follow-nearest-node misses some footnotes Date: Thu, 27 Jun 2013 11:37:16 +0200 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)
On Thu, 27 Jun 2013 02:39:07 +0300 Juri Linkov <address@hidden> 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


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]