The snprintf function on BeOS produces no output if the specified size is >= 0x3000000. Since gnulib's sprintf.c passed a size of 0x7fffffff, it fully hits this bug.
The workaround is to use the native sprintf instead. 2007-05-18 Bruno Haible <[EMAIL PROTECTED]> * lib/vasnprintf.c (USE_SNPRINTF): Define to 0 on BeOS. *** lib/vasnprintf.c 18 May 2007 17:35:19 -0000 1.43 --- lib/vasnprintf.c 18 May 2007 17:41:21 -0000 *************** *** 111,117 **** # define DIRECTIVE char_directive # define DIRECTIVES char_directives # define PRINTF_PARSE printf_parse ! # define USE_SNPRINTF (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF) # if HAVE_DECL__SNPRINTF /* Windows. */ # define SNPRINTF _snprintf --- 111,124 ---- # define DIRECTIVE char_directive # define DIRECTIVES char_directives # define PRINTF_PARSE printf_parse ! # /* Use snprintf if it exists under the name 'snprintf' or '_snprintf'. ! But don't use it on BeOS, since BeOS snprintf produces no output if the ! size argument is >= 0x3000000. */ ! # if (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF) && !defined __BEOS__ ! # define USE_SNPRINTF 1 ! # else ! # define USE_SNPRINTF 0 ! # endif # if HAVE_DECL__SNPRINTF /* Windows. */ # define SNPRINTF _snprintf