-/*
- * mutt_strwidth is like m_strlenexcept that it returns the width
- * refering to the number of characters cells.
- */
-
-int mutt_strwidth (const char *s)
-{
- wchar_t wc;
- int w;
- ssize_t k, n;
- mbstate_t mbstate;
-
- if (!s)
- return 0;
-
- n = m_strlen(s);
-
- p_clear(&mbstate, 1);
- for (w = 0; n && (k = mbrtowc (&wc, s, n, &mbstate)); s += k, n -= k) {
- if (k == -1 || k == -2) {
- k = (k == -1) ? 1 : n;
- wc = CharsetReplacement;
- }
- if (!iswprint(wc))
- wc = '?';
- w += wcwidth (wc);
- }
- return w;
-}