diff --git a/lisp/org.el b/lisp/org.el index c8efe24e3..9e993e387 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -8903,10 +8903,10 @@ with the original repeater." "Date shift per clone (e.g. +1w, empty to copy unchanged): ") ""))) ;No time shift (doshift - (or (not (org-string-nw-p shift)) - (string-match "\\`[ \t]*\\+?\\([0-9]+\\)\\([dwmy]\\)[ \t]*\\'" - shift) - (user-error "Invalid shift specification %s" shift)))) + (and (org-string-nw-p shift) + (or (string-match "\\`[ \t]*\\+?\\([0-9]+\\)\\([dwmy]\\)[ \t]*\\'" + shift) + (user-error "Invalid shift specification %s" shift))))) (goto-char end-of-tree) (unless (bolp) (insert "\n")) (let* ((end (point)) diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el index 1de9bf0c0..49e94778c 100644 --- a/testing/lisp/test-org.el +++ b/testing/lisp/test-org.el @@ -1376,6 +1376,14 @@ (replace-regexp-in-string "\\( [.A-Za-z]+\\)\\( \\+[0-9][hdmwy]\\)?>" "" (buffer-string) nil nil 1)))) + ;; Clone with blank SHIFT argument. + (should + (string-prefix-p + "* H <2012-03-29" + (org-test-with-temp-text "* H <2012-03-29 Thu>" + (org-clone-subtree-with-time-shift 1 "") + (buffer-substring-no-properties (line-beginning-position 2) + (line-end-position 2))))) ;; Find time stamps before point. If SHIFT is not specified, ask ;; for a time shift. (should @@ -1391,7 +1399,7 @@ (org-test-with-temp-text "* H <2014-03-04 Tue>" (cl-letf (((symbol-function 'read-from-minibuffer) (lambda (&rest args) "+1d"))) - (org-clone-subtree-with-time-shift 1 "+1d")) + (org-clone-subtree-with-time-shift 1)) (buffer-substring-no-properties (line-beginning-position 2) (line-end-position 2))))))