Mercurial > emacs
comparison lisp/net/tramp-imap.el @ 110776:073caec7510f
* net/tramp.el (tramp-handle-directory-files-and-attributes)
(tramp-handle-file-exists-p, tramp-handle-file-newer-than-file-p):
New defuns, taken from tramp-smb.el.
(tramp-coding-system-change-eol-conversion)
(tramp-set-process-query-on-exit-flag): Removed.
* net/tramp-compat.el (top): Do not check for byte-compiler
objects.
(tramp-compat-coding-system-change-eol-conversion)
(tramp-compat-set-process-query-on-exit-flag): New defuns, taken
from tramp.el.
* net/tramp-gvfs.el:
* net/tramp-gw.el: Replace `tramp-set-process-query-on-exit-flag'
by `tramp-compat-set-process-query-on-exit-flag'.
* net/tramp-imap.el (tramp-imap-file-name-handler-alist): Use
`tramp-handle-directory-files-and-attributes',
`tramp-handle-file-exists-p' and
`tramp-handle-file-newer-than-file-p'.
(tramp-imap-handle-file-exists-p)
(tramp-imap-handle-file-executable-p)
(tramp-imap-handle-file-readable-p)
(tramp-imap-handle-directory-files-and-attributes)
(tramp-imap-handle-file-newer-than-file-p): Removed.
* net/tramp-sh.el: Replace `tramp-set-process-query-on-exit-flag'
by `tramp-compat-set-process-query-on-exit-flag' and
`tramp-coding-system-change-eol-conversion' by
`tramp-compat-coding-system-change-eol-conversion'.
* net/tramp-smb.el (tramp-smb-file-name-handler-alist): Use
`tramp-handle-directory-files-and-attributes',
`tramp-handle-file-exists-p' and
`tramp-handle-file-newer-than-file-p'.
(tramp-smb-handle-directory-files-and-attributes)
(tramp-smb-handle-file-exists-p)
(tramp-smb-handle-file-newer-than-file-p): Removed.
(tramp-smb-maybe-open-connection): Replace
`tramp-set-process-query-on-exit-flag' by
`tramp-compat-set-process-query-on-exit-flag'.
author | Michael Albinus <michael.albinus@gmx.de> |
---|---|
date | Tue, 05 Oct 2010 16:20:24 +0200 |
parents | ec526909f60b |
children | 8e746f396237 |
comparison
equal
deleted
inserted
replaced
110775:6ae391b53988 | 110776:073caec7510f |
---|---|
120 (delete-file . tramp-imap-handle-delete-file) | 120 (delete-file . tramp-imap-handle-delete-file) |
121 ;; `diff-latest-backup-file' performed by default handler | 121 ;; `diff-latest-backup-file' performed by default handler |
122 (directory-file-name . tramp-handle-directory-file-name) | 122 (directory-file-name . tramp-handle-directory-file-name) |
123 (directory-files . tramp-handle-directory-files) | 123 (directory-files . tramp-handle-directory-files) |
124 (directory-files-and-attributes | 124 (directory-files-and-attributes |
125 . tramp-imap-handle-directory-files-and-attributes) | 125 . tramp-handle-directory-files-and-attributes) |
126 (dired-call-process . ignore) | 126 (dired-call-process . ignore) |
127 ;; `dired-compress-file' performed by default handler | 127 ;; `dired-compress-file' performed by default handler |
128 ;; `dired-uncache' performed by default handler | 128 ;; `dired-uncache' performed by default handler |
129 (expand-file-name . tramp-imap-handle-expand-file-name) | 129 (expand-file-name . tramp-imap-handle-expand-file-name) |
130 ;; `file-accessible-directory-p' performed by default handler | 130 ;; `file-accessible-directory-p' performed by default handler |
131 (file-attributes . tramp-imap-handle-file-attributes) | 131 (file-attributes . tramp-imap-handle-file-attributes) |
132 (file-directory-p . tramp-imap-handle-file-directory-p) | 132 (file-directory-p . tramp-imap-handle-file-directory-p) |
133 (file-executable-p . tramp-imap-handle-file-executable-p) | 133 (file-executable-p . ignore) |
134 (file-exists-p . tramp-imap-handle-file-exists-p) | 134 (file-exists-p . tramp-handle-file-exists-p) |
135 (file-local-copy . tramp-imap-handle-file-local-copy) | 135 (file-local-copy . tramp-imap-handle-file-local-copy) |
136 (file-modes . tramp-handle-file-modes) | 136 (file-modes . tramp-handle-file-modes) |
137 (file-name-all-completions . tramp-imap-handle-file-name-all-completions) | 137 (file-name-all-completions . tramp-imap-handle-file-name-all-completions) |
138 (file-name-as-directory . tramp-handle-file-name-as-directory) | 138 (file-name-as-directory . tramp-handle-file-name-as-directory) |
139 (file-name-completion . tramp-handle-file-name-completion) | 139 (file-name-completion . tramp-handle-file-name-completion) |
140 (file-name-directory . tramp-handle-file-name-directory) | 140 (file-name-directory . tramp-handle-file-name-directory) |
141 (file-name-nondirectory . tramp-handle-file-name-nondirectory) | 141 (file-name-nondirectory . tramp-handle-file-name-nondirectory) |
142 ;; `file-name-sans-versions' performed by default handler | 142 ;; `file-name-sans-versions' performed by default handler |
143 (file-newer-than-file-p . tramp-imap-handle-file-newer-than-file-p) | 143 (file-newer-than-file-p . tramp-handle-file-newer-than-file-p) |
144 (file-ownership-preserved-p . ignore) | 144 (file-ownership-preserved-p . ignore) |
145 (file-readable-p . tramp-imap-handle-file-readable-p) | 145 (file-readable-p . tramp-handle-file-exists-p) |
146 (file-regular-p . tramp-handle-file-regular-p) | 146 (file-regular-p . tramp-handle-file-regular-p) |
147 (file-remote-p . tramp-handle-file-remote-p) | 147 (file-remote-p . tramp-handle-file-remote-p) |
148 ;; `file-selinux-context' performed by default handler. | 148 ;; `file-selinux-context' performed by default handler. |
149 (file-symlink-p . tramp-handle-file-symlink-p) | 149 (file-symlink-p . tramp-handle-file-symlink-p) |
150 ;; `file-truename' performed by default handler | 150 ;; `file-truename' performed by default handler |
524 ;;; (setq size (- end beg)) | 524 ;;; (setq size (- end beg)) |
525 ;;; (buffer-substring beg end)) | 525 ;;; (buffer-substring beg end)) |
526 (goto-char point) | 526 (goto-char point) |
527 (list (expand-file-name filename) size)))))) | 527 (list (expand-file-name filename) size)))))) |
528 | 528 |
529 (defun tramp-imap-handle-file-exists-p (filename) | |
530 "Like `file-exists-p' for Tramp files." | |
531 (and (file-attributes filename) t)) | |
532 | |
533 (defun tramp-imap-handle-file-directory-p (filename) | 529 (defun tramp-imap-handle-file-directory-p (filename) |
534 "Like `file-directory-p' for Tramp-IMAP files." | 530 "Like `file-directory-p' for Tramp-IMAP files." |
535 ;; We allow only mailboxes to be a directory. | 531 ;; We allow only mailboxes to be a directory. |
536 (with-parsed-tramp-file-name (expand-file-name filename default-directory) nil | 532 (with-parsed-tramp-file-name (expand-file-name filename default-directory) nil |
537 (and (string-match "^/[^/]*$" (directory-file-name localname)) t))) | 533 (and (string-match "^/[^/]*$" (directory-file-name localname)) t))) |
547 | 543 |
548 (defun tramp-imap-get-file-inode (filename &optional id-format) | 544 (defun tramp-imap-get-file-inode (filename &optional id-format) |
549 "Get inode equivalent \(actually the UID) for Tramp-IMAP FILENAME." | 545 "Get inode equivalent \(actually the UID) for Tramp-IMAP FILENAME." |
550 (nth 10 (tramp-compat-file-attributes filename id-format))) | 546 (nth 10 (tramp-compat-file-attributes filename id-format))) |
551 | 547 |
552 (defun tramp-imap-handle-file-executable-p (filename) | |
553 "Like `file-executable-p' for Tramp files. False for IMAP." | |
554 nil) | |
555 | |
556 (defun tramp-imap-handle-file-readable-p (filename) | |
557 "Like `file-readable-p' for Tramp files. True for IMAP." | |
558 (file-exists-p filename)) | |
559 | |
560 (defun tramp-imap-handle-file-writable-p (filename) | 548 (defun tramp-imap-handle-file-writable-p (filename) |
561 "Like `file-writable-p' for Tramp files. True for IMAP." | 549 "Like `file-writable-p' for Tramp files. True for IMAP." |
562 ;; `file-exists-p' does not work yet for directories. | 550 ;; `file-exists-p' does not work yet for directories. |
563 ;; (file-exists-p (file-name-directory filename))) | 551 ;; (file-exists-p (file-name-directory filename))) |
564 (file-directory-p (file-name-directory filename))) | 552 (file-directory-p (file-name-directory filename))) |
568 (cond | 556 (cond |
569 ((not (file-exists-p filename)) nil) | 557 ((not (file-exists-p filename)) nil) |
570 (t (with-parsed-tramp-file-name (expand-file-name filename) nil | 558 (t (with-parsed-tramp-file-name (expand-file-name filename) nil |
571 (let ((iht (tramp-imap-make-iht v))) | 559 (let ((iht (tramp-imap-make-iht v))) |
572 (imap-hash-rem (tramp-imap-get-file-inode filename) iht)))))) | 560 (imap-hash-rem (tramp-imap-get-file-inode filename) iht)))))) |
573 | |
574 (defun tramp-imap-handle-directory-files-and-attributes | |
575 (directory &optional full match nosort id-format) | |
576 "Like `directory-files-and-attributes' for Tramp files." | |
577 (mapcar | |
578 (lambda (x) | |
579 (cons x (tramp-compat-file-attributes | |
580 (if full x (expand-file-name x directory)) id-format))) | |
581 (directory-files directory full match nosort))) | |
582 | |
583 ;; TODO: fix this in tramp-imap-get-file-entries. | |
584 (defun tramp-imap-handle-file-newer-than-file-p (file1 file2) | |
585 "Like `file-newer-than-file-p' for Tramp files." | |
586 (cond | |
587 ((not (file-exists-p file1)) nil) | |
588 ((not (file-exists-p file2)) t) | |
589 (t (tramp-time-less-p (nth 5 (file-attributes file2)) | |
590 (nth 5 (file-attributes file1)))))) | |
591 | 561 |
592 (defun tramp-imap-handle-file-local-copy (filename) | 562 (defun tramp-imap-handle-file-local-copy (filename) |
593 "Like `file-local-copy' for Tramp files." | 563 "Like `file-local-copy' for Tramp files." |
594 (with-parsed-tramp-file-name (expand-file-name filename) nil | 564 (with-parsed-tramp-file-name (expand-file-name filename) nil |
595 (unless (file-exists-p filename) | 565 (unless (file-exists-p filename) |