From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Malakhovski Subject: [PATCH 6/9] factor out date-timestamp* calculations to org-store-link-props Date: Tue, 3 Nov 2015 20:15:44 +0000 Message-ID: <1446581747-1960-7-git-send-email-oxij@oxij.org> References: <1446581747-1960-1-git-send-email-oxij@oxij.org> Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:37192) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zti0F-0002VC-Cq for emacs-orgmode@gnu.org; Tue, 03 Nov 2015 15:16:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zti0D-0004QR-OV for emacs-orgmode@gnu.org; Tue, 03 Nov 2015 15:16:23 -0500 Received: from tricoro.koumakan.jp ([195.154.188.176]:29109) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zti0D-0004Q8-Gg for emacs-orgmode@gnu.org; Tue, 03 Nov 2015 15:16:21 -0500 In-Reply-To: <1446581747-1960-1-git-send-email-oxij@oxij.org> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Cc: Jan Malakhovski * lisp/org.el (org-store-link-props): Rewrite function to get date-timestamp* calculations. * lisp/org-gnus.el: * lisp/org-mhe.el: * lisp/org-rmail.el: * contrib/lisp/org-mew.el: * contrib/lisp/org-vm.el: * contrib/lisp/org-wl.el: Remove date-timestamp* copy-paste. * doc/org.texi: Fix `org-capture-templates' documentation. --- contrib/lisp/org-mew.el | 11 +---------- contrib/lisp/org-vm.el | 11 +---------- contrib/lisp/org-wl.el | 10 +--------- doc/org.texi | 4 ++-- lisp/org-gnus.el | 15 +-------------- lisp/org-mhe.el | 10 +--------- lisp/org-rmail.el | 11 +---------- lisp/org.el | 15 +++++++++++++-- 8 files changed, 21 insertions(+), 66 deletions(-) diff --git a/contrib/lisp/org-mew.el b/contrib/lisp/org-mew.el index eb0afc0..35fdd8b 100644 --- a/contrib/lisp/org-mew.el +++ b/contrib/lisp/org-mew.el @@ -167,19 +167,10 @@ with \"t\" key." (from (mew-header-get-value "From:")) (to (mew-header-get-value "To:")) (date (mew-header-get-value "Date:")) - (date-ts (and date (format-time-string - (org-time-stamp-format t) - (date-to-time date)))) - (date-ts-ia (and date (format-time-string - (org-time-stamp-format t t) - (date-to-time date)))) (subject (mew-header-get-value "Subject:")) desc link) - (org-store-link-props :type "mew" :from from :to to + (org-store-link-props :type "mew" :from from :to to :date date :subject subject :message-id message-id) - (when date - (org-add-link-props :date date :date-timestamp date-ts - :date-timestamp-inactive date-ts-ia)) (setq message-id (org-remove-angle-brackets message-id)) (setq desc (org-email-link-description)) (setq link (concat "mew:" folder-name "#" message-id)) diff --git a/contrib/lisp/org-vm.el b/contrib/lisp/org-vm.el index 5d30f64..da242cb 100644 --- a/contrib/lisp/org-vm.el +++ b/contrib/lisp/org-vm.el @@ -77,12 +77,6 @@ (message-id (vm-su-message-id message)) (link-type (if (vm-imap-folder-p) "vm-imap" "vm")) (date (vm-get-header-contents message "Date")) - (date-ts (and date (format-time-string - (org-time-stamp-format t) - (date-to-time date)))) - (date-ts-ia (and date (format-time-string - (org-time-stamp-format t t) - (date-to-time date)))) folder desc link) (if (vm-imap-folder-p) (let ((spec (vm-imap-find-spec-for-buffer (current-buffer)))) @@ -95,10 +89,7 @@ (setq folder (replace-match "" t t folder))))) (setq message-id (org-remove-angle-brackets message-id)) (org-store-link-props :type link-type :from from :to to :subject subject - :message-id message-id) - (when date - (org-add-link-props :date date :date-timestamp date-ts - :date-timestamp-inactive date-ts-ia)) + :message-id message-id :date date) (setq desc (org-email-link-description)) (setq link (concat (concat link-type ":") folder "#" message-id)) (org-add-link-props :link link :description desc) diff --git a/contrib/lisp/org-wl.el b/contrib/lisp/org-wl.el index 632c9e3..2cc333c 100644 --- a/contrib/lisp/org-wl.el +++ b/contrib/lisp/org-wl.el @@ -198,12 +198,6 @@ ENTITY is a message entity." (xref (org-wl-message-field 'xref wl-message-entity)) (subject (org-wl-message-field 'subject wl-message-entity)) (date (org-wl-message-field 'date wl-message-entity)) - (date-ts (and date (format-time-string - (org-time-stamp-format t) - (date-to-time date)))) - (date-ts-ia (and date (format-time-string - (org-time-stamp-format t t) - (date-to-time date)))) desc link) ;; remove text properties of subject string to avoid possible bug @@ -243,9 +237,7 @@ ENTITY is a message entity." (setq desc (org-email-link-description)) (setq link (concat "wl:" folder-name "#" message-id-no-brackets)) (org-add-link-props :link link :description desc))) - (when date - (org-add-link-props :date date :date-timestamp date-ts - :date-timestamp-inactive date-ts-ia)) + (org-add-link-props :date date) (or link xref))))))) (defun org-wl-open-nntp (path) diff --git a/doc/org.texi b/doc/org.texi index ba402bf..2bf2b24 100644 --- a/doc/org.texi +++ b/doc/org.texi @@ -7314,8 +7314,8 @@ Link type | Available keywords ---------------------------------+---------------------------------------------- bbdb | %:name %:company irc | %:server %:port %:nick -vm, vm-imap, wl, mh, mew, rmail | %:type %:subject %:message-id - | %:from %:fromname %:fromaddress +vm, vm-imap, wl, mh, mew, rmail, | %:type %:subject %:message-id +gnus | %:from %:fromname %:fromaddress | %:to %:toname %:toaddress | %:date @r{(message date header field)} | %:date-timestamp @r{(date as active timestamp)} diff --git a/lisp/org-gnus.el b/lisp/org-gnus.el index c7b46af..c1eb6c6 100644 --- a/lisp/org-gnus.el +++ b/lisp/org-gnus.el @@ -159,16 +159,6 @@ If `org-store-link' was called with a prefix arg the meaning of (from (mail-header-from header)) (message-id (org-remove-angle-brackets (mail-header-id header))) (date (org-trim (mail-header-date header))) - (date-ts (and date - (ignore-errors - (format-time-string - (org-time-stamp-format t) - (date-to-time date))))) - (date-ts-ia (and date - (ignore-errors - (format-time-string - (org-time-stamp-format t t) - (date-to-time date))))) (subject (copy-sequence (mail-header-subject header))) (to (cdr (assq 'To (mail-header-extra header)))) newsgroups x-no-archive desc link) @@ -188,11 +178,8 @@ If `org-store-link' was called with a prefix arg the meaning of (setq to (or to (gnus-fetch-original-field "To")) newsgroups (gnus-fetch-original-field "Newsgroups") x-no-archive (gnus-fetch-original-field "x-no-archive"))) - (org-store-link-props :type "gnus" :from from :subject subject + (org-store-link-props :type "gnus" :from from :date date :subject subject :message-id message-id :group group :to to) - (when date - (org-add-link-props :date date :date-timestamp date-ts - :date-timestamp-inactive date-ts-ia)) (setq desc (org-email-link-description) link (org-gnus-article-link group newsgroups message-id x-no-archive)) diff --git a/lisp/org-mhe.el b/lisp/org-mhe.el index e184440..3fcbc46 100644 --- a/lisp/org-mhe.el +++ b/lisp/org-mhe.el @@ -88,17 +88,9 @@ supported by MH-E." (message-id (org-mhe-get-header "Message-Id:")) (subject (org-mhe-get-header "Subject:")) (date (org-mhe-get-header "Date:")) - (date-ts (and date (format-time-string - (org-time-stamp-format t) (date-to-time date)))) - (date-ts-ia (and date (format-time-string - (org-time-stamp-format t t) - (date-to-time date)))) link desc) - (org-store-link-props :type "mh" :from from :to to + (org-store-link-props :type "mh" :from from :to to :date date :subject subject :message-id message-id) - (when date - (org-add-link-props :date date :date-timestamp date-ts - :date-timestamp-inactive date-ts-ia)) (setq desc (org-email-link-description)) (setq link (concat "mhe:" (org-mhe-get-message-real-folder) "#" (org-remove-angle-brackets message-id))) diff --git a/lisp/org-rmail.el b/lisp/org-rmail.el index af47e0f..4732f51 100644 --- a/lisp/org-rmail.el +++ b/lisp/org-rmail.el @@ -65,19 +65,10 @@ (to (mail-fetch-field "to")) (subject (mail-fetch-field "subject")) (date (mail-fetch-field "date")) - (date-ts (and date (format-time-string - (org-time-stamp-format t) - (date-to-time date)))) - (date-ts-ia (and date (format-time-string - (org-time-stamp-format t t) - (date-to-time date)))) desc link) (org-store-link-props - :type "rmail" :from from :to to + :type "rmail" :from from :to to :date date :subject subject :message-id message-id) - (when date - (org-add-link-props :date date :date-timestamp date-ts - :date-timestamp-inactive date-ts-ia)) (setq message-id (org-remove-angle-brackets message-id)) (setq desc (org-email-link-description)) (setq link (concat "rmail:" folder "#" message-id)) diff --git a/lisp/org.el b/lisp/org.el index c466870..cf0ef1f 100755 --- a/lisp/org.el +++ b/lisp/org.el @@ -9960,7 +9960,7 @@ active region." (car org-stored-links)))))) (defun org-store-link-props (&rest plist) - "Store link properties, extract names and addresses." + "Store link properties, extract names, addresses and dates." (let (x adr) (when (setq x (plist-get plist :from)) (setq adr (mail-extract-address-components x)) @@ -9969,7 +9969,18 @@ active region." (when (setq x (plist-get plist :to)) (setq adr (mail-extract-address-components x)) (setq plist (plist-put plist :toname (car adr))) - (setq plist (plist-put plist :toaddress (nth 1 adr))))) + (setq plist (plist-put plist :toaddress (nth 1 adr)))) + (when (setq x (plist-get plist :date)) + (setq plist (plist-put plist :date-timestamp + (ignore-errors + (format-time-string + (org-time-stamp-format t) + (date-to-time x))))) + (setq plist (plist-put plist :date-timestamp-inactive + (ignore-errors + (format-time-string + (org-time-stamp-format t t) + (date-to-time x))))))) (let ((from (plist-get plist :from)) (to (plist-get plist :to))) (when (and from to org-from-is-user-regexp) -- 2.6.2