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;
}
}
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;