unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* [agj@alum.mit.edu: Re: ":" in Scheme names.]
@ 2003-01-16  4:15 Aubrey Jaffer
  2003-01-18  0:20 ` Thien-Thi Nguyen
       [not found] ` <20030119215945.A1190D86@mail.voluntocracy.org>
  0 siblings, 2 replies; 9+ messages in thread
From: Aubrey Jaffer @ 2003-01-16  4:15 UTC (permalink / raw)


I have heard nothing, so I assume that "info.el" has not been fixed.

------- Start of forwarded message -------
From: Aubrey Jaffer <agj@alum.mit.edu>
To: karl@freefriends.org
Cc: eliz@is.elta.co.il, bug-texinfo@gnu.org
In-reply-to: <200211071419.gA7EJxX06324@f7.net> (karl@freefriends.org)
Subject: Re: ":" in Scheme names.
Date: Thu,  7 Nov 2002 21:16:12 -0500 (EST)

With this change, Emacs info-mode correctly indexes colon-containing
names in (existing) info files.  Does someone on bug-texinfo@gnu.org
maintain "info.el" or should I send this to bug-emacs@gnu.org?

cd /usr/share/emacs/21.2/lisp/
diff -c /usr/share/emacs/21.2/lisp/info.el\~ /usr/share/emacs/21.2/lisp/info.el
*** /usr/share/emacs/21.2/lisp/info.el~	Fri Dec 21 14:08:17 2001
- --- /usr/share/emacs/21.2/lisp/info.el	Wed Nov  6 22:30:47 2002
***************
*** 1830,1836 ****
    (interactive "sIndex topic: ")
    (let ((orignode Info-current-node)
  	(rnode nil)
! 	(pattern (format "\n\\* +\\([^\n:]*%s[^\n:]*\\):[ \t]*\\([^.\n]*\\)\\.[ \t]*\\([0-9]*\\)"
  			 (regexp-quote topic)))
  	node
  	(case-fold-search t))
- --- 1830,1836 ----
    (interactive "sIndex topic: ")
    (let ((orignode Info-current-node)
  	(rnode nil)
! 	(pattern (format "\n\\* +\\([^\n]*%s[^\n]*\\):[ \t]+\\([^.\n]*\\)\\.[ \t]*\\([0-9]*\\)"
  			 (regexp-quote topic)))
  	node
  	(case-fold-search t))

Diff finished at Wed Nov  6 22:32:26
------- End of forwarded message -------

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [agj@alum.mit.edu: Re: ":" in Scheme names.]
  2003-01-16  4:15 [agj@alum.mit.edu: Re: ":" in Scheme names.] Aubrey Jaffer
@ 2003-01-18  0:20 ` Thien-Thi Nguyen
       [not found] ` <20030119215945.A1190D86@mail.voluntocracy.org>
  1 sibling, 0 replies; 9+ messages in thread
From: Thien-Thi Nguyen @ 2003-01-18  0:20 UTC (permalink / raw)
  Cc: bug-emacs

Aubrey Jaffer <agj@alum.mit.edu> writes:

   I have heard nothing, so I assume that "info.el" has not been fixed.
   [patch]

i have applied the patch locally; testing (on /usr/share/info/slib.info.gz
no less) still misbehaves, however.  i see there are several additional
places in (the current cvs) info.el where ":" is taken to be end-of-tag.

thi

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [agj@alum.mit.edu: Re: ":" in Scheme names.]
       [not found] ` <20030119215945.A1190D86@mail.voluntocracy.org>
@ 2003-01-20  2:44   ` Thien-Thi Nguyen
  2003-01-21  5:59     ` Aubrey Jaffer
  0 siblings, 1 reply; 9+ messages in thread
From: Thien-Thi Nguyen @ 2003-01-20  2:44 UTC (permalink / raw)
  Cc: bug-emacs

   From: Aubrey Jaffer <agj@alum.mit.edu>
   Date: Sun, 19 Jan 2003 16:59:45 -0500 (EST)

   If the patch improves some (but not all) behaviors, then it is still
   worth releasing.

yes.  which behaviors does it improve?  what goes in the change log?

   If you show me how to provoke the remaining misbehaviors, then I can
   look at fixing them.

here is an interactive test case, w/ expected output:

evaluate: (info "/usr/share/info/slib.tar.gz")

then, 
; type			; expect
  i RET			  buffer changes to show index
  C-s array-indexes RET   point moves to match
  m RET			  buffer changes to show array mapping funcs
  l			  back to index
  C-s batch: RET          point moves to match
  m RET			  buffer changes to show batch funcs
  l			  back to index

this sequence exercises several parsing contexts, to start; from here
you can try other `m' and `i' variants.

for me, not all of the expected behaviors take place.  some signal
end-of-file error.  (after applying the patch i started looking at all
functions that have ":" in their regexp strings to see if they make
similar assumptions (that this patch fixes for this function) about tag
charset; i'm not sure what i'm working with exactly anymore, ymmv. :-)

the constraint "must not contain colon followed by space" is easy for
tags comprising programming language terms to meet w/o special handling,
and it is more permissive than the current "must not contain colon", so
as a fix it is ok.  but i wonder if there is a better fix.

thi

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [agj@alum.mit.edu: Re: ":" in Scheme names.]
  2003-01-20  2:44   ` Thien-Thi Nguyen
@ 2003-01-21  5:59     ` Aubrey Jaffer
  0 siblings, 0 replies; 9+ messages in thread
From: Aubrey Jaffer @ 2003-01-21  5:59 UTC (permalink / raw)
  Cc: bug-emacs

 | From: Thien-Thi Nguyen <ttn@glug.org>
 | Date: Sun, 19 Jan 2003 21:44:03 -0500
 | 
 |    From: Aubrey Jaffer <agj@alum.mit.edu>
 |    Date: Sun, 19 Jan 2003 16:59:45 -0500 (EST)
 | 
 |    If the patch improves some (but not all) behaviors, then it is still
 |    worth releasing.
 | 
 | yes.  which behaviors does it improve?  what goes in the change log?

	(Info-index): Fixed for index names containing colons.

 |    If you show me how to provoke the remaining misbehaviors, then I can
 |    look at fixing them.
 | 
 | here is an interactive test case, w/ expected output:
 | 
 | evaluate: (info "/usr/share/info/slib.tar.gz")
 | 
 | then, 
 | ; type			; expect
 |   i RET			  buffer changes to show index
 |   C-s array-indexes RET   point moves to match
 |   m RET			  buffer changes to show array mapping funcs
 |   l			  back to index
 |   C-s batch: RET          point moves to match
 |   m RET			  buffer changes to show batch funcs

Appended is a patch to Info-menu so it grabs the correct default.
Also patched is Info-extract-menu-item so it goes to the ": ".  But I
still get an error from Info-find-node-2 with the wrong value for
nodename:

  let: No such anchor in tag table or node in tag table or file: modify-table: HTML Tables

Somewhere there is a forward search to ":"; but I lost the trail of
where this happens to nodename.

Here is an unrelated bug in Info-follow-nearest-node:
evaluate: (info "/usr/share/info/slib.tar.gz")
then, 
; type			; expect
  i RET			  buffer changes to show index
  C-s array-indexes RET   point moves to match
  RET			  buffer changes to show array mapping funcs
  l			  back to index
  RET			  buffer changes to Getopt !!

			      -=-=-=-=-

cd /usr/share/emacs/21.2/lisp/
diff -c /usr/share/emacs/21.2/lisp/info.el\~ /usr/share/emacs/21.2/lisp/info.el
*** /usr/share/emacs/21.2/lisp/info.el~	Sun Jan 19 17:31:53 2003
--- /usr/share/emacs/21.2/lisp/info.el	Tue Jan 21 00:33:40 2003
***************
*** 1477,1483 ****
  	    (save-excursion
  	      (goto-char p)
  	      (end-of-line)
! 	      (if (re-search-backward "\n\\* +\\([^:\t\n]*\\):" beg t)
  		  (setq default (match-string-no-properties 1))))))
       (let ((item nil))
         (while (null item)
--- 1477,1483 ----
  	    (save-excursion
  	      (goto-char p)
  	      (end-of-line)
! 	      (if (re-search-backward "\n\\* +\\([^\t\n]+\\): " beg t)
  		  (setq default (match-string-no-properties 1))))))
       (let ((item nil))
         (while (null item)
***************
*** 1509,1515 ****
  	(goto-char (point-min))
  	(or (search-forward "\n* menu:" nil t)
  	    (error "No menu in this node"))
! 	(or (re-search-forward (concat "\n\\* +" menu-item ":") nil t)
  	    (re-search-forward (concat "\n\\* +" menu-item) nil t)
  	    (error "No such item in menu"))
  	(beginning-of-line)
--- 1509,1515 ----
  	(goto-char (point-min))
  	(or (search-forward "\n* menu:" nil t)
  	    (error "No menu in this node"))
! 	(or (re-search-forward (concat "\n\\* +" menu-item ": ") nil t)
  	    (re-search-forward (concat "\n\\* +" menu-item) nil t)
  	    (error "No such item in menu"))
  	(beginning-of-line)

Diff finished at Tue Jan 21 00:33:44

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [agj@alum.mit.edu: Re: ":" in Scheme names.]
       [not found] <jklm1eym9x.fsf@totally-fudged-out-message-id>
@ 2003-01-25  1:03 ` Thien-Thi Nguyen
  2003-01-25  2:37   ` Aubrey Jaffer
  0 siblings, 1 reply; 9+ messages in thread
From: Thien-Thi Nguyen @ 2003-01-25  1:03 UTC (permalink / raw)
  Cc: bug-emacs

there are some deeper changes necessary to properly encode the
":"-in-menu-item cases, which i am looking into.  for now, i have just
committed the patch below, which fixes "m" handling for slib.info.gz test
case:

; type                       ; expect
  i RET                        buffer changes to show index
  C-s array-indexes RET        point moves to match
  m RET                        buffer changes to show array mapping funcs
  l                            back to index
  C-s batch: RET               point moves to match
  m RET                        buffer changes to show batch funcs

there are still bugs in areas: completion for index, TAB command, font
locking.  i will get to them shortly.

thi


__________________________________________________
cd /home/ttn/build/GNU/emacs/lisp/
cvs diff -w -c -b info.el
Index: info.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/info.el,v
retrieving revision 1.331
diff -w -c -b -r1.331 info.el
*** info.el	22 Jan 2003 20:35:23 -0000	1.331
--- info.el	25 Jan 2003 00:33:45 -0000
***************
*** 27,32 ****
--- 27,36 ----
  ;;; Commentary:
  
  ;; Note that nowadays we expect info files to be made using makeinfo.
+ ;; In particular we make these assumptions:
+ ;;  - a menu item MAY contain colons but not colon-space ": "
+ ;;  - a menu item ending with ": " (but not ":: ") is an index entry
+ ;;  - a node name MAY NOT contain a colon
  
  ;;; Code:
  
***************
*** 2119,2126 ****
--- 2123,2140 ----
       ((setq node (Info-get-token (point) "\\*note[ \n]"
  				 "\\*note[ \n]\\([^:]*\\):"))
        (Info-follow-reference node))
+      ;; explicit node name
       ((setq node (Info-get-token (point) "\\* +" "\\* +\\([^:]*\\)::"))
        (Info-goto-node node))
+      ;; index entry (Another approach is to combine this w/ the following cond
+      ;;              branch "other menu item", but that also requires fixing
+      ;;              Info-extract-menu-node-name -- stay tuned. --ttn)
+      ((Info-get-token (point) "\\* +" "\\* +\\(.*\\):[ \t]")
+       (save-excursion
+         (re-search-forward ":[ \t]")
+         (setq node (Info-following-node-name "^.")))
+       (Info-goto-node node))
+      ;; other menu item
       ((Info-get-token (point) "\\* +" "\\* +\\([^:]*\\):")
        (beginning-of-line)
        (forward-char 2)

Compilation exited abnormally with code 1 at Fri Jan 24 16:32:01

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [agj@alum.mit.edu: Re: ":" in Scheme names.]
  2003-01-25  1:03 ` Thien-Thi Nguyen
@ 2003-01-25  2:37   ` Aubrey Jaffer
  2003-01-25  3:02     ` Thien-Thi Nguyen
  0 siblings, 1 reply; 9+ messages in thread
From: Aubrey Jaffer @ 2003-01-25  2:37 UTC (permalink / raw)
  Cc: bug-emacs

 | From: Thien-Thi Nguyen <ttn@glug.org>
 | Date: 24 Jan 2003 20:03:06 -0500
 | 
 | there are some deeper changes necessary to properly encode the
 | ":"-in-menu-item cases, which i am looking into.  for now, i have
 | just committed the patch below, which fixes "m" handling for
 | slib.info.gz test case:

Thanks!

 | ; type                       ; expect
 |   i RET                        buffer changes to show index
 |   C-s array-indexes RET        point moves to match
 |   m RET                        buffer changes to show array mapping funcs
 |   l                            back to index
 |   C-s batch: RET               point moves to match
 |   m RET                        buffer changes to show batch funcs

With the patch, the last step gives me an error:

 let: No such anchor in tag table or node in tag table or file: call-with-output-script: Batch

But it is evident that Info-try-follow-nearest-node is fixed if the
last line is instead:

 |   RET                        buffer changes to show batch funcs

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [agj@alum.mit.edu: Re: ":" in Scheme names.]
  2003-01-25  2:37   ` Aubrey Jaffer
@ 2003-01-25  3:02     ` Thien-Thi Nguyen
  2003-01-26 19:51       ` Kim F. Storm
  0 siblings, 1 reply; 9+ messages in thread
From: Thien-Thi Nguyen @ 2003-01-25  3:02 UTC (permalink / raw)
  Cc: bug-emacs

   From: Aubrey Jaffer <agj@alum.mit.edu>
   Date: Fri, 24 Jan 2003 21:37:04 -0500 (EST)

    let: No such anchor in tag table or node in tag table or file:
    call-with-output-script: Batch

   But it is evident that Info-try-follow-nearest-node is fixed if the
   last line is instead:

    |   RET                        buffer changes to show batch funcs

oops, yes this is a mistake on my part in reporting the consequences of
the fix.  the good news is that the "m RET" case is now fixed (revision
1.333 in cvs), as well.

w/ 1.333 i ran around slib.info and dired-x.info using "RET", "m", "l"
and various "i" (default/exact/inexact input) commands w/o problems.
please let me know if you find any new (and interesting) bugs, otherwise
i'm inclined to look at other things now.  M-x viva-scheme!

thi

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [agj@alum.mit.edu: Re: ":" in Scheme names.]
  2003-01-25  3:02     ` Thien-Thi Nguyen
@ 2003-01-26 19:51       ` Kim F. Storm
  2003-01-26 23:11         ` Thien-Thi Nguyen
  0 siblings, 1 reply; 9+ messages in thread
From: Kim F. Storm @ 2003-01-26 19:51 UTC (permalink / raw)
  Cc: bug-emacs

Thien-Thi Nguyen <ttn@giblet.glug.org> writes:

>    From: Aubrey Jaffer <agj@alum.mit.edu>
>    Date: Fri, 24 Jan 2003 21:37:04 -0500 (EST)
> 
>     let: No such anchor in tag table or node in tag table or file:
>     call-with-output-script: Batch
> 
>    But it is evident that Info-try-follow-nearest-node is fixed if the
>    last line is instead:
> 
>     |   RET                        buffer changes to show batch funcs
> 
> oops, yes this is a mistake on my part in reporting the consequences of
> the fix.  the good news is that the "m RET" case is now fixed (revision
> 1.333 in cvs), as well.
> 
> w/ 1.333 i ran around slib.info and dired-x.info using "RET", "m", "l"
> and various "i" (default/exact/inexact input) commands w/o problems.
> please let me know if you find any new (and interesting) bugs, otherwise
> i'm inclined to look at other things now.  M-x viva-scheme!

Your change broke a lot of *note .... :: links where the :: is not
followed by a space, like these:

        (*note some note::)
        some text, *note some note::, more text

Try C-h i m elisp RET i signal RET TAB RET

I've installed a fix to CVS to stop searching for the end of the
reference when a comma, period, semicolon, or right parenthesis
follows the last colon.  

However, I'm not sure this the right fix.  It would probably be better
to specify the characters which shall cause a continued search if they
follow a colon, but I'm not sure what characters to include...

-- 
Kim F. Storm  http://www.cua.dk

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [agj@alum.mit.edu: Re: ":" in Scheme names.]
  2003-01-26 19:51       ` Kim F. Storm
@ 2003-01-26 23:11         ` Thien-Thi Nguyen
  0 siblings, 0 replies; 9+ messages in thread
From: Thien-Thi Nguyen @ 2003-01-26 23:11 UTC (permalink / raw)
  Cc: agj

   From: no-spam@cua.dk (Kim F. Storm)
   Date: 26 Jan 2003 20:51:59 +0100

   Your change broke a lot of *note .... :: links where the :: is not
   followed by a space, like these:

	   (*note some note::)
	   some text, *note some note::, more text

   Try C-h i m elisp RET i signal RET TAB RET

   I've installed a fix to CVS to stop searching for the end of the
   reference when a comma, period, semicolon, or right parenthesis
   follows the last colon.  

thanks for catching this.

   However, I'm not sure this the right fix.  It would probably be better
   to specify the characters which shall cause a continued search if they
   follow a colon, but I'm not sure what characters to include...

if i understand correctly, you mean to replace while-not, w/ simply
while.  initially i tried something like:

 (while (looking-at ":*\\sw") ...)

but testing against elisp index fails for "&rest" and anything else w/
chars not in the word-constituent syntax class.  unless there is a way
to create a syntax class that is \sw plus \s- plus \s_ minus ":", i
think we are stuck w/ explicitly enumerating trailing context.  the
fixed info.el appears to be enough for now; we just need to track
makeinfo (x)ref rendering (not a big deal -- i don't think that is
changing very much).

thi

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2003-01-26 23:11 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-01-16  4:15 [agj@alum.mit.edu: Re: ":" in Scheme names.] Aubrey Jaffer
2003-01-18  0:20 ` Thien-Thi Nguyen
     [not found] ` <20030119215945.A1190D86@mail.voluntocracy.org>
2003-01-20  2:44   ` Thien-Thi Nguyen
2003-01-21  5:59     ` Aubrey Jaffer
     [not found] <jklm1eym9x.fsf@totally-fudged-out-message-id>
2003-01-25  1:03 ` Thien-Thi Nguyen
2003-01-25  2:37   ` Aubrey Jaffer
2003-01-25  3:02     ` Thien-Thi Nguyen
2003-01-26 19:51       ` Kim F. Storm
2003-01-26 23:11         ` Thien-Thi Nguyen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).