From 7ae149445a83f18b774b269b85eeea852e386282 Mon Sep 17 00:00:00 2001 From: James Vasile Date: Sat, 27 Feb 2010 20:34:45 -0500 Subject: [PATCH] compatibility with emacs22 Emacs22 lacks apply-partially and mouse-event-p, so define them if emacs version is less than 23. With this change, I was able to begin using notmuch in emacs22. The definitions of apply-partially and mouse-event-p are copied from the emacs 23 distribution, (which is distributed under the GPLv3+ just as notmuch). --- emacs/notmuch-lib.el | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el index 9d4e00f6..dd180ee0 100644 --- a/emacs/notmuch-lib.el +++ b/emacs/notmuch-lib.el @@ -116,5 +116,29 @@ within the current window." (or (memq prop buffer-invisibility-spec) (assq prop buffer-invisibility-spec))))) +;; 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. +(when (< emacs-major-version 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))))) + + (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) -- 2.26.2