diff --git a/configure.in b/configure.in index c9285fbc2..185a25ff6 100644 --- a/configure.in +++ b/configure.in @@ -2846,6 +2846,10 @@ _______EOF typedef signed $glib_intptr_type_define gintptr; typedef unsigned $glib_intptr_type_define guintptr; + +#define G_GINTPTR_MODIFIER $gintptr_modifier +#define G_GINTPTR_FORMAT $gintptr_format +#define G_GUINTPTR_FORMAT $guintptr_format _______EOF else echo '#error SIZEOF_VOID_P unknown - This should never happen' >>$outfile @@ -3225,21 +3229,33 @@ glongbits=`expr $ac_cv_sizeof_long \* 8` case $ac_cv_sizeof_void_p in $ac_cv_sizeof_int) glib_intptr_type_define=int + gintptr_modifier='""' + gintptr_format='"i"' + guintptr_format='"u"' glib_gpi_cast='' glib_gpui_cast='' ;; $ac_cv_sizeof_long) glib_intptr_type_define=long + gintptr_modifier='"l"' + gintptr_format='"li"' + guintptr_format='"lu"' glib_gpi_cast='(glong)' glib_gpui_cast='(gulong)' ;; $ac_cv_sizeof_long_long) glib_intptr_type_define='long long' + gintptr_modifier='"I64"' + gintptr_format='"I64i"' + guintptr_format='"I64u"' glib_gpi_cast='(gint64)' glib_gpui_cast='(guint64)' ;; $ac_cv_sizeof___int64) glib_intptr_type_define=__int64 + gintptr_modifier='"I64"' + gintptr_format='"I64i"' + guintptr_format='"I64u"' glib_gpi_cast='(gint64)' glib_gpui_cast='(guint64)' ;; diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt index b99f9b3d6..55370c24a 100644 --- a/docs/reference/glib/glib-sections.txt +++ b/docs/reference/glib/glib-sections.txt @@ -372,6 +372,9 @@ G_GSIZE_FORMAT G_GSSIZE_FORMAT G_GOFFSET_MODIFIER G_GOFFSET_FORMAT +G_GINTPTR_MODIFIER +G_GINTPTR_FORMAT +G_GUINTPTR_FORMAT GLIB_VAR diff --git a/docs/reference/glib/tmpl/macros_misc.sgml b/docs/reference/glib/tmpl/macros_misc.sgml index 9dbd65cb1..4a8615807 100644 --- a/docs/reference/glib/tmpl/macros_misc.sgml +++ b/docs/reference/glib/tmpl/macros_misc.sgml @@ -626,4 +626,30 @@ printing values of type #goffset. See also #G_GINT64_FORMAT. Since: 2.20 + + +The platform dependent length modifier for conversion specifiers for scanning +and printing values of type #gintptr or #guintptr. It is a string literal. + + +@Since: 2.22 + + + + +This is the platform dependent conversion specifier for scanning and +printing values of type #gintptr. + + +@Since: 2.22 + + + + +This is the platform dependent conversion specifier for scanning and +printing values of type #guintptr. + + +@Since: 2.22 + diff --git a/docs/reference/glib/tmpl/types.sgml b/docs/reference/glib/tmpl/types.sgml index 28ceea348..fc3111bb8 100644 --- a/docs/reference/glib/tmpl/types.sgml +++ b/docs/reference/glib/tmpl/types.sgml @@ -271,6 +271,10 @@ To print or scan values of this type, use A signed integer type that is used for file offsets, corresponding to the C99 type off64_t. + +To print or scan values of this type, use +%G_GOFFSET_MODIFIER and/or %G_GOFFSET_FORMAT. + Since: 2.14 @@ -290,6 +294,10 @@ Since: 2.20 Corresponds to the C99 type intptr_t, a signed integer type that can hold any pointer. + +To print or scan values of this type, use +%G_GINTPTR_MODIFIER and/or %G_GINTPTR_FORMAT. + Since: 2.18 @@ -299,5 +307,9 @@ Since: 2.18 Corresponds to the C99 type uintptr_t, an unsigned integer type that can hold any pointer. + +To print or scan values of this type, use +%G_GINTPTR_MODIFIER and/or %G_GUINTPTR_FORMAT. + Since: 2.18