aboutsummaryrefslogtreecommitdiffhomepage
path: root/emacs/notmuch-lib.el
diff options
context:
space:
mode:
authorGravatar David Edmondson <dme@dme.org>2010-04-01 18:36:21 +0100
committerGravatar Carl Worth <cworth@cworth.org>2010-04-05 09:25:56 -0700
commite8414a72d478b55d2a5dd8b2fb30c67ee60b1732 (patch)
treec32ec20e765a0e6abc69d763136fdaa861f6fd49 /emacs/notmuch-lib.el
parent3f8dfc36c470afa2ae0a342cee45c510281c77f9 (diff)
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.
Diffstat (limited to 'emacs/notmuch-lib.el')
-rw-r--r--emacs/notmuch-lib.el53
1 files changed, 53 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>.
+;;
+;; Authors: Carl Worth <cworth@cworth.org>
+
+;; 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)