aboutsummaryrefslogtreecommitdiffhomepage
path: root/emacs/notmuch-show.el
diff options
context:
space:
mode:
authorGravatar Austin Clements <amdragon@MIT.EDU>2013-05-29 21:13:45 -0400
committerGravatar David Bremner <bremner@debian.org>2013-05-31 22:00:52 -0300
commit04725cfbe5a8905651b3f6a4dcf1f3dce9a085e1 (patch)
treedc3d2b59c5159be283cf034ae98a3f9b25337598 /emacs/notmuch-show.el
parent6bbb91f8b64c20a491cc3501b625753f97e52882 (diff)
emacs: Record part p-list in a text property
This is similar to what we already do with the message p-list, though we apply the part's text property to the whole part's text, in contrast with the message p-list, which is (rather obscurely) only applied to the first character.
Diffstat (limited to 'emacs/notmuch-show.el')
-rw-r--r--emacs/notmuch-show.el20
1 files changed, 19 insertions, 1 deletions
diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index a080134f..e84e1baf 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -900,7 +900,17 @@ If HIDE is non-nil then initially hide this part."
;; Ensure that the part ends with a carriage return.
(unless (bolp)
(insert "\n"))
- (notmuch-show-create-part-overlays msg beg (point) hide)))
+ (notmuch-show-create-part-overlays msg beg (point) hide)
+ ;; Record part information. Since we already inserted subparts,
+ ;; don't override existing :notmuch-part properties.
+ (notmuch-map-text-property beg (point) :notmuch-part
+ (lambda (v) (or v part)))
+ ;; Make :notmuch-part front sticky and rear non-sticky so it stays
+ ;; applied to the beginning of each line when we indent the message.
+ (notmuch-map-text-property beg (point) 'front-sticky
+ (lambda (v) (pushnew :notmuch-part v)))
+ (notmuch-map-text-property beg (point) 'rear-nonsticky
+ (lambda (v) (pushnew :notmuch-part v)))))
(defun notmuch-show-insert-body (msg body depth)
"Insert the body BODY at depth DEPTH in the current thread."
@@ -1404,6 +1414,14 @@ Some useful entries are:
(notmuch-show-move-to-message-top)
(get-text-property (point) :notmuch-message-properties)))
+(defun notmuch-show-get-part-properties ()
+ "Return the properties of the innermost part containing point.
+
+This is the part property list retrieved from the CLI. Signals
+an error if there is no part containing point."
+ (or (get-text-property (point) :notmuch-part)
+ (error "No message part here")))
+
(defun notmuch-show-set-prop (prop val &optional props)
(let ((inhibit-read-only t)
(props (or props