]> git.notmuchmail.org Git - notmuch/blobdiff - emacs/notmuch-wash.el
emacs: use lexical-bindings in all libraries
[notmuch] / emacs / notmuch-wash.el
index 00ac45b676508a597e3d10e0435761e4461e14b7..70eff63777bf09ad320e9772351d30b97f6e8a8d 100644 (file)
@@ -1,4 +1,4 @@
-;;; notmuch-wash.el --- cleaning up message bodies
+;;; notmuch-wash.el --- cleaning up message bodies  -*- lexical-binding: t -*-
 ;;
 ;; Copyright © Carl Worth
 ;; Copyright © David Edmondson
@@ -30,7 +30,7 @@
                  (msg part depth &optional hide))
 (defvar notmuch-show-indent-messages-width)
 
-;;
+;;; Options
 
 (defgroup notmuch-wash nil
   "Cleaning up messages for display."
@@ -130,6 +130,8 @@ or at the window width (whichever one is lower)."
                 (integer :tag "number of characters"))
   :group 'notmuch-wash)
 
+;;; Faces
+
 (defface notmuch-wash-toggle-button
   '((t (:inherit font-lock-comment-face)))
   "Face used for buttons toggling the visibility of washed away
@@ -143,6 +145,8 @@ message parts."
   :group 'notmuch-wash
   :group 'notmuch-faces)
 
+;;; Buttons
+
 (defun notmuch-wash-toggle-invisible-action (cite-button)
   ;; Toggle overlay visibility
   (let ((overlay (button-get cite-button 'overlay)))
@@ -216,8 +220,8 @@ that PREFIX should not include a newline."
     (goto-char (1+ end))
     (save-excursion
       (goto-char beg)
-      (if prefix
-         (insert-before-markers prefix))
+      (when prefix
+       (insert-before-markers prefix))
       (let ((button-beg (point)))
        (insert-before-markers (notmuch-wash-button-label overlay) "\n")
        (let ((button (make-button button-beg (1- (point))
@@ -225,17 +229,19 @@ that PREFIX should not include a newline."
                                   :type button-type)))
          (overlay-put overlay 'notmuch-wash-button button))))))
 
+;;; Hook functions
+
 (defun notmuch-wash-excerpt-citations (msg depth)
   "Excerpt citations and up to one signature."
   (goto-char (point-min))
   (beginning-of-line)
-  (if (and (< (point) (point-max))
-          (re-search-forward notmuch-wash-original-regexp nil t))
-      (let* ((msg-start (match-beginning 0))
-            (msg-end (point-max))
-            (msg-lines (count-lines msg-start msg-end)))
-       (notmuch-wash-region-to-button
-        msg msg-start msg-end "original")))
+  (when (and (< (point) (point-max))
+            (re-search-forward notmuch-wash-original-regexp nil t))
+    (let* ((msg-start (match-beginning 0))
+          (msg-end (point-max))
+          (msg-lines (count-lines msg-start msg-end)))
+      (notmuch-wash-region-to-button
+       msg msg-start msg-end "original")))
   (while (and (< (point) (point-max))
              (re-search-forward notmuch-wash-citation-regexp nil t))
     (let* ((cite-start (match-beginning 0))
@@ -254,23 +260,21 @@ that PREFIX should not include a newline."
          (notmuch-wash-region-to-button
           msg hidden-start (point-marker)
           "citation")))))
-  (if (and (not (eobp))
-          (re-search-forward notmuch-wash-signature-regexp nil t))
-      (let* ((sig-start (match-beginning 0))
-            (sig-end (match-end 0))
-            (sig-lines (count-lines sig-start (point-max))))
-       (if (<= sig-lines notmuch-wash-signature-lines-max)
-           (let ((sig-start-marker (make-marker))
-                 (sig-end-marker (make-marker)))
-             (set-marker sig-start-marker sig-start)
-             (set-marker sig-end-marker (point-max))
-             (overlay-put (make-overlay sig-start-marker sig-end-marker)
-                          'face 'message-cited-text)
-             (notmuch-wash-region-to-button
-              msg sig-start-marker sig-end-marker
-              "signature"))))))
-
-;;
+  (when (and (not (eobp))
+            (re-search-forward notmuch-wash-signature-regexp nil t))
+    (let* ((sig-start (match-beginning 0))
+          (sig-end (match-end 0))
+          (sig-lines (count-lines sig-start (point-max))))
+      (when (<= sig-lines notmuch-wash-signature-lines-max)
+       (let ((sig-start-marker (make-marker))
+             (sig-end-marker (make-marker)))
+         (set-marker sig-start-marker sig-start)
+         (set-marker sig-end-marker (point-max))
+         (overlay-put (make-overlay sig-start-marker sig-end-marker)
+                      'face 'message-cited-text)
+         (notmuch-wash-region-to-button
+          msg sig-start-marker sig-end-marker
+          "signature"))))))
 
 (defun notmuch-wash-elide-blank-lines (msg depth)
   "Elide leading, trailing and successive blank lines."
@@ -286,14 +290,12 @@ that PREFIX should not include a newline."
     (delete-region (match-beginning 1) (match-end 1)))
   ;; Remove a leading blank line.
   (goto-char (point-min))
-  (if (looking-at "\n")
-      (delete-region (match-beginning 0) (match-end 0)))
+  (when (looking-at "\n")
+    (delete-region (match-beginning 0) (match-end 0)))
   ;; Remove a trailing blank line.
   (goto-char (point-max))
-  (if (looking-at "\n")
-      (delete-region (match-beginning 0) (match-end 0))))
-
-;;
+  (when (looking-at "\n")
+    (delete-region (match-beginning 0) (match-end 0))))
 
 (defun notmuch-wash-tidy-citations (msg depth)
   "Improve the display of cited regions of a message.
@@ -319,8 +321,6 @@ Perform several transformations on the message body:
   (while (re-search-forward "\\(^>[> ]*\n\\)\\(^$\\|^[^>].*\\)" nil t)
     (replace-match "\\2")))
 
-;;
-
 (defun notmuch-wash-wrap-long-lines (msg depth)
   "Wrap long lines in the message.
 
@@ -342,7 +342,7 @@ the wrapped text are maintained."
                         2)))
     (coolj-wrap-region (point-min) (point-max))))
 
-;;
+;;;; Convert Inline Patches
 
 (require 'diff-mode)
 
@@ -370,10 +370,10 @@ filename, before trimming any trailing . and - characters."
 
 Return the patch sequence number N from the last \"[PATCH N/M]\"
 style prefix in SUBJECT, or nil if such a prefix can't be found."
-  (when (string-match
-        "^ *\\(\\[[^]]*\\] *\\)*\\[[^]]*?\\([0-9]+\\)/[0-9]+[^]]*\\].*"
-        subject)
-    (string-to-number (substring subject (match-beginning 2) (match-end 2)))))
+  (and (string-match
+       "^ *\\(\\[[^]]*\\] *\\)*\\[[^]]*?\\([0-9]+\\)/[0-9]+[^]]*\\].*"
+       subject)
+       (string-to-number (substring subject (match-beginning 2) (match-end 2)))))
 
 (defun notmuch-wash-subject-to-patch-filename (subject)
   "Convert a patch mail SUBJECT into a filename.
@@ -399,12 +399,12 @@ for error."
          (patch-end (point-max))
          part)
       (goto-char patch-start)
-      (if (or
-          ;; Patch ends with signature.
-          (re-search-forward notmuch-wash-signature-regexp nil t)
-          ;; Patch ends with bugtraq comment.
-          (re-search-forward "^\\*\\*\\* " nil t))
-         (setq patch-end (match-beginning 0)))
+      (when (or
+            ;; Patch ends with signature.
+            (re-search-forward notmuch-wash-signature-regexp nil t)
+            ;; Patch ends with bugtraq comment.
+            (re-search-forward "^\\*\\*\\* " nil t))
+       (setq patch-end (match-beginning 0)))
       (save-restriction
        (narrow-to-region patch-start patch-end)
        (setq part (plist-put part :content-type "inline patch"))
@@ -417,7 +417,7 @@ for error."
        (delete-region (point-min) (point-max))
        (notmuch-show-insert-bodypart nil part depth)))))
 
-;;
+;;; _
 
 (provide 'notmuch-wash)