|
From: | Dmitry Gutov |
Subject: | bug#21644: 24.4; completing-read acts differently on functional collection |
Date: | Tue, 13 Oct 2015 04:23:23 +0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:41.0) Gecko/20100101 Thunderbird/41.0 |
On 10/08/2015 01:13 PM, Oleh Krehel wrote:
I can reproduce this as well, although "TAB RET" works where "RET" doesn't. I attach a patch with a fix. If someone can check it I can push it. The patch doesn't solve all the intricacies of `completion-ignore-case' that were mentioned in that function's comments, just this specific use case.
Is there really a bug here?The example code didn't handle `test-completion' (the case when ALL would be `lambda').
With this definition, the behavior is the same in either case: (defun collection-as-function (collection) "Return a function equivalent to COLLECTION. The returned function will work equivalently to COLLECTION when passed to `all-completions' and `try-completion'." (if (functionp collection) collection ;; Capture collection in a closure (lambda (string pred all) (funcall (cond ((eq all 't) #'all-completions) ((eq all 'lambda) #'test-completion) (t #'try-completion)) string collection pred))))
[Prev in Thread] | Current Thread | [Next in Thread] |