changeset 4148:6b065ebb9090

* files.el (insert-directory): Doc fix. * files.el (insert-directory): If FULL-DIRECTORY-P is non-nil, add "." component to the end of the path, so that if file is a symlink, we get the contents of the directory, not the symlink itself.
author Jim Blandy <jimb@redhat.com>
date Sun, 18 Jul 1993 06:40:09 +0000
parents c6657758fb6f
children 2a4dc4339df4
files lisp/files.el
diffstat 1 files changed, 7 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/files.el	Sun Jul 18 06:29:55 1993 +0000
+++ b/lisp/files.el	Sun Jul 18 06:40:09 1993 +0000
@@ -1852,7 +1852,7 @@
 ;;   		 dired-after-subdir-garbage (defines what a "total" line is)
 ;;   - variable dired-subdir-regexp
 (defun insert-directory (file switches &optional wildcard full-directory-p)
-  "Insert directory listing for of FILE, formatted according to SWITCHES.
+  "Insert directory listing for FILE, formatted according to SWITCHES.
 Leaves point after the inserted text.
 Optional third arg WILDCARD means treat FILE as shell wildcard.
 Optional fourth arg FULL-DIRECTORY-P means file is a directory and
@@ -1873,18 +1873,12 @@
 			    "-c" (concat insert-directory-program
 					 " -d " switches " "
 					 (file-name-nondirectory file))))
-	  ;; Barry Margolin says: "SunOS 4.1.3 (and SV and POSIX?)
-	  ;; lists the link if we give a link to a directory - yuck!"
-	  ;; That's why we used to chase symlinks.  But we don't want
-	  ;; to chase links before passing the filename to ls; that
-	  ;; would mean that our line of output would not display
-	  ;; FILE's name as given.  To really address the problem that
-	  ;; SunOS 4.1.3 has, we need to find the right switch to get
-	  ;; a description of the link itself.
-	  ;; (let (symlink)
-	  ;;   (while (setq symlink (file-symlink-p file))
-	  ;;     (setq file symlink)))
-	  (call-process insert-directory-program nil t nil switches file))))))
+	  ;; SunOS 4.1.3, SVr4 and others need the "." to list the
+	  ;; directory if FILE is a symbolic link.
+	  (call-process insert-directory-program nil t nil switches
+			(if full-directory-p
+			    (concat (file-name-as-directory file) ".")
+			  file)))))))
 
 (defun save-buffers-kill-emacs (&optional arg)
   "Offer to save each buffer, then kill this Emacs process.