emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r116997: * gnus-icalendar.el (gnus-icalendar-event->


From: Katsumi Yamaoka
Subject: [Emacs-diffs] trunk r116997: * gnus-icalendar.el (gnus-icalendar-event->org-entry)
Date: Sun, 20 Apr 2014 22:10:35 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 116997
revision-id: address@hidden
parent: address@hidden
author: Jan Tatarik <address@hidden>
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Sun 2014-04-20 22:10:33 +0000
message:
  * gnus-icalendar.el (gnus-icalendar-event->org-entry)
  (gnus-icalendar--update-org-event): put event timestamp in
  the org entry body instead of the drawer.
  (gnus-icalendar-event--get-attendee-names): list of participants should
  contain even attendees without common name attribute.
  (gnus-icalendar--update-org-event): don't generate duplicates of empty
  property tags in org drawers.
modified:
  lisp/gnus/ChangeLog            changelog-20091113204419-o5vbwnq5f7feedwu-1433
  lisp/gnus/gnus-icalendar.el    
gnusicalendar.el-20130801225830-k3bdrwt8427ren1n-1
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog       2014-04-15 23:37:21 +0000
+++ b/lisp/gnus/ChangeLog       2014-04-20 22:10:33 +0000
@@ -1,3 +1,13 @@
+2014-04-20  Jan Tatarik  <address@hidden>
+
+       * gnus-icalendar.el (gnus-icalendar-event->org-entry)
+       (gnus-icalendar--update-org-event): put event timestamp in
+       the org entry body instead of the drawer.
+       (gnus-icalendar-event--get-attendee-names): list of participants should
+       contain even attendees without common name attribute.
+       (gnus-icalendar--update-org-event): don't generate duplicates of empty
+       property tags in org drawers.
+
 2014-04-15  Katsumi Yamaoka  <address@hidden>
 
        * gmm-utils.el (gmm-format-time-string): New function.

=== modified file 'lisp/gnus/gnus-icalendar.el'
--- a/lisp/gnus/gnus-icalendar.el       2014-01-01 07:43:34 +0000
+++ b/lisp/gnus/gnus-icalendar.el       2014-04-20 22:10:33 +0000
@@ -170,7 +170,9 @@
                           (caddr event))))
 
     (gmm-labels ((attendee-role (prop) (plist-get (cadr prop) 'ROLE))
-                 (attendee-name (prop) (plist-get (cadr prop) 'CN))
+                 (attendee-name (prop)
+                                (or (plist-get (cadr prop) 'CN)
+                                    (replace-regexp-in-string "^.*MAILTO:" "" 
(caddr prop))))
                  (attendees-by-type (type)
                    (gnus-remove-if-not
                     (lambda (p) (string= (attendee-role p) type))
@@ -452,7 +454,6 @@
                       "Not replied yet"))
              (props `(("ICAL_EVENT" . "t")
                       ("ID" . ,uid)
-                      ("DT" . ,(gnus-icalendar-event:org-timestamp event))
                       ("ORGANIZER" . ,(gnus-icalendar-event:organizer event))
                       ("LOCATION" . ,(gnus-icalendar-event:location event))
                       ("PARTICIPATION_TYPE" . ,(symbol-name 
(gnus-icalendar-event:participation-type event)))
@@ -470,7 +471,9 @@
       (when description
         (save-restriction
           (narrow-to-region (point) (point))
-          (insert description)
+          (insert (gnus-icalendar-event:org-timestamp event)
+                  "\n\n"
+                  description)
           (indent-region (point-min) (point-max) 2)
           (fill-region (point-min) (point-max))))
 
@@ -551,20 +554,31 @@
                 (when description
                   (save-restriction
                     (narrow-to-region (point) (point))
-                    (insert "\n" (replace-regexp-in-string "[\n]+$" "\n" 
description) "\n")
+                    (insert "\n"
+                            (gnus-icalendar-event:org-timestamp event)
+                            "\n\n"
+                            (replace-regexp-in-string "[\n]+$" "\n" 
description)
+                            "\n")
                     (indent-region (point-min) (point-max) (1+ 
entry-outline-level))
                     (fill-region (point-min) (point-max))))
 
                 ;; update entry properties
-                (org-entry-put event-pos "DT" 
(gnus-icalendar-event:org-timestamp event))
-                (org-entry-put event-pos "ORGANIZER" organizer)
-                (org-entry-put event-pos "LOCATION" location)
-                (org-entry-put event-pos "PARTICIPATION_TYPE" (symbol-name 
participation-type))
-                (org-entry-put event-pos "REQ_PARTICIPANTS" 
(gnus-icalendar--format-participant-list req-participants))
-                (org-entry-put event-pos "OPT_PARTICIPANTS" 
(gnus-icalendar--format-participant-list opt-participants))
-                (org-entry-put event-pos "RRULE" recur)
-                (when reply-status (org-entry-put event-pos "REPLY"
-                                                  (capitalize (symbol-name 
reply-status))))
+                (gmm-labels
+                    ((update-org-entry (position property value)
+                                       (if (or (null value)
+                                               (string= value ""))
+                                           (org-entry-delete position property)
+                                         (org-entry-put position property 
value))))
+
+                  (update-org-entry event-pos "ORGANIZER" organizer)
+                  (update-org-entry event-pos "LOCATION" location)
+                  (update-org-entry event-pos "PARTICIPATION_TYPE" 
(symbol-name participation-type))
+                  (update-org-entry event-pos "REQ_PARTICIPANTS" 
(gnus-icalendar--format-participant-list req-participants))
+                  (update-org-entry event-pos "OPT_PARTICIPANTS" 
(gnus-icalendar--format-participant-list opt-participants))
+                  (update-org-entry event-pos "RRULE" recur)
+                  (update-org-entry event-pos "REPLY"
+                                    (if reply-status (capitalize (symbol-name 
reply-status))
+                                      "Not replied yet")))
                 (save-buffer)))))))))
 
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]