changeset 30907:46752ce55a92

(insert-directory): Don't lose original file name, undoing an undocumented change.
author Andreas Schwab <schwab@suse.de>
date Thu, 17 Aug 2000 12:07:05 +0000
parents cab5c3c01776
children ab7340cbf81f
files lisp/files.el
diffstat 1 files changed, 32 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/files.el	Thu Aug 17 11:20:50 2000 +0000
+++ b/lisp/files.el	Thu Aug 17 12:07:05 2000 +0000
@@ -3503,9 +3503,9 @@
 whose name is in the variable `insert-directory-program'.
 If WILDCARD, it also runs the shell specified by `shell-file-name'."
   ;; We need the directory in order to find the right handler.
-  (let* ((file (expand-file-name file))
-         (handler (find-file-name-handler file 'insert-directory)))
-    (if handler
+  (let ((handler (find-file-name-handler (expand-file-name file)
+					 'insert-directory)))
+   (if handler
 	(funcall handler 'insert-directory file switches
 		 wildcard full-directory-p)
       (if (eq system-type 'vax-vms)
@@ -3519,19 +3519,22 @@
 	       (result
 		(if wildcard
 		    ;; Run ls in the directory of the file pattern we asked for
-		    (let ((default-directory (file-name-directory file))
+		    (let ((default-directory
+			    (if (file-name-absolute-p file)
+				(file-name-directory file)
+			      (file-name-directory (expand-file-name file))))
 			  (pattern (file-name-nondirectory file)))
 		      (call-process
-                       shell-file-name nil t nil
-                       "-c" (concat (if (memq system-type '(ms-dos windows-nt))
+		       shell-file-name nil t nil
+		       "-c" (concat (if (memq system-type '(ms-dos windows-nt))
 					""
 				      "\\") ; Disregard Unix shell aliases!
-                                    insert-directory-program
-                                    " -d "
-                                    (if (stringp switches)
-                                        switches
-                                        (mapconcat 'identity switches " "))
-                                    " -- "
+				    insert-directory-program
+				    " -d "
+				    (if (stringp switches)
+					switches
+				      (mapconcat 'identity switches " "))
+				    " -- "
 				    ;; Quote some characters that have
 				    ;; special meanings in shells; but
 				    ;; don't quote the wildcards--we
@@ -3541,26 +3544,26 @@
 				    ;; people want to use them
 				    ;; explicitly to quote wildcard
 				    ;; characters.
-                                    (shell-quote-wildcard-pattern pattern))))
+				    (shell-quote-wildcard-pattern pattern))))
 		  ;; SunOS 4.1.3, SVr4 and others need the "." to list the
 		  ;; directory if FILE is a symbolic link.
 		  (apply 'call-process
-			  insert-directory-program nil t nil
-                          (append
-                           (if (listp switches) switches
-                               (unless (equal switches "")
-                                 ;; Split the switches at any spaces so we can
-                                 ;; pass separate options as separate args.
-                                 (split-string switches)))
-                           ;; Avoid lossage if FILE starts with `-'.
-                           '("--")
-                           (progn
-                             (if (string-match "\\`~" file)
-                                 (setq file (expand-file-name file)))
-                             (list
-                              (if full-directory-p
-                                  (concat (file-name-as-directory file) ".")
-                                  file))))))))
+			 insert-directory-program nil t nil
+			 (append
+			  (if (listp switches) switches
+			    (unless (equal switches "")
+			      ;; Split the switches at any spaces so we can
+			      ;; pass separate options as separate args.
+			      (split-string switches)))
+			  ;; Avoid lossage if FILE starts with `-'.
+			  '("--")
+			  (progn
+			    (if (string-match "\\`~" file)
+				(setq file (expand-file-name file)))
+			    (list
+			     (if full-directory-p
+				 (concat (file-name-as-directory file) ".")
+			       file))))))))
 	  (if (/= result 0)
 	      ;; We get here if `insert-directory-program' failed.
 	      ;; On non-Posix systems, we cannot open a directory, so