From 7d2e41ac0100b8c230bff644f8df2d443909bc1b Mon Sep 17 00:00:00 2001 From: Daniel Borchmann Date: Mon, 19 Feb 2018 12:19:05 +0100 Subject: [PATCH] [Timeline] Entries now always have lists of markers This removes a special case and thus makes handling easier. --- site-lisp/timeline-tools.el | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/site-lisp/timeline-tools.el b/site-lisp/timeline-tools.el index ec1e42d..9d78428 100644 --- a/site-lisp/timeline-tools.el +++ b/site-lisp/timeline-tools.el @@ -46,17 +46,16 @@ Filter are applied in the order they are given in this list." (defalias 'timeline-tools-entry-marker 'caddr "Marker to org task of ENTRY.") -(defun timeline-tools-make-entry (start-time end-time marker) - "Return a timeline entry made up of START-TIME, END-TIME, and MARKER." - (list start-time end-time marker)) +(defun timeline-tools-make-entry (start-time end-time markers) + "Return a timeline entry made up of START-TIME, END-TIME, and MARKERS. +MARKER may be a list of markers, or a single marker." + (list start-time end-time (if (listp markers) markers (list markers)))) (defun timeline-tools-entry-category (entry) "Return ARCHIVE_CATEGORY or CATEGORY at position given by MARKER. Return whatever is found first. ENTRY can be a plain timeline entry or a cluster." - (let ((marker (timeline-tools-entry-marker entry))) - (when (listp marker) - (setq marker (car marker))) + (let ((marker (car (timeline-tools-entry-marker entry)))) (or (org-entry-get marker "ARCHIVE_CATEGORY") (org-entry-get marker "CATEGORY")))) @@ -238,9 +237,10 @@ archives." Markers to org mode tasks are combined into a list." (let ((new-timeline (-partition-by #'timeline-tools-entry-category timeline))) (mapcar (lambda (cluster) - (list (timeline-tools-entry-start-time (-first-item cluster)) - (timeline-tools-entry-end-time (-last-item cluster)) - (mapcar #'timeline-tools-entry-marker cluster))) + (timeline-tools-make-entry + (timeline-tools-entry-start-time (-first-item cluster)) + (timeline-tools-entry-end-time (-last-item cluster)) + (-mapcat #'timeline-tools-entry-marker cluster))) new-timeline))) (defun timeline-tools-skip-short-entries (timeline)