X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch.el;h=30ab2e8f95d6aaaaf9a604df4f3cdda0b74f2919;hp=d180fa4e51ba04f7ed7d9ba4df2a81e0a021f125;hb=b0ccc88146590333eaf255e507f6e9c85598aa15;hpb=5e8ce15bfb4e836ca3ecd961903230b42830c06e diff --git a/notmuch.el b/notmuch.el index d180fa4e..30ab2e8f 100644 --- a/notmuch.el +++ b/notmuch.el @@ -67,6 +67,8 @@ (define-key map "w" 'notmuch-show-save-attachments) (define-key map "V" 'notmuch-show-view-raw-message) (define-key map "v" 'notmuch-show-view-all-mime-parts) + (define-key map "b" 'notmuch-show-toggle-current-body) + (define-key map "h" 'notmuch-show-toggle-current-header) (define-key map "-" 'notmuch-show-remove-tag) (define-key map "+" 'notmuch-show-add-tag) (define-key map "X" 'notmuch-show-mark-read-then-archive-then-exit) @@ -322,7 +324,9 @@ buffer." (lambda (p) (let ((disposition (mm-handle-disposition p))) (and (listp disposition) - (equal (car disposition) "attachment") + (or (equal (car disposition) "attachment") + (and (equal (car disposition) "inline") + (assq 'filename disposition))) (incf count)))) mm-handle) count)) @@ -332,7 +336,9 @@ buffer." (lambda (p) (let ((disposition (mm-handle-disposition p))) (and (listp disposition) - (equal (car disposition) "attachment") + (or (equal (car disposition) "attachment") + (and (equal (car disposition) "inline") + (assq 'filename disposition))) (or (not queryp) (y-or-n-p (concat "Save '" (cdr (assq 'filename disposition)) "' "))) @@ -574,6 +580,26 @@ which this thread was originally shown." (force-window-update) (redisplay t)) +(defun notmuch-show-toggle-current-body () + "Toggle the current message body." + (interactive) + (save-excursion + (notmuch-show-move-to-current-message-summary-line) + (unless (button-at (point)) + (notmuch-show-next-button)) + (push-button)) + ) + +(defun notmuch-show-toggle-current-header () + (interactive) + (save-excursion + (notmuch-show-move-to-current-message-summary-line) + (next-line) + (unless (button-at (point)) + (notmuch-show-next-button)) + (push-button)) + ) + (define-button-type 'notmuch-button-invisibility-toggle-type 'action 'notmuch-toggle-invisible-action 'follow-link t @@ -595,26 +621,27 @@ which this thread was originally shown." (while (< (point) end) (let ((beg-sub (point-marker)) (indent (make-string depth ? )) - (citation "[[:space:]]*>")) + (citation ">")) + (move-to-column depth) (if (looking-at citation) (progn (while (looking-at citation) - (forward-line)) + (forward-line) + (move-to-column depth)) (let ((overlay (make-overlay beg-sub (point))) (invis-spec (make-symbol "notmuch-citation-region"))) (add-to-invisibility-spec invis-spec) (overlay-put overlay 'invisible invis-spec) - (let ((p (point)) + (let ((p (point-marker)) (cite-button-text (concat "[" (number-to-string (count-lines beg-sub (point))) - "-line citation.]"))) + "-line citation. Click/Enter to show.]"))) (goto-char (- beg-sub 1)) (insert (concat "\n" indent)) (insert-button cite-button-text 'invisibility-spec invis-spec :type 'notmuch-button-citation-toggle-type) - (insert "\n") - (goto-char (+ (length cite-button-text) p)) + (forward-line) )))) (move-to-column depth) (if (looking-at notmuch-show-signature-regexp) @@ -629,7 +656,7 @@ which this thread was originally shown." (goto-char (- beg-sub 1)) (insert (concat "\n" indent)) (let ((sig-button-text (concat "[" (number-to-string sig-lines) - "-line signature.]"))) + "-line signature. Click/Enter to show.]"))) (insert-button sig-button-text 'invisibility-spec invis-spec :type 'notmuch-button-signature-toggle-type) ) @@ -950,7 +977,9 @@ matching this search term are shown if non-nil. " (save-excursion (let* ((basic-args (list notmuch-command nil t nil "show" "--entire-thread" thread-id)) (args (if query-context (append basic-args (list "and (" query-context ")")) basic-args))) - (apply 'call-process args)) + (apply 'call-process args) + (when (and (eq (buffer-size) 0) query-context) + (apply 'call-process basic-args))) (notmuch-show-markup-messages) ) (run-hooks 'notmuch-show-hook) @@ -1182,7 +1211,7 @@ The tag is added to messages in the currently selected thread which match the current search terms." (interactive (list (notmuch-select-tag-with-completion "Tag to add: "))) - (notmuch-call-notmuch-process "tag" (concat "+" tag) (notmuch-search-find-thread-id) " and " notmuch-search-query-string) + (notmuch-call-notmuch-process "tag" (concat "+" tag) (notmuch-search-find-thread-id)) (notmuch-search-set-tags (delete-dups (sort (cons tag (notmuch-search-get-tags)) 'string<)))) (defun notmuch-search-remove-tag (tag) @@ -1192,7 +1221,7 @@ The tag is removed from messages in the currently selected thread which match the current search terms." (interactive (list (notmuch-select-tag-with-completion "Tag to remove: " (notmuch-search-find-thread-id)))) - (notmuch-call-notmuch-process "tag" (concat "-" tag) (notmuch-search-find-thread-id) " and " notmuch-search-query-string) + (notmuch-call-notmuch-process "tag" (concat "-" tag) (notmuch-search-find-thread-id)) (notmuch-search-set-tags (delete tag (notmuch-search-get-tags)))) (defun notmuch-search-archive-thread ()