Fix pango title escaping

This commit fixes two bugs.

First, commit [1] has inverted the condition when we escape pango markup. We
need to escape client-provided strings when markup is enabled.

Second, parse_title_format has a shortcut when title_format is set to `%title`,
and escape_pango_markup wasn't used anymore there.

Fixes https://github.com/swaywm/sway/issues/3181

[1]: caee2dff03
This commit is contained in:
emersion 2018-11-25 09:09:32 +01:00
parent 827e5513e0
commit b84bf3585c
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48

View file

@ -835,11 +835,10 @@ static size_t append_prop(char *buffer, const char *value) {
if (!value) {
return 0;
}
// if using pango_markup in font, we need to escape all markup char
// from values to avoid messing with pango markup
if (!config->pango_markup) {
// If using pango_markup in font, we need to escape all markup chars
// from values to make sure tags are not inserted by clients
if (config->pango_markup) {
char *escaped_value = escape_pango_markup(value);
lenient_strcat(buffer, escaped_value);
size_t len = strlen(escaped_value);
free(escaped_value);
@ -856,11 +855,7 @@ static size_t append_prop(char *buffer, const char *value) {
*/
static size_t parse_title_format(struct sway_view *view, char *buffer) {
if (!view->title_format || strcmp(view->title_format, "%title") == 0) {
const char *title = view_get_title(view);
if (buffer && title) {
strcpy(buffer, title);
}
return title ? strlen(title) : 0;
return append_prop(buffer, view_get_title(view));
}
size_t len = 0;