Make libpq_gettext save and restore errno in a Windows-compatible way.

Also, back-patch fix into back branches.
This commit is contained in:
Tom Lane 2005-07-08 15:25:46 +00:00
parent 224501ed68
commit 91d381e3c0

View File

@ -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);