chiark / gitweb /
Commit as 2.1.0.
[mLib] / dputf.c
diff --git a/dputf.c b/dputf.c
index 85b6c65eabe17aac8ec61b42c38539dc82eeabc3..2c29aad0d8fb814b6c4cb025dadfeba9e289a9d8 100644 (file)
--- a/dputf.c
+++ b/dputf.c
@@ -1,13 +1,13 @@
 /* -*-c-*-
  *
- * $Id: dputf.c,v 1.6 2004/04/08 01:36:11 mdw Exp $
+ * $Id$
  *
  * `printf'-style formatting for dynamic strings
  *
  * (c) 1999 Straylight/Edgeware
  */
 
-/*----- Licensing notice --------------------------------------------------* 
+/*----- Licensing notice --------------------------------------------------*
  *
  * This file is part of the mLib utilities library.
  *
  * it under the terms of the GNU Library General Public License as
  * published by the Free Software Foundation; either version 2 of the
  * License, or (at your option) any later version.
- * 
+ *
  * mLib is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Library General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU Library General Public
  * License along with mLib; if not, write to the Free
  * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
@@ -29,6 +29,8 @@
 
 /*----- Header files ------------------------------------------------------*/
 
+#include "config.h"
+
 #include <ctype.h>
 #include <math.h>
 #include <stdarg.h>
@@ -131,6 +133,7 @@ int dstr_vputf(dstr *d, const char *p, va_list *ap)
          DPUTC(&dd, '.');
          ip = &prec;
          f |= f_prec;
+         p++;
          goto getnum;
        case '*':
          ip = &wd;
@@ -144,7 +147,7 @@ int dstr_vputf(dstr *d, const char *p, va_list *ap)
          }
          DPUTC(d, *p);
          goto formatted;
-        getnum:
+       getnum:
          *ip = 0;
          if (*p == '*') {
            *ip = va_arg(*ap, int);
@@ -192,7 +195,7 @@ int dstr_vputf(dstr *d, const char *p, va_list *ap)
          if (!(f & f_prec))
            prec = 6;
          else
-           sz += prec + 16;        
+           sz += prec + 16;
          if ((f & f_wd) && wd + 1 > sz)
            sz = wd + 1;
          DENSURE(d, sz);