diff options
author | Søren Sandmann <sandmann@redhat.com> | 2008-11-08 07:03:36 -0500 |
---|---|---|
committer | Søren Sandmann <sandmann@redhat.com> | 2008-11-08 07:03:36 -0500 |
commit | beea00c337ceb360739aa2bd435bea88b286c0dc (patch) | |
tree | 0e6d5c1bf8436e374d54d9ece407278e6e6960e8 | |
parent | 69db4fe2701e3ca793ac15d4ff65772194a94968 (diff) |
Add string API
-rw-r--r-- | libnul.h | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -21,6 +21,7 @@ #include <stdint.h> #include <glib.h> +#include <stdarg.h> /* These macros come from glib */ @@ -49,6 +50,35 @@ void **nul_parr_append (void **arr, gpointer data) G_GNUC_WARN_UNUSED_RESULT; gsize nul_parr_len (void **arr); void nul_parr_free (void **arr); +/* Strings */ +typedef char nul_string_t; + +nul_string_t *nul_string_new (void); +void nul_string_free (void); +gsize nul_string_len (const nul_string_t *str); +gboolean nul_string_empty (const nul_string_t *str); +nul_string_t *nul_string_append_undefined (nul_string_t *string, + gsize n_bytes, + nul_string_t **tail); +nul_string_t *nul_string_append (nul_string_t *string, + const char *bytes, + gssize n_bytes); +nul_string_t *nul_string_append_printf (nul_string_t *string, + const char *fmt, + ...); +nul_string_t *nul_string_append_vprintf (nul_string_t *string, + const char *fmt, + va_list args); +void nul_string_swap (nul_string_t **str1, + nul_string_t **str2); +void nul_string_transfer_data (nul_string_t **dest, + nul_string_t **src, + gssize n_bytes); +nul_string_t *nul_string_delete_head (nul_string_t *str, + gsize n_bytes); +nul_string_t *nul_string_delete_tail (nul_string_t *str, + gsize n_bytes); + typedef union { uint32_t v_uint32; |