diff --git a/lib/str.h b/lib/str.h index fbb5be34a..bead24c02 100644 --- a/lib/str.h +++ b/lib/str.h @@ -41,7 +41,11 @@ TYPED_GQUEUE(str, str) #define STR_GS(s) ((str) { (s)->str, (s)->len }) #define STR_LEN(s, len) ((str) { (char *) (s), len }) #define STR_LEN_ASSERT(s, len) ({ assert(sizeof(s) >= len); (str) { (char *) (s), len }; }) +#if GLIB_CHECK_VERSION(2,68,0) +#define STR_DUP(s) ({ size_t __l = strlen(s); (str) { g_memdup2(s, __l + 1), __l }; }) +#else #define STR_DUP(s) ((str) { g_strdup(s), strlen(s) }) +#endif #define STR_CONST_BUF(buf) ((str) { (char *) &buf, sizeof(buf) })