[glib/wip/3v1n0/g_str_has_optimization: 3/7] gstrfuncs: Cleanup has suffix/prefix macros code




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]