]> git.eshelyaron.com Git - emacs.git/commitdiff
Add sanity check when adding Tramp functions to shortdoc
authorMichael Albinus <michael.albinus@gmx.de>
Mon, 5 Aug 2024 18:19:30 +0000 (20:19 +0200)
committerEshel Yaron <me@eshelyaron.com>
Sun, 11 Aug 2024 07:25:15 +0000 (09:25 +0200)
* lisp/net/tramp-integration.el (shortdoc): Check, that Tramp
isn't disabled.

(cherry picked from commit 3817355aed503e79c03bca5d203bd73716d10d9e)

lisp/net/tramp-integration.el

index 56deaf9066bf802ff9387f5241e1aaa4bac80852..6b28ddb7472f20a963cbb72b746f57b78d79699d 100644 (file)
@@ -275,34 +275,36 @@ NAME must be equal to `tramp-current-connection'."
 ;;; Integration of shortdoc.el:
 
 (with-eval-after-load 'shortdoc
-  (dolist (elem `((file-remote-p
-                  :eval (file-remote-p "/ssh:user@host:/tmp/foo")
-                  :eval (file-remote-p "/ssh:user@host:/tmp/foo" 'method)
-                  :eval (file-remote-p "/ssh:user@[::1]#1234:/tmp/foo" 'host)
-                  ;; We don't want to see the text properties.
-                  :no-eval (file-remote-p "/sudo::/tmp/foo" 'user)
-                  :result ,(substring-no-properties
-                            (file-remote-p "/sudo::/tmp/foo" 'user)))
-                 (file-local-name
-                  :eval (file-local-name "/ssh:user@host:/tmp/foo"))
-                 (file-local-copy
-                  :no-eval (file-local-copy "/ssh:user@host:/tmp/foo")
-                  :eg-result "/tmp/tramp.8ihLbO"
-                  :eval (file-local-copy "/tmp/foo"))))
-    (unless (assoc (car elem)
-                  (member "Remote Files" (assq 'file shortdoc--groups)))
-      (shortdoc-add-function 'file "Remote Files" elem)))
-
-  (add-hook
-   'tramp-integration-unload-hook
-   (lambda ()
-     (let ((glist (assq 'file shortdoc--groups)))
-       (while (and (consp glist)
-                   (not (and (stringp (cadr glist))
-                             (string-equal (cadr glist) "Remote Files"))))
-         (setq glist (cdr glist)))
-       (when (consp glist)
-         (setcdr glist nil))))))
+  ;; Some packages deactivate Tramp.  They don't deserve a shortdoc entry then.
+  (when (file-remote-p "/ssh:user@host:/tmp/foo")
+    (dolist (elem `((file-remote-p
+                    :eval (file-remote-p "/ssh:user@host:/tmp/foo")
+                    :eval (file-remote-p "/ssh:user@host:/tmp/foo" 'method)
+                    :eval (file-remote-p "/ssh:user@[::1]#1234:/tmp/foo" 'host)
+                    ;; We don't want to see the text properties.
+                    :no-eval (file-remote-p "/sudo::/tmp/foo" 'user)
+                    :result ,(substring-no-properties
+                              (file-remote-p "/sudo::/tmp/foo" 'user)))
+                   (file-local-name
+                    :eval (file-local-name "/ssh:user@host:/tmp/foo"))
+                   (file-local-copy
+                    :no-eval (file-local-copy "/ssh:user@host:/tmp/foo")
+                    :eg-result "/tmp/tramp.8ihLbO"
+                    :eval (file-local-copy "/tmp/foo"))))
+      (unless (assoc (car elem)
+                    (member "Remote Files" (assq 'file shortdoc--groups)))
+       (shortdoc-add-function 'file "Remote Files" elem)))
+
+    (add-hook
+     'tramp-integration-unload-hook
+     (lambda ()
+       (let ((glist (assq 'file shortdoc--groups)))
+        (while (and (consp glist)
+                     (not (and (stringp (cadr glist))
+                               (string-equal (cadr glist) "Remote Files"))))
+           (setq glist (cdr glist)))
+        (when (consp glist)
+           (setcdr glist nil)))))))
 
 ;;; Integration of compile.el: