> 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. The case-sensitivity of the completion code is indeed problematic. Here's for example an excerpt from minibuffer.el: ;; - case-sensitivity currently confuses two issues: ;; - whether or not a particular completion table should be case-sensitive ;; (i.e. whether strings that differ only by case are semantically ;; equivalent) ;; - whether the user wants completion to pay attention to case. ;; e.g. we may want to make it possible for the user to say "first try ;; completion case-sensitively, and if that fails, try to ignore case". Stefan _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode