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: Wed, 16 Oct 2013 11:58:51 -0700 Message-ID: <525EE1EB.3060805@gmail.com> References: <5235E247.3020809@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------040304050003010009070707" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50214) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VWWJS-0000Y6-9e for emacs-orgmode@gnu.org; Wed, 16 Oct 2013 14:59:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VWWJH-0004Mw-JN for emacs-orgmode@gnu.org; Wed, 16 Oct 2013 14:59:18 -0400 Received: from mail-pd0-x229.google.com ([2607:f8b0:400e:c02::229]:46053) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VWWJH-0004Mo-Af for emacs-orgmode@gnu.org; Wed, 16 Oct 2013 14:59:07 -0400 Received: by mail-pd0-f169.google.com with SMTP id q10so597153pdj.0 for ; Wed, 16 Oct 2013 11:59:06 -0700 (PDT) In-Reply-To: <5235E247.3020809@gmail.com> 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. --------------040304050003010009070707 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit I sent this patch a month ago, but it got no reply. Perhaps that I accidentally had html email format didn't help. 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 -q 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 --------------040304050003010009070707 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 0c23ccb9b00fd42f830f5a7472e2980b93c6040f 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 (org-clock-get-sum-start): Fix bad date math, affecting 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 --------------040304050003010009070707--