|
@@ -413,9 +413,12 @@ The input I may be a character, or a single-letter string."
|
|
|
r))
|
|
|
|
|
|
(defun org-id-time-to-b36 (&optional time)
|
|
|
- "Encode TIME as a 10-digit string.
|
|
|
+ "Encode TIME as a 12-digit string.
|
|
|
This string holds the time to micro-second accuracy, and can be decoded
|
|
|
using `org-id-decode'."
|
|
|
+ ;; FIXME: If TIME represents N seconds after the epoch, then
|
|
|
+ ;; this encoding assumes 0 <= N < 110075314176 = (* (expt 36 4) 65536),
|
|
|
+ ;; i.e., that TIME is from 1970-01-01 00:00:00 to 5458-02-23 20:09:36 UTC.
|
|
|
(setq time (or time (org-current-time-as-list)))
|
|
|
(concat (org-id-int-to-b36 (nth 0 time) 4)
|
|
|
(org-id-int-to-b36 (nth 1 time) 4)
|
|
@@ -424,7 +427,7 @@ using `org-id-decode'."
|
|
|
(defun org-id-decode (id)
|
|
|
"Split ID into the prefix and the time value that was used to create it.
|
|
|
The return value is (prefix . time) where PREFIX is nil or a string,
|
|
|
-and time is the usual three-integer representation of time."
|
|
|
+and TIME is a Lisp time value (HI LO USEC)."
|
|
|
(let (prefix time parts)
|
|
|
(setq parts (org-split-string id ":"))
|
|
|
(if (= 2 (length parts))
|