don@sunfs2.camex.uucp (Don Levinstone) (05/24/89)
;; In GNU EMACS, is there a way to know which WINDOW or BUFFER one was
;; last in, i.e., prior to entering the MINIBUFFER?
;;
;; I'd like the following command to drop the name of the last major window
;; or buffer into the minibuffer, but '(other-window 1)' always goes to
;; the TOP window, not the 'most recent'...
;;
;; There is a 'get-lru-window' command, but I think I need something more
;; like a 'get-mru-window' .
;;
;; I used to have something like this for buffers, directories, file names,
;; etc., under Prime EMACS, and I miss it!
;;
(define-key ctl-x-4-map "b" 'drop-buffername) ; ^X-4-B
(define-key ctl-x-4-map "B" 'drop-buffername)
;;
(defun drop-buffername ()
"Command to drop current MAJOR WINDOW's buffername in buffer"
;; Currently: this works if invoked within a SINGLE displayed window,
;; or within the the TOP window or BOTTOM window of 2 displayed windows,
;; or from within the MINIBUFFER, when minibuffer was entered from the TOP
;; window.
;; Bug: when invoked from within the MINIBUFFER, when minibuffer was entered
;; from the BOTTOM window, the name of the buffer in the TOP window is
;; dropped into the minibuffer...
;;
(interactive)
(let ( (a (buffer-name)) )
(if (equal a " *Minibuf-0*")
(progn (other-window 1) (setq a (buffer-name))
(delete-other-windows) (other-window -1))
)
(set-mark (point)) (insert a) ) nil)
--
Don Levinstone UUCP: don@lloyd.uucp or husc6!lloyd!don
Camex, Inc. ARPA: don%lloyd@husc6.harvard.edu (untested)
75 Kneeland St., Boston, MA 02111
Tel: (617) 426-3577 x494 Fax: 426-9285 I do not speak for Camex.