Commit d2473540 authored by Andreas Schwab's avatar Andreas Schwab
Browse files

(insert-directory): Don't lose original file name,

undoing an undocumented change.
parent c0bbaf57
2000-08-17 Andreas Schwab <schwab@suse.de>
* files.el (insert-directory): Don't lose original file name,
undoing an undocumented change.
2000-08-17 Alex Schroeder <alex@gnu.org> 2000-08-17 Alex Schroeder <alex@gnu.org>
* sql.el (sql-magic-go): Use comint-bol. * sql.el (sql-magic-go): Use comint-bol.
......
...@@ -3503,9 +3503,9 @@ This works by running a directory listing program ...@@ -3503,9 +3503,9 @@ This works by running a directory listing program
whose name is in the variable `insert-directory-program'. whose name is in the variable `insert-directory-program'.
If WILDCARD, it also runs the shell specified by `shell-file-name'." If WILDCARD, it also runs the shell specified by `shell-file-name'."
;; We need the directory in order to find the right handler. ;; We need the directory in order to find the right handler.
(let* ((file (expand-file-name file)) (let ((handler (find-file-name-handler (expand-file-name file)
(handler (find-file-name-handler file 'insert-directory))) 'insert-directory)))
(if handler (if handler
(funcall handler 'insert-directory file switches (funcall handler 'insert-directory file switches
wildcard full-directory-p) wildcard full-directory-p)
(if (eq system-type 'vax-vms) (if (eq system-type 'vax-vms)
...@@ -3519,19 +3519,22 @@ If WILDCARD, it also runs the shell specified by `shell-file-name'." ...@@ -3519,19 +3519,22 @@ If WILDCARD, it also runs the shell specified by `shell-file-name'."
(result (result
(if wildcard (if wildcard
;; Run ls in the directory of the file pattern we asked for ;; 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))) (pattern (file-name-nondirectory file)))
(call-process (call-process
shell-file-name nil t nil shell-file-name nil t nil
"-c" (concat (if (memq system-type '(ms-dos windows-nt)) "-c" (concat (if (memq system-type '(ms-dos windows-nt))
"" ""
"\\") ; Disregard Unix shell aliases! "\\") ; Disregard Unix shell aliases!
insert-directory-program insert-directory-program
" -d " " -d "
(if (stringp switches) (if (stringp switches)
switches switches
(mapconcat 'identity switches " ")) (mapconcat 'identity switches " "))
" -- " " -- "
;; Quote some characters that have ;; Quote some characters that have
;; special meanings in shells; but ;; special meanings in shells; but
;; don't quote the wildcards--we ;; don't quote the wildcards--we
...@@ -3541,26 +3544,26 @@ If WILDCARD, it also runs the shell specified by `shell-file-name'." ...@@ -3541,26 +3544,26 @@ If WILDCARD, it also runs the shell specified by `shell-file-name'."
;; people want to use them ;; people want to use them
;; explicitly to quote wildcard ;; explicitly to quote wildcard
;; characters. ;; characters.
(shell-quote-wildcard-pattern pattern)))) (shell-quote-wildcard-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.
(apply 'call-process (apply 'call-process
insert-directory-program nil t nil insert-directory-program nil t nil
(append (append
(if (listp switches) switches (if (listp switches) switches
(unless (equal switches "") (unless (equal switches "")
;; Split the switches at any spaces so we can ;; Split the switches at any spaces so we can
;; pass separate options as separate args. ;; pass separate options as separate args.
(split-string switches))) (split-string switches)))
;; Avoid lossage if FILE starts with `-'. ;; Avoid lossage if FILE starts with `-'.
'("--") '("--")
(progn (progn
(if (string-match "\\`~" file) (if (string-match "\\`~" file)
(setq file (expand-file-name file))) (setq file (expand-file-name file)))
(list (list
(if full-directory-p (if full-directory-p
(concat (file-name-as-directory file) ".") (concat (file-name-as-directory file) ".")
file)))))))) file))))))))
(if (/= result 0) (if (/= result 0)
;; We get here if `insert-directory-program' failed. ;; We get here if `insert-directory-program' failed.
;; On non-Posix systems, we cannot open a directory, so ;; On non-Posix systems, we cannot open a directory, so
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment