On 2013/03/06 04:00 PM, random832@fastmail.us wrote:
On Wed, Mar 6, 2013, at 10:06, Jonathan Leffler wrote:
On Tue, Mar 5, 2013 at 11:13 PM, Alan Barrett <apb@cequrux.com <mailto:apb@cequrux.com>> wrote:
On Tue, 05 Mar 2013, Arthur David Olson wrote:
The code in question dates back to when "long" was the longest integer type available with all compilers ("long long" was not universal then).
Today, intmax_t is the longest integer type. Perhaps most of the longs in zic.t should be changed to intmax_t.
Does Microsoft's MSVC (which is a C89 compiler) have support for intmax_t (and <stdint.h> or <inttypes.h>)? Does the TZ code have to work with Microsoft compilers?
The latest version supports <stdint.h>, but NOT inttypes.h or printf("%jd" [etc]). I am unsure whether it supports long long (the headers are still full of __int64), but it does support %lld.
I don't know what version these features were added in.
<stdint.h> was added in Visual Studio 2010, but __int64 has been around since way before then (since at least Visual Studio 6.0 (VC98), probably before). Of course, porting anything back to VC98 is a complete pain in the posterior! -- -=( Ian Abbott @ MEV Ltd. E-mail: <abbotti@mev.co.uk> )=- -=( Tel: +44 (0)161 477 1898 FAX: +44 (0)161 718 3587 )=-