Mercurial > emacs
changeset 44374:2472e2446b55
(shell-mode): Don't reinit comint-input-ring if that was already done.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Wed, 03 Apr 2002 15:23:41 +0000 |
parents | 5be168598322 |
children | a00feef20f38 |
files | lisp/shell.el |
diffstat | 1 files changed, 23 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/shell.el Wed Apr 03 15:21:07 2002 +0000 +++ b/lisp/shell.el Wed Apr 03 15:23:41 2002 +0000 @@ -415,28 +415,29 @@ (make-local-variable 'list-buffers-directory) (setq list-buffers-directory (expand-file-name default-directory)) ;; shell-dependent assignments. - (let ((shell (file-name-nondirectory (car - (process-command (get-buffer-process (current-buffer))))))) - (setq comint-input-ring-file-name - (or (getenv "HISTFILE") - (cond ((string-equal shell "bash") "~/.bash_history") - ((string-equal shell "ksh") "~/.sh_history") - (t "~/.history")))) - (if (or (equal comint-input-ring-file-name "") - (equal (file-truename comint-input-ring-file-name) - (file-truename "/dev/null"))) - (setq comint-input-ring-file-name nil)) - ;; Arrange to write out the input ring on exit, if the shell doesn't - ;; do this itself. - (if (and comint-input-ring-file-name - (string-match shell-dumb-shell-regexp shell)) - (set-process-sentinel (get-buffer-process (current-buffer)) - #'shell-write-history-on-exit)) - (setq shell-dirstack-query - (cond ((string-equal shell "sh") "pwd") - ((string-equal shell "ksh") "echo $PWD ~-") - (t "dirs")))) - (comint-read-input-ring t)) + (unless comint-input-ring + (let ((shell (file-name-nondirectory (car + (process-command (get-buffer-process (current-buffer))))))) + (setq comint-input-ring-file-name + (or (getenv "HISTFILE") + (cond ((string-equal shell "bash") "~/.bash_history") + ((string-equal shell "ksh") "~/.sh_history") + (t "~/.history")))) + (if (or (equal comint-input-ring-file-name "") + (equal (file-truename comint-input-ring-file-name) + (file-truename "/dev/null"))) + (setq comint-input-ring-file-name nil)) + ;; Arrange to write out the input ring on exit, if the shell doesn't + ;; do this itself. + (if (and comint-input-ring-file-name + (string-match shell-dumb-shell-regexp shell)) + (set-process-sentinel (get-buffer-process (current-buffer)) + #'shell-write-history-on-exit)) + (setq shell-dirstack-query + (cond ((string-equal shell "sh") "pwd") + ((string-equal shell "ksh") "echo $PWD ~-") + (t "dirs")))) + (comint-read-input-ring t))) (defun shell-write-history-on-exit (process event) "Called when the shell process is stopped.