Subject: bug#69894: 29.1; Icalendar export conflict with calendar iso date

From: Paul Eggert <[email-masked]>
Date: Thu, 28 Mar 2024 15:26:38 -0600

On 3/28/24 03:53, Eli Zaretskii wrote:
>> diff -u --label /usr/local/share/emacs/29.1/lisp/calendar/icalendar.el.gz --label /tmp/icalendar.el /tmp/jka-commHr8dl /tmp/icalendar.el
>> --- /usr/local/share/emacs/29.1/lisp/calendar/icalendar.el.gz
>> +++ /tmp/icalendar.el
>> @@ -894,8 +894,8 @@
>>       (save-match-data
>>         (cond ( ;; iso-style numeric date
>>                (string-match (concat "\\s-*"
>> -                                   "\\([0-9]\\{4\\}\\)[ \t/]\\s-*"
>> -                                   "0?\\([1-9][0-9]?\\)[ \t/]\\s-*"
>> +                                   "\\([0-9]\\{4\\}\\)[ \t/-]\\s-*"
>> +                                   "0?\\([1-9][0-9]?\\)[ \t/-]\\s-*"
>>                                      "0?\\([1-9][0-9]?\\)")
>>                              datestring)
>>                (setq year (read (substring datestring (match-beginning 1)
>>
>> Diff finished.  Tue Mar 19 02:40:06 2024
>>
>> Is it a correct solution to proposed?
> Paul, WDYT about the proposed change?

I'm no expert on diary files. Certainly the "-" is ISO format (space and 
tab are not).

By the way, those two instances of 0?\\([1-9][0-9]?\\) both look bogus 
to me, as they match strings like 099 that are implausible month or 
day-of-month numbers.