Matt Lundin writes: > Nicolas Goaziou writes: > >>> A git bisect revealed that the change was introduced in 2015 with the >>> following commit: >>> >>> ,---- >>> | commit 50ba0a5ed609f3600f2590f3ba22b8ab3ff3331c >>> | Author: Nicolas Goaziou >>> | Date: Sun Jun 7 00:38:58 2015 +0200 >>> | >>> | Fix 1a7364177046b8a57ade0aeb9f52bacfc0b8b088 >>> | >>> | * lisp/org.el (org-icompleting-read): Let `completing-read' or >>> | equivalent sort out type of completion. >>> | (org-olpath-completing-read): Revert partially >>> | 1a7364177046b8a57ade0aeb9f52bacfc0b8b088. >>> `---- >>> >>> It looks like this commit removed some functionality from the now >>> obsolete org-icompleting-read that made sure that the items in the >>> completion list passed to the completing read function were strings. >> >> Actually, this is a bug in "ido.el", since `ido-completing-read' is not >> a drop-in replacement for `completing-read'. The latter accepts lists >> of strings, but also alist, obarrays and hash tables. The former accepts >> only list of strings. >> >> I suggest to report the bug to "ido.el" maintainers since they probably >> want to preserve compatibility between the completion functions. > > OK. Thanks. I see that a bug report has been on the emacs list since > 2013: > > http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15430 > > For the time being, it's easy enough to write a custom wrapper around > ido-completing-read, so I think I'll do that. > > It's worth nothing that the author of patch that originally added the > completing-read-function variable did not anticipate that > ido-completing-read would be a simple drop-in for completing-read: > > http://thread.gmane.org/gmane.emacs.devel/134000 > > For a long time (since at least 2009), org-mode had built-in support for > ido-mode completion when refiling. So this does seem to be a deprecation > of longstanding org-mode functionality. > > I'll see if we can add something to the docstrings to alert of the need > to write a wrapper around ido-completing-read. I think the simplest thing is just to remove the obsolete info in the manual. Please see the attached patch. Best, Matt