- (temp (if arg
- (multishell:read-bare-shell-buffer-name
- (format "Shell buffer name [%s]%s "
- (substring-no-properties
- multishell:primary-name
- 1 (- (length multishell:primary-name) 1))
- (if doublearg " <==" ":"))
- multishell:primary-name)
- multishell:primary-name))
- use-default-dir
- (target-shell-buffer-name
- ;; Derive target name, and default-dir if any, from temp.
- (cond ((string= temp "") multishell:primary-name)
- ((string-match "^\\*\\(/.*/\\)\\(.*\\)\\*" temp)
- (setq use-default-dir (match-string 1 temp))
- (multishell:bracket-asterisks
- (if (string= (match-string 2 temp) "")
- (let ((v (tramp-dissect-file-name
- use-default-dir)))
- (or (tramp-file-name-host v)
- (tramp-file-name-domain v)
- (tramp-file-name-localname v)
- use-default-dir))
- (match-string 2 temp))))
- (t (multishell:bracket-asterisks temp))))
+ (target-name-and-path
+ (multishell:derive-target-name-and-path
+ (if arg
+ (multishell:read-bare-shell-buffer-name
+ (format "Shell buffer name [%s]%s "
+ (substring-no-properties
+ multishell:primary-name
+ 1 (- (length multishell:primary-name) 1))
+ (if doublearg " <==" ":"))
+ multishell:primary-name)
+ multishell:primary-name)))
+ (use-default-dir (cadr target-name-and-path))
+ (target-shell-buffer-name (car target-name-and-path))