More string and buffer functions.
[apps/madmutt.git] / lib-lib / str.c
index c71c459..604628d 100644 (file)
@@ -248,6 +248,9 @@ 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;
@@ -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;