Function: tramp-handle-file-writable-p

tramp-handle-file-writable-p is a byte-compiled function defined in tramp.el.gz.

Signature

(tramp-handle-file-writable-p FILENAME)

Documentation

Like file-writable-p for Tramp files.

Source Code

;; Defined in /usr/src/emacs/lisp/net/tramp.el.gz
(defun tramp-handle-file-writable-p (filename)
  "Like `file-writable-p' for Tramp files."
  (with-parsed-tramp-file-name (expand-file-name filename) nil
    (with-tramp-file-property v localname "file-writable-p"
      (if (file-exists-p filename)
          (or (tramp-check-cached-permissions v ?w 'force)
	      ;; `tramp-check-cached-permissions' doesn't handle
	      ;; symbolic links.
	      (and-let* ((symlink (file-symlink-p filename))
                         ((stringp symlink))
                         ((file-writable-p (file-truename filename))))))
	;; If file doesn't exist, check if directory is writable.
	(and (file-directory-p (file-name-directory filename))
	     (file-writable-p (file-name-directory filename)))))))