emacs-elpa-diffs
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]