summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2010-02-04 17:25:57 +0100
committerMichael Albinus <michael.albinus@gmx.de>2010-02-04 17:25:57 +0100
commitd5b3979c8a0129ab007179a8d6e554dfbcfaa24d (patch)
tree29a4f60bb891e4e4f8f5136b1215f9229f446a26 /lisp
parent6c594ec63d2a81aabd59883d0ae1baffa77b2dd0 (diff)
downloademacs-d5b3979c8a0129ab007179a8d6e554dfbcfaa24d.tar.gz
emacs-d5b3979c8a0129ab007179a8d6e554dfbcfaa24d.tar.bz2
emacs-d5b3979c8a0129ab007179a8d6e554dfbcfaa24d.zip
* dired.el (dired-revert): If DIRED-DIRECTORY is a cons cell, call
`dired-uncache' for every elemnt which is an absolute file name. * net/tramp.el (tramp-handle-dired-uncache): When DIR is not a directory, handle its directory component. (tramp-handle-file-remote-p): Let-bind `tramp-verbose' to 3; this function is called permanently and creates noise, otherwise. * net/tramp-imap.el (tramp-imap-handle-insert-directory): * net/tramp-smb.el (tramp-smb-handle-insert-directory): Handle the case, FILENAME is not in `default-directory'. (Bug#5478)
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog14
-rw-r--r--lisp/dired.el8
-rw-r--r--lisp/net/tramp-imap.el14
-rw-r--r--lisp/net/tramp-smb.el11
-rw-r--r--lisp/net/tramp.el35
5 files changed, 56 insertions, 26 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index de3446fd524..baf62e0b013 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,17 @@
+2010-02-04 Michael Albinus <michael.albinus@gmx.de>
+
+ * dired.el (dired-revert): If DIRED-DIRECTORY is a cons cell, call
+ `dired-uncache' for every elemnt which is an absolute file name.
+
+ * net/tramp.el (tramp-handle-dired-uncache): When DIR is not a
+ directory, handle its directory component.
+ (tramp-handle-file-remote-p): Let-bind `tramp-verbose' to 3; this
+ function is called permanently and creates noise, otherwise.
+
+ * net/tramp-imap.el (tramp-imap-handle-insert-directory):
+ * net/tramp-smb.el (tramp-smb-handle-insert-directory):
+ Handle the case, FILENAME is not in `default-directory'. (Bug#5478)
+
2010-02-04 David Burger <dburger@google.com> (tiny change)
* macros.el (apply-macro-to-region-lines):
diff --git a/lisp/dired.el b/lisp/dired.el
index 1fc90c308b1..c3d1435401e 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -1144,8 +1144,12 @@ Preserves old cursor, marks/flags, hidden-p."
(setq mark-alist;; only after dired-remember-hidden since this unhides:
(dired-remember-marks (point-min) (point-max)))
;; treat top level dir extra (it may contain wildcards)
- (dired-uncache
- (if (consp dired-directory) (car dired-directory) dired-directory))
+ (if (not (consp dired-directory))
+ (dired-uncache dired-directory)
+ (dired-uncache (car dired-directory))
+ (dolist (dir (cdr dired-directory))
+ (if (file-name-absolute-p dir)
+ (dired-uncache dir))))
;; Run dired-after-readin-hook just once, below.
(let ((dired-after-readin-hook nil))
(dired-readin)
diff --git a/lisp/net/tramp-imap.el b/lisp/net/tramp-imap.el
index 6f20d527713..60c19c1a43c 100644
--- a/lisp/net/tramp-imap.el
+++ b/lisp/net/tramp-imap.el
@@ -472,14 +472,18 @@ SIZE MODE WEIRD INODE DEVICE)."
(nth 6 x)))) ; date
;; For the file name, we set the `dired-filename'
;; property. This allows to handle file names with
- ;; leading or trailing spaces as well.
+ ;; leading or trailing spaces as well. The inserted name
+ ;; could be from somewhere else, so we use the relative
+ ;; file name of `default-directory'.
(let ((pos (point)))
- (insert (format "%s" (nth 0 x))) ; file name
- (put-text-property pos (point) 'dired-filename t))
- (insert "\n")
+ (insert
+ (format
+ "%s\n"
+ (file-relative-name (expand-file-name (nth 0 x) filename))))
+ (put-text-property pos (1- (point)) 'dired-filename t))
(forward-line)
(beginning-of-line)))
- entries)))))
+ entries)))))
(defun tramp-imap-handle-insert-file-contents
(filename &optional visit beg end replace)
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index e9051f0a435..a8c8345c446 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -716,7 +716,7 @@ PRESERVE-UID-GID is completely ignored."
(when (tramp-smb-get-stat-capability v)
(ignore-errors
(file-attributes
- (expand-file-name (nth 0 x)) 'string)))))
+ (expand-file-name (nth 0 x) filename) 'string)))))
(insert
(format
"%10s %3d %-8s %-8s %8s %s "
@@ -732,9 +732,14 @@ PRESERVE-UID-GID is completely ignored."
"%b %e %R"
"%b %e %Y")
(nth 3 x)))) ; date
- ;; We mark the filename.
+ ;; We mark the file name. The inserted name could be
+ ;; from somewhere else, so we use the relative file
+ ;; name of `default-directory'.
(let ((start (point)))
- (insert (format "%s\n" (nth 0 x))) ; file name
+ (insert
+ (format
+ "%s\n"
+ (file-relative-name (expand-file-name (nth 0 x) filename))))
(put-text-property start (1- (point)) 'dired-filename t))
(forward-line)
(beginning-of-line))))
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 28a30155a66..a573a75afe2 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -4035,9 +4035,11 @@ This is like `dired-recursive-delete-directory' for Tramp files."
(concat file ".z"))
(t nil)))))))))
-(defun tramp-handle-dired-uncache (dir)
+(defun tramp-handle-dired-uncache (dir &optional dir-p)
"Like `dired-uncache' for Tramp files."
- (with-parsed-tramp-file-name dir nil
+ ;; DIR-P is valid for XEmacs only.
+ (with-parsed-tramp-file-name
+ (if (or dir-p (file-directory-p dir)) dir (file-name-directory dir)) nil
(tramp-flush-file-property v localname)))
;; Pacify byte-compiler. The function is needed on XEmacs only. I'm
@@ -4663,20 +4665,21 @@ Lisp error raised when PROGRAM is nil is trapped also, returning 1."
(defun tramp-handle-file-remote-p (filename &optional identification connected)
"Like `file-remote-p' for Tramp files."
- (when (tramp-tramp-file-p filename)
- (let* ((v (tramp-dissect-file-name filename))
- (p (tramp-get-connection-process v))
- (c (and p (processp p) (memq (process-status p) '(run open)))))
- ;; We expand the file name only, if there is already a connection.
- (with-parsed-tramp-file-name
- (if c (expand-file-name filename) filename) nil
- (and (or (not connected) c)
- (cond
- ((eq identification 'method) method)
- ((eq identification 'user) user)
- ((eq identification 'host) host)
- ((eq identification 'localname) localname)
- (t (tramp-make-tramp-file-name method user host ""))))))))
+ (let ((tramp-verbose 3))
+ (when (tramp-tramp-file-p filename)
+ (let* ((v (tramp-dissect-file-name filename))
+ (p (tramp-get-connection-process v))
+ (c (and p (processp p) (memq (process-status p) '(run open)))))
+ ;; We expand the file name only, if there is already a connection.
+ (with-parsed-tramp-file-name
+ (if c (expand-file-name filename) filename) nil
+ (and (or (not connected) c)
+ (cond
+ ((eq identification 'method) method)
+ ((eq identification 'user) user)
+ ((eq identification 'host) host)
+ ((eq identification 'localname) localname)
+ (t (tramp-make-tramp-file-name method user host "")))))))))
(defun tramp-find-file-name-coding-system-alist (filename tmpname)
"Like `find-operation-coding-system' for Tramp filenames.