Commit 99382f45 authored by Tom Lane's avatar Tom Lane

Save and restore errno across bindtextdomain call, per discussion.

parent 3d6b0d86
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/interfaces/libpq/fe-misc.c,v 1.114 2005/06/12 00:00:21 neilc Exp $ * $PostgreSQL: pgsql/src/interfaces/libpq/fe-misc.c,v 1.115 2005/07/06 16:25:59 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -1128,13 +1128,21 @@ PQenv2encoding(void) ...@@ -1128,13 +1128,21 @@ PQenv2encoding(void)
char * char *
libpq_gettext(const char *msgid) libpq_gettext(const char *msgid)
{ {
static int already_bound = 0; static bool already_bound = false;
if (!already_bound) if (!already_bound)
{ {
already_bound = 1; /* dgettext() preserves errno, but bindtextdomain() doesn't */
int save_errno = errno;
const char *ldir;
already_bound = true;
/* No relocatable lookup here because the binary could be anywhere */ /* No relocatable lookup here because the binary could be anywhere */
bindtextdomain("libpq", getenv("PGLOCALEDIR") ? getenv("PGLOCALEDIR") : LOCALEDIR); ldir = getenv("PGLOCALEDIR");
if (!ldir)
ldir = LOCALEDIR;
bindtextdomain("libpq", ldir);
errno = save_errno;
} }
return dgettext("libpq", msgid); return dgettext("libpq", msgid);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment