From ee8107c0ea11f5b2ee4b58c25dd43e227c9665e5 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Wed, 3 Apr 2002 15:23:59 +0000 Subject: [PATCH] (shell-mode): Don't reinit comint-input-ring if that was already done. --- lisp/ChangeLog | 5 +++++ lisp/shell.el | 45 +++++++++++++++++++++++---------------------- 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 60f0ce948aa..b309e920fc9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2002-04-03 Richard M. Stallman + + * shell.el (shell-mode): Don't reinit comint-input-ring + if that was already done. + 2002-04-03 Edward M. Reingold * solar.el (solar-spring-or-summer-season): Deleted. diff --git a/lisp/shell.el b/lisp/shell.el index 5ff107bb8c2..fb427aa9f72 100644 --- a/lisp/shell.el +++ b/lisp/shell.el @@ -415,28 +415,29 @@ buffer." (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. -- 2.39.5