changeset 76148:d38be8d45087

(ido-buffer-internal): Set this-command to fallback command. Add selected buffer to buffer-name-history. (ido-file-internal): Set this-command to fallback command. Add file names to to file-name-history.
author Kim F. Storm <storm@cua.dk>
date Sun, 25 Feb 2007 23:48:54 +0000
parents 541294beb87c
children 75b3a340972a
files lisp/ido.el
diffstat 1 files changed, 14 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ido.el	Sun Feb 25 23:48:44 2007 +0000
+++ b/lisp/ido.el	Sun Feb 25 23:48:54 2007 +0000
@@ -2163,9 +2163,9 @@
 
        ((eq ido-exit 'fallback)
 	(let ((read-buffer-function nil))
-	  (run-hook-with-args 'ido-before-fallback-functions
-			      (or fallback 'switch-to-buffer))
-	  (call-interactively (or fallback 'switch-to-buffer))))
+	  (setq this-command (or fallback 'switch-to-buffer))
+	  (run-hook-with-args 'ido-before-fallback-functions this-command)
+	  (call-interactively this-command)))
 
        ;; Check buf is non-nil.
        ((not buf) nil)
@@ -2173,6 +2173,7 @@
 
        ;; View buffer if it exists
        ((get-buffer buf)
+	(add-to-history 'buffer-name-history buf)
 	(if (eq method 'insert)
 	    (progn
 	      (ido-record-command 'insert-buffer buf)
@@ -2192,6 +2193,7 @@
 
        ;; create a new buffer
        (t
+	(add-to-history 'buffer-name-history buf)
 	(setq buf (get-buffer-create buf))
 	(if (fboundp 'set-buffer-major-mode)
 	    (set-buffer-major-mode buf))
@@ -2304,9 +2306,9 @@
 	;; we don't want to change directory of current buffer.
 	(let ((default-directory ido-current-directory)
 	      (read-file-name-function nil))
-	  (run-hook-with-args 'ido-before-fallback-functions
-			      (or fallback 'find-file))
-	  (call-interactively (or fallback 'find-file))))
+	  (setq this-command (or fallback 'find-file))
+	  (run-hook-with-args 'ido-before-fallback-functions this-command)
+	  (call-interactively this-command)))
 
        ((eq ido-exit 'switch-to-buffer)
 	(ido-buffer-internal ido-default-buffer-method nil nil nil ido-text))
@@ -2363,9 +2365,11 @@
        ((eq method 'write)
 	(ido-record-work-file filename)
 	(setq default-directory ido-current-directory)
-	(ido-record-command 'write-file (concat ido-current-directory filename))
+	(setq filename (concat ido-current-directory filename))
+	(ido-record-command 'write-file filename)
+	(add-to-history 'file-name-history filename)
 	(ido-record-work-directory)
-	(write-file (concat ido-current-directory filename)))
+	(write-file filename))
 
        ((eq method 'read-only)
 	(ido-record-work-file filename)
@@ -2381,6 +2385,7 @@
 	(ido-record-command
 	 (if ido-find-literal 'insert-file-literally 'insert-file)
 	 filename)
+	(add-to-history 'file-name-history filename)
 	(ido-record-work-directory)
 	(insert-file-1 filename
 		       (if ido-find-literal
@@ -2391,6 +2396,7 @@
 	(ido-record-work-file filename)
 	(setq filename (concat ido-current-directory filename))
 	(ido-record-command 'find-file filename)
+	(add-to-history 'file-name-history filename)
 	(ido-record-work-directory)
 	(ido-visit-buffer (find-file-noselect filename nil ido-find-literal) method))))))