Subject: Re: bug#11042: 24.0.94; dangerous org manual: parse-time-months and parse-time-weekdays

From: Michael Heerdegen <[email-masked]>
Date: Wed, 21 Mar 2012 21:24:55 +0100

Bastien <[email-masked]> writes:

> Hi Michael,
>
> Michael Heerdegen <[email-masked]> writes:
>
> > The org-mode manual under the node "The date/time prompt" tells:
> >
> >   "[...] The function understands English month and weekday
> > abbreviations.  If
> > you want to use unabbreviated names and/or other languages, configure
> > the variables `parse-time-months' and `parse-time-weekdays'."
> >
> > It doesn't tell how the user can do that.  Even worse,
> > `parse-time-months' and `parse-time-weekdays' are not defined as user
> > options and undocumented!
> >
> > After reading the above section in the org manual, users may replace
> > the English names with e.g. German ones in their config.  Seems this
> > is not a good idea, as this user question in gnu.emacs.gnus shows:
> >
> > http://groups.google.com/group/gnu.emacs.gnus/browse_thread/thread/8dde85b5ff3ab454/a02ddb878bfa1eb9
>
> The thread doesn't tell what is wrong with setting `parse-time-months'
> and `parse-time-weekdays'.  Can you expand a bit more on this?

The thread is not completely visible in google groups, dunno why.
Please read at gnu.emacs.gnus with a newsreader.

The problem was that the user replaced the English names with German
names - instead of adding them to the lists.  This broke Gnus.

Currently, `parse-time-months' and `parse-time-weekdays' are internal
variables with no docstring.  Seems they are not intended to be changed
by the user.  Other packages may rely on the fact that the default
values aren't changed.

If they are supposed to be configured by the user, they should get a
documented defcustom.

At least, the documentation in the org manual _must_ be improved, so
that the user is enabled to do the right thing without breaking anything
else.

> > BTW1: maybe a better solution would be to define own variables for
> > this purpose in org, instead of letting users change variables in
> > parse-time.el.
>
> Org heavily depends on parse-time.el.  Providing a defcustom in Org
> that is tied to parse-time.el at the same time is not trivial.

Why not?  You could just write a function `org-parse-time-string' that
binds `parse-time-months' and `parse-time-weekdays' accordingly and
calls `parse-time-string'.  Then you would just need to call this new
function from org code.

Regards,

Michael.