]> git.marmaro.de Git - mmh/blobdiff - sbr/fmt_scan.c
fix bug with insertion of newline being wrong if the num function was used at
[mmh] / sbr / fmt_scan.c
index c049ad43b73fbfe261d86e1384a35a1eb5b61e80..b27f7c6c9f259fa7108f6eb802678e4cc4abb4e5 100644 (file)
@@ -342,8 +342,12 @@ fmt_scan (struct format *format, char *scanl, int width, int *dat)
            adios (NULL, "internal error (FT_STRFW)");
 
        case FT_NUM:
-           n = snprintf(cp, ep - cp, "%d", value);
-           if (n >= 0) cp += n;
+           n = snprintf(cp, ep - cp + 1, "%d", value);
+           if (n >= 0)
+               if (n >= ep - cp) {
+                   cp = ep;
+               } else
+                   cp += n;
            break;
        case FT_NUMF:
            cpnumber (&cp, value, fmt->f_width, fmt->f_fill, ep - cp);