Re: [HACKERS] More #ifdef fun: src/interfaces/libpq/win32.c - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: [HACKERS] More #ifdef fun: src/interfaces/libpq/win32.c
Date
Msg-id 200607291521.k6TFLiB12035@momjian.us
Whole thread Raw
List pgsql-patches
Tom Lane wrote:
> src/interfaces/libpq/win32.c contains
>
> /* Declared here to avoid pulling in all includes, which causes name collissions */
> #ifdef ENABLE_NLS
> extern char *
> libpq_gettext(const char *msgid)
> __attribute__((format_arg(1)));
> #else
> #define libpq_gettext(x) (x)
> #endif
>
> Now, since it has nowhere bothered to #include pg_config.h, ENABLE_NLS
> will certainly not be defined, and so this code always fails to invoke
> gettext.
>
> This may not be real important since the file appears to use gettext
> only here:
>
>     if (!success)
>         sprintf(strerrbuf, libpq_gettext("Unknown socket error (0x%08X/%i)"), err, err);
>
> but it's still pretty bogus.
>
> Without a Windows machine, I'm not in a position to try making this file
> properly include postgres_fe.h, or at least c.h, but someone ought to
> try harder.

I have applied the following patch to include postgres_fe.h in two
win32-specific files.  I think the authors thought where was no
pg-specific code in there, but now there is, or might be in the future.
I see no reason to backpatch this.

--
  Bruce Momjian   bruce@momjian.us
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: src/interfaces/libpq/pthread-win32.c
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/libpq/pthread-win32.c,v
retrieving revision 1.11
diff -c -c -r1.11 pthread-win32.c
*** src/interfaces/libpq/pthread-win32.c    5 Mar 2006 15:59:10 -0000    1.11
--- src/interfaces/libpq/pthread-win32.c    29 Jul 2006 15:03:44 -0000
***************
*** 10,15 ****
--- 10,16 ----
  *-------------------------------------------------------------------------
  */

+ #include "postgres_fe.h"

  #include <windows.h>
  #include "pthread-win32.h"
Index: src/interfaces/libpq/win32.c
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/libpq/win32.c,v
retrieving revision 1.17
diff -c -c -r1.17 win32.c
*** src/interfaces/libpq/win32.c    7 Jun 2006 22:24:46 -0000    1.17
--- src/interfaces/libpq/win32.c    29 Jul 2006 15:03:44 -0000
***************
*** 25,32 ****
  #endif
  #define NOCRYPT

! #include <windows.h>
! #include <stdio.h>
  #include "win32.h"

  /* Declared here to avoid pulling in all includes, which causes name collissions */
--- 25,32 ----
  #endif
  #define NOCRYPT

! #include "postgres_fe.h"
!
  #include "win32.h"

  /* Declared here to avoid pulling in all includes, which causes name collissions */

pgsql-patches by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: [HACKERS] Possible explanation for Win32 stats regression
Next
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] putting CHECK_FOR_INTERRUPTS in