1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-06 11:50:51 -08:00

(insert-directory): Allow list for SWITCHES.

Also split up a string containing separate options.
This commit is contained in:
Richard M. Stallman 1994-07-12 00:35:27 +00:00
parent 8b7c2798ab
commit 727d277d52

View file

@ -2086,6 +2086,7 @@ and `list-directory-verbose-switches'."
(defun insert-directory (file switches &optional wildcard full-directory-p) (defun insert-directory (file switches &optional wildcard full-directory-p)
"Insert directory listing for FILE, formatted according to SWITCHES. "Insert directory listing for FILE, formatted according to SWITCHES.
Leaves point after the inserted text. 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 third arg WILDCARD means treat FILE as shell wildcard.
Optional fourth arg FULL-DIRECTORY-P means file is a directory and Optional fourth arg FULL-DIRECTORY-P means file is a directory and
switches do not contain `d', so that a full listing is expected. switches do not contain `d', so that a full listing is expected.
@ -2122,14 +2123,31 @@ If WILDCARD, it also runs the shell specified by `shell-file-name'."
beg (1+ (match-end 0)))) beg (1+ (match-end 0))))
(call-process shell-file-name nil t nil (call-process shell-file-name nil t nil
"-c" (concat insert-directory-program "-c" (concat insert-directory-program
" -d " switches " " " -d "
(if (stringp switches)
switches
(mapconcat 'identity switches " ")
" "
pattern))) pattern)))
;; SunOS 4.1.3, SVr4 and others need the "." to list the ;; SunOS 4.1.3, SVr4 and others need the "." to list the
;; directory if FILE is a symbolic link. ;; directory if FILE is a symbolic link.
(call-process insert-directory-program nil t nil switches (apply 'call-process
(if full-directory-p insert-directory-program nil t nil
(concat (file-name-as-directory file) ".") (let (list)
file))))))) (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 (defvar kill-emacs-query-functions nil
"Functions to call with no arguments to query about killing Emacs. "Functions to call with no arguments to query about killing Emacs.