Manuela Friedrich wrote:
In zdump localtime_r() was calling localtime() but it crashed after the return from localtime because there was no prototype for localtime
Why not? zdump.c includes private.h, which includes time.h, and that should should declare a prototype for localtime, according to this page: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/localtime-l...
Therefore it is crucial for us to have the dos specifier check in tzloadbody(). This change won’t affect the behaviour on Unix and using a full path works fine on Unix.
It does affect the behavior on Unix, as file names like "a:b" are valid relative file names whereas the proposed code would treat them as absolute. Can you use UNC names instead? Perhaps something starting with // will do the trick. Or if that doesn't work, perhaps you can set TZDIR=/ when running 'make', and then cd to the appropriate drive root before running zdump and/or zic and then use a path relative to that drive root. At any rate, I'm not sure it's a good idea for portable code to worry about these ins and outs of MS-Windows file name conventions.