branch: externals/dtache
commit e0a45c055cabd7b074b88cd4ed8c5a3fc19039c5
Author: Niklas Eklund <[email protected]>
Commit: Niklas Eklund <[email protected]>
Address error in eshell/shell extension
---
dtache-eshell.el | 6 ++++--
dtache-shell.el | 2 +-
dtache.el | 2 +-
test/dtache-test.el | 10 ++++++++++
4 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/dtache-eshell.el b/dtache-eshell.el
index c7ab36dbf7..8fbde70a49 100644
--- a/dtache-eshell.el
+++ b/dtache-eshell.el
@@ -108,12 +108,14 @@ If prefix-argument directly DETACH from the session."
(defun dtache-eshell--maybe-create-session ()
"Create a session if `dtache-eshell-command' value is t."
(when dtache-enabled
- (let* ((dtache-session-mode 'create-and-attach)
- (dtache-session-action dtache-eshell-session-action)
+ (let* ((dtache-session-action dtache-eshell-session-action)
(command (mapconcat #'identity
`(,eshell-last-command-name
,@eshell-last-arguments)
" "))
+ (dtache-session-mode (if (dtache-attachable-command-p command)
+ dtache-session-mode
+ 'create))
(session (dtache-create-session command)))
(setq eshell-last-arguments (dtache-dtach-command session))
(setq dtache--buffer-session session)
diff --git a/dtache-shell.el b/dtache-shell.el
index 5161068823..5851465d3d 100644
--- a/dtache-shell.el
+++ b/dtache-shell.el
@@ -106,7 +106,7 @@ cluttering the comint-history with dtach commands."
(with-connection-local-variables
(let* ((command (substring-no-properties string))
(dtache-session-mode (if (dtache-attachable-command-p command)
- 'create-and-attach
+ dtache-session-mode
'create))
(dtach-command (dtache-dtach-command command t)))
(comint-simple-send proc dtach-command))))
diff --git a/dtache.el b/dtache.el
index bfb1558618..83d5c9b976 100644
--- a/dtache.el
+++ b/dtache.el
@@ -1009,7 +1009,7 @@ Optionally make the path LOCAL to host."
('create "-n")
('create-and-attach "-c")
('attach "-a")
- (_ "-n")))
+ (_ (error "`dtache-session-mode' has an unknown value."))))
(defun dtache--session-state-transition-update (session)
"Update SESSION due to state transition."
diff --git a/test/dtache-test.el b/test/dtache-test.el
index 8916fd9f79..1099fdd20a 100644
--- a/test/dtache-test.el
+++ b/test/dtache-test.el
@@ -174,6 +174,16 @@
(dtache--db-get-sessions)
`(,session1 ,session3))))))
+(ert-deftest dtache-test-dtach-arg ()
+ (let ((dtache-session-mode 'create))
+ (should (string= "-n" (dtache--dtach-arg))))
+ (let ((dtache-session-mode 'create-and-attach))
+ (should (string= "-c" (dtache--dtach-arg))))
+ (let ((dtache-session-mode 'attach))
+ (should (string= "-a" (dtache--dtach-arg))))
+ (let ((dtache-session-mode nil))
+ (should-error (dtache--dtach-arg))))
+
;;;;; Database
(ert-deftest dtache-test-db-insert-session ()