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.