diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/fe-common/core/hilight-text.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/fe-common/core/hilight-text.c b/src/fe-common/core/hilight-text.c index 037cde5c..dd38be87 100644 --- a/src/fe-common/core/hilight-text.c +++ b/src/fe-common/core/hilight-text.c @@ -399,34 +399,29 @@ static void sig_print_text(TEXT_DEST_REC *dest, const char *text, char *middle; int pos, color_pos, color_len; - tmp = g_string_new(NULL); - /* start of the line */ pos = strip_real_length(text, hilight_start, NULL, NULL); - g_string_append(tmp, text); - g_string_truncate(tmp, pos); + tmp = g_string_new_len(text, pos); /* color */ g_string_append(tmp, color); /* middle of the line, stripped */ - middle = strip_codes(text+pos); - pos = tmp->len; - g_string_append(tmp, middle); - g_string_truncate(tmp, pos+hilight_len); + middle = strip_codes(text + pos); + g_string_append_len(tmp, middle, hilight_len); g_free(middle); /* end of the line */ pos = strip_real_length(text, hilight_end, &color_pos, &color_len); if (color_pos > 0) - g_string_append_len(tmp, text+color_pos, color_len); + g_string_append_len(tmp, text + color_pos, color_len); else { /* no colors in line, change back to default */ g_string_append_c(tmp, 4); g_string_append_c(tmp, FORMAT_STYLE_DEFAULTS); } - g_string_append(tmp, text+pos); + g_string_append(tmp, text + pos); newstr = tmp->str; g_string_free(tmp, FALSE); |