+ ;; Update the list of matches
+ (setq ido-text contents)
+ (ido-set-matches)
+ (ido-trace "new " ido-matches)
+
+ (when (and (boundp 'ido-enable-virtual-buffers)
+ (not (eq ido-enable-virtual-buffers 'always))
+ (eq ido-cur-item 'buffer)
+ (eq ido-use-virtual-buffers 'auto))
+
+ (when (and (not ido-enable-virtual-buffers)
+ (not ido-matches))
+ (setq ido-text-init ido-text)
+ (setq ido-enable-virtual-buffers t)
+ (setq ido-exit 'refresh)
+ (exit-minibuffer))
+
+ ;; If input matches real buffers turn off virtual buffers.
+ (when (and ido-enable-virtual-buffers
+ ido-matches
+ (ido-set-matches-1 (ido-make-buffer-list-1)))
+ (setq ido-enable-virtual-buffers nil)
+ (setq ido-text-init ido-text)
+ (setq ido-exit 'refresh)
+ (exit-minibuffer)))
+