On Thu, 9 Jun 2005, Michael Haardt wrote:
> Since Exim uses mostly string_sprintf(), perhaps it is time for
> its own *printf implementation instead of internally using libc.
I do not trust myself to write such code in a way that is as efficient
and numerically accurate as the standard library. Especially not for
floating point formats.
> I usually do that in larger projects, which has the advantage
> of being able to use format specifiers for sockaddr, off_t
> and time_t.
Exim already has some private formats for string_vformat(), but for the
actual conversions, it calls the library.
It sounds to me as though I should parameterize the format using a
macro, default it to "%lld" if off_t is long long, and see what happens.
If we hit a system that doesn't know about ll, the chances are that it
is 32-bit, and a suitable setting of the macro will solve the problem.
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book: http://www.uit.co.uk/exim-book