]> git.eshelyaron.com Git - emacs.git/commitdiff
Add `permission-denied' error to Tramp
authorMichael Albinus <michael.albinus@gmx.de>
Tue, 21 Dec 2021 14:15:16 +0000 (15:15 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Tue, 21 Dec 2021 14:15:16 +0000 (15:15 +0100)
* lisp/net/tramp-compat.el (tramp-permission-denied): New defconst.
(tramp-compat-permission-denied): New defsubst.

* lisp/net/tramp.el (tramp-handle-access-file):
* lisp/net/tramp-archive.el (tramp-archive-handle-copy-file): Use it.

lisp/net/tramp-archive.el
lisp/net/tramp-compat.el
lisp/net/tramp.el

index b44a4e86aadd07242471a59b6575c4da188035f9..bba94f2743c3cec9fd3314e89101162d4561b543 100644 (file)
@@ -575,9 +575,8 @@ offered."
    preserve-uid-gid preserve-extended-attributes)
   "Like `copy-file' for file archives."
   (when (tramp-archive-file-name-p newname)
-    (tramp-error
-     (tramp-archive-dissect-file-name newname) 'file-error
-      "Permission denied: %s" newname))
+    (tramp-compat-permission-denied
+     (tramp-archive-dissect-file-name newname) newname))
   (copy-file
    (tramp-archive-gvfs-file-name filename) newname ok-if-already-exists
    keep-date preserve-uid-gid preserve-extended-attributes))
index 627ff1edaec9b0f8e8bfd549d166643481c5b248..1936d2af1a61605b628d5603bc312f902f016429 100644 (file)
@@ -272,6 +272,17 @@ CONDITION can also be a list of error conditions."
                          (car components))
                 (cdr components)))))))
 
+;; `permission-denied' is introduced in Emacs 29.1.
+(defconst tramp-permission-denied
+  (if (get 'permission-denied 'error-conditions) 'permission-denied 'file-error)
+  "The error symbol for the `permission-denied' error.")
+
+(defsubst tramp-compat-permission-denied (vec file)
+  "Emit the `permission-denied' error."
+  (if (get 'permission-denied 'error-conditions)
+      (tramp-error vec tramp-permission-denied file)
+    (tramp-error vec tramp-permission-denied "Permission denied: %s" file)))
+
 (dolist (elt (all-completions "tramp-compat-" obarray 'functionp))
   (put (intern elt) 'tramp-suppress-trace t))
 
index 940e25e04f9001f8190604c3c15b68da7dddb42f..7dc3dd79ba1f24b4ae4e9b772d8b776b5ec8c6a6 100644 (file)
@@ -3363,8 +3363,8 @@ User is always nil."
             (if (file-directory-p filename)
                 #'file-accessible-directory-p #'file-readable-p)
             filename)
-         (tramp-error
-          v 'file-error (format "%s: Permission denied, %s" string filename)))
+         (tramp-compat-permission-denied
+          v (format "%s: Permission denied, %s" string filename)))
       (tramp-error
        v 'file-missing
        (format "%s: No such file or directory, %s" string filename)))))