From 418e1d82fd113ac8d7ec20f7aeeefc0a4e563ebb Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Wed, 16 Jun 2010 00:54:16 +0000 Subject: Refactor sprintf calls with computed format strings into multiple calls with constant format strings, so that the compiler can more easily check the formats for correctness. --- src/interfaces/ecpg/pgtypeslib/dt_common.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'src/interfaces') diff --git a/src/interfaces/ecpg/pgtypeslib/dt_common.c b/src/interfaces/ecpg/pgtypeslib/dt_common.c index 52bb5d2ca17..dc430f7881f 100644 --- a/src/interfaces/ecpg/pgtypeslib/dt_common.c +++ b/src/interfaces/ecpg/pgtypeslib/dt_common.c @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/dt_common.c,v 1.53 2010/05/09 02:15:59 tgl Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/dt_common.c,v 1.54 2010/06/16 00:54:16 petere Exp $ */ #include "postgres_fe.h" @@ -815,7 +815,10 @@ EncodeDateTime(struct tm * tm, fsec_t fsec, int *tzp, char **tzn, int style, cha { hour = -(*tzp / SECS_PER_HOUR); min = (abs(*tzp) / MINS_PER_HOUR) % MINS_PER_HOUR; - sprintf(str + strlen(str), (min != 0) ? "%+03d:%02d" : "%+03d", hour, min); + if (min != 0) + sprintf(str + strlen(str), "%+03d:%02d", hour, min); + else + sprintf(str + strlen(str), "%+03d", hour); } break; @@ -869,7 +872,10 @@ EncodeDateTime(struct tm * tm, fsec_t fsec, int *tzp, char **tzn, int style, cha { hour = -(*tzp / SECS_PER_HOUR); min = (abs(*tzp) / MINS_PER_HOUR) % MINS_PER_HOUR; - sprintf(str + strlen(str), (min != 0) ? "%+03d:%02d" : "%+03d", hour, min); + if (min != 0) + sprintf(str + strlen(str), "%+03d:%02d", hour, min); + else + sprintf(str + strlen(str), "%+03d", hour); } } break; @@ -915,7 +921,10 @@ EncodeDateTime(struct tm * tm, fsec_t fsec, int *tzp, char **tzn, int style, cha { hour = -(*tzp / SECS_PER_HOUR); min = (abs(*tzp) / MINS_PER_HOUR) % MINS_PER_HOUR; - sprintf(str + strlen(str), (min != 0) ? "%+03d:%02d" : "%+03d", hour, min); + if (min != 0) + sprintf(str + strlen(str), "%+03d:%02d", hour, min); + else + sprintf(str + strlen(str), "%+03d", hour); } } break; @@ -977,7 +986,10 @@ EncodeDateTime(struct tm * tm, fsec_t fsec, int *tzp, char **tzn, int style, cha */ hour = -(*tzp / SECS_PER_HOUR); min = (abs(*tzp) / MINS_PER_HOUR) % MINS_PER_HOUR; - sprintf(str + strlen(str), (min != 0) ? " %+03d:%02d" : " %+03d", hour, min); + if (min != 0) + sprintf(str + strlen(str), " %+03d:%02d", hour, min); + else + sprintf(str + strlen(str), " %+03d", hour); } } break; -- cgit v1.2.3