# HG changeset patch # User Kim F. Storm # Date 1026082974 0 # Node ID 794e46e1c313575299a5b6b49a69c4652380f984 # Parent 4ae4485ac972af84e2c560662d5d7fdf4557d718 (ido-set-matches1): Use regexp-quote instead of identity. (ido-complete-space): New function. (ido-define-mode-map): Bind it to SPACE. diff -r 4ae4485ac972 -r 794e46e1c313 lisp/ido.el --- a/lisp/ido.el Sun Jul 07 23:01:21 2002 +0000 +++ b/lisp/ido.el Sun Jul 07 23:02:54 2002 +0000 @@ -1256,6 +1256,7 @@ (define-key map "\C-c" 'ido-toggle-case) (define-key map "\C-e" 'ido-edit-input) (define-key map "\t" 'ido-complete) + (define-key map " " 'ido-complete-space) (define-key map "\C-j" 'ido-select-text) (define-key map "\C-m" 'ido-exit-minibuffer) (define-key map "\C-p" 'ido-toggle-prefix) @@ -1942,6 +1943,27 @@ (ido-completion-help) ))))) +(defun ido-complete-space () + "Try completion unless inserting the space makes sense." + (interactive) + (if (and (stringp ido-common-match-string) + (stringp ido-text) + (cond + ((> (length ido-common-match-string) (length ido-text)) + (= (aref ido-common-match-string (length ido-text)) ? )) + (ido-matches + (let (insert-space + (re (concat (regexp-quote ido-text) " ")) + (comp ido-matches)) + (while comp + (if (string-match re (ido-name (car comp))) + (setq comp nil insert-space t) + (setq comp (cdr comp)))) + insert-space)) + (t nil))) + (insert " ") + (ido-complete))) + (defun ido-undo-merge-work-directory (&optional text try refresh) "Undo or redo last ido directory merge operation. If no merge has yet taken place, toggle automatic merging option." @@ -2729,7 +2751,7 @@ ido-enable-flex-matching (> (length ido-text) 1) (not ido-enable-regexp)) - (setq re (mapconcat 'identity (split-string ido-text "") ".*")) + (setq re (mapconcat 'regexp-quote (split-string ido-text "") ".*")) (if ido-enable-prefix (setq re (concat "\\`" re))) (mapcar