diff options
author | Glenn Morris <rgm@gnu.org> | 2006-12-17 06:23:52 +0000 |
---|---|---|
committer | Glenn Morris <rgm@gnu.org> | 2006-12-17 06:23:52 +0000 |
commit | 37b7b216f3070e881a4f82d6d0a34237ae258b08 (patch) | |
tree | d33803850390b96ec02e5b0a408f2ac87b5287a4 | |
parent | dd7bf8ce5734c00bf6d19289a2f4756476eb87b2 (diff) | |
download | emacs-37b7b216f3070e881a4f82d6d0a34237ae258b08.tar.gz |
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.
-rw-r--r-- | lisp/calendar/icalendar.el | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el index 570fb626747..6fecc86bf34 100644 --- a/lisp/calendar/icalendar.el +++ b/lisp/calendar/icalendar.el @@ -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 @@ buffer." "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 @@ buffer `*icalendar-errors*'." (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 @@ written into the buffer `*icalendar-errors*'." (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*")) |