From mboxrd@z Thu Jan 1 00:00:00 1970 From: Toby Cubitt Subject: Re: [PATCH] Separate clocksum format for durations >= 1 day Date: Tue, 20 Nov 2012 18:28:19 +0100 Message-ID: <20121120172819.GA1640@c3po> References: Reply-To: Toby Cubitt Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="FL5UXtIhxfXey3p5" Return-path: Received: from eggs.gnu.org ([208.118.235.92]:58023) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TarcJ-0008Vt-Pc for emacs-orgmode@gnu.org; Tue, 20 Nov 2012 12:28:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TarcD-0007fA-Ht for emacs-orgmode@gnu.org; Tue, 20 Nov 2012 12:28:11 -0500 Received: from starfish.geekisp.com ([216.168.135.166]:40063) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1TarcD-0007eu-E7 for emacs-orgmode@gnu.org; Tue, 20 Nov 2012 12:28:05 -0500 Content-Disposition: inline In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Mike McLean Cc: emacs-orgmode@gnu.org --FL5UXtIhxfXey3p5 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Tue, Nov 20, 2012 at 11:12:10AM -0500, Mike McLean wrote: > On Sat, Nov 17, 2012 at 11:02 AM, Toby Cubitt wrote: > > > On Sat, Nov 17, 2012 at 03:42:24PM +0100, Nicolas Goaziou wrote: > > > Toby Cubitt 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: tsc25@cantab.net web: www.dr-qubit.org --FL5UXtIhxfXey3p5 Content-Type: text/x-patch; charset=us-ascii Content-Disposition: attachment; filename="0001-Fix-org-minutes-to-clocksum-string-to-cope-with-floa.patch" >From 24c646916a1195b3291067ef6e54d9e99a1201da Mon Sep 17 00:00:00 2001 From: "Toby S. Cubitt" 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 --FL5UXtIhxfXey3p5--