Subject: [Tzdist] Find action pattern questions

From: Ken Murchison <[email-masked]>
Date: Tue, 30 Sep 2014 10:48:46 -0400

Looking at my current implementation, two questions come to mind:

- Do we allow patterns other than the 4 specified in the draft, such as 
* or ** (which are equivalent to list without changedsince), or A*z, or 
A*b*n?  I don't care either way, I just need to know whether to accept 
or reject them.

- How do we future-proof ourselves against IANA tzids or aliases that 
may contain the * character?  I suppose we would need to escape any 
literal * in the pattern.

-- 
Kenneth Murchison
Principal Systems Software Engineer
Carnegie Mellon University

---

From: Paul Eggert <[email-masked]>
Date: Tue, 30 Sep 2014 13:28:34 -0700

> literal * in the pattern.

For what it's worth, the current tzid naming restrictions are listed 
below, taken from the Theory file, and they exclude "*".  I doubt 
whether these restrictions would be relaxed any time soon, except 
possibly the 14-character limit might be increased to 255.

     Use only valid POSIX file name components (i.e., the parts of
         names other than '/').  Do not use the file name
         components '.' and '..'.  Within a file name component,
         use only ASCII letters, '.', '-' and '_'.  Do not use
         digits, as that might create an ambiguity with POSIX
         TZ strings.  A file name component must not exceed 14
         characters or start with '-'.  E.g., prefer 'Brunei'
         to 'Bandar_Seri_Begawan'.  Exceptions: see the discussion
         of legacy names below.
     A name must not be empty, or contain '//', or start or end with '/'.
     Do not use names that differ only in case.  Although the reference
         implementation is case-sensitive, some other implementations
         are not, and they would mishandle names differing only in case.
     If one name A is an initial prefix of another name AB (ignoring case),
         then B must not start with '/', as a regular file cannot have
         the same name as a directory in POSIX.  For example,
         'America/New_York' precludes 'America/New_York/Bronx'.

...

Older versions of this package defined legacy names that are
incompatible with the first rule of location names, but which are
still supported.  These legacy names are mostly defined in the file
'etcetera'.  Also, the file 'backward' defines the legacy names
'GMT0', 'GMT-0', 'GMT+0' and 'Canada/East-Saskatchewan', and the file
'northamerica' defines the legacy names 'EST5EDT', 'CST6CDT',
'MST7MDT', and 'PST8PDT'.