I've not looked at the complete code, but the patch '0001-zic-v-...' contains:

- static char const benign[] = ("-./_"
+ static char const benign[] = ("-/_"
     "abcdefghijklmnopqrstuvwxyz"
     "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
register char const *component = name;


I don't see the digits in there; are they handled separately?  Also, what is the benefit of the parentheses around the string?



On Thu, Jun 26, 2014 at 9:42 AM, Paul Eggert <eggert@cs.ucla.edu> wrote:
Arthur David Olson wrote:
I'll advocate for warning about any dots in file names

That's easy enough, and simplifies the code and documentation; I pushed the attached patches.  The second patch documents four other exceptional names I found when I ran the new 'zic -v' against the tz database.



--
Jonathan Leffler <jonathan.leffler@gmail.com>  #include <disclaimer.h>
Guardian of DBD::Informix - v2013.0521 - http://dbi.perl.org
"Blessed are we who can laugh at ourselves, for we shall never cease to be amused."