git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 055467d)
Must count '*' characters as potential arguments.
2005年4月14日 20:53:09 +0000 (20:53 +0000)
2005年4月14日 20:53:09 +0000 (20:53 +0000)

diff --git a/src/port/snprintf.c b/src/port/snprintf.c
index 38034b519d3e563851e4367ab16d834224f7fea6..04a5eb58b249b88848419c2c4d5db9527c45a373 100644 (file)
--- a/src/port/snprintf.c
+++ b/src/port/snprintf.c
@@ -62,7 +62,7 @@
* causing nasty effects.
**************************************************************/
-/*static char _id[] = "$PostgreSQL: pgsql/src/port/snprintf.c,v 1.26 2005年03月20日 13:54:53 momjian Exp $";*/
+/*static char _id[] = "$PostgreSQL: pgsql/src/port/snprintf.c,v 1.27 2005年04月14日 20:53:09 tgl Exp $";*/
static void dopr(char *buffer, const char *format, va_list args, char *end);
@@ -194,7 +194,7 @@ dopr(char *buffer, const char *format, va_list args, char *end)
int precision;
int position;
char *output;
- int percents = 1;
+ int nargs = 1;
const char *p;
struct fmtpar
{
@@ -220,18 +220,22 @@ dopr(char *buffer, const char *format, va_list args, char *end)
int longlongflag;
} *fmtpar, **fmtparptr;
- /* Create enough structures to hold all arguments */
+ /*
+ * Create enough structures to hold all arguments. This overcounts,
+ * eg not all '*' characters are necessarily arguments, but it's not
+ * worth being exact.
+ */
for (p = format; *p != '0円'; p++)
- if (*p == '%') /* counts %% as two, so overcounts */
- percents++;
+ if (*p == '%' || *p == '*')
+ nargs++;
/* Need to use malloc() because memory system might not be started yet. */
- if ((fmtpar = malloc(sizeof(struct fmtpar) * percents)) == NULL)
+ if ((fmtpar = malloc(sizeof(struct fmtpar) * nargs)) == NULL)
{
fprintf(stderr, _("out of memory\n"));
exit(1);
}
- if ((fmtparptr = malloc(sizeof(struct fmtpar *) * percents)) == NULL)
+ if ((fmtparptr = malloc(sizeof(struct fmtpar *) * nargs)) == NULL)
{
fprintf(stderr, _("out of memory\n"));
exit(1);
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /