;; 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.") (defgroup notmuch nil "Notmuch mail reader for Emacs." :group 'mail) (defcustom notmuch-folders '(("inbox" . "tag:inbox") ("unread" . "tag:unread")) "List of searches for the notmuch folder view" :type '(alist :key-type (string) :value-type (string)) :group 'notmuch) (defcustom notmuch-search-oldest-first t "Show the oldest mail first when searching." :type 'boolean :group 'notmuch) ;; (defun notmuch-version () "Return a string with the notmuch version number." (let ((long-string ;; Trim off the trailing newline. (substring (shell-command-to-string (concat notmuch-command " --version")) 0 -1))) (if (string-match "^notmuch\\( version\\)? \\(.*\\)$" long-string) (match-string 2 long-string) "unknown"))) ;; ;; 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)