Mercurial > emacs
changeset 108471:daa05d3ccff4
Remove nodes visited during Isearch from the Info history.
* info.el (Info-isearch-initial-history)
(Info-isearch-initial-history-list): New variables.
(Info-isearch-start): Record initial values of
Info-isearch-initial-history and Info-isearch-initial-history-list.
Add Info-isearch-end to isearch-mode-end-hook.
(Info-isearch-end): New function.
author | Juri Linkov <juri@jurta.org> |
---|---|
date | Mon, 10 May 2010 22:07:22 +0300 |
parents | 3219af501dc0 |
children | 0eb2f9d5e474 e05d1f835527 |
files | lisp/ChangeLog lisp/info.el |
diffstat | 2 files changed, 33 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Mon May 10 21:40:26 2010 +0300 +++ b/lisp/ChangeLog Mon May 10 22:07:22 2010 +0300 @@ -1,3 +1,13 @@ +2010-05-10 Juri Linkov <juri@jurta.org> + + Remove nodes visited during Isearch from the Info history. + * info.el (Info-isearch-initial-history) + (Info-isearch-initial-history-list): New variables. + (Info-isearch-start): Record initial values of + Info-isearch-initial-history and Info-isearch-initial-history-list. + Add Info-isearch-end to isearch-mode-end-hook. + (Info-isearch-end): New function. + 2010-05-10 Michael Albinus <michael.albinus@gmx.de> * net/tramp.el (tramp-do-file-attributes-with-stat): Add space in
--- a/lisp/info.el Mon May 10 21:40:26 2010 +0300 +++ b/lisp/info.el Mon May 10 22:07:22 2010 +0300 @@ -266,6 +266,8 @@ :group 'info) (defvar Info-isearch-initial-node nil) +(defvar Info-isearch-initial-history nil) +(defvar Info-isearch-initial-history-list nil) (defcustom Info-mode-hook ;; Try to obey obsolete Info-fontify settings. @@ -1914,7 +1916,27 @@ (setq Info-isearch-initial-node ;; Don't stop at initial node for nonincremental search. ;; Otherwise this variable is set after first search failure. - (and isearch-nonincremental Info-current-node))) + (and isearch-nonincremental Info-current-node)) + (setq Info-isearch-initial-history Info-history + Info-isearch-initial-history-list Info-history-list) + (add-hook 'isearch-mode-end-hook 'Info-isearch-end nil t)) + +(defun Info-isearch-end () + ;; Remove intermediate nodes (visited while searching) + ;; from the history. Add only the last node (where Isearch ended). + (if (> (length Info-history) + (length Info-isearch-initial-history)) + (setq Info-history + (nthcdr (- (length Info-history) + (length Info-isearch-initial-history) + 1) + Info-history))) + (if (> (length Info-history-list) + (length Info-isearch-initial-history-list)) + (setq Info-history-list + (cons (car Info-history-list) + Info-isearch-initial-history-list))) + (remove-hook 'isearch-mode-end-hook 'Info-isearch-end t)) (defun Info-isearch-filter (beg-found found) "Test whether the current search hit is a visible useful text.