[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Changes to m4/modules/format.c,v
From: |
Eric Blake |
Subject: |
Changes to m4/modules/format.c,v |
Date: |
Mon, 09 Jul 2007 13:21:57 +0000 |
CVSROOT: /sources/m4
Module name: m4
Changes by: Eric Blake <ericb> 07/07/09 13:21:57
Index: modules/format.c
===================================================================
RCS file: /sources/m4/m4/modules/format.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- modules/format.c 30 May 2007 13:36:59 -0000 1.22
+++ modules/format.c 9 Jul 2007 13:21:57 -0000 1.23
@@ -87,7 +87,7 @@
/* Buffer and stuff. */
char *str; /* malloc'd buffer of formatted text */
- enum {INT, LONG, DOUBLE, STR} datatype;
+ enum {CHAR, INT, LONG, DOUBLE, STR} datatype;
f = fmt = ARG_STR (argc, argv);
memset (ok, 0, sizeof ok);
@@ -238,14 +238,13 @@
fmt--;
continue;
}
- *p++ = c;
- *p = '\0';
/* Specifiers. We don't yet recognize C, S, n, or p. */
switch (c)
{
case 'c':
- datatype = INT;
+ datatype = CHAR;
+ p -= 2; /* %.*c is undefined, so undo the '.*'. */
break;
case 's':
@@ -275,9 +274,15 @@
default:
abort ();
}
+ *p++ = c;
+ *p = '\0';
switch (datatype)
{
+ case CHAR:
+ str = xasprintf (fstart, width, ARG_INT (argc, argv));
+ break;
+
case INT:
str = xasprintf (fstart, width, prec, ARG_INT (argc, argv));
break;
- Changes to m4/modules/format.c,v,
Eric Blake <=