With the current CVS Emacs, info is quite slow. Calling (info) takes about 1.7 seconds here. I've already set Info-fontify-maximum-menu-size to 30000 and so fontification is disabled. (With fontification it takes 2.4 seconds.)
With the patch below it takes about only 0.3 seconds. The modification is quite small: it replaces the expensive call to member-ignore-case with a call to member and only keeps downcased strings around. Helmut. --- info.el 07 Aug 2005 16:06:08 +0200 1.438 +++ info.el 07 Aug 2005 23:51:10 +0200 @@ -1152,17 +1152,17 @@ (defun Info-dir-remove-duplicates () (delete-region (1- (point)) (point)))) ;; Now remove duplicate entries under the same heading. - (let ((seen nil) + (let ((seen '()) (limit (point))) (goto-char start) (while (re-search-forward "^* \\([^:\n]+:\\(:\\|[^.\n]+\\).\\)" limit 'move) - (let ((x (match-string 1))) - (if (member-ignore-case x seen) + (let ((key (downcase (match-string 1)))) + (if (member key seen) (delete-region (match-beginning 0) (progn (re-search-forward "^[^ \t]" nil t) (match-beginning 0))) - (push x seen)))))))))) + (push key seen)))))))))) ;; Note that on entry to this function the current-buffer must be the ;; *info* buffer; not the info tags buffer. _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel