From 2ccad2310ef04e5dff8a3717182cb7b065553185 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Fri, 11 Aug 2006 21:30:38 +0000 Subject: 22599: use wide character widths in completion --- Src/utils.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'Src/utils.c') diff --git a/Src/utils.c b/Src/utils.c index 8fdf2c0ab..2bfae667c 100644 --- a/Src/utils.c +++ b/Src/utils.c @@ -3937,11 +3937,13 @@ mb_metacharlenconv(const char *s, wint_t *wcp) * Total number of multibyte characters in metafied string s. * Same answer as iterating mb_metacharlen() and counting calls * until end of string. + * + * If width is 1, return total character width rather than number. */ /**/ int -mb_metastrlen(char *ptr) +mb_metastrlen(char *ptr, int width) { char inchar, *laststart; size_t ret; @@ -3971,9 +3973,12 @@ mb_metastrlen(char *ptr) /* Reset, treat as single character */ memset(&mb_shiftstate, 0, sizeof(mb_shiftstate)); ptr = laststart + (*laststart == Meta) + 1; - } + num++; + } else if (width) + num += wcwidth(wc); + else + num++; laststart = ptr; - num++; num_in_char = 0; } } -- cgit 1.4.1