[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Tasks don't repeat correctly if system-time-locale is set to cer
Bruce V. Chiarelli
Re: [O] Tasks don't repeat correctly if system-time-locale is set to certain languages
Mon, 31 Oct 2016 17:29:20 -0700
2016-10-31 17:04 GMT-07:00 Nicolas Goaziou <address@hidden>:
> "Bruce V. Chiarelli" <address@hidden> writes:
>> org-todo calls org-auto-repeat-maybe, which sees the ".+" style
>> repeater. It calls org-timestamp-change to move the timestamp up to
>> today. Point is left at the closing bracket. So far, so good.
>> org-timestamp-change sets origin-cat to 'after and origin to (point).
>> It then changes the timestamp to today as advertized.
>> Now these lines get evaluated
>> (goto-char (cond
>> ;; `day' category ends before `hour' if any, or at
>> ;; the end of the day name.
>> ((eq origin-cat 'day)
>> (min (or (match-beginning 7) (- (match-end 5) 2)) origin))
>> ((eq origin-cat 'hour) (min (match-end 7) origin))
>> ((eq origin-cat 'minute) (min (1- (match-end 8)) origin))
>> ((integerp origin-cat) (min (1- (match-end 0)) origin))
>> ;; `year' and `month' have both fixed size: point
>> ;; couldn't have moved into another part.
>> (t origin))))
>> The since origin-cat is 'after, matching nothing else, we get
>> (goto-char origin).
>> This seems to be where the problem lies. When "<2016-10-29 szo .+1>"
>> becomes "<2016-10-31 h .+1>" (today), origin is now two characters
>> ahead of where it should be, now on the next line in fact.
> I see. Thank you for the analysis.
> Does adding the following branch in the `cond' above, before the
> catch-all one, solves the issue?
> ((eq origin-cat 'after) (match-end 0))
It does! Wonderful.