]> git.eshelyaron.com Git - emacs.git/commitdiff
* dired.el (dired-revert): If DIRED-DIRECTORY is a cons cell, call
authorMichael Albinus <michael.albinus@gmx.de>
Thu, 4 Feb 2010 16:25:57 +0000 (17:25 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Thu, 4 Feb 2010 16:25:57 +0000 (17:25 +0100)
`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)

lisp/ChangeLog
lisp/dired.el
lisp/net/tramp-imap.el
lisp/net/tramp-smb.el
lisp/net/tramp.el

index de3446fd524b798e1e9fb4ae4e30b342e320ea54..baf62e0b013936a13e7139f84d0d611f2154a2da 100644 (file)
@@ -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):
index 1fc90c308b168eee1099617eeb739112caf92dfc..c3d1435401e773c1aa8340869de0d7c89d6ccd1a 100644 (file)
@@ -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)
index 6f20d5277132f381b9111d94bdcc0db77a99194b..60c19c1a43c791cc0963a7d27326960ddb5238a0 100644 (file)
@@ -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)
index e9051f0a4354ea0125944cc27ca89bc841a87829..a8c8345c4467b18898d5d2d141a9e8cb6e24a245 100644 (file)
@@ -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))))
index 28a30155a665969d598458b3080a200c5b60dbdc..a573a75afe2eede4668bd2dafe559e04e4b3522a 100644 (file)
@@ -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.