Using timestamp of a message is useful in many Xapian queries. --- This is my suggested alternative to id:20170110181525.18269-1-jani@nikula.org since my comments in id:m2fuimv4mj.fsf@guru.guru-group.fi This variant uses prefix argument to `c d` to do stashing of a timestamp and do not (at this time) define any customization variable (and set the format of that potential variable in stone). Time will tell whether this is enough -- I currently don't see how any other format would be useful (unless, someone(tm) wants to have some stupid national formats in their date strings ;/) I did implement that list format in customization variable: :+(defcustom notmuch-show-stash-date-additional-formats '() :+ "List of additional date formats to use when stashing date." :+ :type '(repeat string) :+ :group 'notmuch-show) :+ : (defun notmuch-show-stash-date () : "Copy date of current message to kill-ring." : (interactive) :- (notmuch-common-do-stash (notmuch-show-get-date))) :+ (notmuch-common-do-stash :+ (if (= (length notmuch-show-stash-date-additional-formats) 0) :+ (notmuch-show-get-date) :+ (let ((time (seconds-to-time (notmuch-show-get-timestamp))) :+ (history-length 0)) :+ (completing-read "Formatted date to stash: " :+ (mapcar (lambda (i) (format-time-string i time)) :+ notmuch-show-stash-date-additional-formats) :+ nil nil (notmuch-show-get-date)))))) but for now this patch might just be enough (?) I also have some preliminary docid changes (but it looks to me that it would require Xapian 1.4 RangeProcessor (i.e. no *Value* there) to do it) -- have to get a system with Xapian 1.4 for use first... emacs/notmuch-show.el | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el index c670160..e7c22da 100644 --- a/emacs/notmuch-show.el +++ b/emacs/notmuch-show.el @@ -1674,6 +1674,9 @@ (defun notmuch-show-get-cc () (defun notmuch-show-get-date () (notmuch-show-get-header :Date)) +(defun notmuch-show-get-timestamp () + (notmuch-show-get-prop :timestamp)) + (defun notmuch-show-get-from () (notmuch-show-get-header :From)) @@ -2239,10 +2242,17 @@ (defun notmuch-show-stash-cc () (interactive) (notmuch-common-do-stash (notmuch-show-get-cc))) -(defun notmuch-show-stash-date () - "Copy date of current message to kill-ring." - (interactive) - (notmuch-common-do-stash (notmuch-show-get-date))) +(put 'notmuch-show-stash-date 'notmuch-prefix-doc + "Copy timestamp of current message to kill-ring.") +(defun notmuch-show-stash-date (&optional stash-timestamp) + "Copy date of current message to kill-ring. + +If invoked with a prefix argument, copy timestamp of current +message to kill-ring." + (interactive "P") + (if stash-timestamp + (notmuch-common-do-stash (format "%d" (notmuch-show-get-timestamp))) + (notmuch-common-do-stash (notmuch-show-get-date)))) (defun notmuch-show-stash-filename () "Copy filename of current message to kill-ring." -- 2.9.3