On Sat, 22 Jan 2005 17:05:22 -0500, Tom Lane <[EMAIL PROTECTED]> wrote: > > > src/port/snprintf.c is not not a particularly pretty. And > > after my rework it got even uglier. I have looked at > > FreeBDS's one and it is not *that* complicated. > > If you can get it to work then it'd be a better bet than writing (and > having to maintain) our own.
Very well, I am starting to work on it. I will put everything necessary in on file. So far it is 1500-odd lines and will probably grow a little bit. Plus we would probably need to include Double-to-ASCII package too: http://cvsup.pt.freebsd.org/cgi-bin/cvsweb/cvsweb.cgi/src/contrib/gdtoa/ A daunting task indeed. I will do it but I am afraid it would not be too portable. I was wandering if reimplementing print formatting is the right thing to do. The problem I have is in fmtnum() and probably in fmtfloat() functions which are very platform-dependent. The code to shuffle xxprinf() arguments based on %n$ formatting stirngs is ready why don't shuffle formatting placeholders too and call OS's vsnprintf() with modified formatting formatting strings and va_list? Or, a similar solution, for every parameter extract formatting placeholder and value, call snprintf() and the combine the resulting string? The first solution requires doing nasty manipulations with va_list, the second will be slower because of multiple calls to snprintf(). Which one is better? Best regards, Nicolai Tufar > > regards, tom lane > ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq