*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/port/chklocale.c,v 1.12 2009/11/12 02:46:16 tgl Exp $
+ * $PostgreSQL: pgsql/src/port/chklocale.c,v 1.13 2009/11/12 03:37:15 tgl Exp $
*
*-------------------------------------------------------------------------
*/
char *save;
char *name;
+ /* If locale is C or POSIX, we can allow all encodings */
+ if (pg_strcasecmp(ctype, "C") == 0 ||
+ pg_strcasecmp(ctype, "POSIX") == 0)
+ return PG_SQL_ASCII;
+
save = setlocale(LC_CTYPE, NULL);
if (!save)
return -1; /* setlocale() broken? */
ctype = setlocale(LC_CTYPE, NULL);
if (!ctype)
return -1; /* setlocale() broken? */
+
+ /* If locale is C or POSIX, we can allow all encodings */
+ if (pg_strcasecmp(ctype, "C") == 0 ||
+ pg_strcasecmp(ctype, "POSIX") == 0)
+ return PG_SQL_ASCII;
+
#ifndef WIN32
sys = nl_langinfo(CODESET);
if (sys)
if (!sys)
return -1; /* out of memory; unlikely */
- /* If locale is C or POSIX, we can allow all encodings */
- if (pg_strcasecmp(ctype, "C") == 0 || pg_strcasecmp(ctype, "POSIX") == 0)
- {
- free(sys);
- return PG_SQL_ASCII;
- }
-
/* Check the table */
for (i = 0; encoding_match_list[i].system_enc_name; i++)
{