diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index e06d0c09b..4821cfa85 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -104,6 +104,11 @@ A 'native option was added to org-highlight-latex-and-related. It matches the same structures than 'latex but it calls org-src-font-lock-fontify-block instead, thus bringing about full LaTeX font locking. +*** ~org-clone-subtree-with-time-shift~ learnt to shift backward in time +== (~org-clone-subtree-with-time-shift~) now takes a +negative value as a valid repeater to shift time stamps in backward +in cloned subtrees. You can give, for example, ā€˜-3dā€™ to shift three +days in the past. ** New functions *** ~org-dynamic-block-insert-dblock~ diff --git a/lisp/org.el b/lisp/org.el index 5c11de7b6..e71ba73e6 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -8452,7 +8452,7 @@ with the original repeater." ""))) ;No time shift (doshift (and (org-string-nw-p shift) - (or (string-match "\\`[ \t]*\\+?\\([0-9]+\\)\\([dwmy]\\)[ \t]*\\'" + (or (string-match "\\`[ \t]*\\([\\+\\-]?[0-9]+\\)\\([dwmy]\\)[ \t]*\\'" shift) (user-error "Invalid shift specification %s" shift))))) (goto-char end-of-tree) diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el index 976b7d8d6..db34a03c2 100644 --- a/testing/lisp/test-org.el +++ b/testing/lisp/test-org.el @@ -1496,6 +1496,18 @@ (replace-regexp-in-string "\\( [.A-Za-z]+\\)\\( \\+[0-9][hdmwy]\\)?>" "" (buffer-string) nil nil 1)))) + ;; Clone repeating once in backward. + (should + (equal "\ +* H1\n<2015-06-21> +* H1\n<2015-06-19> +* H1\n<2015-06-17 +1w> +" + (org-test-with-temp-text "* H1\n<2015-06-21 Sun +1w>" + (org-clone-subtree-with-time-shift 1 "-2d") + (replace-regexp-in-string + "\\( [.A-Za-z]+\\)\\( \\+[0-9][hdmwy]\\)?>" "" (buffer-string) + nil nil 1)))) ;; Clone non-repeating zero times. (should (equal "\