summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2000-08-17 12:08:26 +0000
committerAndreas Schwab <schwab@suse.de>2000-08-17 12:08:26 +0000
commitd2473540a7c79d60f374a0c12513842b6ed66535 (patch)
treef8425926ec55b79ed948bcc1fe2cf89846f2bcc3 /lisp
parentc0bbaf57af49951e40395bc41a231c518d832e29 (diff)
downloademacs-d2473540a7c79d60f374a0c12513842b6ed66535.tar.gz
(insert-directory): Don't lose original file name,
undoing an undocumented change.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/files.el61
2 files changed, 37 insertions, 29 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index e23a91e6c27..f0d2b6d367d 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+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>
* sql.el (sql-magic-go): Use comint-bol.
diff --git a/lisp/files.el b/lisp/files.el
index 6292588e369..17c54f69d51 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -3503,9 +3503,9 @@ This works by running a directory listing program
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 @@ If WILDCARD, it also runs the shell specified by `shell-file-name'."
(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 @@ If WILDCARD, it also runs the shell specified by `shell-file-name'."
;; 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