aboutsummaryrefslogtreecommitdiffstats
path: root/sway/tree/view.c
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-09-21 21:27:36 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-09-22 18:33:28 +1000
commit10ef118e09435a6fa7815a40829126490d9a7d67 (patch)
tree91a73019ddb8482d90cf79e3f5cdf2c1f1a8c789 /sway/tree/view.c
parentMerge pull request #2678 from RyanDwyer/reconfigure-on-reposition (diff)
downloadsway-10ef118e09435a6fa7815a40829126490d9a7d67.tar.gz
sway-10ef118e09435a6fa7815a40829126490d9a7d67.tar.zst
sway-10ef118e09435a6fa7815a40829126490d9a7d67.zip
Fix pango escaping and refactor escape_markup_text
Fixes #2674. The cause of the issue was in get_pango_layout. When we call pango_parse_markup, `text` is the escaped string, and the unescaped string is then computed and written to `buf`. We were then passing the unescaped string to pango_layout_set_markup, but this function needs the escaped string. `buf` is not needed and has been removed. The other part of this PR refactors escape_markup_text to remove the dest_length argument and removes the -1 return value on error. It now assumes that you've allocated dest to the correct length.
Diffstat (limited to 'sway/tree/view.c')
-rw-r--r--sway/tree/view.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c
index 4398f518..f61f5c84 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -785,14 +785,9 @@ static size_t parse_title_format(struct sway_view *view, char *buffer) {
785} 785}
786 786
787static char *escape_title(char *buffer) { 787static char *escape_title(char *buffer) {
788 int length = escape_markup_text(buffer, NULL, 0); 788 size_t length = escape_markup_text(buffer, NULL);
789 char *escaped_title = calloc(length + 1, sizeof(char)); 789 char *escaped_title = calloc(length + 1, sizeof(char));
790 int result = escape_markup_text(buffer, escaped_title, length); 790 escape_markup_text(buffer, escaped_title);
791 if (result != length) {
792 wlr_log(WLR_ERROR, "Could not escape title: %s", buffer);
793 free(escaped_title);
794 return buffer;
795 }
796 free(buffer); 791 free(buffer);
797 return escaped_title; 792 return escaped_title;
798} 793}