[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 14e4450479: Improve Tramp's write-region
From: |
Michael Albinus |
Subject: |
master 14e4450479: Improve Tramp's write-region |
Date: |
Thu, 12 May 2022 03:03:56 -0400 (EDT) |
branch: master
commit 14e445047918321ee19a87283a1c32df5530f4fb
Author: Michael Albinus <michael.albinus@gmx.de>
Commit: Michael Albinus <michael.albinus@gmx.de>
Improve Tramp's write-region
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
Use `tramp-handle-write-region'.
(tramp-sudoedit-handle-write-region): Remove.
* lisp/net/tramp.el (tramp-skeleton-write-region):
Set extended attributes.
---
lisp/net/tramp-sudoedit.el | 34 +---------------------------------
lisp/net/tramp.el | 7 +++++++
2 files changed, 8 insertions(+), 33 deletions(-)
diff --git a/lisp/net/tramp-sudoedit.el b/lisp/net/tramp-sudoedit.el
index fb885ebd05..420a593644 100644
--- a/lisp/net/tramp-sudoedit.el
+++ b/lisp/net/tramp-sudoedit.el
@@ -147,7 +147,7 @@ See `tramp-actions-before-shell' for more info.")
(unlock-file . tramp-handle-unlock-file)
(vc-registered . ignore)
(verify-visited-file-modtime . tramp-handle-verify-visited-file-modtime)
- (write-region . tramp-sudoedit-handle-write-region))
+ (write-region . tramp-handle-write-region))
"Alist of handler functions for Tramp SUDOEDIT method.")
;; It must be a `defsubst' in order to push the whole code into
@@ -739,38 +739,6 @@ ID-FORMAT valid values are `string' and `integer'."
(or gid (tramp-get-remote-gid v 'integer)))
(tramp-unquote-file-local-name filename))))
-(defun tramp-sudoedit-handle-write-region
- (start end filename &optional append visit lockname mustbenew)
- "Like `write-region' for Tramp files."
- (setq filename (expand-file-name filename))
- (with-parsed-tramp-file-name filename nil
- (let* ((uid (or (file-attribute-user-id (file-attributes filename
'integer))
- (tramp-get-remote-uid v 'integer)))
- (gid (or (file-attribute-group-id (file-attributes filename
'integer))
- (tramp-get-remote-gid v 'integer)))
- (flag (and (eq mustbenew 'excl) 'nofollow))
- (modes (tramp-default-file-modes filename flag))
- (attributes (file-extended-attributes filename)))
- (prog1
- (tramp-handle-write-region
- start end filename append visit lockname mustbenew)
-
- ;; Set the ownership, modes and extended attributes. This is
- ;; not performed in `tramp-handle-write-region'.
- (unless (and (= (file-attribute-user-id
- (file-attributes filename 'integer))
- uid)
- (= (file-attribute-group-id
- (file-attributes filename 'integer))
- gid))
- (tramp-set-file-uid-gid filename uid gid))
- (tramp-compat-set-file-modes filename modes flag)
- ;; We ignore possible errors, because ACL strings could be
- ;; incompatible.
- (when attributes
- (ignore-errors
- (set-file-extended-attributes filename attributes)))))))
-
;; Internal functions.
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index b26346443d..b06147599c 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -3415,6 +3415,7 @@ BODY is the backend specific code."
(gid (or (file-attribute-group-id
(file-attributes filename 'integer))
(tramp-get-remote-gid v 'integer)))
+ (attributes (file-extended-attributes filename))
(curbuf (current-buffer)))
;; Lock file.
@@ -3453,6 +3454,12 @@ BODY is the backend specific code."
(when need-chown
(tramp-set-file-uid-gid filename uid gid)))
+ ;; Set extended attributes. We ignore possible errors,
+ ;; because ACL strings could be incompatible.
+ (when attributes
+ (ignore-errors
+ (set-file-extended-attributes filename attributes)))
+
;; Unlock file.
(when file-locked
;; `unlock-file' exists since Emacs 28.1.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 14e4450479: Improve Tramp's write-region,
Michael Albinus <=