]> code.delx.au - gnu-emacs-elpa/commitdiff
multishell - dir tracking for local shells, and show grace for pathless
authorKen Manheimer <ken.manheimer@gmail.com>
Sun, 17 Jan 2016 08:05:30 +0000 (03:05 -0500)
committerKen Manheimer <ken.manheimer@gmail.com>
Sun, 17 Jan 2016 08:05:30 +0000 (03:05 -0500)
multishell.el

index 116880b6b79351f46fd127408adb99aef7e716b1..ef468fdf9553f93dc5a64bcf7e9b98660b34cca8 100644 (file)
@@ -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)