nmh-workers
[Top][All Lists]
Advanced

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

Disappearing TZID in iCalendar Display.


From: Ralph Corderoy
Subject: Disappearing TZID in iCalendar Display.
Date: Sun, 20 Jun 2021 14:52:14 +0100

Hi,

mhshow(1) on an email which had a text/calendar part spewed many
duplicate

    mhical: did not find VTIMEZONE section for GMT Standard Time

errors.

A rough trace of the control flow is

    mhical: load_timezones
    mhical: adding 'GMT Standard Time'
    mhical: needle 'GMT Standard Time'
    mhical: haystack 'GMT Standard Time'
    mhical: needle 'GMT Standard Time'
    mhical: haystack 'GMT Standard Time'
    mhical: free_timezones

    mhical: load_timezones
    mhical: uip/mhical.c 677
    mhical: needle 'GMT Standard Time'
    mhical: did not find VTIMEZONE section for GMT Standard Time

Investigation suggests the list of timezones is parsed correctly and the
needle is found in its haystack in the initial call to display() but
then subsequent calls have an empty haystack of timezones.

I think this is because load_timezones() is called repeatedly but the
definition of GMT is only in the data for its first call.  Here's the
node names load_timezones() sees on each call.  TZID is only in the
first.

  1  begin prodid version method x-calstart x-calend x-wr-relcalid
     x-wr-calname begin tzid begin dtstart rrule tzoffsetfrom tzoffsetto
     end begin dtstart rrule tzoffsetfrom tzoffsetto end end begin
     attendee attendee attendee attendee categories class created
     description dtend dtstamp dtstart last-modified location organizer
     priority sequence summary transp uid x-alt-desc
     x-microsoft-cdo-busystatus x-microsoft-cdo-importance
     x-ms-olk-apptlastsequence x-ms-olk-apptseqtime end begin attendee
     attendee attendee attendee categories class created description
     dtend dtstamp dtstart last-modified location organizer priority
     sequence summary transp uid x-alt-desc x-microsoft-cdo-busystatus
     x-microsoft-cdo-importance x-ms-olk-apptlastsequence
     x-ms-olk-apptseqtime end
  2  begin attendee attendee attendee attendee attendee attendee
     attendee categories class created description dtend dtstamp dtstart
     last-modified location organizer priority sequence summary transp
     uid x-alt-desc x-microsoft-cdo-busystatus
     x-microsoft-cdo-importance x-ms-olk-apptlastsequence
     x-ms-olk-apptseqtime end
  3  begin attendee attendee attendee attendee attendee attendee
     attendee attendee attendee categories class created description
     dtend dtstamp dtstart last-modified location organizer priority
     sequence summary transp uid x-alt-desc x-microsoft-cdo-busystatus
     x-microsoft-cdo-importance x-ms-olk-apptlastsequence
     x-ms-olk-apptseqtime end
  4  begin attendee attendee attendee attendee attendee attendee
     attendee attendee categories class created description dtend
     dtstamp dtstart last-modified location organizer priority sequence
     summary transp uid x-alt-desc x-microsoft-cdo-busystatus
     x-microsoft-cdo-importance x-ms-olk-apptlastsequence
     x-ms-olk-apptseqtime end
  5  begin attendee attendee attendee categories class created
     description dtend dtstamp dtstart exdate last-modified location
     organizer priority rrule sequence summary transp uid x-alt-desc
     x-microsoft-cdo-busystatus x-microsoft-cdo-importance
     x-ms-olk-apptlastsequence x-ms-olk-apptseqtime end
  6  begin class created dtend dtstamp dtstart last-modified priority
     recurrence-id sequence uid x-microsoft-cdo-importance
     x-ms-olk-apptseqtime end
  7  begin attendee attendee attendee attendee attendee attendee
     attendee categories class created description dtend dtstamp dtstart
     last-modified location organizer priority sequence summary transp
     uid x-alt-desc x-microsoft-cdo-busystatus
     x-microsoft-cdo-importance x-ms-olk-apptlastsequence
     x-ms-olk-apptseqtime end
  8  begin attendee attendee attendee attendee attendee attendee
     attendee attendee attendee categories class created description
     dtend dtstamp dtstart last-modified location organizer priority
     sequence summary transp uid x-alt-desc x-microsoft-cdo-busystatus
     x-microsoft-cdo-importance x-ms-olk-apptlastsequence
     x-ms-olk-apptseqtime end
  9  begin attendee attendee attendee attendee categories class
     created description dtend dtstamp dtstart last-modified location
     organizer priority sequence summary transp uid x-alt-desc
     x-microsoft-cdo-busystatus x-microsoft-cdo-importance
     x-ms-olk-apptlastsequence x-ms-olk-apptseqtime end

The structure of the text/calendar part, as shown with

    egrep '^(BEGIN|END|TZID|DTSTART;|DTEND;)'

and with some lines which repeated their surrounding VEVENTs deleted for
brevity is

     1  BEGIN:VCALENDAR
     2  BEGIN:VTIMEZONE
     3  TZID:GMT Standard Time
     4  BEGIN:STANDARD
     5  END:STANDARD
     6  BEGIN:DAYLIGHT
     7  END:DAYLIGHT
     8  END:VTIMEZONE
     9  BEGIN:VEVENT
    10  DTEND;TZID="GMT Standard Time":20210622T153000
    11  DTSTART;TZID="GMT Standard Time":20210622T140000
    12  END:VEVENT
    13  BEGIN:VEVENT
    14  DTEND;TZID="GMT Standard Time":20210622T170000
    15  DTSTART;TZID="GMT Standard Time":20210622T160000
    16  END:VEVENT
    17  BEGIN:VEVENT
    18  DTEND;TZID="GMT Standard Time":20210623T140000
    19  DTSTART;TZID="GMT Standard Time":20210623T123000
    20  END:VEVENT
    21  BEGIN:VEVENT
    22  DTEND;TZID="GMT Standard Time":20210624T113000
    23  DTSTART;TZID="GMT Standard Time":20210624T100000
    24  END:VEVENT
    25  BEGIN:VEVENT
    26  DTEND;TZID="GMT Standard Time":20210624T160000
    27  DTSTART;TZID="GMT Standard Time":20210624T150000
    28  END:VEVENT
    29  BEGIN:VEVENT
    30  DTEND;TZID="GMT Standard Time":20210611T110000
    31  DTSTART;TZID="GMT Standard Time":20210611T100000
    32  END:VEVENT
    33  BEGIN:VEVENT
    34  END:VEVENT
    35  BEGIN:VEVENT
    36  DTEND;TZID="GMT Standard Time":20210629T120000
    37  DTSTART;TZID="GMT Standard Time":20210629T110000
    38  END:VEVENT
   ...
   383  BEGIN:VEVENT
   384  DTEND;TZID="GMT Standard Time":20210914T110000
   385  DTSTART;TZID="GMT Standard Time":20210914T100000
   386  END:VEVENT
   387  BEGIN:VEVENT
   388  DTEND;TZID="GMT Standard Time":20210623T113000
   389  DTSTART;TZID="GMT Standard Time":20210623T100000
   390  END:VEVENT
   391  BEGIN:VEVENT
   392  DTEND;VALUE=DATE:20210724
   393  DTSTART;VALUE=DATE:20210719
   394  END:VEVENT
   395  BEGIN:VEVENT
   396  DTEND;VALUE=DATE:20210807
   397  DTSTART;VALUE=DATE:20210802
   398  END:VEVENT
   399  BEGIN:VEVENT
   400  DTEND;VALUE=DATE:20210626
   401  DTSTART;VALUE=DATE:20210624
   402  END:VEVENT
   403  BEGIN:VEVENT
   404  DTEND;VALUE=DATE:20210619
   405  DTSTART;VALUE=DATE:20210618
   406  END:VEVENT
   407  BEGIN:VEVENT
   408  DTEND;VALUE=DATE:20210619
   409  DTSTART;VALUE=DATE:20210616
   410  END:VEVENT
   411  BEGIN:VEVENT
   412  DTEND;TZID="GMT Standard Time":20210701T160000
   413  DTSTART;TZID="GMT Standard Time":20210701T150000
   414  END:VEVENT
   ...
   499  BEGIN:VEVENT
   500  DTEND;TZID="GMT Standard Time":20210906T120000
   501  DTSTART;TZID="GMT Standard Time":20210906T110000
   502  END:VEVENT
   503  BEGIN:VEVENT
   504  DTEND;TZID="GMT Standard Time":20210625T123000
   505  DTSTART;TZID="GMT Standard Time":20210625T110000
   506  END:VEVENT
   507  END:VCALENDAR

I didn't investigate further in case I'm on the wrong track of the
text/calendar input doesn't comply with
https://www.rfc-editor.org/rfc/inline-errata/rfc5545.html

-- 
Cheers, Ralph.



reply via email to

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