Mercurial > emacs
changeset 97976:69fc13b4259f
(Info-dir-remove-duplicates): Narrow buffer when
removing duplicate entries under same heading. Don't skip char
matching anything but a space or tab at bol. (Bug#864)
author | Martin Rudalics <rudalics@gmx.at> |
---|---|
date | Thu, 04 Sep 2008 08:17:25 +0000 |
parents | 1a78b3eae932 |
children | 085e94629929 |
files | lisp/info.el |
diffstat | 1 files changed, 16 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/info.el Thu Sep 04 06:11:18 2008 +0000 +++ b/lisp/info.el Thu Sep 04 08:17:25 2008 +0000 @@ -1213,19 +1213,20 @@ (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)))))))))) + (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. @@ -3836,10 +3837,10 @@ ((string-equal (downcase tag) "prev") Info-prev-link-keymap) ((string-equal (downcase tag) "next") Info-next-link-keymap) ((string-equal (downcase tag) "up" ) Info-up-link-keymap)))))) - + (when (> Info-breadcrumbs-depth 0) (Info-insert-breadcrumbs)) - + ;; Treat header line. (when Info-use-header-line (goto-char (point-min))