From: Ingo Bürk Date: Sat, 21 Mar 2015 20:33:53 +0000 (+0100) Subject: Introduce a function to copy i3strings X-Git-Tag: 4.10.1~32^2~1 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=827292411727f6e2e775380ea54566a703bdb10f;p=i3%2Fi3 Introduce a function to copy i3strings --- diff --git a/include/libi3.h b/include/libi3.h index c1a11dfc..b60dda5c 100644 --- a/include/libi3.h +++ b/include/libi3.h @@ -169,6 +169,12 @@ i3String *i3string_from_markup_with_length(const char *from_markup, size_t num_b */ i3String *i3string_from_ucs2(const xcb_char2b_t *from_ucs2, size_t num_glyphs); +/** + * Copies the given i3string. + * Note that this will not free the source string. + */ +i3String *i3string_copy(i3String *str); + /** * Free an i3String. * diff --git a/libi3/string.c b/libi3/string.c index afeca974..a28cc899 100644 --- a/libi3/string.c +++ b/libi3/string.c @@ -109,6 +109,17 @@ i3String *i3string_from_ucs2(const xcb_char2b_t *from_ucs2, size_t num_glyphs) { return str; } +/** + * Copies the given i3string. + * Note that this will not free the source string. + */ +i3String *i3string_copy(i3String *str) { + if (str->is_markup) + return i3string_from_markup(i3string_as_utf8(str)); + else + return i3string_from_utf8(i3string_as_utf8(str)); +} + /* * Free an i3String. *