On Tue, 2004-12-14 at 19:09 +0100, Egon Andersen wrote: > Owen Taylor wrote: > > On Tue, 2004-12-14 at 15:28 +0100, Egon Andersen wrote: > > > >>Hi, > >> > >>I've experienced problems with g_strdup_printf() in glib 2.4.8 when I > >>try to print 64-bit integers on Windows. > >> > >>I have the following line in my code: > >> > >>intmax_t se_nr; /* ISO-C99 */ > >>... > >>se_nr = ... /* e.g. 12345678 */ > >>... > >>string = g_strdup_printf("%08"PRIdMAX"admin", se_nr); > > > > ^^^^^^^ > > What's that? > > > That is a macro defined in ISO-C99 in inttypes.h which expands to > whatever is the format used for the max integer type defined. And is > matching intmax_t which is the max integer type defined. > On Windows this is 64-bit integers. > > > If you use gint64 and G_GINT64_FORMAT does it work? > > No - same result :-( > Both macros (PRIdMAX and G_GINT64_FORMAT) expands to the same I64i on > Windows. Well, the C99 stuff isn't expected to work - g_strdup_printf() is guaranteeing features that aren't present in the Windows C library like %<n>$ argument reordering, so it's a separate codebase. Test the GLib stuff with the current version of GLib, and if it still doesn't work, file a bug. Regards, Owen
Attachment:
signature.asc
Description: This is a digitally signed message part