Mercurial > emacs
changeset 102850:0bb3e7671842
* net/ange-ftp.el (ange-ftp-set-file-modes): New defun. Change
`ange-ftp' property of `set-file-modes' to
`ange-ftp-set-file-modes'.
(ange-ftp-call-chmod): Add error handling.
author | Michael Albinus <michael.albinus@gmx.de> |
---|---|
date | Sun, 05 Apr 2009 17:49:47 +0000 |
parents | ec97c15e7e13 |
children | 5cc9a4c776e8 |
files | lisp/net/ange-ftp.el |
diffstat | 1 files changed, 6 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/net/ange-ftp.el Sun Apr 05 05:12:08 2009 +0000 +++ b/lisp/net/ange-ftp.el Sun Apr 05 17:49:47 2009 +0000 @@ -4350,6 +4350,7 @@ (put 'dired-compress-file 'ange-ftp 'ange-ftp-dired-compress-file) (put 'load 'ange-ftp 'ange-ftp-load) (put 'find-backup-file-name 'ange-ftp 'ange-ftp-find-backup-file-name) +(put 'set-file-modes 'ange-ftp 'ange-ftp-set-file-modes) ;; Turn off truename processing to save time. ;; Treat each name as its own truename. @@ -4358,7 +4359,6 @@ ;; We must return non-nil in order to mask our inability to do the job. ;; Otherwise there are errors when applied to the target file during ;; copying from a (localhost) Tramp file. -(put 'set-file-modes 'ange-ftp 'ignore) (put 'set-file-times 'ange-ftp 'ignore) ;; Turn off RCS/SCCS processing to save time. @@ -4577,12 +4577,14 @@ (format "doing chmod %s" abbr)))) (or (car result) - (call-process - remote-shell-program - nil t nil host dired-chmod-program mode name)))))) + (ange-ftp-error + host user (concat "CHMOD failed: " (cdr result)))))))) rest)) (setq ange-ftp-ls-cache-file nil) ;Stop confusing Dired. 0) + +(defun ange-ftp-set-file-modes (filename mode) + (ange-ftp-call-chmod (list (format "%o" mode) filename))) ;; This is turned off because it has nothing properly to do ;; with dired. It could be reasonable to adapt this to