On Tue, Nov 20, 2012 at 11:12:10AM -0500, Mike McLean wrote: > On Sat, Nov 17, 2012 at 11:02 AM, Toby Cubitt <ts...@cantab.net> wrote: > > > On Sat, Nov 17, 2012 at 03:42:24PM +0100, Nicolas Goaziou wrote: > > > Toby Cubitt <ts...@cantab.net> writes: > > > > > > > I've replaced the cons cells with additional plist properties, as you > > > > suggested. The resulting customization ui still isn't wonderful in my > > > > opinion. But it does the job, and I'm not sure how much scope there is > > > > for improving it further. If you see a way, by all means feel free to > > > > make the changes yourself. I really don't mind what format you go with > > > > for org-time-clocksum-format, as long as it supports the new formatting > > > > features implemented in the patch. > > > > > > Considering I'm not an expert in customize ui, it's good enough as it > > > is. > > > > OK. If someone thinks of a way to improve the customization ui (keeping > > the same data type), it's easy to change it later without breaking > > anything. > > > > > I've applied your patch (with some small changes in a docstring). Thank > > > you again for all that work. > > > > Glad we finally found a good implementation. Thanks to you for all your > > helpful feedback. > > > > > I like the new implementation and customization options, but now when I do > ~C-c C-x C-c~ to get a sub-tree time, I get nothing but zeros (~0d 0:00~) > for every subtree.
Argh. This is a bug in org-hours-to-clocksum-string, which doesn't truncate the computed number of minutes to an integer. Instead of changing org-hours-to-clocksum-string, it's probably preferable to make org-minutes-to-clocksum-string more robust, so it copes correctly with floating point arguments. The attached patch does this. Sorry for letting this slip through. Toby -- Dr T. S. Cubitt Mathematics and Quantum Information group Department of Mathematics Complutense University Madrid, Spain email: ts...@cantab.net web: www.dr-qubit.org
>From 24c646916a1195b3291067ef6e54d9e99a1201da Mon Sep 17 00:00:00 2001 From: "Toby S. Cubitt" <ts...@cantab.net> Date: Tue, 20 Nov 2012 18:15:21 +0100 Subject: [PATCH] Fix org-minutes-to-clocksum-string to cope with floating point arguments. --- lisp/org.el | 20 ++++++++++---------- 1 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index dc411b8..e3354c6 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -16773,19 +16773,19 @@ The format is determined by `org-time-clocksum-format', (format org-time-clocksum-fractional-format (/ m 60.0))) ;; choice of fractional formats for different time units ((and (setq fmt (plist-get org-time-clocksum-fractional-format :years)) - (> (/ m (* 365 24 60)) 0)) + (> (/ (truncate m) (* 365 24 60)) 0)) (format fmt (/ m (* 365 24 60.0)))) ((and (setq fmt (plist-get org-time-clocksum-fractional-format :months)) - (> (/ m (* 30 24 60)) 0)) + (> (/ (truncate m) (* 30 24 60)) 0)) (format fmt (/ m (* 30 24 60.0)))) ((and (setq fmt (plist-get org-time-clocksum-fractional-format :weeks)) - (> (/ m (* 7 24 60)) 0)) + (> (/ (truncate m) (* 7 24 60)) 0)) (format fmt (/ m (* 7 24 60.0)))) ((and (setq fmt (plist-get org-time-clocksum-fractional-format :days)) - (> (/ m (* 24 60)) 0)) + (> (/ (truncate m) (* 24 60)) 0)) (format fmt (/ m (* 24 60.0)))) ((and (setq fmt (plist-get org-time-clocksum-fractional-format :hours)) - (> (/ m 60) 0)) + (> (/ (truncate m) 60) 0)) (format fmt (/ m 60.0))) ((setq fmt (plist-get org-time-clocksum-fractional-format :minutes)) (format fmt m)) @@ -16805,27 +16805,27 @@ The format is determined by `org-time-clocksum-format', (format org-time-clocksum-format (setq n (/ m 60)) (- m (* 60 n))) ;; separate formats components (and (setq fmt (plist-get org-time-clocksum-format :years)) - (or (> (setq n (/ m (* 365 24 60))) 0) + (or (> (setq n (/ (truncate m) (* 365 24 60))) 0) (plist-get org-time-clocksum-format :require-years)) (setq clocksum (concat clocksum (format fmt n)) m (- m (* n 365 24 60)))) (and (setq fmt (plist-get org-time-clocksum-format :months)) - (or (> (setq n (/ m (* 30 24 60))) 0) + (or (> (setq n (/ (truncate m) (* 30 24 60))) 0) (plist-get org-time-clocksum-format :require-months)) (setq clocksum (concat clocksum (format fmt n)) m (- m (* n 30 24 60)))) (and (setq fmt (plist-get org-time-clocksum-format :weeks)) - (or (> (setq n (/ m (* 7 24 60))) 0) + (or (> (setq n (/ (truncate m) (* 7 24 60))) 0) (plist-get org-time-clocksum-format :require-weeks)) (setq clocksum (concat clocksum (format fmt n)) m (- m (* n 7 24 60)))) (and (setq fmt (plist-get org-time-clocksum-format :days)) - (or (> (setq n (/ m (* 24 60))) 0) + (or (> (setq n (/ (truncate m) (* 24 60))) 0) (plist-get org-time-clocksum-format :require-days)) (setq clocksum (concat clocksum (format fmt n)) m (- m (* n 24 60)))) (and (setq fmt (plist-get org-time-clocksum-format :hours)) - (or (> (setq n (/ m 60)) 0) + (or (> (setq n (/ (truncate m) 60)) 0) (plist-get org-time-clocksum-format :require-hours)) (setq clocksum (concat clocksum (format fmt n)) m (- m (* n 60)))) -- 1.7.8.6