From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tassilo Horn Subject: Re: [Orgmode] Re: Announcing org-contacts, a bbdb-like contact manager for Org Date: Fri, 11 Feb 2011 21:15:48 +0100 Message-ID: <87vd0qfhu3.fsf@member.fsf.org> References: <87r5bhysp6.fsf@keller.adm.naquadah.org> <878vxovsym.fsf@keller.adm.naquadah.org> <87k4h7ua23.fsf@member.fsf.org> <87vd0romky.fsf@keller.adm.naquadah.org> <87mxm2na63.fsf@member.fsf.org> Mime-Version: 1.0 Content-Type: text/plain Return-path: In-Reply-To: (Stefan Monnier's message of "Fri, 11 Feb 2011 09:47:54 -0500") List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org To: Stefan Monnier Cc: emacs-orgmode@gnu.org, emacs-devel@gnu.org List-Id: emacs-orgmode.gnu.org Stefan Monnier writes: Hi Stefan, >> So the question is: how can the completion-ignore-case value be >> propagated from the completion gathering function in >> `completion-at-point-functions' to the function that actually applies >> this completion, without having to modify the global or buffer local >> value of `completion-ignore-case'? > > Assuming you have a completion table in variable `table', you should > be able to construct a new completion table that's case-insensitive > with something like the untested code below: > > (defun completion-table-case-fold (table string pred action) > (let ((completion-ignore-case t)) > (complete-with-action action table string pred))) > > [...] > (let ((newtable > (apply-partially #'completion-table-case-fold table))) > [...]) > > where completion-table-case-fold is an auxiliary function which > (c|sh)ould be added to minibuffer.el. Hm, why not simply add a property :ignore-case to the PROPS a function in `completion-at-point-functions' may return in addition to the existing :predicate and :annotation-function? Then `completion-at-point' could simply bind `completion-ignore-case' according to that property when calling `completion-in-region'. Bye, Tassilo