Mercurial > emacs
comparison lisp/net/tramp-smb.el @ 107092:2e763e444bc2
* net/ange-ftp.el (ange-ftp-insert-directory):
* net/tramp-imap.el (tramp-imap-handle-insert-directory):
* net/tramp-smb.el (tramp-smb-handle-insert-directory):
Handle also directories. (Bug#5478)
author | Michael Albinus <michael.albinus@gmx.de> |
---|---|
date | Fri, 05 Feb 2010 12:15:28 +0100 |
parents | d7831d04952b |
children | 93125d6fab29 5a6b4fafaa52 |
comparison
equal
deleted
inserted
replaced
107091:c2a34eaf2f6a | 107092:2e763e444bc2 |
---|---|
649 | 649 |
650 (defun tramp-smb-handle-insert-directory | 650 (defun tramp-smb-handle-insert-directory |
651 (filename switches &optional wildcard full-directory-p) | 651 (filename switches &optional wildcard full-directory-p) |
652 "Like `insert-directory' for Tramp files." | 652 "Like `insert-directory' for Tramp files." |
653 (setq filename (expand-file-name filename)) | 653 (setq filename (expand-file-name filename)) |
654 (when full-directory-p | 654 (if full-directory-p |
655 ;; Called from `dired-add-entry'. | 655 ;; Called from `dired-add-entry'. |
656 (setq filename (file-name-as-directory filename))) | 656 (setq filename (file-name-as-directory filename)) |
657 (setq filename (directory-file-name filename))) | |
657 (with-parsed-tramp-file-name filename nil | 658 (with-parsed-tramp-file-name filename nil |
658 (save-match-data | 659 (save-match-data |
659 (let ((base (file-name-nondirectory filename)) | 660 (let ((base (file-name-nondirectory filename)) |
660 ;; We should not destroy the cache entry. | 661 ;; We should not destroy the cache entry. |
661 (entries (copy-sequence | 662 (entries (copy-sequence |
713 (lambda (x) | 714 (lambda (x) |
714 (when (not (zerop (length (nth 0 x)))) | 715 (when (not (zerop (length (nth 0 x)))) |
715 (let ((attr | 716 (let ((attr |
716 (when (tramp-smb-get-stat-capability v) | 717 (when (tramp-smb-get-stat-capability v) |
717 (ignore-errors | 718 (ignore-errors |
718 (file-attributes | 719 (file-attributes filename 'string))))) |
719 (expand-file-name (nth 0 x) filename) 'string))))) | |
720 (insert | 720 (insert |
721 (format | 721 (format |
722 "%10s %3d %-8s %-8s %8s %s " | 722 "%10s %3d %-8s %-8s %8s %s " |
723 (or (nth 8 attr) (nth 1 x)) ; mode | 723 (or (nth 8 attr) (nth 1 x)) ; mode |
724 (or (nth 1 attr) 1) ; inode | 724 (or (nth 1 attr) 1) ; inode |
737 ;; name of `default-directory'. | 737 ;; name of `default-directory'. |
738 (let ((start (point))) | 738 (let ((start (point))) |
739 (insert | 739 (insert |
740 (format | 740 (format |
741 "%s\n" | 741 "%s\n" |
742 (file-relative-name (expand-file-name (nth 0 x) filename)))) | 742 (file-relative-name |
743 (expand-file-name | |
744 (nth 0 x) (file-name-directory filename))))) | |
743 (put-text-property start (1- (point)) 'dired-filename t)) | 745 (put-text-property start (1- (point)) 'dired-filename t)) |
744 (forward-line) | 746 (forward-line) |
745 (beginning-of-line)))) | 747 (beginning-of-line)))) |
746 entries))))) | 748 entries))))) |
747 | 749 |