summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorJuri Linkov <juri@jurta.org>2005-08-22 19:53:46 +0000
committerJuri Linkov <juri@jurta.org>2005-08-22 19:53:46 +0000
commit69672704aec84730c106f935200c0c5a7bf599d0 (patch)
tree7da06ce89c02b450b59bddcb1b50371f16d29dd2 /lisp
parent9b82fc013bbce4dac0dd920e30693245429e87ec (diff)
downloademacs-69672704aec84730c106f935200c0c5a7bf599d0.tar.gz
emacs-69672704aec84730c106f935200c0c5a7bf599d0.tar.bz2
emacs-69672704aec84730c106f935200c0c5a7bf599d0.zip
(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.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/info.el35
1 files changed, 10 insertions, 25 deletions
diff --git a/lisp/info.el b/lisp/info.el
index 84b82c01092..4c40e187c03 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -1076,7 +1076,7 @@ a case-insensitive match is tried."
;; 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 @@ If DIRECTION is `backward', search in the reverse direction."
(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 @@ the variable `Info-file-list-for-emacs'."
(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 @@ Preserve text properties."
(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)