From 1192dc2cb83d71f29699cacc4a76b63cdc2d5e7c Mon Sep 17 00:00:00 2001 From: Daniel Borchmann Date: Sat, 2 Dec 2017 21:11:41 +0100 Subject: [PATCH] [Org] Move functional style for reporting function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Doesn’t mean it’s more comprehensible now, though … --- site-lisp/db-org.el | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/site-lisp/db-org.el b/site-lisp/db-org.el index 128b9d0..51080e8 100644 --- a/site-lisp/db-org.el +++ b/site-lisp/db-org.el @@ -1037,21 +1037,21 @@ TEND. Each element in this list is of the form where START, END, MARKER are as return from `db/org-clocking-time-in-range’, which see. Entries in the resulting list are sorted by START, ascending." - (or files (setq files org-agenda-files)) - (let ((task-clock-times (cl-loop for file in files - when (file-exists-p file) - append (with-current-buffer (or (get-file-buffer file) - (find-file-noselect file)) - (db/org-clocking-time-in-range tstart tend)))) - timeline) - (dolist (headline task-clock-times) - (dolist (clock-time (cdr headline)) - (push (list (car clock-time) (cdr clock-time) (car headline)) - timeline))) - (setq timeline + (->> (or files org-agenda-files) + (cl-remove-if-not #'file-exists-p) + (cl-mapcan #'(lambda (file) + (with-current-buffer (or (get-file-buffer file) + (find-file-noselect file)) + (db/org-clocking-time-in-range tstart tend)))) + (cl-mapcan #'(lambda (task) + (mapcar #'(lambda (clock-time) + (list (car clock-time) + (cdr clock-time) + (car task))) + (cdr task)))) + ((lambda (timeline) ; narf (cl-sort timeline (lambda (entry-1 entry-2) - (< (car entry-1) (car entry-2))))) - timeline)) + (< (car entry-1) (car entry-2)))))))) (defun db/org-format-timeline (tstart tend &optional files) "Display timeline of tasks in FILES between TSTART and TEND.