emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [bug] org-agenda-write does not handle date stamps without day o


From: Carsten Dominik
Subject: Re: [O] [bug] org-agenda-write does not handle date stamps without day of week
Date: Tue, 20 Mar 2012 06:54:33 +0100

I have just pushed the new version of this regexp into master.

Karl, let me know if it fixes the issues you where having
with writing agendas.

- Carsten

On 19.3.2012, at 10:12, Carsten Dominik wrote:

> 
> On 17.3.2012, at 07:45, Nick Dokos wrote:
> 
>> Karl Voit <address@hidden> wrote:
>> 
>>> * Nick Dokos <address@hidden> wrote:
>>>> Karl Voit <address@hidden> wrote:
>>>> 
>>>> For me, it was a "no time to work on org - stash it"...
>>> 
>>> OK. I just wanted to make sure that it *is* on someone's todo list
>>> :-)
>>> 
>>>>> * Karl Voit <address@hidden> wrote:
>>>>>> 
>>>>>> * <2012-03-05 08:00-09:00> Wrong: ends up as full day event
>>>> 
>>>> org-agenda-write calls org-export-icalendar which calls 
>>>> org-print-icalendar-entries
>>>> which loops over all the entries and parses them, decomposing them into 
>>>> timestamps.
>>>> Each timestamp is then passed to org-parse-time-string. It's this one that 
>>>> cannot
>>>> handle non-standard formats: it uses a regexp and assumes that all the 
>>>> matched parts
>>>> are going to be in fixed places:
>>>> 
>>>> As to how to fix it, there are several possibilities:
>>>> 
>>>> 1. fix your scripts that produce time stamps to include day-of-week.
>>> 
>>> Sorry, deriving DOW from an arbitrary timestamps from arbitrary data
>>> sources is either pretty time consuming (calendar calculations) or
>>> simply hard to calculate.
>>> 
>>> Outside Org-mode, DOW is seldom part of time-stamp data :-(
>>> 
>>>> 2. change the callers of org-parse-time-string to make sure that DOW is 
>>>> included.
>>>> There are roughly three dozen callers, so 2. is possible but a pain.
>>> 
>>> Ack.
>>> 
>>>> 3. change just one caller: org-print-icalendar-entries to make sure that 
>>>> DOW is included.
>>>> 3. is simple but ugly as sin, 
>>> 
>>> Ouch, ack :-)
>>> 
>>>> 4. change org-parse-time-string to handle a missing DOW.
>>>> 4. is the best way to handle it within org.
>>> 
>>> Full ack.
>>> 
>>>> I vote for 1. where *you* have to do all the work ;-)
>>> 
>>> YMMD :-)
>>> 
>>> If my brain would be compatible to ELISP, I'd send a patch.
>>> Promised.
>>> 
>>> But I'll take my chance and wait for someone else (you?)
>>> implementing 4. to resolve this issue for everybody. I really
>>> appreciate every second you guys invest in maintaining Org-mode!
>>> 
>> 
>> I don't know about you, but whenever I engage in hand-to-hand combat
>> with a complicated regexp, I come out bruised, muddied and a lot worse
>> for wear. In any case, I'm attaching an org file with my investigations.
>> It contains a description and a code block for testing.
>> 
>> I hope that the attachment will come through unscathed: it contains
>> regexps, and munging a regexp that looks like hen scratchings in the
>> first place through uncooperative mailers is not something to be
>> relished.
>> 
>> BTW, I'm not advocating a change: I'll leave it to Karl to do that if he
>> really wants to and to the maintainers to decide whether it's worth
>> doing. But it can be done (more or less). And maybe somebody will come
>> up with a better way than the proof-of-concept that I'm attaching here.
> 
> Hi Nick and Karl,
> 
> since we did make a change to Org a while ago to allow date stamps
> without the name of the day, I think it is only consequent to also do
> it for this case.  Must have slipped our attention back then.
> The only thing we must ensure is that this regexp matches fast
> as it is used a lot.
> 
> Nick's proposal works, except for the fact that is also matches when
> the time is directly attached to day name.  Maybe it is cleaner to
> not match in this case.
> 
> If we are going to make the day name optional, then it is better to
> include matching of the whitespace after the date into the day-name
> part of the regexp.
> 
> I am attaching Nick's file again, with a third proposal for an
> updated regexp.
> 
> As far as speed is concerned, this regexp will, if there is name
> and time, match directly and straight.  If the date name is
> missing, it will notice on the first digit belonging to
> the time and switch without backtracking (well, minimal
> backtracking when there are multiple spaces) to the regexp
> section for the time of day.  Rematching the spaces after the
> date will be the only overhead.
> 
> Cheers
> 
> - Carsten
> 
> <reproducer.org>
> 
> 
> 
>> 
>> Nick
>> 
>> PS. BTW, if you look at the attachment, it helps if you have a wide window,
>>   something like 165 characters wide.
>> 
>> <reproducer.org>
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]