2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
+ * configure.in, tests/type-test.c: Some platforms support 64 bit
+ 'long long', but you can not printf or scanf them. In that case,
+ don't define G_G{UINT|INT}64_FORMAT. Changed the type-test program
+ to reflect that.
+
* gutils.c (g_get_current_dir): max_len can't be initialized
statically as it might call a function. So do it at first call.
2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
+ * configure.in, tests/type-test.c: Some platforms support 64 bit
+ 'long long', but you can not printf or scanf them. In that case,
+ don't define G_G{UINT|INT}64_FORMAT. Changed the type-test program
+ to reflect that.
+
* gutils.c (g_get_current_dir): max_len can't be initialized
statically as it might call a function. So do it at first call.
2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
+ * configure.in, tests/type-test.c: Some platforms support 64 bit
+ 'long long', but you can not printf or scanf them. In that case,
+ don't define G_G{UINT|INT}64_FORMAT. Changed the type-test program
+ to reflect that.
+
* gutils.c (g_get_current_dir): max_len can't be initialized
statically as it might call a function. So do it at first call.
2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
+ * configure.in, tests/type-test.c: Some platforms support 64 bit
+ 'long long', but you can not printf or scanf them. In that case,
+ don't define G_G{UINT|INT}64_FORMAT. Changed the type-test program
+ to reflect that.
+
* gutils.c (g_get_current_dir): max_len can't be initialized
statically as it might call a function. So do it at first call.
2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
+ * configure.in, tests/type-test.c: Some platforms support 64 bit
+ 'long long', but you can not printf or scanf them. In that case,
+ don't define G_G{UINT|INT}64_FORMAT. Changed the type-test program
+ to reflect that.
+
* gutils.c (g_get_current_dir): max_len can't be initialized
statically as it might call a function. So do it at first call.
2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
+ * configure.in, tests/type-test.c: Some platforms support 64 bit
+ 'long long', but you can not printf or scanf them. In that case,
+ don't define G_G{UINT|INT}64_FORMAT. Changed the type-test program
+ to reflect that.
+
* gutils.c (g_get_current_dir): max_len can't be initialized
statically as it might call a function. So do it at first call.
2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
+ * configure.in, tests/type-test.c: Some platforms support 64 bit
+ 'long long', but you can not printf or scanf them. In that case,
+ don't define G_G{UINT|INT}64_FORMAT. Changed the type-test program
+ to reflect that.
+
* gutils.c (g_get_current_dir): max_len can't be initialized
statically as it might call a function. So do it at first call.
2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
+ * configure.in, tests/type-test.c: Some platforms support 64 bit
+ 'long long', but you can not printf or scanf them. In that case,
+ don't define G_G{UINT|INT}64_FORMAT. Changed the type-test program
+ to reflect that.
+
* gutils.c (g_get_current_dir): max_len can't be initialized
statically as it might call a function. So do it at first call.
# long long is a 64 bit integer.
AC_MSG_CHECKING(for format to printf and scanf a gint64)
AC_CACHE_VAL(glib_cv_long_long_format,[
+ for format in ll q; do
AC_TRY_RUN([#include <stdio.h>
int main()
{
long long b, a = -0x3AFAFAFAFAFAFAFALL;
char buffer[1000];
- sprintf (buffer, "%llu", a);
- sscanf (buffer, "%llu", &b);
+ sprintf (buffer, "%${format}u", a);
+ sscanf (buffer, "%${format}u", &b);
exit (b!=a);
}
],
- glib_cv_long_long_format=ll,
- glib_cv_long_long_format=q)])
+ glib_cv_long_long_format=${format}
+ break)
+ done])
+ if test -n "$glib_cv_long_long_format"; then
AC_MSG_RESULT(%${glib_cv_long_long_format}i)
+ else
+ AC_MSG_RESULT(none)
+ fi
fi
dnl long doubles were not used, and a portability problem
${glib_extension}typedef signed $gint64 gint64;
${glib_extension}typedef unsigned $gint64 guint64;
+#define G_GINT64_CONSTANT(val) $gint64_constant
+_______EOF
+ if test -n "$gint64_format"; then
+ cat >>$outfile <<_______EOF
#define G_GINT64_FORMAT $gint64_format
#define G_GUINT64_FORMAT $guint64_format
-#define G_GINT64_CONSTANT(val) $gint64_constant
-
_______EOF
fi
+ fi
case x$glib_size_t in
x2) echo "typedef gint16 gssize;" >> $outfile
;;
$ac_cv_sizeof_long_long)
gint64='long long'
+ if test -n "$glib_cv_long_long_format"; then
gint64_format='"'$glib_cv_long_long_format'i"'
guint64_format='"'$glib_cv_long_long_format'u"'
+ fi
glib_extension='G_GNUC_EXTENSION '
gint64_constant='(G_GNUC_EXTENSION (val##LL))'
;;
g_assert (gu16t1 == gu16t2);
g_assert (gu32t1 == gu32t2);
-#ifdef G_HAVE_GINT64
+#if defined (G_HAVE_GINT64) && defined (G_GINT64_FORMAT)
gi64t1 = G_GINT64_CONSTANT (-0x3AFAFAFAFAFAFAFA);
gu64t1 = G_GINT64_CONSTANT (0xFAFAFAFAFAFAFAFA);
#define FORMAT64 "%" G_GINT64_FORMAT " %" G_GUINT64_FORMAT "\n"