Fix Emacs 24 compatibility issue with Emacs 24

* contrib/lisp/org-contacts.el (completion-table-case-fold): Make
completion compatible with Emacs 24Fix org-contacts completion at point (was: org-contacts completion stopped working)

julien Barnier <julien@nozav.org> writes:

Hi Julien,

>> I use a very recent emacs 24 bzr checkout and org master from git.
>> Not sure who's the culprit.
>
> Same problem here. After a quick look it seems that there has been a
> recent change in the arguments taken by the completion-table-case-fold
> function in minibuffer.el :
>
> http://bzr.savannah.gnu.org/lh/emacs/trunk/revision/105991

Thanks for the pointer!

> But I don't think I could be able to find a fix by myself.

But I was able, so good teamwork, mate. :-)

--8<---------------cut here---------------start------------->8---
>From d89ca3ce39cd7436e5205744adcf468d9619180f Mon Sep 17 00:00:00 2001
From: Tassilo Horn <tassilo@member.fsf.org>
Date: Thu, 13 Oct 2011 17:02:07 +0200
Subject: [PATCH 2/2] Fix org-contacts completion at point.
This commit is contained in:
Tassilo Horn 2011-10-13 20:05:43 +00:00 committed by Carsten Dominik
parent ea8cbe4ca1
commit 531d67a715

View file

@ -169,9 +169,10 @@ If both match values are nil, return all contacts."
(when (not (fboundp 'completion-table-case-fold)) (when (not (fboundp 'completion-table-case-fold))
;; That function is new in Emacs 24... ;; That function is new in Emacs 24...
(defun completion-table-case-fold (table string pred action) (defun completion-table-case-fold (table &optional dont-fold)
(let ((completion-ignore-case t)) (lambda (string pred action)
(complete-with-action action table string pred)))) (let ((completion-ignore-case (not dont-fold)))
(complete-with-action action table string pred)))))
(defun org-contacts-complete-name (&optional start) (defun org-contacts-complete-name (&optional start)
"Complete text at START with a user name and email." "Complete text at START with a user name and email."
@ -226,9 +227,7 @@ If both match values are nil, return all contacts."
;; If the user has an email address, append USER <EMAIL>. ;; If the user has an email address, append USER <EMAIL>.
if email collect (org-contacts-format-email contact-name email)) if email collect (org-contacts-format-email contact-name email))
", "))))) ", ")))))
(list start end (if org-contacts-completion-ignore-case (list start end (completion-table-case-fold completion-list (not org-contacts-completion-ignore-case)))))
(apply-partially #'completion-table-case-fold completion-list)
completion-list))))
(defun org-contacts-message-complete-function () (defun org-contacts-message-complete-function ()
"Function used in `completion-at-point-functions' in `message-mode'." "Function used in `completion-at-point-functions' in `message-mode'."