From: Tom <adatgyujto@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: [BUG] Changing TODO states sometimes modifies the schedulingof the next heading
Date: Sun, 3 Apr 2011 17:49:04 +0000 (UTC) [thread overview]
Message-ID: <loom.20110403T191200-372@post.gmane.org> (raw)
In-Reply-To: 877hbbjngq.fsf@fastmail.fm
Matt Lundin <mdl <at> imapmail.org> writes:
>
> I still cannot reproduce it.
>
I tried your test file which was different from the test file
I suggested in the second mail and I couldn't reproduce the problem
with it either.
So I looked into this and turns out the problem occurs only if
after the state change the new day abbreviation in the timestamp
is shorter than the previous one.
In your case Sat switches to Sun, both 3 characters length.
No problem.
But in my case Szo changes to V which is two characters shorter:
--8<---------------cut here---------------start------------->8---
* TODO test1
SCHEDULED: <2011-04-02 Szo +1d>
* TODO test2
SCHEDULED: <2011-04-03 V .+1w>
--8<---------------cut here---------------end--------------->8---
Why is it a problem?
Because org-timestamp-change starts with storing the current
cursor position which is the end of the timestamp:
15400 (defun org-timestamp-change (n &optional what updown)
15401 "Change the date in the time stamp at point.
15402 The date will be changed by N times WHAT. WHAT can be `day', `month',
15403 `year', `minute', `second'. If WHAT is not given, the cursor position
15404 in the timestamp determines what will be changed."
15405 (let ((pos (point))
...
http://repo.or.cz/w/org-mode.git/blob/HEAD:/lisp/org.el#l15405
and later it simply restores the position with:
15468 (goto-char pos)
http://repo.or.cz/w/org-mode.git/blob/HEAD:/lisp/org.el#l15468
The problem is in my case the new day abbreviation is two char
shorter, so the whole line is shorter, therefore the goto-char
puts the cursor in the next line (instead of at the end of the
timestamp) which triggers the bound problem I described in the
first mail:
http://article.gmane.org/gmane.emacs.orgmode/40502
Bottom line: the problem does not occur in the English locale,
because there all day abbreviations are 3 chars long, so the
above described simple way of restoring the cursor position
always works. But this is not true for all locales, so org
shouldn't rely on that.
next prev parent reply other threads:[~2011-04-03 17:49 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-03 6:46 [BUG] Changing TODO states sometimes modifies the scheduling of the next heading Tom
2011-04-03 8:35 ` Tom
2011-04-03 13:37 ` Matt Lundin
2011-04-03 14:09 ` [BUG] Changing TODO states sometimes modifies the schedulingof " Tom
2011-04-03 16:42 ` Matt Lundin
2011-04-03 17:49 ` Tom [this message]
2011-04-04 20:25 ` Tom
2011-07-20 8:28 ` Nicolas Goaziou
2011-07-21 19:25 ` Tom
2011-07-22 7:31 ` Bastien
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=loom.20110403T191200-372@post.gmane.org \
--to=adatgyujto@gmail.com \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).