30#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
31#error "Only <glib.h> can be included directly."
67#if G_GNUC_CHECK_VERSION (2, 0) && (GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_76)
69#if !defined(__cplusplus) || !G_GNUC_CHECK_VERSION (6, 1) || G_GNUC_CHECK_VERSION (7, 3)
71#define g_string_free(str, free_segment) \
72 (__builtin_constant_p (free_segment) ? \
74 (g_string_free) ((str), (free_segment)) : \
75 g_string_free_and_steal (str)) \
77 (g_string_free) ((str), (free_segment)))
158 const gchar *replace,
184 const
gchar *unescaped,
185 const
gchar *reserved_chars_allowed,
190#if defined (_MSC_VER) && !defined (__clang__)
191#pragma warning (push)
192#pragma warning (disable : 4141)
195#ifndef __GTK_DOC_IGNORE__
203 gstring->len + 1 < gstring->allocated_len))
205 gstring->str[gstring->len++] = c;
206 gstring->str[gstring->len] = 0;
213#define g_string_append_c(gstr,c) \
214 g_string_append_c_inline (gstr, c)
231 len_unsigned = strlen (val);
233 len_unsigned = (
gsize) len;
235 if (
G_LIKELY (gstring->len + len_unsigned < gstring->allocated_len))
237 char *end = gstring->str + gstring->len;
238 if (
G_LIKELY (val + len_unsigned <= end || val > end + len_unsigned))
239 memcpy (end, val, len_unsigned);
241 memmove (end, val, len_unsigned);
242 gstring->len += len_unsigned;
243 gstring->str[gstring->len] = 0;
250#define g_string_append_len(gstr, val, len) \
251 g_string_append_len_inline (gstr, val, len)
258 gstring->len =
MIN (len, gstring->len);
259 gstring->str[gstring->len] =
'\0';
263#define g_string_truncate(gstr, len) \
264 g_string_truncate_inline (gstr, len)
266#if G_GNUC_CHECK_VERSION (2, 0)
268#define g_string_append(gstr, val) \
269 (__builtin_constant_p (val) ? \
270 G_GNUC_EXTENSION ({ \
271 const char * const __val = (val); \
272 g_string_append_len (gstr, __val, \
273 G_LIKELY (__val != NULL) ? \
274 (gssize) strlen (_G_STR_NONNULL (__val)) \
278 g_string_append_len (gstr, val, (gssize) -1))
284#if defined (_MSC_VER) && !defined (__clang__)
295#define g_string_sprintf g_string_printf GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_string_printf)
296#define g_string_sprintfa g_string_append_printf GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_string_append_printf)
static size_t find(const char *s, const char *pattern, size_t start)
typedefG_BEGIN_DECLS struct _GBytes GBytes
#define GLIB_AVAILABLE_IN_2_76
#define GLIB_AVAILABLE_IN_2_68
#define GLIB_AVAILABLE_IN_2_34
#define GLIB_AVAILABLE_IN_ALL
#define GLIB_AVAILABLE_IN_2_78
#define G_GNUC_WARN_UNUSED_RESULT
#define G_GNUC_PRINTF(format_idx, arg_idx)
GLIB_AVAILABLE_IN_2_68 guint g_string_replace(GString *string, const gchar *find, const gchar *replace, guint limit)
static G_ALWAYS_INLINE GString * g_string_truncate_inline(GString *gstring, gsize len)
GLIB_AVAILABLE_IN_ALL guint g_string_hash(const GString *str)
GLIB_AVAILABLE_IN_ALL GString * g_string_assign(GString *string, const gchar *rval)
GLIB_AVAILABLE_IN_ALL void g_string_vprintf(GString *string, const gchar *format, va_list args) G_GNUC_PRINTF(2
GLIB_AVAILABLE_IN_ALL GString * g_string_prepend(GString *string, const gchar *val)
GLIB_AVAILABLE_IN_ALL GString * g_string_prepend_unichar(GString *string, gunichar wc)
typedefG_BEGIN_DECLS struct _GString GString
GLIB_AVAILABLE_IN_ALL GString * g_string_overwrite_len(GString *string, gsize pos, const gchar *val, gssize len)
GLIB_DEPRECATED GString * g_string_down(GString *string)
GLIB_AVAILABLE_IN_ALL gboolean g_string_equal(const GString *v, const GString *v2)
GLIB_AVAILABLE_IN_ALL GString * g_string_set_size(GString *string, gsize len)
GLIB_AVAILABLE_IN_ALL GString * g_string_sized_new(gsize dfl_size)
GLIB_AVAILABLE_IN_ALL void GLIB_AVAILABLE_IN_ALL void GLIB_AVAILABLE_IN_ALL void GLIB_AVAILABLE_IN_ALL void g_string_append_printf(GString *string, const gchar *format,...) G_GNUC_PRINTF(2
GLIB_AVAILABLE_IN_ALL GString * g_string_insert_len(GString *string, gssize pos, const gchar *val, gssize len)
GLIB_AVAILABLE_IN_ALL GString * g_string_append(GString *string, const gchar *val)
GLIB_AVAILABLE_IN_ALL GString * g_string_ascii_up(GString *string)
#define g_string_truncate(gstr, len)
static G_ALWAYS_INLINE GString * g_string_append_len_inline(GString *gstring, const char *val, gssize len)
GLIB_AVAILABLE_IN_2_78 GString * g_string_new_take(gchar *init)
GLIB_AVAILABLE_IN_ALL GString * g_string_erase(GString *string, gssize pos, gssize len)
GLIB_AVAILABLE_IN_ALL GString * g_string_insert_unichar(GString *string, gssize pos, gunichar wc)
GLIB_DEPRECATED GString * g_string_up(GString *string)
GLIB_AVAILABLE_IN_ALL GString * g_string_ascii_down(GString *string)
GLIB_AVAILABLE_IN_ALL GString * g_string_insert_c(GString *string, gssize pos, gchar c)
static G_ALWAYS_INLINE GString * g_string_append_c_inline(GString *gstring, gchar c)
GLIB_AVAILABLE_IN_ALL GString * g_string_insert(GString *string, gssize pos, const gchar *val)
GLIB_AVAILABLE_IN_2_34 GBytes * g_string_free_to_bytes(GString *string)
GLIB_AVAILABLE_IN_ALL void GLIB_AVAILABLE_IN_ALL void GLIB_AVAILABLE_IN_ALL void g_string_append_vprintf(GString *string, const gchar *format, va_list args) G_GNUC_PRINTF(2
GLIB_AVAILABLE_IN_2_76 gchar * g_string_free_and_steal(GString *string) G_GNUC_WARN_UNUSED_RESULT
#define g_string_append_len(gstr, val, len)
GLIB_AVAILABLE_IN_ALL gchar * g_string_free(GString *string, gboolean free_segment)
GLIB_AVAILABLE_IN_ALL GString * g_string_overwrite(GString *string, gsize pos, const gchar *val)
GLIB_AVAILABLE_IN_ALL GString * g_string_new(const gchar *init)
GLIB_AVAILABLE_IN_ALL void GLIB_AVAILABLE_IN_ALL void GLIB_AVAILABLE_IN_ALL void GLIB_AVAILABLE_IN_ALL void GLIB_AVAILABLE_IN_ALL GString * g_string_append_uri_escaped(GString *string, const gchar *unescaped, const gchar *reserved_chars_allowed, gboolean allow_utf8)
#define g_string_append_c(gstr, c)
GLIB_AVAILABLE_IN_ALL GString * g_string_new_len(const gchar *init, gssize len)
GLIB_AVAILABLE_IN_ALL void GLIB_AVAILABLE_IN_ALL void g_string_printf(GString *string, const gchar *format,...) G_GNUC_PRINTF(2
GLIB_AVAILABLE_IN_ALL GString * g_string_prepend_c(GString *string, gchar c)
GLIB_AVAILABLE_IN_ALL GString * g_string_append_unichar(GString *string, gunichar wc)
GLIB_AVAILABLE_IN_ALL GString * g_string_prepend_len(GString *string, const gchar *val, gssize len)
G_BEGIN_DECLS typedef char gchar
G_BEGIN_DECLS typedef guint32 gunichar
json_t format(printf, 1, 2)))