From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manish Subject: Re: [PATCH] Apply patch for hour/minute repeater support Date: Wed, 22 Sep 2010 10:17:12 +0530 Message-ID: References: <24904.1284483999@iu.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Return-path: Received: from [140.186.70.92] (port=60454 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OyHSz-0007AQ-7V for emacs-orgmode@gnu.org; Wed, 22 Sep 2010 01:02:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OyHF0-0003Gb-Q5 for emacs-orgmode@gnu.org; Wed, 22 Sep 2010 00:47:36 -0400 Received: from mail-bw0-f41.google.com ([209.85.214.41]:53558) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OyHF0-0003GR-Eq for emacs-orgmode@gnu.org; Wed, 22 Sep 2010 00:47:34 -0400 Received: by bwz10 with SMTP id 10so258840bwz.0 for ; Tue, 21 Sep 2010 21:47:32 -0700 (PDT) In-Reply-To: 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: Carsten Dominik Cc: "Andrew J. Korty" , emacs-orgmode@gnu.org Hello Andrew, I copied the diff from "---" to the version number at the end of the diff to a file and ran a "git apply " while on a local branch. It fails with "fatal: corrupt patch at line 12" which is: ,---- | @cindex timestamp, with repeater interval `---- Any clues what I could be doing wrong? Thanks -- Manish On Tue, Sep 21, 2010 at 6:16 PM, Carsten Dominik wrote: > Hi everyone, > > do we have any volunteers who are willing to test this patch? > > Thanks. > > - Carsten > > On Sep 14, 2010, at 7:06 PM, Andrew J. Korty wrote: > >> This patch adds hour and minute granularity to repeaters. Let me know if >> there's interest in incorporating it, and I'll start the FSF paperwork >> process. >> >> Andrew Korty >> >> --- >> doc/org.texi | 4 ++-- >> lisp/org-agenda.el | 2 +- >> lisp/org.el | 27 +++++++++++++++------------ >> 3 files changed, 18 insertions(+), 15 deletions(-) >> >> diff --git a/doc/org.texi b/doc/org.texi >> index d6ea141..e9ede5a 100644 >> --- a/doc/org.texi >> +++ b/doc/org.texi >> @@ -5006,8 +5006,8 @@ plain timestamp will be shown exactly on that date. >> @cindex timestamp, with repeater interval >> A timestamp may contain a @emph{repeater interval}, indicating that it >> applies not only on the given date, but again and again after a certain >> -interval of N days (d), weeks (w), months (m), or years (y). The >> -following will show up in the agenda every Wednesday: >> +interval of N minutes(M), hours(H), days (d), weeks (w), months (m), or >> +years (y). The following will show up in the agenda every Wednesday: >> @example >> * Pick up Sam at school <2007-05-16 Wed 12:30 +1w> >> diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el >> index 9f94fa6..176c8f0 100644 >> --- a/lisp/org-agenda.el >> +++ b/lisp/org-agenda.el >> @@ -4385,7 +4385,7 @@ the documentation of `org-diary'." >> (apply 'encode-time ; DATE bound by calendar >> (list 0 0 0 (nth 1 date) (car date) (nth 2 date)))) >> 1 11)) >> - "\\|\\(<[0-9]+-[0-9]+-[0-9]+[^>\n]+?\\+[0-9]+[dwmy]>\\)" >> + "\\|\\(<[0-9]+-[0-9]+-[0-9]+[^>\n]+?\\+[0-9]+[MHdwmy]>\\)" >> "\\|\\(<%%\\(([^>\n]+)\\)>\\)")) >> marker hdmarker deadlinep scheduledp clockp closedp inactivep >> donep tmp priority category ee txt timestr tags b0 b3 e3 head >> diff --git a/lisp/org.el b/lisp/org.el >> index 70dd482..ace8291 100644 >> --- a/lisp/org.el >> +++ b/lisp/org.el >> @@ -621,7 +621,7 @@ An entry can be toggled between QUOTE and normal with >> :type 'string) >> (defconst org-repeat-re >> - "<[0-9]\\{4\\}-[0-9][0-9]-[0-9][0-9] >> [^>\n]*?\\([.+]?\\+[0-9]+[dwmy]\\(/[0-9]+[dwmy]\\)?\\)" >> + "<[0-9]\\{4\\}-[0-9][0-9]-[0-9][0-9] >> [^>\n]*?\\([.+]?\\+[0-9]+[MHdwmy]\\(/[0-9]+[dwmy]\\)?\\)" >> "Regular expression for specifying repeated events. >> After a match, group 1 contains the repeat expression.") >> @@ -11392,7 +11392,8 @@ This function is run automatically after each >> state change to a DONE state." >> (aa (assoc last-state org-todo-kwd-alist)) >> (interpret (nth 1 aa)) >> (head (nth 2 aa)) >> - (whata '(("d" . day) ("m" . month) ("y" . year))) >> + (whata '(("M" . minute) ("H" . hour) ("d" . day) ("m" . month) >> + ("y" . year))) >> (msg "Entry repeats: ") >> (org-log-done nil) >> (org-todo-log-states nil) >> @@ -11429,7 +11430,7 @@ This function is run automatically after each >> state change to a DONE state." >> (setq type (if (match-end 1) org-scheduled-string >> (if (match-end 3) org-deadline-string "Plain:")) >> ts (match-string (if (match-end 2) 2 (if (match-end 4) 4 >> 0)))) >> - (when (string-match "\\([.+]\\)?\\(\\+[0-9]+\\)\\([dwmy]\\)" ts) >> + (when (string-match "\\([.+]\\)?\\(\\+[0-9]+\\)\\([MHdwmy]\\)" ts) >> (setq n (string-to-number (match-string 2 ts)) >> what (match-string 3 ts)) >> (if (equal what "w") (setq n (* n 7) what "d")) >> @@ -11438,13 +11439,15 @@ This function is run automatically after each >> state change to a DONE state." >> (setq time (save-match-data (org-time-string-to-time ts))) >> (cond >> ((equal (match-string 1 ts) ".") >> - ;; Shift starting date to today >> + ;; Shift starting date to now >> (org-timestamp-change >> - (- (time-to-days (current-time)) (time-to-days time)) >> - 'day)) >> + (truncate (/ (- (time-to-seconds (current-time)) >> + (time-to-seconds time)) 60)) >> + 'minute)) >> ((equal (match-string 1 ts) "+") >> (while (or (= nshift 0) >> - (<= (time-to-days time) (time-to-days >> (current-time)))) >> + (<= (time-to-seconds time) >> + (time-to-seconds (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"))) >> @@ -11456,7 +11459,7 @@ This function is run automatically after each >> state change to a DONE state." >> ;; rematch, so that we have everything in place for the real >> shift >> (org-at-timestamp-p t) >> (setq ts (match-string 1)) >> - (string-match "\\([.+]\\)?\\(\\+[0-9]+\\)\\([dwmy]\\)" >> ts)))) >> + (string-match "\\([.+]\\)?\\(\\+[0-9]+\\)\\([MHdwmy]\\)" >> ts)))) >> (org-timestamp-change n (cdr (assoc what whata))) >> (setq msg (concat msg type " " org-last-changed-timestamp " ")))) >> (setq org-log-post-message msg) >> @@ -14687,7 +14690,7 @@ The command returns the inserted time stamp." >> t1 w1 with-hm tf time str w2 (off 0)) >> (save-match-data >> (setq t1 (org-parse-time-string ts t)) >> - (if (string-match "\\(-[0-9]+:[0-9]+\\)?\\( >> [.+]?\\+[0-9]+[dwmy]\\(/[0-9]+[dwmy]\\)?\\)?\\'" ts) >> + (if (string-match "\\(-[0-9]+:[0-9]+\\)?\\( >> [.+]?\\+[0-9]+[MHdwmy]\\(/[0-9]+[dwmy]\\)?\\)?\\'" ts) >> (setq off (- (match-end 0) (match-beginning 0))))) >> (setq end (- end off)) >> (setq w1 (- end beg) >> @@ -15177,8 +15180,8 @@ With prefix ARG, change that many days." >> (defun org-timestamp-change (n &optional what updown) >> "Change the date in the time stamp at point. >> The date will be changed by N times WHAT. WHAT can be `day', `month', >> -`year', `minute', `second'. If WHAT is not given, the cursor position >> -in the timestamp determines what will be changed." >> +`year', `hour', `minute', `second'. If WHAT is not given, the cursor >> +position in the timestamp determines what will be changed." >> (let ((pos (point)) >> with-hm inactive >> (dm (max (nth 1 org-time-stamp-rounding-minutes) 1)) >> @@ -15199,7 +15202,7 @@ in the timestamp determines what will be changed." >> ts (match-string 0)) >> (replace-match "") >> (if (string-match >> - "\\(\\(-[012][0-9]:[0-5][0-9]\\)?\\( >> +[.+]?[-+][0-9]+[dwmy]\\(/[0-9]+[dwmy]\\)?\\)*\\)[]>]" >> + "\\(\\(-[012][0-9]:[0-5][0-9]\\)?\\( >> +[.+]?[-+][0-9]+[HMdwmy]\\(/[0-9]+[dwmy]\\)?\\)*\\)[]>]" >> ts) >> (setq extra (match-string 1 ts))) >> (if (string-match "^.\\{10\\}.*?[0-9]+:[0-9][0-9]" ts) >> -- >> 1.7.2.3 >> >> >> _______________________________________________ >> Emacs-orgmode mailing list >> Please use `Reply All' to send replies to the list. >> Emacs-orgmode@gnu.org >> http://lists.gnu.org/mailman/listinfo/emacs-orgmode > > - Carsten > > > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode >