]> code.delx.au - gnu-emacs/blobdiff - lisp/ido.el
Merge from emacs-24; up to 2012-12-06T01:39:03Z!monnier@iro.umontreal.ca
[gnu-emacs] / lisp / ido.el
index 94818fe57b08f26b89379a60290cd3c960766857..008561aa268a84a85b53ff0701aaf37c76f8d150 100644 (file)
@@ -1,6 +1,6 @@
 ;;; ido.el --- interactively do things with buffers and files
 
-;; Copyright (C) 1996-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2013 Free Software Foundation, Inc.
 
 ;; Author: Kim F. Storm <storm@cua.dk>
 ;; Based on: iswitchb by Stephen Eglen <stephen@cns.ed.ac.uk>
@@ -496,7 +496,7 @@ as first char even if `ido-enable-prefix' is nil."
 ;; See http://debbugs.gnu.org/2042 for more info.
 (defcustom ido-buffer-disable-smart-matches t
   "Non-nil means not to re-order matches for buffer switching.
-By default, ido aranges matches in the following order:
+By default, ido arranges matches in the following order:
 
   full-matches > suffix matches > prefix matches > remaining matches
 
@@ -1720,7 +1720,7 @@ This function also adds a hook to the minibuffer."
         (ido-final-slash dir)
         (not (ido-is-unc-host dir))
         (file-directory-p dir)
-        (> (nth 7 (file-attributes dir)) ido-max-directory-size))))
+        (> (nth 7 (file-attributes (file-truename dir))) ido-max-directory-size))))
 
 (defun ido-set-current-directory (dir &optional subdir no-merge)
   ;; Set ido's current directory to DIR or DIR/SUBDIR
@@ -2389,7 +2389,10 @@ If cursor is not at the end of the user input, move to end of input."
        (ido-buffer-internal 'insert 'insert-buffer "Insert buffer: " nil ido-text 'ido-enter-insert-file))
 
        ((eq ido-exit 'dired)
-       (dired (concat ido-current-directory (or ido-text ""))))
+        (funcall (cond ((eq method 'other-window) 'dired-other-window)
+                       ((eq method 'other-frame) 'dired-other-frame)
+                       (t 'dired))
+                 (concat ido-current-directory (or ido-text ""))))
 
        ((eq ido-exit 'ffap)
        (find-file-at-point))
@@ -3764,7 +3767,11 @@ This is to make them appear as if they were \"virtual buffers\"."
               ido-enable-flex-matching
               (> (length ido-text) 1)
               (not ido-enable-regexp))
-      (setq re (mapconcat #'regexp-quote (split-string ido-text "") ".*"))
+      (setq re (concat (regexp-quote (string (aref ido-text 0)))
+                      (mapconcat (lambda (c)
+                                   (concat "[^" (string c) "]*"
+                                           (regexp-quote (string c))))
+                                 (substring ido-text 1) "")))
       (if ido-enable-prefix
          (setq re (concat "\\`" re)))
       (mapc