diff options
Diffstat (limited to 'src/str.cpp')
| -rw-r--r-- | src/str.cpp | 32 | 
1 files changed, 32 insertions, 0 deletions
| diff --git a/src/str.cpp b/src/str.cpp new file mode 100644 index 0000000..a0792c8 --- /dev/null +++ b/src/str.cpp @@ -0,0 +1,32 @@ +#include "str.hpp" + +#include "utils.hpp" +#include <stdlib.h> +#include <string.h> + + +XiftString::XiftString(char *&str): str(str) +{ +    str  = (char *)malloc(1); +    *str = 0; +    len  = 0; +    size = 1; +} + +void XiftString::Put(char c) +{ +    xift_str_add(str, len, size, c); +} + +void XiftString::Put(const char *addon) +{ +    int alen = strlen(addon); +    if (len + alen >= size) { +        size = len + alen + 1; +        str  = (char *)realloc(str, size); +    } +    if (str) { +        memcpy(str + len, addon, alen + 1); +        len += alen; +    } +} | 
