1975 |
"Like `set-file-modes' for tramp files." |
"Like `set-file-modes' for tramp files." |
1976 |
(with-parsed-tramp-file-name filename nil |
(with-parsed-tramp-file-name filename nil |
1977 |
(when (tramp-ange-ftp-file-name-p multi-method method) |
(when (tramp-ange-ftp-file-name-p multi-method method) |
1978 |
(tramp-invoke-ange-ftp 'set-file-modes filename mode)) |
(tramp-invoke-ange-ftp 'set-file-modes mode filename)) |
1979 |
(save-excursion |
(save-excursion |
1980 |
(unless (zerop (tramp-send-command-and-check |
(unless (zerop (tramp-send-command-and-check |
1981 |
multi-method method user host |
multi-method method user host |
2374 |
;; Possibly invoke Ange-FTP. |
;; Possibly invoke Ange-FTP. |
2375 |
(when (and (tramp-ange-ftp-file-name-p v1-multi-method v1-method) |
(when (and (tramp-ange-ftp-file-name-p v1-multi-method v1-method) |
2376 |
(tramp-ange-ftp-file-name-p v2-multi-method v2-method)) |
(tramp-ange-ftp-file-name-p v2-multi-method v2-method)) |
2377 |
(tramp-invoke-ange-ftp |
(if (eq op 'copy) |
2378 |
(if (eq op 'copy) 'copy-file 'rename-file) |
(tramp-invoke-ange-ftp |
2379 |
filename newname ok-if-already-exists keep-date)) |
'copy-file filename newname ok-if-already-exists keep-date) |
2380 |
|
(tramp-invoke-ange-ftp |
2381 |
|
'rename-file filename newname ok-if-already-exists))) |
2382 |
;; Check if we can use a shortcut. |
;; Check if we can use a shortcut. |
2383 |
(if (and (equal v1-multi-method v2-multi-method) |
(if (and (equal v1-multi-method v2-multi-method) |
2384 |
(equal v1-method v2-method) |
(equal v1-method v2-method) |
2958 |
(with-parsed-tramp-file-name filename nil |
(with-parsed-tramp-file-name filename nil |
2959 |
(when (tramp-ange-ftp-file-name-p multi-method method) |
(when (tramp-ange-ftp-file-name-p multi-method method) |
2960 |
(tramp-invoke-ange-ftp 'write-region |
(tramp-invoke-ange-ftp 'write-region |
2961 |
start end filename append visit lockname confirm)) |
start end filename append visit)) |
2962 |
(let ((curbuf (current-buffer)) |
(let ((curbuf (current-buffer)) |
2963 |
(rcp-program (tramp-get-rcp-program multi-method method)) |
(rcp-program (tramp-get-rcp-program multi-method method)) |
2964 |
(rcp-args (tramp-get-rcp-args multi-method method)) |
(rcp-args (tramp-get-rcp-args multi-method method)) |
3230 |
|
|
3231 |
(defun tramp-invoke-ange-ftp (operation &rest args) |
(defun tramp-invoke-ange-ftp (operation &rest args) |
3232 |
"Invoke the Ange-FTP handler function and throw." |
"Invoke the Ange-FTP handler function and throw." |
3233 |
(or (boundp 'ange-ftp-name-format) (require 'ange-ftp)) |
(or (boundp 'ange-ftp-name-format) |
3234 |
|
(and (require 'ange-ftp) |
3235 |
|
(tramp-disable-ange-ftp))) |
3236 |
(let ((ange-ftp-name-format |
(let ((ange-ftp-name-format |
3237 |
(list (nth 0 tramp-file-name-structure) |
(list (nth 0 tramp-file-name-structure) |
3238 |
(nth 3 tramp-file-name-structure) |
(nth 3 tramp-file-name-structure) |
3244 |
|
|
3245 |
(defun tramp-ange-ftp-file-name-p (multi-method method) |
(defun tramp-ange-ftp-file-name-p (multi-method method) |
3246 |
"Check if it's a filename that should be forwarded to Ange-FTP." |
"Check if it's a filename that should be forwarded to Ange-FTP." |
3247 |
(and (null multi-method) (string= method tramp-ftp-method))) |
(and (not (featurep 'xemacs)) |
3248 |
|
(null multi-method) |
3249 |
|
(string= method tramp-ftp-method))) |
3250 |
|
|
3251 |
|
|
3252 |
;;; Interactions with other packages: |
;;; Interactions with other packages: |