X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/e16c154cb0c1d7496f08f11d6032cc7a06d09d6d..4c7d97da50790da208f87ddc6ed8112abe130ea9:/packages/company/company-bbdb.el diff --git a/packages/company/company-bbdb.el b/packages/company/company-bbdb.el index 8e4705f73..22741a205 100644 --- a/packages/company/company-bbdb.el +++ b/packages/company/company-bbdb.el @@ -20,28 +20,31 @@ ;; along with GNU Emacs. If not, see . (require 'company) -(eval-when-compile (require 'cl)) +(require 'cl-lib) (declare-function bbdb-record-get-field "bbdb") (declare-function bbdb-records "bbdb") (declare-function bbdb-dwim-mail "bbdb-com") (declare-function bbdb-search "bbdb-com") +(defun company-bbdb--candidates (arg) + (cl-mapcan (lambda (record) + (mapcar (lambda (mail) (bbdb-dwim-mail record mail)) + (bbdb-record-get-field record 'mail))) + (eval '(bbdb-search (bbdb-records) arg nil arg)))) + ;;;###autoload (defun company-bbdb (command &optional arg &rest ignore) "`company-mode' completion back-end for `bbdb'." (interactive (list 'interactive)) - (case command + (cl-case command (interactive (company-begin-backend 'company-bbdb)) (prefix (and (eq major-mode 'message-mode) (featurep 'bbdb-com) (looking-back "^\\(To\\|Cc\\|Bcc\\):.*" (line-beginning-position)) (company-grab-symbol))) - (candidates (mapcan (lambda (record) - (mapcar (lambda (mail) (bbdb-dwim-mail record mail)) - (bbdb-record-get-field record 'mail))) - (bbdb-search (bbdb-records) arg nil arg))) + (candidates (company-bbdb--candidates arg)) (sorted t) (no-cache t)))