Function: tramp-skeleton-set-file-modes-times-uid-gid

tramp-skeleton-set-file-modes-times-uid-gid is a macro defined in tramp.el.gz.

Signature

(tramp-skeleton-set-file-modes-times-uid-gid FILENAME &rest BODY)

Documentation

Skeleton for tramp-*-set-file-{modes,times,uid-gid}.

BODY is the backend specific code.

Source Code

;; Defined in /usr/src/emacs/lisp/net/tramp.el.gz
(defmacro tramp-skeleton-set-file-modes-times-uid-gid
    (filename &rest body)
  "Skeleton for `tramp-*-set-file-{modes,times,uid-gid}'.
BODY is the backend specific code."
  (declare (indent 1) (debug t))
  `(with-parsed-tramp-file-name (expand-file-name ,filename) nil
     (tramp-barf-if-file-missing v ,filename
       (if (not (file-exists-p ,filename))
	   ;; Trigger the `file-missing' error.
	   (signal 'error nil)
	 (with-tramp-saved-file-properties
	     v localname
	     ;; We cannot add "file-attributes", "file-executable-p",
	     ;; "file-ownership-preserved-p", "file-readable-p",
	     ;; "file-writable-p".
	     '("file-directory-p" "file-exists-p"
	       "file-symlink-p" "file-truename")
	   (tramp-flush-file-properties v localname))
	 (condition-case err
	     (progn ,@body)
	   (error (if tramp-inhibit-errors-if-setting-file-attributes-fail
		      (display-warning 'tramp (error-message-string err))
		    (signal (car err) (cdr err)))))))))