On Wed, Oct 26, 2005 at 06:59:15PM -0500, Albert Chin wrote:
> On Wed, Oct 26, 2005 at 01:48:03PM -0500, Albert Chin wrote:
> > On Wed, Oct 26, 2005 at 01:27:43PM -0500, Albert Chin wrote:
> > > 
> > > I replaced vsnprintf() with trio_vsnprintf() on these platforms in
> > > error.c and:
> > >   ./runtest "Error cases regression tests"
> > >   ## Error cases regression tests
> > >   Total 8 tests, no errors
> > > 
> > > Does libxml assume a C99 vsnprintf() in error.c?
> > 
> > All tests pass with trio_vsnprintf() on these two platforms.
> 
> On IRIX and Tru64 UNIX, vsnprintf() returns the number of characters
> transmitted, _not_ the number of characters that would have been
> transmitted if the buffer were large enough. From error.c:
>         va_start(ap, msg);                                      \
>         chars = vsnprintf(str, size, msg, ap);                  \
>         va_end(ap);                                             \
>         if ((chars > -1) && (chars < size))                     \
>             break;                                              \
>         if (chars > -1)                                         \
>             size += chars + 1;                                  \
>         else                                                    \
>             size += 100;                                        \
> 
> This definitely assumes a C99 vsnprintf().

  Okay, what's the alternative ? Set str[size - 1] to 0 after va_end
and use chars = strlen() instead, then compare size with chars and
increase size if equals else break ? That should work I think on all platforms
avoiding a dependancy on a cornercase of the *printf behaviour that other
libc are likely to get wrong too.
  Would you design such a patch, I have little time for libxml2 ATM ?

   thanks !

Daniel

-- 
Daniel Veillard      | Red Hat http://redhat.com/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to