diff --git a/window-choose.c b/window-choose.c index 7f24967d..81a39a9c 100644 --- a/window-choose.c +++ b/window-choose.c @@ -1,4 +1,4 @@ -/* $Id: window-choose.c,v 1.14 2009-05-04 17:58:27 nicm Exp $ */ +/* $OpenBSD: window-choose.c,v 1.2 2009/06/24 23:00:31 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -285,10 +285,12 @@ window_choose_write_line( struct window_choose_mode_item *item; struct screen *s = &data->screen; struct grid_cell gc; + int utf8flag; if (data->callback == NULL) fatalx("called before callback assigned"); + utf8flag = options_get_number(&wp->window->options, "utf8"); memcpy(&gc, &grid_default_cell, sizeof gc); if (data->selected == data->top + py) { gc.fg = options_get_number(&wp->window->options, "mode-bg"); @@ -299,12 +301,11 @@ window_choose_write_line( screen_write_cursormove(ctx, 0, py); if (data->top + py < ARRAY_LENGTH(&data->list)) { item = &ARRAY_ITEM(&data->list, data->top + py); - screen_write_puts( - ctx, &gc, "%.*s", (int) screen_size_x(s), item->name); + screen_write_nputs( + ctx, screen_size_x(s) - 1, &gc, utf8flag, "%s", item->name); } while (s->cx < screen_size_x(s)) screen_write_putc(ctx, &gc, ' '); - } void diff --git a/window-more.c b/window-more.c index 97009a81..998d5c2c 100644 --- a/window-more.c +++ b/window-more.c @@ -1,4 +1,4 @@ -/* $Id: window-more.c,v 1.29 2009-02-13 21:39:45 nicm Exp $ */ +/* $OpenBSD: window-more.c,v 1.2 2009/06/24 23:00:31 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -175,7 +175,9 @@ window_more_write_line( struct grid_cell gc; char *msg, hdr[32]; size_t size; + int utf8flag; + utf8flag = options_get_number(&wp->window->options, "utf8"); memcpy(&gc, &grid_default_cell, sizeof gc); if (py == 0) { @@ -193,8 +195,8 @@ window_more_write_line( screen_write_cursormove(ctx, 0, py); if (data->top + py < ARRAY_LENGTH(&data->list)) { msg = ARRAY_ITEM(&data->list, data->top + py); - screen_write_puts( - ctx, &gc, "%.*s", (int) (screen_size_x(s) - size), msg); + screen_write_nputs( + ctx, screen_size_x(s) - 1 - size, &gc, utf8flag, "%s", msg); } while (s->cx < screen_size_x(s) - size) screen_write_putc(ctx, &gc, ' ');