Use non-literal format for possibly non-standard strftime formats.

Per recent -hackers discussion. The formats in question are %G and %V,
and cause warnings on MinGW at least. We assume the ecpg application
knows what it's doing if it passes these formats to the library.
This commit is contained in:
Andrew Dunstan 2011-04-28 19:58:49 -04:00
parent ab0ba6e73a
commit c49e4ae1f8

View File

@ -501,8 +501,12 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
* 4-digit year corresponding to the ISO week number.
*/
case 'G':
{
/* Keep compiler quiet - Don't use a literal format */
const char *fmt = "%G";
tm->tm_mon -= 1;
i = strftime(q, *pstr_len, "%G", tm);
i = strftime(q, *pstr_len, fmt, tm);
if (i == 0)
return -1;
while (*q)
@ -512,6 +516,7 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
}
tm->tm_mon += 1;
replace_type = PGTYPES_TYPE_NOTHING;
}
break;
/*
@ -682,7 +687,11 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
* decimal number.
*/
case 'V':
i = strftime(q, *pstr_len, "%V", tm);
{
/* Keep compiler quiet - Don't use a literal format */
const char *fmt = "%V";
i = strftime(q, *pstr_len, fmt, tm);
if (i == 0)
return -1;
while (*q)
@ -691,6 +700,7 @@ dttofmtasc_replace(timestamp * ts, date dDate, int dow, struct tm * tm,
(*pstr_len)--;
}
replace_type = PGTYPES_TYPE_NOTHING;
}
break;
/*