Commit 221ca406 authored by Simon Marshall's avatar Simon Marshall
Browse files

Resync directories properly for the ksh.

parent b2926fb3
;;; shell.el --- specialized comint.el for running the shell. ;;; shell.el --- specialized comint.el for running the shell.
;; Copyright (C) 1988, 1993, 1994, 1995 Free Software Foundation, Inc. ;; Copyright (C) 1988, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
;; Author: Olin Shivers <shivers@cs.cmu.edu> ;; Author: Olin Shivers <shivers@cs.cmu.edu>
;; Maintainer: Simon Marshall <simon@gnu.ai.mit.edu> ;; Maintainer: Simon Marshall <simon@gnu.ai.mit.edu>
...@@ -114,7 +114,7 @@ This variable is used to initialise `comint-prompt-regexp' in the ...@@ -114,7 +114,7 @@ This variable is used to initialise `comint-prompt-regexp' in the
shell buffer. shell buffer.
The pattern should probably not match more than one line. If it does, The pattern should probably not match more than one line. If it does,
shell-mode may become confused trying to distinguish prompt from input Shell mode may become confused trying to distinguish prompt from input
on lines which don't start with a prompt. on lines which don't start with a prompt.
This is a fine thing to set in your `.emacs' file.") This is a fine thing to set in your `.emacs' file.")
...@@ -341,7 +341,9 @@ buffer." ...@@ -341,7 +341,9 @@ buffer."
(equal (file-truename comint-input-ring-file-name) "/dev/null")) (equal (file-truename comint-input-ring-file-name) "/dev/null"))
(setq comint-input-ring-file-name nil)) (setq comint-input-ring-file-name nil))
(setq shell-dirstack-query (setq shell-dirstack-query
(if (string-match "^k?sh$" shell) "pwd" "dirs"))) (cond ((string-equal shell "sh") "pwd")
((string-equal shell "ksh") "echo $PWD ~-")
(t "dirs"))))
(run-hooks 'shell-mode-hook) (run-hooks 'shell-mode-hook)
(comint-read-input-ring t)) (comint-read-input-ring t))
...@@ -516,8 +518,7 @@ Environment variables are expanded, see function `substitute-in-file-name'." ...@@ -516,8 +518,7 @@ Environment variables are expanded, see function `substitute-in-file-name'."
(shell-dirstack (shell-dirstack
(let ((old default-directory)) (let ((old default-directory))
(shell-cd (car shell-dirstack)) (shell-cd (car shell-dirstack))
(setq shell-dirstack (setq shell-dirstack (cons old (cdr shell-dirstack)))
(cons old (cdr shell-dirstack)))
(shell-dirstack-message))) (shell-dirstack-message)))
(t (t
(message "Directory stack empty.")))) (message "Directory stack empty."))))
...@@ -617,7 +618,8 @@ command again." ...@@ -617,7 +618,8 @@ command again."
(let ((ds (nreverse ds))) (let ((ds (nreverse ds)))
(condition-case nil (condition-case nil
(progn (shell-cd (car ds)) (progn (shell-cd (car ds))
(setq shell-dirstack (cdr ds)) (setq shell-dirstack (cdr ds)
shell-last-dir (car shell-dirstack))
(shell-dirstack-message)) (shell-dirstack-message))
(error (message "Couldn't cd."))))))) (error (message "Couldn't cd.")))))))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment