summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2005-07-08 15:25:46 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2005-07-08 15:25:46 +0000
commit91d381e3c01062f506ea947891d9f257cfe207f6 (patch)
tree678a53618f75d21be9513df77979ec598257ef63
parent224501ed68f912981295cc8c1dfecd3d175c9db5 (diff)
downloadpostgresql-91d381e3c01062f506ea947891d9f257cfe207f6.tar.gz
Make libpq_gettext save and restore errno in a Windows-compatible way.
Also, back-patch fix into back branches.
-rw-r--r--src/interfaces/libpq/fe-misc.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c
index 7e166f4a38..45634a1286 100644
--- a/src/interfaces/libpq/fe-misc.c
+++ b/src/interfaces/libpq/fe-misc.c
@@ -25,7 +25,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.65 2001/12/03 00:28:24 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.65.2.1 2005/07/08 15:25:46 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -844,8 +844,16 @@ libpq_gettext(const char *msgid)
if (!already_bound)
{
+ /* dgettext() preserves errno, but bindtextdomain() doesn't */
+ int save_errno = errno;
+
already_bound = 1;
bindtextdomain("libpq", LOCALEDIR);
+#ifdef WIN32
+ SetLastError(save_errno);
+#else
+ errno = save_errno;
+#endif
}
return dgettext("libpq", msgid);