X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-lib%2Fstr.c;h=604628d16be462e4cbe8dbfa3e7a1e75d7f3abac;hp=53f6ebb7768ede0369fa85b7dc7a8ee386fcd463;hb=049b21f53af51ad7259613f5eefaa0f37b1b2167;hpb=15d63145b9f11a1fa58c74abbeab7533ea2e5d21 diff --git a/lib-lib/str.c b/lib-lib/str.c index 53f6ebb..604628d 100644 --- a/lib-lib/str.c +++ b/lib-lib/str.c @@ -248,9 +248,12 @@ ssize_t m_strwidth (const char *s) case -1: /* assume we will replace that char with a ? later */ wc = '?'; + pos ++; + break; + default: w += iswprint(wc) ? wcwidth(wc) : 1; - pos -= nb; + pos += nb; } } @@ -260,9 +263,10 @@ ssize_t m_strwidth (const char *s) ssize_t m_strformat(char *dst, ssize_t dlen, int width, const char *fmt, format_t *callback, anytype cdata, format_flag flags) { - ssize_t pos = flags & M_FORMAT_ARROWCURSOR ? 3 : 0; + ssize_t pos = 0; - m_strpad(dst, dlen, '\0', pos + 1); + if (dlen) + *dst = '\0'; if (!fmt) return pos;