[glib: 7/11] tests W32: ugly fix for sscanf() format
- From: Xavier Claessens <xclaesse src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib: 7/11] tests W32: ugly fix for sscanf() format
- Date: Fri, 21 Sep 2018 13:19:19 +0000 (UTC)
commit 4c91334412f89623dc4be4b11549ecb194395633
Author: Руслан Ижбулатов <lrn1986 gmail com>
Date: Thu Sep 20 05:21:38 2018 +0000
tests W32: ugly fix for sscanf() format
As we recently established, G_G*_FORMAT macros are for glib
functions *only*. It's not guaranteed that they will work for
C runtime printf() or scanf() variants, and indeed - in this case
they do not (GCC thinks that MSVCRT sscanf() requires %I64 prefix
for 64-bit values; whether that is true or not is irrelevant at this
point - we need to make the werror go away).
tests/type-test.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
---
diff --git a/tests/type-test.c b/tests/type-test.c
index ed7cc44cf..43da39472 100644
--- a/tests/type-test.c
+++ b/tests/type-test.c
@@ -120,8 +120,13 @@ main (int argc,
gu64t1 = G_GINT64_CONSTANT (0xFAFAFAFAFAFAFAFA);
#define FORMAT64 "%" G_GINT64_FORMAT " %" G_GUINT64_FORMAT "\n"
+#ifndef G_OS_WIN32
+# define SCAN_FORMAT64 FORMAT64
+#else
+# define SCAN_FORMAT64 "%I64d %I64u\n"
+#endif
string = g_strdup_printf (FORMAT64, gi64t1, gu64t1);
- sscanf (string, FORMAT64, &gi64t2, &gu64t2);
+ sscanf (string, SCAN_FORMAT64, &gi64t2, &gu64t2);
g_free (string);
g_assert (gi64t1 == gi64t2);
g_assert (gu64t1 == gu64t2);
@@ -130,8 +135,13 @@ main (int argc,
gst1 = 0xFAFAFAFA;
#define FORMATSIZE "%" G_GSSIZE_FORMAT " %" G_GSIZE_FORMAT "\n"
+#ifndef G_OS_WIN32
+# define SCAN_FORMATSIZE FORMATSIZE
+#else
+# define SCAN_FORMATSIZE "%Id %Iu\n"
+#endif
string = g_strdup_printf (FORMATSIZE, gsst1, gst1);
- sscanf (string, FORMATSIZE, &gsst2, &gst2);
+ sscanf (string, SCAN_FORMATSIZE, &gsst2, &gst2);
g_free (string);
g_assert (gsst1 == gsst2);
g_assert (gst1 == gst2);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]