From e8414a72d478b55d2a5dd8b2fb30c67ee60b1732 Mon Sep 17 00:00:00 2001 From: David Edmondson Date: Thu, 1 Apr 2010 18:36:21 +0100 Subject: emacs: Move notmuch-show functionality to notmuch-show.el To ease the transition to a JSON based implementation of `notmuch-show', move the current implementation into a separate file. Create `notmuch-lib.el' to hold common variables. --- emacs/notmuch-lib.el | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 emacs/notmuch-lib.el (limited to 'emacs/notmuch-lib.el') diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el new file mode 100644 index 00000000..f4454be6 --- /dev/null +++ b/emacs/notmuch-lib.el @@ -0,0 +1,53 @@ +;; notmuch-lib.el --- common variables, functions and function declarations +;; +;; Copyright © Carl Worth +;; +;; This file is part of Notmuch. +;; +;; Notmuch is free software: you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. +;; +;; Notmuch is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with Notmuch. If not, see . +;; +;; Authors: Carl Worth + +;; This is an part of an emacs-based interface to the notmuch mail system. + +(defvar notmuch-command "notmuch" + "Command to run the notmuch binary.") + +(declare-function notmuch-toggle-invisible-action "notmuch" (cite-button)) + +(define-button-type 'notmuch-button-invisibility-toggle-type + 'action 'notmuch-toggle-invisible-action + 'follow-link t + 'face 'font-lock-comment-face) + +(define-button-type 'notmuch-button-headers-toggle-type + 'help-echo "mouse-1, RET: Show headers" + :supertype 'notmuch-button-invisibility-toggle-type) + +;; XXX: This should be a generic function in emacs somewhere, not +;; here. +(defun point-invisible-p () + "Return whether the character at point is invisible. + +Here visibility is determined by `buffer-invisibility-spec' and +the invisible property of any overlays for point. It doesn't have +anything to do with whether point is currently being displayed +within the current window." + (let ((prop (get-char-property (point) 'invisible))) + (if (eq buffer-invisibility-spec t) + prop + (or (memq prop buffer-invisibility-spec) + (assq prop buffer-invisibility-spec))))) + +(provide 'notmuch-lib) -- cgit v1.2.3