changeset 65069:fc42a1decf2d

(Info-insert-dir): Use save-excursion around insert-buffer-substring. (Info-isearch-search): Use LITERAL arg of replace-regexp-in-string. (Info-escape-percent): Delete function. (Info-fontify-node): Replace Info-escape-percent by replace-regexp-in-string with REP arg set to lambda that duplicates `%' and preserves text properties.
author Juri Linkov <juri@jurta.org>
date Mon, 22 Aug 2005 19:53:46 +0000
parents 6606e83775f0
children 5a147188ccac
files lisp/info.el
diffstat 1 files changed, 10 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/info.el	Mon Aug 22 19:53:05 2005 +0000
+++ b/lisp/info.el	Mon Aug 22 19:53:46 2005 +0000
@@ -1076,7 +1076,7 @@
       ;; Insert the entire original dir file as a start; note that we've
       ;; already saved its default directory to use as the default
       ;; directory for the whole concatenation.
-      (goto-char (prog1 (point) (insert-buffer-substring buffer)))
+      (save-excursion (insert-buffer-substring buffer))
 
       ;; Look at each of the other buffers one by one.
       (dolist (other others)
@@ -1770,9 +1770,11 @@
       (lambda (string &optional bound noerror count)
 	(if isearch-word
 	    (Info-search (concat "\\b" (replace-regexp-in-string
-					"\\W+" "\\\\W+"
+					"\\W+" "\\W+"
 					(replace-regexp-in-string
-					 "^\\W+\\|\\W+$" "" string)) "\\b")
+					 "^\\W+\\|\\W+$" "" string)
+					nil t)
+				 "\\b")
 			 bound noerror count
 			 (unless isearch-forward 'backward))
 	  (Info-search (if isearch-regexp string (regexp-quote string))
@@ -3585,27 +3587,6 @@
 	  (t
 	   (Info-goto-emacs-command-node command)))))
 
-(defun Info-escape-percent (string)
-  "Double all occurrences of `%' in STRING.
-
-Return a new string with all `%' characters replaced by `%%'.
-Preserve text properties."
-  (let ((start 0)
-	(end (length string))
-	mb me m matches)
-    (save-match-data
-      (while (and (< start end) (string-match "%" string start))
-	(setq mb (match-beginning 0)
-	      me (1+ mb)
-	      m (substring string mb me)
-	      matches (cons m
-			    (cons m
-				  (cons (substring string start mb)
-					matches)))
-	      start me))
-      (push (substring string start end) matches)
-      (apply #'concat (nreverse matches)))))
-
 (defvar Info-next-link-keymap
   (let ((keymap (make-sparse-keymap)))
     (define-key keymap [header-line mouse-1] 'Info-next)
@@ -3697,7 +3678,11 @@
                                 (buffer-substring (point) header-end)))
                 (setq header (buffer-substring (point) header-end))))
             (put-text-property (point-min) (1+ (point-min))
-                               'header-line (Info-escape-percent header))
+                               'header-line
+			       (replace-regexp-in-string
+				"%"
+				;; Preserve text properties on duplicated `%'.
+				(lambda (s) (concat s s)) header))
             ;; Hide the part of the first line
             ;; that is in the header, if it is just part.
             (unless (bobp)