summaryrefslogtreecommitdiff
path: root/clients/terminal.c
diff options
context:
space:
mode:
Diffstat (limited to 'clients/terminal.c')
-rw-r--r--clients/terminal.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/clients/terminal.c b/clients/terminal.c
index beec877f..924549e1 100644
--- a/clients/terminal.c
+++ b/clients/terminal.c
@@ -772,10 +772,10 @@ terminal_resize_cells(struct terminal *terminal,
} else {
terminal->max_width = width;
data_pitch = width * sizeof(union utf8_char);
- data = zalloc(data_pitch * terminal->buffer_height);
+ data = xzalloc(data_pitch * terminal->buffer_height);
attr_pitch = width * sizeof(struct attr);
- data_attr = malloc(attr_pitch * terminal->buffer_height);
- tab_ruler = zalloc(width);
+ data_attr = xmalloc(attr_pitch * terminal->buffer_height);
+ tab_ruler = xzalloc(width);
attr_init(data_attr, terminal->curr_attr,
width * terminal->buffer_height);
@@ -1094,6 +1094,12 @@ redraw_handler(struct widget *widget, void *data)
cairo_stroke(cr);
}
+ /* skip space glyph (RLE) we use as a placeholder of
+ the right half of a double-width character,
+ because RLE is not available in every font. */
+ if (p_row[col].ch == 0x200B)
+ continue;
+
glyph_run_add(&run, text_x, text_y, &p_row[col]);
}
}