Subject: bug#39347: 28.0.50; iso8601-parse can't handle all legal date values?

From: Eric Abrahamsen <[email-masked]>
Date: Wed, 29 Jan 2020 16:38:40 -0800

Lars Ingebrigtsen <[email-masked]> writes:

> Eric Abrahamsen <[email-masked]> writes:
>
>> I sure hope so! Anyway, looks like the library is correct, and I just
>> get to decide if I want to support deprecated forms that might be sent
>> by someone's random outdated carddav server. Bleagh.
>
> I think we could extend the library to handle those forms -- if they
> aren't ambiguous.  (I seem to vaguely remember that there were some
> forms that were ambiguous when shortened, but I don't remember the
> details.)
>
> Do you have a pointer to the 2000 version of the ISO8601 standard?  I
> could have a peek.

These are surprisingly hard to find:
https://www.pvv.ntnu.no/~nsaa/8601v2000.pdf

Section 5.2.1.3 does the truncation stuff, including the three hyphens.

Looking up information about 8601, the only references to this
"truncated representation" are from the vCard spec. That is stupid, but
also leads me to believe that they're still considered legal for vCards,
so it would be nice if they were supported. Maybe with defvar we could
let-bind, to say "allow these variants"? Some of the
potentially ambiguous stuff does seem to rely on agreement between
producer and consumer.

vCard also mentions "reduced accuracy" and "expanded representation",
from the 2004 version of 8601 -- is that something that the library
currently handles? I assume it does since I haven't been able to raise
any other errors.

Thanks for looking in to this,
Eric