X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/9cb1841ec809f25193fa007d4e7a16eaad756336..4d1fad67524431f7c8f20bc62e503d49e8177fb8:/packages/multishell/multishell.el diff --git a/packages/multishell/multishell.el b/packages/multishell/multishell.el index 1d10b9469..7295aa1ea 100644 --- a/packages/multishell/multishell.el +++ b/packages/multishell/multishell.el @@ -93,6 +93,8 @@ (require 'comint) (require 'shell) +(defvar multishell-version "1.0.5") + (defgroup multishell nil "Allout extension that highlights outline structure graphically. @@ -317,14 +319,15 @@ customize the savehist group to activate savehist." (curr-buff-proc (get-buffer-process from-buffer)) (target-buffer (if from-buffer-is-shell from-buffer - (let ((got (get-buffer target-shell-buffer-name))) - (if (buffer-live-p got) - got - (kill-buffer got) - (get-buffer target-shell-buffer-name))))) + (get-buffer target-shell-buffer-name))) inwin already-there) + ;; Register early so the entry is pushed to the front: + (multishell-register-name-to-path (multishell-unbracket-asterisks + target-shell-buffer-name) + use-default-dir) + (when doublearg (setq multishell-primary-name target-shell-buffer-name)) @@ -369,9 +372,7 @@ customize the savehist group to activate savehist." (let ((process (get-buffer-process (current-buffer)))) (if (and process (equal 'stop (process-status process))) (continue-process process))) - (multishell-register-name-to-path (multishell-unbracket-asterisks - target-shell-buffer-name) - use-default-dir) + (when (or already-there (equal (current-buffer) from-buffer)) (goto-char (point-max)) @@ -534,15 +535,16 @@ Return them as a list (name dir), with dir nil if none given." (cd default-directory) (error ;; Aargh. Need to isolate this tramp bug. - (when (and (stringp (cadr err)) - (string-equal (cadr err) - "Selecting deleted buffer")) - (signal (car err) - (list - (format "%s, %s (\"%s\")" - "Tramp shell can fail on empty (homedir) path" - "please try again with an explicit path" - (cadr err))))))) + (if (and (stringp (cadr err)) + (string-equal (cadr err) + "Selecting deleted buffer")) + (signal (car err) + (list + (format "%s, %s (\"%s\")" + "Tramp shell can fail on empty (homedir) path" + "please try again with an explicit path" + (cadr err)))) + (signal (car err)(cdr err))))) (setq buffer (set-buffer (apply 'make-comint (multishell-unbracket-asterisks buffer-name) prog