;; 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)
(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))
(defvar tool-bar-map)
+;; Autoload cookie needed by desktop.el
+;;;###autoload
(defun Info-mode ()
"Info mode provides commands for browsing through the Info documentation tree.
Documentation in Info is divided into \"nodes\", each of which discusses
(t
(Info-goto-emacs-command-node command)))))
\f
-(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)
(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)
(if (not (member Info-current-file '("apropos" "history" "toc")))
(list Info-current-file Info-current-node)))
-;;;###autoload
(defun Info-restore-desktop-buffer (desktop-buffer-file-name
desktop-buffer-name
desktop-buffer-misc)
(Info-find-node first second)
(current-buffer))))
+(add-to-list 'desktop-buffer-mode-handlers
+ '(Info-mode . Info-restore-desktop-buffer))
+
(provide 'info)
;; arch-tag: f2480fe2-2139-40c1-a49b-6314991164ac