From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Kelling Subject: [PATCH] Fix incorrect time calculation for org-extend-today-until Date: Sun, 15 Sep 2013 09:37:27 -0700 Message-ID: <5235E247.3020809@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------090701000709050905030308" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:42549) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VLFKM-0006KT-Mp for emacs-orgmode@gnu.org; Sun, 15 Sep 2013 12:37:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VLFKE-0006zo-4a for emacs-orgmode@gnu.org; Sun, 15 Sep 2013 12:37:38 -0400 Received: from mail-pb0-x22e.google.com ([2607:f8b0:400e:c01::22e]:63524) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VLFKD-0006zk-SI for emacs-orgmode@gnu.org; Sun, 15 Sep 2013 12:37:30 -0400 Received: by mail-pb0-f46.google.com with SMTP id rq2so3135096pbb.19 for ; Sun, 15 Sep 2013 09:37:28 -0700 (PDT) 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: emacs-orgmode@gnu.org This is a multi-part message in MIME format. --------------090701000709050905030308 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit During the extra hours of org-extend-today-until, when org-clock-mode-line-total is 'today, the clocked time shown in the modeline is wrong. It ignores all previously clocked time, when it should add them starting from the past day beyond org-extend-today-until hours. This also affects clock tables. The problem can be reproduced in emacs with the following code, as long as the current time is not between 11 PM and 12 AM: (progn (require 'org-clock) (setq org-clock-mode-line-total 'today) (setq org-extend-today-until 23) (format-time-string "%a %D %l:%M %p" (org-clock-get-sum-start))) expected result: A date of yesterday, time of 11:00 PM Actual result: A date of today, time of 11:00 PM Note this patch only fixes a bug where org-extend-today-until is already used. - Ian Kelling --------------090701000709050905030308 Content-Type: text/x-patch; name="0001-Fix-incorrect-time-calculation-for-org-extend-today-.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-Fix-incorrect-time-calculation-for-org-extend-today-.pa"; filename*1="tch" >From 619572e221cafc17f0a1c33654eb22d7ca5f4d89 Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Sun, 15 Sep 2013 08:03:24 -0700 Subject: [PATCH] Fix incorrect time calculation for org-extend-today-until * lisp/org-clock.el Fix bad date math. Affects mode line and clock tables. TINYCHANGE --- lisp/org-clock.el | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lisp/org-clock.el b/lisp/org-clock.el index 9f22562..3195dc1 100644 --- a/lisp/org-clock.el +++ b/lisp/org-clock.el @@ -1368,10 +1368,12 @@ decides which time to use." (current-time)) ((equal cmt "today") (setq msg-extra "showing today's task time.") - (let* ((dt (decode-time (current-time)))) - (setq dt (append (list 0 0 0) (nthcdr 3 dt))) - (if org-extend-today-until - (setf (nth 2 dt) org-extend-today-until)) + (let* ((dt (decode-time (current-time))) + (hour (nth 2 dt)) + (day (nth 3 dt))) + (if (< hour org-extend-today-until) (setf (nth 3 dt) (1- day))) + (setf (nth 2 dt) org-extend-today-until) + (setq dt (append (list 0 0) (nthcdr 2 dt))) (apply 'encode-time dt))) ((or (equal cmt "all") (and (or (not cmt) (equal cmt "auto")) -- 1.8.3.1 --------------090701000709050905030308--