From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Andrew J. Korty" Subject: [PATCH] Update all ++ repeaters in an entry (loop variables weren't getting reset) Date: Thu, 21 Oct 2010 08:28:52 -0400 Message-ID: <14027.1287664132@iu.edu> Content-Type: text/plain; charset=utf-8; format=flowed Return-path: Received: from [140.186.70.92] (port=54073 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1P8uGQ-0001yt-01 for emacs-orgmode@gnu.org; Thu, 21 Oct 2010 08:29:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1P8uGN-0002S8-SU for emacs-orgmode@gnu.org; Thu, 21 Oct 2010 08:28:57 -0400 Received: from locrian.itso.iu.edu ([149.166.143.64]:53179) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1P8uGN-0002Q5-NP for emacs-orgmode@gnu.org; Thu, 21 Oct 2010 08:28:55 -0400 Received: from iu.edu (149-166-143-228.dhcp-in.iupui.edu [149.166.143.228]) by locrian.itso.iu.edu (Postfix) with ESMTPA id 262221F0C72 for ; Thu, 21 Oct 2010 08:28:53 -0400 (EDT) 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 See http://www.mail-archive.com/emacs-orgmode@gnu.org/msg30284.html. This patch is against release_7.01h. ajk --- lisp/org.el | 20 ++++++++++---------- 1 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index d33bf4e..52e501e 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -11369,7 +11369,6 @@ This function is run automatically after each state change to a DONE state." (msg "Entry repeats: ") (org-log-done nil) (org-todo-log-states nil) - (nshiftmax 10) (nshift 0) re type n what ts time to-state) (when repeat (if (eq org-log-repeat t) (setq org-log-repeat 'state)) @@ -11416,15 +11415,16 @@ This function is run automatically after each state change to a DONE state." (- (time-to-days (current-time)) (time-to-days time)) 'day)) ((equal (match-string 1 ts) "+") - (while (or (= nshift 0) - (<= (time-to-days time) (time-to-days (current-time)))) - (when (= (incf nshift) nshiftmax) - (or (y-or-n-p (message "%d repeater intervals were not enough to shift date past today. Continue? " nshift)) - (error "Abort"))) - (org-timestamp-change n (cdr (assoc what whata))) - (org-at-timestamp-p t) - (setq ts (match-string 1)) - (setq time (save-match-data (org-time-string-to-time ts)))) + (let ((nshiftmax 10) (nshift 0)) + (while (or (= nshift 0) + (<= (time-to-days time) (time-to-days (current-time)))) + (when (= (incf nshift) nshiftmax) + (or (y-or-n-p (message "%d repeater intervals were not enough to shift date past today. Continue? " nshift)) + (error "Abort"))) + (org-timestamp-change n (cdr (assoc what whata))) + (org-at-timestamp-p t) + (setq ts (match-string 1)) + (setq time (save-match-data (org-time-string-to-time ts))))) (org-timestamp-change (- n) (cdr (assoc what whata))) ;; rematch, so that we have everything in place for the real shift (org-at-timestamp-p t) -- 1.7.3.1