changeset 8207:96e6518c209b

(insert-directory): Allow list for SWITCHES. Also split up a string containing separate options.
author Richard M. Stallman <rms@gnu.org>
date Tue, 12 Jul 1994 00:35:27 +0000
parents efcf78560698
children 7ad755e38ee3
files lisp/files.el
diffstat 1 files changed, 23 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/files.el	Mon Jul 11 23:28:46 1994 +0000
+++ b/lisp/files.el	Tue Jul 12 00:35:27 1994 +0000
@@ -2086,6 +2086,7 @@
 (defun insert-directory (file switches &optional wildcard full-directory-p)
   "Insert directory listing for FILE, formatted according to SWITCHES.
 Leaves point after the inserted text.
+SWITCHES may be a string of options, or a list of strings.
 Optional third arg WILDCARD means treat FILE as shell wildcard.
 Optional fourth arg FULL-DIRECTORY-P means file is a directory and
 switches do not contain `d', so that a full listing is expected.
@@ -2122,14 +2123,31 @@
 		      beg (1+ (match-end 0))))
 	      (call-process shell-file-name nil t nil
 			    "-c" (concat insert-directory-program
-					 " -d " switches " "
+					 " -d "
+					 (if (stringp switches)
+					     switches
+					   (mapconcat 'identity switches " ")
+					 " "
 					 pattern)))
 	  ;; 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)))))))
+	  (apply 'call-process
+		 insert-directory-program nil t nil
+		 (let (list)
+		   (if (consp switches)
+		       (setq list switches)
+		     ;; Split the switches at any spaces
+		     ;; so we can pass separate options as separate args.
+		     (while (string-match " " switches)
+		       (setq list (cons (substring switches 0 (match-beginning 0))
+					list)
+			     switches (substring switches (match-end 0))))
+		     (setq list (cons switches list)))
+		   (append list
+			   (list
+			    (if full-directory-p
+				(concat (file-name-as-directory file) ".")
+			      file))))))))))
 
 (defvar kill-emacs-query-functions nil
   "Functions to call with no arguments to query about killing Emacs.