* net/tramp-sh.el (tramp-sh-handle-set-file-acl): Add argument to
`error' call. (tramp-do-copy-or-rename-file): Ignore errors when calling `set-file-extended-attributes'. * net/tramp-smb.el (tramp-smb-file-name-handler-alist): Add handler for `file-acl'. (tramp-smb-handle-file-acl): New defun.
This commit is contained in:
parent
9d9ffa1310
commit
aca3d51dfa
3 changed files with 33 additions and 5 deletions
|
@ -1,3 +1,14 @@
|
|||
2013-01-02 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* net/tramp-sh.el (tramp-sh-handle-set-file-acl): Add argument to
|
||||
`error' call.
|
||||
(tramp-do-copy-or-rename-file): Ignore errors when calling
|
||||
`set-file-extended-attributes'.
|
||||
|
||||
* net/tramp-smb.el (tramp-smb-file-name-handler-alist): Add
|
||||
handler for `file-acl'.
|
||||
(tramp-smb-handle-file-acl): New defun.
|
||||
|
||||
2013-01-02 Jay Belanger <jay.p.belanger@gmail.com>
|
||||
|
||||
* calc/README: Mention ISO 8601 week-numbering dates.
|
||||
|
|
|
@ -1570,7 +1570,7 @@ and gid of the corresponding user is taken. Both parameters must be integers."
|
|||
v (format
|
||||
"setfacl -m %s %s"
|
||||
line (tramp-shell-quote-argument localname)))
|
||||
(error))))
|
||||
(error nil))))
|
||||
;; In case of errors, we return `nil'.
|
||||
(error
|
||||
(tramp-set-file-property v localname "file-acl" 'undef)
|
||||
|
@ -2097,9 +2097,11 @@ file names."
|
|||
;; One of them must be a Tramp file.
|
||||
(error "Tramp implementation says this cannot happen")))
|
||||
|
||||
;; Handle `preserve-extended-attributes'.
|
||||
;; Handle `preserve-extended-attributes'. We ignore possible
|
||||
;; errors, because ACL strings could be incompatible.
|
||||
(when attributes
|
||||
(apply 'set-file-extended-attributes (list newname attributes)))
|
||||
(ignore-errors
|
||||
(apply 'set-file-extended-attributes (list newname attributes))))
|
||||
|
||||
;; In case of `rename', we must flush the cache of the source file.
|
||||
(when (and t1 (eq op 'rename))
|
||||
|
|
|
@ -195,7 +195,7 @@ See `tramp-actions-before-shell' for more info.")
|
|||
(dired-uncache . tramp-handle-dired-uncache)
|
||||
(expand-file-name . tramp-smb-handle-expand-file-name)
|
||||
(file-accessible-directory-p . tramp-smb-handle-file-directory-p)
|
||||
(file-acl . ignore)
|
||||
(file-acl . tramp-smb-handle-file-acl)
|
||||
(file-attributes . tramp-smb-handle-file-attributes)
|
||||
(file-directory-p . tramp-smb-handle-file-directory-p)
|
||||
(file-executable-p . tramp-handle-file-exists-p)
|
||||
|
@ -641,6 +641,22 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored."
|
|||
method user host
|
||||
(tramp-run-real-handler 'expand-file-name (list localname))))))
|
||||
|
||||
(defun tramp-smb-handle-file-acl (filename)
|
||||
"Like `file-acl' for Tramp files."
|
||||
(with-parsed-tramp-file-name filename nil
|
||||
(with-tramp-file-property v localname "file-acl"
|
||||
(when (tramp-smb-send-command
|
||||
v (format "getfacl \"%s\"" (tramp-smb-get-localname v)))
|
||||
(with-current-buffer (tramp-get-connection-buffer v)
|
||||
(goto-char (point-min))
|
||||
(while (looking-at-p "^#")
|
||||
(forward-line)
|
||||
(delete-region (point-min) (point)))
|
||||
(goto-char (point-max))
|
||||
(delete-blank-lines)
|
||||
(when (> (point-max) (point-min))
|
||||
(substring-no-properties (buffer-string))))))))
|
||||
|
||||
(defun tramp-smb-handle-file-attributes (filename &optional id-format)
|
||||
"Like `file-attributes' for Tramp files."
|
||||
(unless id-format (setq id-format 'integer))
|
||||
|
@ -1815,6 +1831,5 @@ Returns nil if an error message has appeared."
|
|||
;; * Try to remove the inclusion of dummy "" directory. Seems to be at
|
||||
;; several places, especially in `tramp-smb-handle-insert-directory'.
|
||||
;; * Ignore case in file names.
|
||||
;; * Implement `tramp-smb-handle-file-acl' for proper Samba versions.
|
||||
|
||||
;;; tramp-smb.el ends here
|
||||
|
|
Loading…
Add table
Reference in a new issue