|
@@ -14887,7 +14887,7 @@ If the cursor is on the year, change the year. If it is on the month or
|
|
|
the day, change that.
|
|
|
With prefix ARG, change by that many units."
|
|
|
(interactive "p")
|
|
|
- (org-timestamp-change (prefix-numeric-value arg)))
|
|
|
+ (org-timestamp-change (prefix-numeric-value arg) nil 'updown))
|
|
|
|
|
|
(defun org-timestamp-down (&optional arg)
|
|
|
"Decrease the date item at the cursor by one.
|
|
@@ -14895,7 +14895,7 @@ If the cursor is on the year, change the year. If it is on the month or
|
|
|
the day, change that.
|
|
|
With prefix ARG, change by that many units."
|
|
|
(interactive "p")
|
|
|
- (org-timestamp-change (- (prefix-numeric-value arg))))
|
|
|
+ (org-timestamp-change (- (prefix-numeric-value arg)) nil 'updown))
|
|
|
|
|
|
(defun org-timestamp-up-day (&optional arg)
|
|
|
"Increase the date in the time stamp by one day.
|
|
@@ -14904,7 +14904,7 @@ With prefix ARG, change that many days."
|
|
|
(if (and (not (org-at-timestamp-p t))
|
|
|
(org-on-heading-p))
|
|
|
(org-todo 'up)
|
|
|
- (org-timestamp-change (prefix-numeric-value arg) 'day)))
|
|
|
+ (org-timestamp-change (prefix-numeric-value arg) 'day 'updown)))
|
|
|
|
|
|
(defun org-timestamp-down-day (&optional arg)
|
|
|
"Decrease the date in the time stamp by one day.
|
|
@@ -14913,7 +14913,7 @@ With prefix ARG, change that many days."
|
|
|
(if (and (not (org-at-timestamp-p t))
|
|
|
(org-on-heading-p))
|
|
|
(org-todo 'down)
|
|
|
- (org-timestamp-change (- (prefix-numeric-value arg)) 'day)))
|
|
|
+ (org-timestamp-change (- (prefix-numeric-value arg)) 'day) 'updown))
|
|
|
|
|
|
(defun org-at-timestamp-p (&optional inactive-ok)
|
|
|
"Determine if the cursor is in or at a timestamp."
|
|
@@ -14958,7 +14958,7 @@ With prefix ARG, change that many days."
|
|
|
(message "Timestamp is now %sactive"
|
|
|
(if (equal (char-after beg) ?<) "" "in")))))
|
|
|
|
|
|
-(defun org-timestamp-change (n &optional what)
|
|
|
+(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
|
|
@@ -14989,8 +14989,10 @@ in the timestamp determines what will be changed."
|
|
|
(if (string-match "^.\\{10\\}.*?[0-9]+:[0-9][0-9]" ts)
|
|
|
(setq with-hm t))
|
|
|
(setq time0 (org-parse-time-string ts))
|
|
|
- (when (and (eq org-ts-what 'minute)
|
|
|
- (eq current-prefix-arg nil))
|
|
|
+ (when (and updown
|
|
|
+ (eq org-ts-what 'minute)
|
|
|
+ (not current-prefix-arg))
|
|
|
+ ;; This looks like s-up and s-down. Change by one rounding step.
|
|
|
(setq n (* dm (cond ((> n 0) 1) ((< n 0) -1) (t 0))))
|
|
|
(when (not (= 0 (setq rem (% (nth 1 time0) dm))))
|
|
|
(setcar (cdr time0) (+ (nth 1 time0)
|