From 5b8ed07bb4eb1c1489e75ad0119d840d81bee4f0 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 24 Jan 1999 20:12:25 +0000 Subject: [PATCH] (find-file): If find-file-noselect returns a list, do switch-to-buffer on each element. (find-file-other-window): Likewise for all but the first element. (find-file-other-frame): Same. (find-file-noselect): When we expand a wildcard, return a list of buffers. --- lisp/files.el | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/lisp/files.el b/lisp/files.el index c7420df9987..fac089fc977 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -1,7 +1,7 @@ ;;; files.el --- file input and output commands for Emacs ;; Copyright (C) 1985, 86, 87, 92, 93, -;; 94, 95, 96, 97, 1998 Free Software Foundation, Inc. +;; 94, 95, 96, 97, 98, 1998 Free Software Foundation, Inc. ;; Maintainer: FSF @@ -653,7 +653,10 @@ creating one if none already exists. Interactively, or if WILDCARDS is non-nil in a call from Lisp, expand wildcards (if any) and visit multiple files." (interactive "FFind file: \np") - (switch-to-buffer (find-file-noselect filename nil nil wildcards))) + (let ((value (find-file-noselect filename nil nil wildcards))) + (if (listp value) + (mapcar 'switch-to-buffer (nreverse value)) + (switch-to-buffer value)))) (defun find-file-other-window (filename &optional wildcards) "Edit file FILENAME, in another window. @@ -662,8 +665,13 @@ See the function `display-buffer'. Interactively, or if WILDCARDS is non-nil in a call from Lisp, expand wildcards (if any) and visit multiple files." (interactive "FFind file in other window: \np") - (switch-to-buffer-other-window (find-file-noselect filename - nil nil wildcards))) + (let ((value (find-file-noselect filename nil nil wildcards))) + (if (listp value) + (progn + (setq value (nreverse value)) + (switch-to-buffer-other-window (car value)) + (mapcar 'switch-to-buffer (cdr value))) + (switch-to-buffer-other-window value)))) (defun find-file-other-frame (filename &optional wildcards) "Edit file FILENAME, in another frame. @@ -672,8 +680,13 @@ See the function `display-buffer'. Interactively, or if WILDCARDS is non-nil in a call from Lisp, expand wildcards (if any) and visit multiple files." (interactive "FFind file in other frame: \np") - (switch-to-buffer-other-frame (find-file-noselect filename - nil nil wildcards))) + (let ((value (find-file-noselect filename nil nil wildcards))) + (if (listp value) + (progn + (setq value (nreverse value)) + (switch-to-buffer-other-frame (car value)) + (mapcar 'switch-to-buffer (cdr value))) + (switch-to-buffer-other-frame value)))) (defun find-file-read-only (filename &optional wildcards) "Edit file FILENAME but don't allow changes. @@ -890,7 +903,9 @@ The buffer is not selected, just returned to the caller. Optional first arg NOWARN non-nil means suppress any warning messages. Optional second arg RAWFILE non-nil means the file is read literally. Optional third arg WILDCARDS non-nil means do wildcard processing -and visit all the matching files." +and visit all the matching files. When wildcards are actually +used and expanded, the value is a list of buffers +that are visiting the various files." (setq filename (abbreviate-file-name (expand-file-name filename))) @@ -908,8 +923,8 @@ and visit all the matching files." (find-file-wildcards nil)) (if (null files) (error "No files match `%s'" filename)) - (car (mapcar #'(lambda (fn) (find-file-noselect fn)) - files))) + (mapcar #'(lambda (fn) (find-file-noselect fn)) + files)) (let* ((buf (get-file-buffer filename)) (truename (abbreviate-file-name (file-truename filename))) (number (nthcdr 10 (file-attributes truename))) -- 2.39.2