X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch-lib.el;h=cc80fb29ee24a5f6d59b77e1a3632719b67ae726;hb=40de245862a26f008c97ea7460620872bda808ae;hp=9d4e00f6958e5814f113d2f7b68bb3b9b6b540bb;hpb=128b6259ee327adf9189b81034b3b6962e8b9dbc;p=notmuch diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el index 9d4e00f6..cc80fb29 100644 --- a/emacs/notmuch-lib.el +++ b/emacs/notmuch-lib.el @@ -87,6 +87,10 @@ the user hasn't set this variable with the old or new value." "Return the user.primary_email value from the notmuch configuration." (notmuch-config-get "user.primary_email")) +(defun notmuch-user-other-email () + "Return the user.primary_email value (as a list) from the notmuch configuration." + (split-string (notmuch-config-get "user.other_email") "\n")) + (defun notmuch-kill-this-buffer () "Kill the current buffer." (interactive) @@ -116,5 +120,41 @@ within the current window." (or (memq prop buffer-invisibility-spec) (assq prop buffer-invisibility-spec))))) +; This lets us avoid compiling these replacement functions when emacs +; is sufficiently new enough to supply them alone. We do the macro +; treatment rather than just wrapping our defun calls in a when form +; specifically so that the compiler never sees the code on new emacs, +; (since the code is triggering warnings that we don't know how to get +; rid of. +; +; A more clever macro here would accept a condition and a list of forms. +(defmacro compile-on-emacs-prior-to-23 (form) + "Conditionally evaluate form only on emacs < emacs-23." + (list 'when (< emacs-major-version 23) + form)) + +;; Compatibility functions for versions of emacs before emacs 23. +;; +;; Both functions here were copied from emacs 23 with the following copyright: +;; +;; Copyright (C) 1985, 1986, 1992, 1994, 1995, 1999, 2000, 2001, 2002, 2003, +;; 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; +;; and under the GPL version 3 (or later) exactly as notmuch itself. +(compile-on-emacs-prior-to-23 + (defun apply-partially (fun &rest args) + "Return a function that is a partial application of FUN to ARGS. +ARGS is a list of the first N arguments to pass to FUN. +The result is a new function which does the same as FUN, except that +the first N arguments are fixed at the values with which this function +was called." + (lexical-let ((fun fun) (args1 args)) + (lambda (&rest args2) (apply fun (append args1 args2)))))) + +(compile-on-emacs-prior-to-23 + (defun mouse-event-p (object) + "Return non-nil if OBJECT is a mouse click event." + (memq (event-basic-type object) '(mouse-1 mouse-2 mouse-3 mouse-movement)))) + (provide 'notmuch-lib)