Assorted minor changes to silence Windows compiler warnings.
authorAndrew Dunstan <[email protected]>
Mon, 25 Apr 2011 16:56:53 +0000 (12:56 -0400)
committerAndrew Dunstan <[email protected]>
Mon, 25 Apr 2011 16:56:53 +0000 (12:56 -0400)
Mostly to do with macro redefinitions or object signedness.

src/backend/main/main.c
src/backend/port/win32/socket.c
src/backend/utils/adt/pg_locale.c
src/bin/initdb/initdb.c
src/bin/pg_ctl/pg_ctl.c
src/include/port/win32.h
src/pl/plperl/plperl.c
src/port/noblock.c
src/test/regress/pg_regress.c
src/timezone/pgtz.c

index c4ef56dc6c6584709c53c8a63127ff10315c7223..51959371ce64c5db7a1d63f9ef0711428d9474ef 100644 (file)
@@ -392,7 +392,7 @@ get_current_username(const char *progname)
        /* Allocate new memory because later getpwuid() calls can overwrite it. */
        return strdup(pw->pw_name);
 #else
-       long            namesize = 256 /* UNLEN */ + 1;
+       unsigned long   namesize = 256 /* UNLEN */ + 1;
        char       *name;
 
        name = malloc(namesize);
index dbbd4a35d16849233595ac5c4061b95235c10351..e2ae0f8e4f55d190ab75522e4731b26818db55b3 100644 (file)
@@ -369,8 +369,18 @@ pgwin32_recv(SOCKET s, char *buf, int len, int f)
        return -1;
 }
 
+/*
+ * The second argument to send() is defined by SUS to be a "const void *"
+ * and so we use the same signature here to keep compilers happy when
+ * handling callers.
+ * 
+ * But the buf member of a WSABUF struct is defined as "char *", so we cast
+ * the second argument to that here when assigning it, also to keep compilers
+ * happy.
+ */
+
 int
-pgwin32_send(SOCKET s, char *buf, int len, int flags)
+pgwin32_send(SOCKET s, const void *buf, int len, int flags)
 {
        WSABUF          wbuf;
        int                     r;
@@ -380,7 +390,7 @@ pgwin32_send(SOCKET s, char *buf, int len, int flags)
                return -1;
 
        wbuf.len = len;
-       wbuf.buf = buf;
+       wbuf.buf = (char *) buf;
 
        /*
         * Readiness of socket to send data to UDP socket may be not true: socket
index 8208d3cad9ee2f8bba39b2e45c23d1247045a8d1..7c941dd991f9b1b877bbbcc9ceb46110f0cd3d51 100644 (file)
 #include "utils/syscache.h"
 
 #ifdef WIN32
+/*
+ * This Windows file defines StrNCpy. We don't need it here, so we undefine
+ * it to keep the compiler quiet, and undefine it again after the file is
+ * included, so we don't accidentally use theirs.
+ */
+#undef StrNCpy
 #include <shlwapi.h>
+#ifdef StrNCpy
+#undef STrNCpy
+#endif
 #endif
 
 #define                MAX_L10N_DATA           80
@@ -555,7 +564,9 @@ strftime_win32(char *dst, size_t dstlen, const wchar_t *format, const struct tm
        dst[len] = '\0';
        if (encoding != PG_UTF8)
        {
-               char       *convstr = pg_do_encoding_conversion(dst, len, PG_UTF8, encoding);
+               char       *convstr = 
+                       (char *) pg_do_encoding_conversion((unsigned char *) dst, 
+                                                                                          len, PG_UTF8, encoding);
 
                if (dst != convstr)
                {
index d26ff63e1dba3bdbd82ba3f14f5d8b775de6d75e..3b321494e4a576efbe3e691f2d8b7c50484fd271 100644 (file)
@@ -1561,7 +1561,7 @@ normalize_locale_name(char *new, const char *old)
 static void
 setup_collation(void)
 {
-#ifdef HAVE_LOCALE_T
+#if defined(HAVE_LOCALE_T) && !defined(WIN32)
        int                     i;
        FILE       *locale_a_handle;
        char            localebuf[NAMEDATALEN];
@@ -1687,10 +1687,10 @@ setup_collation(void)
                printf(_("No usable system locales were found.\n"));
                printf(_("Use the option \"--debug\" to see details.\n"));
        }
-#else                                                  /* not HAVE_LOCALE_T */
+#else                                                  /* not HAVE_LOCALE_T && not WIN32 */
        printf(_("not supported on this platform\n"));
        fflush(stdout);
-#endif   /* not HAVE_LOCALE_T */
+#endif   /* not HAVE_LOCALE_T  && not WIN32*/
 }
 
 /*
@@ -2387,7 +2387,10 @@ setlocales(void)
 #ifdef WIN32
 typedef BOOL (WINAPI * __CreateRestrictedToken) (HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD, PLUID_AND_ATTRIBUTES, DWORD, PSID_AND_ATTRIBUTES, PHANDLE);
 
+/* Windows API define missing from some versions of MingW headers */
+#ifndef  DISABLE_MAX_PRIVILEGE
 #define DISABLE_MAX_PRIVILEGE  0x1
+#endif
 
 /*
  * Create a restricted token and execute the specified process with it.
index 4e8d0b1d393ca779ddccada7f8b121328d544180..98de19fa3813f2940d5f23ac9d88257fbaa1c24d 100644 (file)
@@ -1461,8 +1461,10 @@ typedef BOOL (WINAPI * __SetInformationJobObject) (HANDLE, JOBOBJECTINFOCLASS, L
 typedef BOOL (WINAPI * __AssignProcessToJobObject) (HANDLE, HANDLE);
 typedef BOOL (WINAPI * __QueryInformationJobObject) (HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD, LPDWORD);
 
-/* Windows API define missing from MingW headers */
+/* Windows API define missing from some versions of MingW headers */
+#ifndef  DISABLE_MAX_PRIVILEGE
 #define DISABLE_MAX_PRIVILEGE  0x1
+#endif
 
 /*
  * Create a restricted token, a job object sandbox, and execute the specified
index 2914a59811f1e67f23deaa2399b1afa31e35b3b5..34f40041298e4378d9d9d9a0ec2f5bceaf2a497c 100644 (file)
@@ -336,7 +336,7 @@ SOCKET              pgwin32_accept(SOCKET s, struct sockaddr * addr, int *addrlen);
 int                    pgwin32_connect(SOCKET s, const struct sockaddr * name, int namelen);
 int                    pgwin32_select(int nfds, fd_set *readfs, fd_set *writefds, fd_set *exceptfds, const struct timeval * timeout);
 int                    pgwin32_recv(SOCKET s, char *buf, int len, int flags);
-int                    pgwin32_send(SOCKET s, char *buf, int len, int flags);
+int                    pgwin32_send(SOCKET s, const void *buf, int len, int flags);
 
 const char *pgwin32_socket_strerror(int err);
 int                    pgwin32_waitforsinglesocket(SOCKET s, int what, int timeout);
index ac9134272cc9b7da11842e9dbb2e08ac55fc4dbb..b5418074aee446fa09f7676e87c2c96a4a3c598c 100644 (file)
@@ -3551,7 +3551,7 @@ hv_store_string(HV *hv, const char *key, SV *val)
         * does not appear that hashes track UTF-8-ness of keys at all in Perl
         * 5.6.
         */
-       hlen = -strlen(hkey);
+       hlen = - (int) strlen(hkey);
        ret = hv_store(hv, hkey, hlen, val, 0);
 
        if (hkey != key)
@@ -3576,7 +3576,7 @@ hv_fetch_string(HV *hv, const char *key)
                                                                  GetDatabaseEncoding(), PG_UTF8);
 
        /* See notes in hv_store_string */
-       hlen = -strlen(hkey);
+       hlen = - (int) strlen(hkey);
        ret = hv_fetch(hv, hkey, hlen, 0);
 
        if (hkey != key)
index 9a90f6826eb5cd420c6325e05d07ef5636b0ce89..883697535dcf19867ead73d904c5ce1289ceffc9 100644 (file)
@@ -23,7 +23,7 @@ pg_set_noblock(pgsocket sock)
 #if !defined(WIN32)
        return (fcntl(sock, F_SETFL, O_NONBLOCK) != -1);
 #else
-       long            ioctlsocket_ret = 1;
+       unsigned long           ioctlsocket_ret = 1;
 
        /* Returns non-0 on failure, while fcntl() returns -1 on failure */
        return (ioctlsocket(sock, FIONBIO, &ioctlsocket_ret) == 0);
@@ -42,7 +42,7 @@ pg_set_block(pgsocket sock)
                return false;
        return true;
 #else
-       long            ioctlsocket_ret = 0;
+       unsigned long           ioctlsocket_ret = 0;
 
        /* Returns non-0 on failure, while fcntl() returns -1 on failure */
        return (ioctlsocket(sock, FIONBIO, &ioctlsocket_ret) == 0);
index 5fe3724c82ef6e9d2cba2300ec0d9dc9ffc50cd4..5dba7eb8f2267a3a24b8928243bf29bee483f0b2 100644 (file)
@@ -140,9 +140,11 @@ __attribute__((format(printf, 2, 3)));
 #ifdef WIN32
 typedef BOOL (WINAPI * __CreateRestrictedToken) (HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD, PLUID_AND_ATTRIBUTES, DWORD, PSID_AND_ATTRIBUTES, PHANDLE);
 
-/* Windows API define missing from MingW headers */
+/* Windows API define missing from some versions of MingW headers */
+#ifndef  DISABLE_MAX_PRIVILEGE
 #define DISABLE_MAX_PRIVILEGE  0x1
 #endif
+#endif
 
 /*
  * allow core files if possible.
index 382a4e04f506b4e2b1cfb70fbb561292df214ab0..cb66f6380b9db7a6d934f03bf183e568b68fa96a 100644 (file)
@@ -1158,7 +1158,7 @@ identify_system_timezone(void)
 
                memset(zonename, 0, sizeof(zonename));
                namesize = sizeof(zonename);
-               if ((r = RegQueryValueEx(key, "Std", NULL, NULL, zonename, &namesize)) != ERROR_SUCCESS)
+               if ((r = RegQueryValueEx(key, "Std", NULL, NULL, (unsigned char *) zonename, &namesize)) != ERROR_SUCCESS)
                {
                        ereport(LOG,
                                        (errmsg_internal("could not query value for key \"std\" to identify system time zone \"%s\": %i",
@@ -1175,7 +1175,7 @@ identify_system_timezone(void)
                }
                memset(zonename, 0, sizeof(zonename));
                namesize = sizeof(zonename);
-               if ((r = RegQueryValueEx(key, "Dlt", NULL, NULL, zonename, &namesize)) != ERROR_SUCCESS)
+               if ((r = RegQueryValueEx(key, "Dlt", NULL, NULL, (unsigned char *) zonename, &namesize)) != ERROR_SUCCESS)
                {
                        ereport(LOG,
                                        (errmsg_internal("could not query value for key \"dlt\" to identify system time zone \"%s\": %i",