diff options
Diffstat (limited to 'src/dynstr.h')
| -rw-r--r-- | src/dynstr.h | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/src/dynstr.h b/src/dynstr.h deleted file mode 100644 index f18e4f2..0000000 --- a/src/dynstr.h +++ /dev/null @@ -1,122 +0,0 @@ -/** - * @file dynstr.h - * Dynamically allocated string. - */ - -#ifndef DYNSTR_H -#define DYNSTR_H - -/** - * Dynamically allocated string. - * If you modify the content of the struct your self (please don't) make sure - * len is ALWAYS less than size. - */ -typedef struct dynstr_t -{ - /** - * String data, size large and filled with len bytes of string. - * Not null-terminated. - */ - char* data; - /** - * Number of bytes in data - */ - size_t len; - /** - * Size of data in bytes - */ - size_t size; -} dynstr_t; - -#include <string.h> - -/** - * Allocate a dynamically allocated string. - * Returned string is empty but has allocate at least one byte of space. - * Returns NULL in case of allocation error. - * @return empty string - */ -MALLOC dynstr_t* dynstr_new(void); -/** - * Allocate a dynamically allocated string and initialize with parameters. - * Returned string has at least one more byte allocated than len. - * Returns NULL in case of allocation error. - * @param str string to copy len bytes from, may not be NULL - * @param len number of bytes to copy from str - * @return string with given data - */ -MALLOC NONULL dynstr_t* dynstr_new_strn(const char* str, size_t len); -/** - * Allocate a dynamically allocated string and initialize with parameter. - * Returned string has space for at least one more byte. - * Returns NULL in case of allocation error. - * @param str null-terminated string to copy from, may not be NULL - * @return string with given data - */ -static inline MALLOC NONULL dynstr_t* dynstr_new_str(const char* str) -{ - assert(str); - return dynstr_new_strn(str, strlen(str)); -} -/** - * Free a dynamic string. - * @param str string to free, may be NULL - */ -void dynstr_free(dynstr_t* str); - -/** - * Return null-terminated static string and free dynamic string. - * @param str string to free, may not be NULL - * @return null-terminated content of str, never NULL - */ -NONULL char* dynstr_done(dynstr_t* str); - -/** - * Return null-terminated static string. - * The returned string is only valid until the next call to a dynstr method - * on the same string. - * @param str string to free, may not be NULL - * @return null-terminated content of str, never NULL - */ -NONULL const char* dynstr_peek(dynstr_t* str); - -/** - * Append len bytes of data from add to dynamic string. - * @param str string to append to, may not be NULL - * @param add string to append, may not be NULL - * @param len number of bytes to append from add - * @return false in case of allocation error - */ -NONULL bool dynstr_nappend(dynstr_t* str, const char* add, size_t len); - -/** - * Append string to dynamic string. - * @param str string to append to, may not be NULL - * @param add null-terminated string to append, may not be NULL - * @return false in case of allocation error - */ -static inline NONULL bool dynstr_append(dynstr_t* str, const char* add) -{ - assert(add); - return dynstr_nappend(str, add, strlen(add)); -} - -/** - * Append character to dynamic string. - * @param str string to append to, may not be NULL - * @param c character to append - * @return false in case of allocation error - */ -static inline NONULL bool dynstr_appendc(dynstr_t* str, char c) -{ - return dynstr_nappend(str, &c, 1); -} - -/** - * Make dynamic string shorter by cutting of a bit at the end. - * @param str string to cut shorter, may not be NULL - * @param newlen new length of string - */ -NONULL void dynstr_cut(dynstr_t* str, size_t newlen); - -#endif /* DYNSTR_H */ |
