]> git.notmuchmail.org Git - notmuch/blobdiff - emacs/notmuch-lib.el
emacs: Add an accessor function for emacs code to get at user.other_email
[notmuch] / emacs / notmuch-lib.el
index 9d4e00f6958e5814f113d2f7b68bb3b9b6b540bb..cc80fb29ee24a5f6d59b77e1a3632719b67ae726 100644 (file)
@@ -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)