(defun notmuch-address-setup ()
(let* ((setup-company (and notmuch-address-use-company
- (require 'company nil t)))
+ (require 'company nil t)))
(pair (cons notmuch-address-completion-headers-regexp
- #'notmuch-address-expand-name)))
- (when setup-company
- (notmuch-company-setup))
- (unless (member pair message-completion-alist)
- (setq message-completion-alist
- (push pair message-completion-alist)))))
+ #'notmuch-address-expand-name)))
+ (when setup-company
+ (notmuch-company-setup))
+ (unless (member pair message-completion-alist)
+ (setq message-completion-alist
+ (push pair message-completion-alist)))))
(defun notmuch-address-toggle-internal-completion ()
"Toggle use of internal completion for current buffer.
(defun notmuch-address-locate-command (command)
"Return non-nil if `command' is an executable either on
`exec-path' or an absolute pathname."
- (when (stringp command)
- (if (and (file-name-absolute-p command)
- (file-executable-p command))
- command
- (setq command (file-name-nondirectory command))
- (catch 'found-command
- (let (bin)
- (dolist (dir exec-path)
- (setq bin (expand-file-name command dir))
- (when (or (and (file-executable-p bin)
- (not (file-directory-p bin)))
- (and (file-executable-p (setq bin (concat bin ".exe")))
- (not (file-directory-p bin))))
- (throw 'found-command bin))))))))
+ (and (stringp command)
+ (if (and (file-name-absolute-p command)
+ (file-executable-p command))
+ command
+ (setq command (file-name-nondirectory command))
+ (catch 'found-command
+ (let (bin)
+ (dolist (dir exec-path)
+ (setq bin (expand-file-name command dir))
+ (when (or (and (file-executable-p bin)
+ (not (file-directory-p bin)))
+ (and (file-executable-p (setq bin (concat bin ".exe")))
+ (not (file-directory-p bin))))
+ (throw 'found-command bin))))))))
(defun notmuch-address-harvest-addr (result)
(let ((name-addr (plist-get result :name-addr)))
Address harvesting may take some time so the address collection runs
asynchronously unless SYNCHRONOUS is t. In case of asynchronous
execution, CALLBACK is called when harvesting finishes."
-
(let* ((sent (eq (car notmuch-address-internal-completion) 'sent))
(config-query (cadr notmuch-address-internal-completion))
- (prefix-query (when addr-prefix
- (format "%s:%s*" (if sent "to" "from") addr-prefix)))
+ (prefix-query (and addr-prefix
+ (format "%s:%s*"
+ (if sent "to" "from")
+ addr-prefix)))
(from-or-to-me-query
(mapconcat (lambda (x)
(concat (if sent "from:" "to:") x))
(notmuch-user-emails) " or "))
(query (if (or prefix-query config-query)
(concat (format "(%s)" from-or-to-me-query)
- (when prefix-query
- (format " and (%s)" prefix-query))
- (when config-query
- (format " and (%s)" config-query)))
+ (and prefix-query
+ (format " and (%s)" prefix-query))
+ (and config-query
+ (format " and (%s)" config-query)))
from-or-to-me-query))
(args `("address" "--format=sexp" "--format-version=4"
,(if sent "--output=recipients" "--output=sender")
,query)))
(if synchronous
(mapc #'notmuch-address-harvest-addr
- (apply 'notmuch-call-notmuch-sexp args))
+ (apply 'notmuch-call-notmuch-sexp args))
;; Asynchronous
(let* ((current-proc (if addr-prefix
(car notmuch-address-harvest-procs)
;; Kill any existing process
(when current-proc
(kill-buffer (process-buffer current-proc))) ; this also kills the process
-
(setq current-proc
(apply 'notmuch-start-notmuch proc-name proc-buf
callback ; process sentinel
Returns nil if the save file does not exist, or it does not seem
to be a saved address hash."
- (when notmuch-address-save-filename
- (condition-case nil
- (with-temp-buffer
- (insert-file-contents notmuch-address-save-filename)
- (let ((name (read (current-buffer)))
- (plist (read (current-buffer))))
- ;; We do two simple sanity checks on the loaded file. We just
- ;; check a version is specified, not that it is the current
- ;; version, as we are allowed to over-write and a save-file with
- ;; an older version.
- (when (and (string= name "notmuch-address-hash")
- (plist-get plist :version))
- plist)))
- ;; The error case catches any of the reads failing.
- (error nil))))
+ (and notmuch-address-save-filename
+ (condition-case nil
+ (with-temp-buffer
+ (insert-file-contents notmuch-address-save-filename)
+ (let ((name (read (current-buffer)))
+ (plist (read (current-buffer))))
+ ;; We do two simple sanity checks on the loaded file.
+ ;; We just check a version is specified, not that
+ ;; it is the current version, as we are allowed to
+ ;; over-write and a save-file with an older version.
+ (and (string= name "notmuch-address-hash")
+ (plist-get plist :version)
+ plist)))
+ ;; The error case catches any of the reads failing.
+ (error nil))))
(defun notmuch-address--load-address-hash ()
"Read the saved address hash and set the corresponding variables."
notmuch-address-internal-completion)
(equal (plist-get load-plist :version)
notmuch-address--save-hash-version))
- (setq notmuch-address-last-harvest (plist-get load-plist :last-harvest)
- notmuch-address-completions (plist-get load-plist :completions)
- notmuch-address-full-harvest-finished t)
+ (setq notmuch-address-last-harvest (plist-get load-plist :last-harvest))
+ (setq notmuch-address-completions (plist-get load-plist :completions))
+ (setq notmuch-address-full-harvest-finished t)
;; Return t to say load was successful.
t)))
(defun notmuch-address--save-address-hash ()
(when notmuch-address-save-filename
(if (or (not (file-exists-p notmuch-address-save-filename))
- ;; The file exists, check it is a file we saved
+ ;; The file exists, check it is a file we saved
(notmuch-address--get-address-hash))
(with-temp-file notmuch-address-save-filename
(let ((save-plist