changeset 74673:9963f42a0a19

From Ulf Jasper <ulf.jasper at web.de>: (icalendar-version): Increase to "0.14". (icalendar--rris): First try Emacs, then XEmacs. (icalendar--convert-ical-to-diary): Doc fix. Insert newline at end of target file.
author Glenn Morris <rgm@gnu.org>
date Sun, 17 Dec 2006 06:23:52 +0000
parents 727ccf171510
children 05d94ce30010
files lisp/calendar/icalendar.el
diffstat 1 files changed, 18 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/calendar/icalendar.el	Sun Dec 17 06:14:02 2006 +0000
+++ b/lisp/calendar/icalendar.el	Sun Dec 17 06:23:52 2006 +0000
@@ -73,6 +73,10 @@
 
 ;;  * Import from ical to diary:
 ;;    + Need more properties for icalendar-import-format
+;;      (added all that Mozilla Calendar uses)
+;;      From iCal specifications (RFC2445: 4.8.1), icalendar.el lacks
+;;      ATTACH, CATEGORIES, COMMENT, GEO, PERCENT-COMPLETE (VTODO),
+;;      PRIORITY, RESOURCES) not considering date/time and time-zone
 ;;    + check vcalendar version
 ;;    + check (unknown) elements
 ;;    + recurring events!
@@ -97,7 +101,7 @@
 
 ;;; Code:
 
-(defconst icalendar-version "0.13"
+(defconst icalendar-version "0.14"
   "Version number of icalendar.el.")
 
 ;; ======================================================================
@@ -226,12 +230,12 @@
   "Replace regular expression in string.
 Pass ARGS to `replace-regexp-in-string' (Emacs) or to
 `replace-in-string' (XEmacs)."
+  (if (fboundp 'replace-regexp-in-string)
+      ;; Emacs:
+      (apply 'replace-regexp-in-string args)
   ;; XEmacs:
-  (if (fboundp 'replace-in-string)
-      (save-match-data ;; apparently XEmacs needs save-match-data
-        (apply 'replace-in-string args))
-    ;; Emacs:
-    (apply 'replace-regexp-in-string args)))
+    (save-match-data ;; apparently XEmacs needs save-match-data
+      (apply 'replace-in-string args))))
 
 (defun icalendar--read-element (invalue inparams)
   "Recursively read the next iCalendar element in the current buffer.
@@ -1549,7 +1553,7 @@
 (defun icalendar--convert-ical-to-diary (ical-list diary-file
                                                    &optional do-not-ask
                                                    non-marking)
-  "Convert Calendar data to an Emacs diary file.
+  "Convert iCalendar data to an Emacs diary file.
 Import VEVENTS from the iCalendar object ICAL-LIST and saves them to a
 DIARY-FILE.  If DO-NOT-ASK is nil the user is asked for each event
 whether to actually import it.  NON-MARKING determines whether diary
@@ -1680,6 +1684,13 @@
          (setq error-string (format "%s\n%s\nCannot handle this event: %s"
                                     error-val error-string e))
          (message "%s" error-string))))
+    ;; insert final newline
+    (let ((b (find-buffer-visiting diary-file)))
+      (when b
+        (save-current-buffer
+          (set-buffer b)
+          (goto-char (point-max))
+          (insert "\n"))))
     (if found-error
         (save-current-buffer
           (set-buffer (get-buffer-create "*icalendar-errors*"))