From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: [Accepted] org-agenda: simplify start/stop/duration time computing Date: Wed, 26 Jan 2011 11:16:35 +0100 (CET) Message-ID: <20110126101635.ACB0595412A@u016822.science.uva.nl> References: <1293036946-14552-1-git-send-email-julien@danjou.info> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from [140.186.70.92] (port=59424 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pi2QZ-0000wK-Dn for emacs-orgmode@gnu.org; Wed, 26 Jan 2011 05:16:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Pi2QW-0006cn-RZ for emacs-orgmode@gnu.org; Wed, 26 Jan 2011 05:16:38 -0500 Received: from u016822.science.uva.nl ([146.50.39.34]:49501) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Pi2QW-0006cd-Is for emacs-orgmode@gnu.org; Wed, 26 Jan 2011 05:16:36 -0500 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Patch 506 (http://patchwork.newartisans.com/patch/506/) is now "Accepted". Maintainer comment: none This relates to the following submission: http://mid.gmane.org/%3C1293036946-14552-1-git-send-email-julien%40danjou.info%3E Here is the original message containing the patch: > Content-Type: text/plain; charset="utf-8" > MIME-Version: 1.0 > Content-Transfer-Encoding: 7bit > Subject: [Orgmode] org-agenda: simplify start/stop/duration time computing > Date: Wed, 22 Dec 2010 21:55:46 -0000 > From: Julien Danjou > X-Patchwork-Id: 506 > Message-Id: <1293036946-14552-1-git-send-email-julien@danjou.info> > To: emacs-orgmode@gnu.org > Cc: Julien Danjou > > * org-agenda.el (org-format-agenda-item): Simplify time comuting. > > Signed-off-by: Julien Danjou > > --- > lisp/org-agenda.el | 31 +++++++++++-------------------- > 1 files changed, 11 insertions(+), 20 deletions(-) > > diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el > index 1cdaaa0..8f597f5 100644 > --- a/lisp/org-agenda.el > +++ b/lisp/org-agenda.el > @@ -5165,7 +5165,7 @@ Any match of REMOVE-RE will be removed from TXT." > (if (stringp dotime) dotime "") > (and org-agenda-search-headline-for-time txt)))) > (time-of-day (and dotime (org-get-time-of-day ts))) > - stamp plain s0 s1 s2 t1 t2 rtn srp l > + stamp plain s0 s1 s2 rtn srp l > duration thecategory) > (and (org-mode-p) buffer-file-name > (add-to-list 'org-agenda-contributing-files buffer-file-name)) > @@ -5192,26 +5192,17 @@ Any match of REMOVE-RE will be removed from TXT." > ;; Normalize the time(s) to 24 hour > (if s1 (setq s1 (org-get-time-of-day s1 'string t))) > (if s2 (setq s2 (org-get-time-of-day s2 'string t))) > + > + ;; Try to set s2 if s1 and `org-agenda-default-appointment-duration' are set > + (when (and s1 (not s2) org-agenda-default-appointment-duration) > + (setq s2 > + (org-minutes-to-hh:mm-string > + (+ (org-hh:mm-string-to-minutes s1) org-agenda-default-appointment-duration)))) > + > ;; Compute the duration > - (when s1 > - (setq t1 (+ (* 60 (string-to-number (substring s1 0 2))) > - (string-to-number (substring s1 3))) > - t2 (cond > - (s2 (+ (* 60 (string-to-number (substring s2 0 2))) > - (string-to-number (substring s2 3)))) > - (org-agenda-default-appointment-duration > - (+ t1 org-agenda-default-appointment-duration)) > - (t nil))) > - (setq duration (if t2 (- t2 t1))))) > - > - (when (and s1 (not s2) org-agenda-default-appointment-duration > - (string-match "\\([0-9]+\\):\\([0-9]+\\)" s1)) > - (let ((m (+ (string-to-number (match-string 2 s1)) > - (* 60 (string-to-number (match-string 1 s1))) > - org-agenda-default-appointment-duration)) > - h) > - (setq h (/ m 60) m (- m (* h 60))) > - (setq s2 (format "%02d:%02d" h m)))) > + (when s2 > + (setq duration (- (org-hh:mm-string-to-minutes s2) > + (org-hh:mm-string-to-minutes s1))))) > > (when (string-match (org-re "\\([ \t]+\\)\\(:[[:alnum:]_@#%:]+:\\)[ \t]*$") > txt) >