X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=emacs%2Fnotmuch.el;h=babddbb6fef87652ed7204fb4dc65351d12f72b1;hp=4120764352ff57115d9d4cae63f96ef87e227f02;hb=df3fab18fe70ea750f6f06da30291c67de7e74f2;hpb=dfb1b8eb89e814f4bf6f6e62b700c72aa1b4659a
diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index 41207643..babddbb6 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -18,7 +18,7 @@
;; along with Notmuch. If not, see .
;;
;; Authors: Carl Worth
-;; Homepage: https://notmuchmail.org/
+;; Homepage: https://notmuchmail.org
;;; Commentary:
@@ -62,7 +62,7 @@
;;
;; TL;DR: notmuch-emacs from MELPA and notmuch from distro packages is
;; NOT SUPPORTED.
-;;
+
;;; Code:
(eval-when-compile (require 'cl-lib))
@@ -273,8 +273,12 @@ there will be called at other points of notmuch execution."
(goto-char (point-min)))
(defface notmuch-message-summary-face
- '((((class color) (background light)) (:background "#f0f0f0"))
- (((class color) (background dark)) (:background "#303030")))
+ `((((class color) (background light))
+ ,@(and (>= emacs-major-version 27) '(:extend t))
+ (:background "#f0f0f0"))
+ (((class color) (background dark))
+ ,@(and (>= emacs-major-version 27) '(:extend t))
+ (:background "#303030")))
"Face for the single-line message summary in notmuch-show-mode."
:group 'notmuch-show
:group 'notmuch-faces)
@@ -428,11 +432,10 @@ returns nil."
(defun notmuch-search-foreach-result (beg end fn)
"Invoke FN for each result between BEG and END.
-FN should take one argument. It will be applied to the
-character position of the beginning of each result that overlaps
-the region between points BEG and END. As a special case, if (=
-BEG END), FN will be applied to the result containing point
-BEG."
+FN should take one argument. It will be applied to the character
+position of the beginning of each result that overlaps the region
+between points BEG and END. As a special case, if (= BEG END),
+FN will be applied to the result containing point BEG."
(let ((pos (notmuch-search-result-beginning beg))
;; End must be a marker in case fn changes the
;; text.
@@ -674,28 +677,28 @@ of the result."
(when (memq status '(exit signal))
(catch 'return
(kill-buffer (process-get proc 'parse-buf))
- (if (buffer-live-p buffer)
- (with-current-buffer buffer
- (save-excursion
- (let ((inhibit-read-only t)
- (atbob (bobp)))
- (goto-char (point-max))
- (if (eq status 'signal)
- (insert "Incomplete search results (search process was killed).\n"))
- (when (eq status 'exit)
- (insert "End of search results.\n")
- ;; For version mismatch, there's no point in
- ;; showing the search buffer
- (when (or (= exit-status 20) (= exit-status 21))
- (kill-buffer)
- (throw 'return nil))
- (if (and atbob
+ (when (buffer-live-p buffer)
+ (with-current-buffer buffer
+ (save-excursion
+ (let ((inhibit-read-only t)
+ (atbob (bobp)))
+ (goto-char (point-max))
+ (when (eq status 'signal)
+ (insert "Incomplete search results (search process was killed).\n"))
+ (when (eq status 'exit)
+ (insert "End of search results.\n")
+ ;; For version mismatch, there's no point in
+ ;; showing the search buffer
+ (when (or (= exit-status 20) (= exit-status 21))
+ (kill-buffer)
+ (throw 'return nil))
+ (when (and atbob
(not (string= notmuch-search-target-thread "found")))
- (set 'never-found-target-thread t)))))
- (when (and never-found-target-thread
- notmuch-search-target-line)
- (goto-char (point-min))
- (forward-line (1- notmuch-search-target-line)))))))))
+ (set 'never-found-target-thread t)))))
+ (when (and never-found-target-thread
+ notmuch-search-target-line)
+ (goto-char (point-min))
+ (forward-line (1- notmuch-search-target-line)))))))))
(define-widget 'notmuch--custom-face-edit 'lazy
"Custom face edit with a tag Edit Face"
@@ -760,31 +763,31 @@ non-authors is found, assume that all of the authors match."
(invisible-string "")
(padding ""))
;; Truncate the author string to fit the specification.
- (if (> (length formatted-authors)
- (length formatted-sample))
- (let ((visible-length (- (length formatted-sample)
- (length "... "))))
- ;; Truncate the visible string according to the width of
- ;; the display string.
- (setq visible-string (substring formatted-authors 0 visible-length))
- (setq invisible-string (substring formatted-authors visible-length))
- ;; If possible, truncate the visible string at a natural
- ;; break (comma or pipe), as incremental search doesn't
- ;; match across the visible/invisible border.
- (when (string-match "\\(.*\\)\\([,|] \\)\\([^,|]*\\)" visible-string)
- ;; Second clause is destructive on `visible-string', so
- ;; order is important.
- (setq invisible-string (concat (match-string 3 visible-string)
- invisible-string))
- (setq visible-string (concat (match-string 1 visible-string)
- (match-string 2 visible-string))))
- ;; `visible-string' may be shorter than the space allowed
- ;; by `format-string'. If so we must insert some padding
- ;; after `invisible-string'.
- (setq padding (make-string (- (length formatted-sample)
- (length visible-string)
- (length "..."))
- ? ))))
+ (when (> (length formatted-authors)
+ (length formatted-sample))
+ (let ((visible-length (- (length formatted-sample)
+ (length "... "))))
+ ;; Truncate the visible string according to the width of
+ ;; the display string.
+ (setq visible-string (substring formatted-authors 0 visible-length))
+ (setq invisible-string (substring formatted-authors visible-length))
+ ;; If possible, truncate the visible string at a natural
+ ;; break (comma or pipe), as incremental search doesn't
+ ;; match across the visible/invisible border.
+ (when (string-match "\\(.*\\)\\([,|] \\)\\([^,|]*\\)" visible-string)
+ ;; Second clause is destructive on `visible-string', so
+ ;; order is important.
+ (setq invisible-string (concat (match-string 3 visible-string)
+ invisible-string))
+ (setq visible-string (concat (match-string 1 visible-string)
+ (match-string 2 visible-string))))
+ ;; `visible-string' may be shorter than the space allowed
+ ;; by `format-string'. If so we must insert some padding
+ ;; after `invisible-string'.
+ (setq padding (make-string (- (length formatted-sample)
+ (length visible-string)
+ (length "..."))
+ ? ))))
;; Use different faces to show matching and non-matching authors.
(if (string-match "\\(.*\\)|\\(.*\\)" visible-string)
;; The visible string contains both matching and
@@ -803,13 +806,13 @@ non-authors is found, assume that all of the authors match."
(setq invisible-string (notmuch-search-author-propertize invisible-string)))
;; If there is any invisible text, add it as a tooltip to the
;; visible text.
- (when (not (string= invisible-string ""))
+ (unless (string= invisible-string "")
(setq visible-string
(propertize visible-string
'help-echo (concat "..." invisible-string))))
;; Insert the visible and, if present, invisible author strings.
(insert visible-string)
- (when (not (string= invisible-string ""))
+ (unless (string= invisible-string "")
(let ((start (point))
overlay)
(insert invisible-string)
@@ -1006,8 +1009,8 @@ the configured default sort order."
(notmuch-tag-clear-cache)
(let ((proc (get-buffer-process (current-buffer)))
(inhibit-read-only t))
- (if proc
- (error "notmuch search process already running for query `%s'" query))
+ (when proc
+ (error "notmuch search process already running for query `%s'" query))
(erase-buffer)
(goto-char (point-min))
(save-excursion
@@ -1156,7 +1159,7 @@ beginning of the line."
(provide 'notmuch)
;; After provide to avoid loops if notmuch was require'd via notmuch-init-file.
-(if init-file-user ; don't load init file if the -q option was used.
- (load notmuch-init-file t t nil t))
+(when init-file-user ; don't load init file if the -q option was used.
+ (load notmuch-init-file t t nil t))
;;; notmuch.el ends here