]> git.notmuchmail.org Git - notmuch/blobdiff - emacs/notmuch-lib.el
Don't use kill-this-buffer to kill notmuch emacs buffers
[notmuch] / emacs / notmuch-lib.el
index cb9be30177013e7fc24783fc77091357043c801b..dfdcd0520b021e101acc2c105616c720b46c2f1a 100644 (file)
 (defvar notmuch-command "notmuch"
   "Command to run the notmuch binary.")
 
+(defgroup notmuch nil
+  "Notmuch mail reader for Emacs."
+  :group 'mail)
+
+(defcustom notmuch-search-oldest-first t
+  "Show the oldest mail first when searching."
+  :type 'boolean
+  :group 'notmuch)
+
+;;
+
+(defcustom notmuch-saved-searches nil
+  "A list of saved searches to display."
+  :type '(alist :key-type string :value-type string)
+  :group 'notmuch)
+
+(defvar notmuch-folders nil
+  "Deprecated name for what is now known as `notmuch-saved-searches'.")
+
+(defun notmuch-saved-searches ()
+  "Common function for querying the notmuch-saved-searches variable.
+
+We do this as a function to support the old name of the
+variable (`notmuch-folders') as well as for the default value if
+the user hasn't set this variable with the old or new value."
+  (if notmuch-saved-searches
+      notmuch-saved-searches
+    (if notmuch-folders
+       notmuch-folders
+      '(("inbox" . "tag:inbox")
+       ("unread" . "tag:unread")))))
+
+(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")))
+
+(defun notmuch-config-get (item)
+  "Return a value from the notmuch configuration."
+  ;; Trim off the trailing newline
+  (substring (shell-command-to-string
+             (concat notmuch-command " config get " item))
+             0 -1))
+
+(defun notmuch-database-path ()
+  "Return the database.path value from the notmuch configuration."
+  (notmuch-config-get "database.path"))
+
+(defun notmuch-user-name ()
+  "Return the user.name value from the notmuch configuration."
+  (notmuch-config-get "user.name"))
+
+(defun notmuch-user-primary-email ()
+  "Return the user.primary_email value from the notmuch configuration."
+  (notmuch-config-get "user.primary_email"))
+
+(defun notmuch-kill-this-buffer ()
+  "Kill the current buffer."
+  (interactive)
+  (kill-buffer (current-buffer)))
+
+;;
+
 ;; XXX: This should be a generic function in emacs somewhere, not
 ;; here.
 (defun point-invisible-p ()