unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: "Joshua S." <viking_r@george24.com>, 864@emacsbugs.donarmstrong.com
Subject: bug#864: 23.0.60; Info-dir-remove-duplicates fails to remove duplicates
Date: Wed, 03 Sep 2008 08:43:34 +0200	[thread overview]
Message-ID: <48BE3216.6020304@gmx.at> (raw)
In-Reply-To: <48BD5B1B.3020409@george24.com>

[-- Attachment #1: Type: text/plain, Size: 1115 bytes --]

 > I did bellow patch to fix this. (You know, I am not a good Lisp
 > programmer.)
 >
 > Index: lisp/info.el
 > ===================================================================
 > RCS file: /sources/emacs/emacs/lisp/info.el,v
 > retrieving revision 1.541
 > diff -u -d -w -r1.541 info.el
 > --- lisp/info.el    30 Aug 2008 20:16:36 -0000    1.541
 > +++ lisp/info.el    2 Sep 2008 15:05:54 -0000
 > @@ -1222,9 +1222,10 @@
 >            ;; Fold case straight away; `member-ignore-case' here wasteful.
 >            (let ((x (downcase (match-string 1))))
 >            (if (member x seen)
 > -              (delete-region (match-beginning 0)
 > +              (progn (delete-region (match-beginning 0)
 >                       (progn (re-search-forward "^[^ \t]" nil t)
 >                          (match-beginning 0)))
 > +                   (forward-line 0))
 >              (push x seen))))))))))
 >
 >  ;; Note that on entry to this function the current-buffer must be the

Looks good to me.  However, could you try the attached patch instead
which also does away with the quite obscure "limit" thing.

martin

[-- Attachment #2: 864.diff --]
[-- Type: text/plain, Size: 1666 bytes --]

*** info.el.~1.541.~	2008-08-31 09:48:43.390625000 +0200
--- info.el	2008-09-03 08:33:07.734375000 +0200
***************
*** 1213,1231 ****
  	      (delete-region (1- (point)) (point))))

  	  ;; Now remove duplicate entries under the same heading.
! 	  (let ((seen nil)
! 		(limit (point-marker)))
! 	    (goto-char start)
! 	    (while (and (> limit (point))
! 			(re-search-forward "^* \\([^:\n]+:\\(:\\|[^.\n]+\\).\\)"
! 					   limit 'move))
! 	      ;; Fold case straight away; `member-ignore-case' here wasteful.
! 	      (let ((x (downcase (match-string 1))))
! 	  	(if (member x seen)
! 	  	    (delete-region (match-beginning 0)
! 	  			   (progn (re-search-forward "^[^ \t]" nil t)
! 	  				  (match-beginning 0)))
! 	  	  (push x seen))))))))))

  ;; Note that on entry to this function the current-buffer must be the
  ;; *info* buffer; not the info tags buffer.
--- 1213,1232 ----
  	      (delete-region (1- (point)) (point))))

  	  ;; Now remove duplicate entries under the same heading.
! 	  (let (seen)
! 	    (save-restriction
! 	      (narrow-to-region start (point))
! 	      (goto-char (point-min))
! 	      (while (re-search-forward "^* \\([^:\n]+:\\(:\\|[^.\n]+\\).\\)" nil 'move)
! 		;; Fold case straight away; `member-ignore-case' here wasteful.
! 		(let ((x (downcase (match-string 1))))
! 		  (if (member x seen)
! 		      (delete-region
! 		       (match-beginning 0)
! 		       (if (re-search-forward "^[^ \t]" nil 'move)
! 			   (goto-char (match-beginning 0))
! 			 (point-max)))
! 		    (push x seen)))))))))))

  ;; Note that on entry to this function the current-buffer must be the
  ;; *info* buffer; not the info tags buffer.

  reply	other threads:[~2008-09-03  6:43 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <48C3A76B.1020604@gmx.at>
2008-09-02 15:26 ` bug#864: 23.0.60; Info-dir-remove-duplicates fails to remove duplicates Joshua S.
2008-09-03  6:43   ` martin rudalics [this message]
2008-09-03 10:14     ` Joshua S.
2008-09-04  8:18       ` martin rudalics
2008-09-07 10:30   ` bug#864: marked as done (23.0.60; Info-dir-remove-duplicates fails to remove duplicates) Emacs bug Tracking System

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48BE3216.6020304@gmx.at \
    --to=rudalics@gmx.at \
    --cc=864@emacsbugs.donarmstrong.com \
    --cc=viking_r@george24.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).