diff options
author | Ulf Jasper <ulf.jasper@web.de> | 2008-10-31 18:28:16 +0000 |
---|---|---|
committer | Ulf Jasper <ulf.jasper@web.de> | 2008-10-31 18:28:16 +0000 |
commit | ca2d101f5e3d42ed40b690ba86f46fb32e80a820 (patch) | |
tree | ebddb878420e5e8b1c242b8216bc36c97b61ef97 /lisp | |
parent | 38df7d213a021c1c0780b35ee81ac9ab125730dc (diff) | |
download | emacs-ca2d101f5e3d42ed40b690ba86f46fb32e80a820.tar.gz |
icalendar: uid-creation improved
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 7 | ||||
-rw-r--r-- | lisp/calendar/icalendar.el | 21 |
2 files changed, 24 insertions, 4 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 726872e880a..d7d6729bf49 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2008-10-31 Ulf Jasper <ulf.jasper@web.de> + + * calendar/icalendar.el (icalendar--uid-count): New. + (icalendar--create-uid): New. Extracted from + `icalendar-export-region' and add uid counter. + (icalendar-export-region): Use `icalendar--create-uid'. + 2008-10-31 Juanma Barranquero <lekktu@gmail.com> * tooltip.el (tooltip-frame-parameters): Doc fix. diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el index 10ddb05820d..c74d60763f8 100644 --- a/lisp/calendar/icalendar.el +++ b/lisp/calendar/icalendar.el @@ -877,6 +877,21 @@ Finto iCalendar file: ") (defalias 'icalendar-convert-diary-to-ical 'icalendar-export-file) (make-obsolete 'icalendar-convert-diary-to-ical 'icalendar-export-file) +(defvar icalendar--uid-count 0 + "Auxiliary counter for creating unique ids.") + +(defun icalendar--create-uid () + "Create a unique identifier. +Use `current-time' and a counter to create unique ids. The +counter is necessary for systems which do not provide resolution +finer than a second." + (setq icalendar--uid-count (1+ icalendar--uid-count)) + (format "emacs%d%d%d%d" + (car (current-time)) + (cadr (current-time)) + (car (cddr (current-time))) + icalendar--uid-count)) + ;;;###autoload (defun icalendar-export-region (min max ical-filename) "Export region in diary file to iCalendar format. @@ -916,10 +931,8 @@ FExport diary data into iCalendar file: ") (if (match-beginning 2) (setq entry-rest (match-string 2)) (setq entry-rest "")) - (setq header (format "\nBEGIN:VEVENT\nUID:emacs%d%d%d" - (car (current-time)) - (cadr (current-time)) - (car (cddr (current-time))))) + (setq header (format "\nBEGIN:VEVENT\nUID:%s" + (icalendar--create-uid))) (condition-case error-val (progn (setq contents-n-summary |