From f9cd9fab8817581d741c4d104d218a1999a94671 Mon Sep 17 00:00:00 2001 From: Ken Manheimer Date: Sun, 17 Jan 2016 03:05:30 -0500 Subject: [PATCH] multishell - dir tracking for local shells, and show grace for pathless --- multishell.el | 61 ++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/multishell.el b/multishell.el index 116880b6b..ef468fdf9 100644 --- a/multishell.el +++ b/multishell.el @@ -521,36 +521,37 @@ Return them as a list (name dir), with dir nil if none given." (dolist (entry entries) (let* ((name-path (multishell-split-entry-name-and-tramp entry)) (name (car name-path)) - (path (cadr name-path)) - (is-remote (file-remote-p path)) - (vec (and is-remote (tramp-dissect-file-name path nil))) - (localname (if is-remote - (tramp-file-name-localname vec) - path)) - (newlocalname - (replace-regexp-in-string (if (string= localname "") - "$" - (regexp-quote localname)) - ;; REP - newpath - ;; STRING - localname - ;; FIXEDCASE - t - ;; LITERAL - t - )) - (newpath (if is-remote - (tramp-make-tramp-file-name (aref vec 0) - (aref vec 1) - (aref vec 2) - newlocalname - (aref vec 4)) - newlocalname)) - (newentry (concat name newpath)) - (membership (member entry multishell-history))) - (when membership - (setcar membership newentry)))))) + (path (cadr name-path))) + (when path + (let* ((is-remote (file-remote-p path)) + (vec (and is-remote (tramp-dissect-file-name path nil))) + (localname (if is-remote + (tramp-file-name-localname vec) + path)) + (newlocalname + (replace-regexp-in-string (if (string= localname "") + "$" + (regexp-quote localname)) + ;; REP + newpath + ;; STRING + localname + ;; FIXEDCASE + t + ;; LITERAL + t + )) + (newpath (if is-remote + (tramp-make-tramp-file-name (aref vec 0) + (aref vec 1) + (aref vec 2) + newlocalname + (aref vec 4)) + newlocalname)) + (newentry (concat name newpath)) + (membership (member entry multishell-history))) + (when membership + (setcar membership newentry)))))))) (defvar multishell-was-default-directory () "Provide for tracking directory changes.") (make-variable-buffer-local 'multishell-was-default-directory) -- 2.39.2