From e937ca6614487cf459f96fe1c0f8e67c3068b5dc Mon Sep 17 00:00:00 2001 From: girst Date: Sun, 20 May 2018 22:13:58 +0200 Subject: [PATCH] fix -d maxwidth --- schemes.h | 5 ++++- viiper.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/schemes.h b/schemes.h index 8edbad5..d3c3781 100644 --- a/schemes.h +++ b/schemes.h @@ -23,7 +23,8 @@ struct scheme { char* init_seq; char* reset_seq; - int cell_width; + int cell_width; /* number of characters per cell */ + int display_width; /* how wide a cell appears to be */ }; struct scheme unic0de = { @@ -76,6 +77,7 @@ struct scheme unic0de = { }, .cell_width = 2, + .display_width = 2, }; struct scheme vt220_charset = { @@ -103,6 +105,7 @@ struct scheme vt220_charset = { "\033[?3h", /* reenable DECCOLM (WARN: unconditionally!)*/ .cell_width = 1, + .display_width = 2, }; #endif diff --git a/viiper.c b/viiper.c index 630189b..eeb7cb4 100644 --- a/viiper.c +++ b/viiper.c @@ -418,7 +418,7 @@ void clamp_fieldsize (void) { if (g.h < 10) g.h = 10; if (COL_OFFSET + g.w*CW + COL_OFFSET > w.ws_col) - g.w = (w.ws_col - (COL_OFFSET+COL_OFFSET))/CW; //TODO: does not work in `-d' (in xterm) + g.w = (w.ws_col - (COL_OFFSET+COL_OFFSET))/op.scheme->display_width; if (LINE_OFFSET + g.h + LINES_AFTER > w.ws_row) g.h = w.ws_row - (LINE_OFFSET+LINES_AFTER); } -- 2.39.3