X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch-show.el;h=e84e1baf03d0a94fb7d121bbffd51313cd891166;hb=04725cfbe5a8905651b3f6a4dcf1f3dce9a085e1;hp=a080134ff7e5dbea69528267c277dad6fef062fd;hpb=6bbb91f8b64c20a491cc3501b625753f97e52882;p=obsolete%2Fnotmuch-old 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