* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
- * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ * © 2009 Michael Stapelberg and contributors (see also: LICENSE)
*
* string.c: Define an i3String type to automagically handle UTF-8/UCS-2
* conversions. Some font backends need UCS-2 (X core fonts),
#include <stdlib.h>
#include <string.h>
+#if PANGO_SUPPORT
+#include <glib.h>
+#endif
+
#include "libi3.h"
struct _i3String {
return str;
}
+/**
+ * Copies the given i3string.
+ * Note that this will not free the source string.
+ */
+i3String *i3string_copy(i3String *str) {
+ i3String *copy = i3string_from_utf8(i3string_as_utf8(str));
+ copy->is_markup = str->is_markup;
+ return copy;
+}
+
/*
* Free an i3String.
*
return str->is_markup;
}
+/*
+ * Set whether the i3String should use Pango markup.
+ */
+void i3string_set_markup(i3String *str, bool is_markup) {
+ str->is_markup = is_markup;
+}
+
+/*
+ * Escape pango markup characters in the given string.
+ */
+i3String *i3string_escape_markup(i3String *str) {
+#if PANGO_SUPPORT
+ const char *text = i3string_as_utf8(str);
+ return i3string_from_utf8(g_markup_escape_text(text, -1));
+#else
+ return str;
+#endif
+}
+
/*
* Returns the number of glyphs in an i3String.
*