pg_ctl: WIN32 for CYGWIN also (services) - Mailing list pgsql-patches

From Reini Urban
Subject pg_ctl: WIN32 for CYGWIN also (services)
Date
Msg-id 4164BC18.4090801@x-ray.at
Whole thread Raw
Responses Re: [pgsql-hackers-win32] pg_ctl: WIN32 for CYGWIN also (services)  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-patches
I'd like to have this nice new features also :)

Just redefine WIN32 #ifdef __CYGWIN___ or the clean and long way as in
my patch?
I'm not sure about any dirty side-effects.

Builds fine and works as expected.
(Just tablespace symlinks not yet. Will get to that soon.)
--- postgresql-8.0.0cvs/src/bin/pg_ctl/pg_ctl.c.orig    2004-09-02 22:07:50.000000000 +0200
+++ postgresql-8.0.0cvs/src/bin/pg_ctl/pg_ctl.c    2004-10-07 05:29:28.938946400 +0200
@@ -20,6 +20,9 @@

 #include "libpq/pqsignal.h"
 #include "getopt_long.h"
+#if defined(__CYGWIN__)
+#include <windows.h>
+#endif

 #ifndef HAVE_OPTRESET
 int            optreset;
@@ -95,7 +98,7 @@
 static void do_status(void);
 static void do_kill(pgpid_t pid);

-#ifdef WIN32
+#if defined(WIN32) || defined(__CYGWIN__)
 static bool pgwin32_IsInstalled(SC_HANDLE);
 static char *pgwin32_CommandLine(bool);
 static void pgwin32_doRegister();
@@ -116,7 +119,7 @@
 static char conf_file[MAXPGPATH];


-#ifdef WIN32
+#if defined(WIN32) || defined(__CYGWIN__)
 static void
 write_eventlog(int level, const char *line)
 {
@@ -154,7 +157,7 @@
     va_list        ap;

     va_start(ap, fmt);
-#ifndef WIN32
+#if defined(WIN32) || defined(__CYGWIN__)
     /* On Unix, we just fprintf to stderr */
     vfprintf(stderr, fmt, ap);
 #else
@@ -317,7 +320,7 @@
      * http://dev.remotenetworktechnology.com/cmd/cmdfaq.htm
      */
     if (log_file != NULL)
-#ifndef WIN32
+#if defined(WIN32) || defined(__CYGWIN__)
         snprintf(cmd, MAXPGPATH, "%s\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1 &%s",
 #else
         snprintf(cmd, MAXPGPATH, "%sSTART /B \"\" \"%s\" %s%s < \"%s\" >> \"%s\" 2>&1%s",
@@ -325,7 +328,7 @@
                  SYSTEMQUOTE, postgres_path, pgdata_opt, post_opts,
                  DEVNULL, log_file, SYSTEMQUOTE);
     else
-#ifndef WIN32
+#if defined(WIN32) || defined(__CYGWIN__)
         snprintf(cmd, MAXPGPATH, "%s\"%s\" %s%s < \"%s\" 2>&1 &%s",
 #else
         snprintf(cmd, MAXPGPATH, "%sSTART /B \"\" \"%s\" %s%s < \"%s\" 2>&1%s",
@@ -803,7 +806,7 @@
     }
 }

-#ifdef WIN32
+#if defined(WIN32) || defined(__CYGWIN__)

 static bool
 pgwin32_IsInstalled(SC_HANDLE hSCM)
@@ -1197,7 +1200,7 @@
     int            c;
     pgpid_t        killproc = 0;

-#ifdef WIN32
+#if defined(WIN32) || defined(__CYGWIN__)
     setvbuf(stderr, NULL, _IONBF, 0);
 #endif

@@ -1344,7 +1347,7 @@
                 set_sig(argv[++optind]);
                 killproc = atol(argv[++optind]);
             }
-#ifdef WIN32
+#if defined(WIN32) || defined(__CYGWIN__)
             else if (strcmp(argv[optind], "register") == 0)
                 ctl_command = REGISTER_COMMAND;
             else if (strcmp(argv[optind], "unregister") == 0)
@@ -1434,7 +1437,7 @@
         case KILL_COMMAND:
             do_kill(killproc);
             break;
-#ifdef WIN32
+#if defined(WIN32) || defined(__CYGWIN__)
         case REGISTER_COMMAND:
             pgwin32_doRegister();
             break;

pgsql-patches by date:

Previous
From: Tom Lane
Date:
Subject: Re: [psql] Setting the PROMPT on command line
Next
From: Euler Taveira de Oliveira
Date:
Subject: pg_config translation to pt_BR