summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2006-12-17 06:23:52 +0000
committerGlenn Morris <rgm@gnu.org>2006-12-17 06:23:52 +0000
commit37b7b216f3070e881a4f82d6d0a34237ae258b08 (patch)
treed33803850390b96ec02e5b0a408f2ac87b5287a4
parentdd7bf8ce5734c00bf6d19289a2f4756476eb87b2 (diff)
downloademacs-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.el25
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*"))