[glib/wip/3v1n0/g_str_has_optimization: 3/7] gstrfuncs: Cleanup has suffix/prefix macros code
- From: Marco Trevisan <marcotrevi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/wip/3v1n0/g_str_has_optimization: 3/7] gstrfuncs: Cleanup has suffix/prefix macros code
- Date: Thu, 13 Oct 2022 00:19:24 +0000 (UTC)
commit a08f8bc437f453cf2b388af39cd1c29987406e8a
Author: Marco Trevisan (TreviƱo) <mail 3v1n0 net>
Date: Thu Oct 13 02:05:24 2022 +0200
gstrfuncs: Cleanup has suffix/prefix macros code
glib/gstrfuncs.h | 54 +++++++++++++++++++++++++++++++-----------------------
1 file changed, 31 insertions(+), 23 deletions(-)
---
diff --git a/glib/gstrfuncs.h b/glib/gstrfuncs.h
index 88c8c3cf7d..ef3ac6e3a3 100644
--- a/glib/gstrfuncs.h
+++ b/glib/gstrfuncs.h
@@ -145,29 +145,37 @@ GLIB_AVAILABLE_IN_ALL
gboolean g_str_has_prefix (const gchar *str,
const gchar *prefix);
-#if defined(__GNUC__) && (__GNUC__ > 2)
-
-#define g_str_has_prefix(STR, PREFIX) \
- ((STR != NULL && PREFIX != NULL && __builtin_constant_p (PREFIX)) ? G_GNUC_EXTENSION ({ \
- const char *const __str = STR; \
- const char *const __prefix = PREFIX; \
- const size_t __str_len = strlen (__str); \
- const size_t __prefix_len = strlen (__prefix); \
- (__str_len >= __prefix_len) ? memcmp (__str, __prefix, __prefix_len) == 0 : FALSE; \
- }) \
- : (g_str_has_prefix) (STR, PREFIX))
-
-#define g_str_has_suffix(STR, SUFFIX)
\
- ((STR != NULL && SUFFIX != NULL && __builtin_constant_p (SUFFIX)) ? G_GNUC_EXTENSION ({
\
- const char *const __str = STR;
\
- const char *const __suffix = SUFFIX;
\
- const size_t __str_len = strlen (__str);
\
- const size_t __suffix_len = strlen (__suffix);
\
- (__str_len >= __suffix_len) ? memcmp (__str + __str_len - __suffix_len, __suffix, __suffix_len) == 0 :
FALSE; \
- })
\
- : (g_str_has_suffix) (STR, SUFFIX))
-
-#endif
+#if G_GNUC_CHECK_VERSION (2, 0)
+
+#define g_str_has_prefix(STR, PREFIX) \
+ (((STR) != NULL && (PREFIX) != NULL && __builtin_constant_p ((PREFIX))) ? \
+ G_GNUC_EXTENSION ({ \
+ const char *const __str = ((STR)); \
+ const char *const __prefix = ((PREFIX)); \
+ const size_t __str_len = strlen (__str); \
+ const size_t __prefix_len = strlen (__prefix); \
+ (__str_len >= __prefix_len) ? \
+ (memcmp (__str, __prefix, __prefix_len) == 0) : FALSE; \
+ }) \
+ : \
+ (g_str_has_prefix) ((STR), (PREFIX)))
+
+#define g_str_has_suffix(STR, SUFFIX) \
+ (((STR) != NULL && (SUFFIX) != NULL && __builtin_constant_p ((SUFFIX))) ? \
+ G_GNUC_EXTENSION ({ \
+ const char *const __str = ((STR)); \
+ const char *const __suffix = ((SUFFIX)); \
+ const size_t __str_len = strlen (__str); \
+ const size_t __suffix_len = strlen (__suffix); \
+ (__str_len >= __suffix_len) ? \
+ (memcmp (__str + __str_len - __suffix_len, \
+ __suffix, \
+ __suffix_len) == 0) : FALSE; \
+ }) \
+ : \
+ (g_str_has_suffix) ((STR), (SUFFIX)))
+
+#endif /* G_GNUC_CHECK_VERSION (2, 0) */
/* String to/from double conversion functions */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]