From d523b41200eb80597bf1c54a9e4b1b3204b3128d Mon Sep 17 00:00:00 2001 From: nick black Date: Mon, 17 Aug 2020 15:57:11 -0400 Subject: [PATCH] utf8_egc_len: work around treacherous wcwidth #903 --- src/demo/mojibake.c | 2 +- src/lib/egcpool.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/demo/mojibake.c b/src/demo/mojibake.c index fb7c47951..f2a0dbbc7 100644 --- a/src/demo/mojibake.c +++ b/src/demo/mojibake.c @@ -3528,8 +3528,8 @@ makegroup(struct ncplane* title, int y, const char* emoji, const char* name){ if(bytes < 0){ break; } -fprintf(stderr, "PLACING %d/%d: %zu [%s]\n", y, x, strlen(cell_extended_gcluster(n, &c)), cell_extended_gcluster(n, &c)); int w = ncplane_putc_yx(n, y, x, &c); +//fprintf(stderr, "PLACED %d/%d (%d): %zu [%s]\n", y, x, w, strlen(cell_extended_gcluster(n, &c)), cell_extended_gcluster(n, &c)); cell_release(n, &c); if(w < 0){ ncplane_destroy(n); diff --git a/src/lib/egcpool.h b/src/lib/egcpool.h index 429503d15..298e6ddc4 100644 --- a/src/lib/egcpool.h +++ b/src/lib/egcpool.h @@ -88,7 +88,8 @@ utf8_egc_len(const char* gcluster, int* colcount){ if(iswspace(wc)){ // newline or tab return ret + 1; } - cols = 0; + ret += r; + break; } *colcount += cols; }