[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org 23f751910e 3/5: org.el: Respect org-extend-today-un
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org 23f751910e 3/5: org.el: Respect org-extend-today-until in timestamps with ++ |
Date: |
Mon, 16 Oct 2023 06:58:43 -0400 (EDT) |
branch: externals/org
commit 23f751910eb477eaf876837f54800429b2b51781
Author: Valentin Herrmann <me@valentin-herrmann.de>
Commit: Ihor Radchenko <yantar92@posteo.net>
org.el: Respect org-extend-today-until in timestamps with ++
* org.el (org-auto-repeat-maybe): Changed org-auto-repeat-maybe, so that
switching a repeating todo with a timestamp of the form <… ++…> respects
`org-extend-today-until'.
* test-org.el (test-org/auto-repeat-maybe, org-test-with-time-locale):
Tests for interaction of `org-extend-today-until' and
`org-auto-repeat-maybe'. Added `org-test-with-time-locale' to make test
results independent of running machine. Explicitly avoid matching log
note with old timestamp in all the tests to avoid confusion.
Co-authored-by: Ihor Radchenko <yantar92@posteo.net>
TINYCHANGE
---
lisp/org.el | 5 +++-
testing/lisp/test-org.el | 73 ++++++++++++++++++++++++++++++++++++++++--------
2 files changed, 65 insertions(+), 13 deletions(-)
diff --git a/lisp/org.el b/lisp/org.el
index d0b2355ea2..c99887723a 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -10113,7 +10113,10 @@ This function is run automatically after each state
change to a DONE state."
(let ((nshiftmax 10)
(nshift 0))
(while (or (= nshift 0)
- (not (time-less-p nil time)))
+ (if (equal what "h")
+ (not (time-less-p nil time))
+ (>= (org-today)
+ (time-to-days time))))
(when (= nshiftmax (cl-incf nshift))
(or (y-or-n-p
(format "%d repeater intervals were not \
diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el
index 8355e2d772..61c996825c 100644
--- a/testing/lisp/test-org.el
+++ b/testing/lisp/test-org.el
@@ -8412,26 +8412,75 @@ Paragraph<point>"
(buffer-string))))
;; Handle every repeater type using hours step.
(should
- (string-match-p
- "2014-03-04 .* 02:00"
- (org-test-at-time "<2014-03-04 02:35>"
+ (string-search
+ "<2014-03-04 02:00 +8h>"
+ (org-test-without-dow
+ (org-test-at-time "<2014-03-04 02:35>"
(org-test-with-temp-text "* TODO H\n<2014-03-03 18:00 +8h>"
(org-todo "DONE")
- (buffer-string)))))
+ (buffer-string))))))
(should
- (string-match-p
- "2014-03-04 .* 10:00"
- (org-test-at-time "<2014-03-04 02:35>"
+ (string-search
+ "<2014-03-04 10:00 ++8h>"
+ (org-test-without-dow
+ (org-test-at-time "<2014-03-04 02:35>"
(org-test-with-temp-text "* TODO H\n<2014-03-03 18:00 ++8h>"
(org-todo "DONE")
- (buffer-string)))))
+ (buffer-string))))))
(should
- (string-match-p
- "2014-03-04 .* 10:35"
- (org-test-at-time "<2014-03-04 02:35>"
+ (string-search
+ "<2014-03-04 10:35 .+8h>"
+ (org-test-without-dow
+ (org-test-at-time "<2014-03-04 02:35>"
(org-test-with-temp-text "* TODO H\n<2014-03-03 18:00 .+8h>"
(org-todo "DONE")
- (buffer-string)))))
+ (buffer-string))))))
+ ;; Handle `org-extend-today-until'.
+ (should
+ (string-search
+ "<2014-03-04 ++1d>"
+ (let ((org-extend-today-until 4))
+ (org-test-without-dow
+ (org-test-at-time "<2014-03-04 02:35>"
+ (org-test-with-temp-text "* TODO H\n<2014-03-03 ++1d>"
+ (org-todo "DONE")
+ (buffer-string)))))))
+ (should
+ (string-search
+ "<2014-03-06 17:00 ++1d>"
+ (let ((org-extend-today-until 4))
+ (org-test-without-dow
+ (org-test-at-time "<2014-03-05 18:00>"
+ (org-test-with-temp-text "* TODO H\n<2014-03-04 17:00 ++1d>"
+ (org-todo "DONE")
+ (buffer-string)))))))
+ (should
+ (string-search
+ "<2014-03-04 10:00 ++8h>"
+ (let ((org-extend-today-until 4))
+ (org-test-without-dow
+ (org-test-at-time "<2014-03-04 02:35>"
+ (org-test-with-temp-text "* TODO H\n<2014-03-03 18:00 ++8h>"
+ (org-todo "DONE")
+ (buffer-string)))))))
+ (should
+ (string-search
+ "<2014-03-04 18:00 .+1d>"
+ (let ((org-extend-today-until 4))
+ (org-test-without-dow
+ (org-test-at-time "<2014-03-04 02:35>"
+ (org-test-with-temp-text "* TODO H\n<2014-03-03 18:00 .+1d>"
+ (org-todo "DONE")
+ (buffer-string)))))))
+ (should
+ (string-search
+ "<2014-03-04 10:35 .+8h>"
+ (let ((org-extend-today-until 4))
+ (org-test-without-dow
+ (org-test-at-time "<2014-03-04 02:35>"
+ (org-test-with-temp-text "* TODO H\n<2014-03-03 18:00 .+8h>"
+ (org-todo "DONE")
+ (buffer-string)))))))
;; Do not repeat inactive time stamps with a repeater.
(should-not
(string-match-p