aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-11-08 19:07:24 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-11-08 19:07:24 +0000
commit449593a9fb9d59bc7aa022d587b5c3360a139a28 (patch)
tree86251a6deee381b3fbf85a840a5778c6a7b41264 /src
parentb657ded2c5bc38f969a4ff1a24388ef88be9ad32 (diff)
downloadpostgresql-449593a9fb9d59bc7aa022d587b5c3360a139a28.tar.gz
postgresql-449593a9fb9d59bc7aa022d587b5c3360a139a28.zip
Fix process-status handling for OS X 10.3.
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/misc/ps_status.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/backend/utils/misc/ps_status.c b/src/backend/utils/misc/ps_status.c
index a3572603621..d727dfe9fb6 100644
--- a/src/backend/utils/misc/ps_status.c
+++ b/src/backend/utils/misc/ps_status.c
@@ -5,7 +5,7 @@
* to contain some useful information. Mechanism differs wildly across
* platforms.
*
- * $Header: /cvsroot/pgsql/src/backend/utils/misc/ps_status.c,v 1.14 2003/08/04 23:59:39 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/misc/ps_status.c,v 1.15 2003/11/08 19:07:24 tgl Exp $
*
* Copyright (c) 2000-2003, PostgreSQL Global Development Group
* various details abducted from various places
@@ -57,7 +57,7 @@ extern char **environ;
#define PS_USE_PSTAT
#elif defined(HAVE_PS_STRINGS)
#define PS_USE_PS_STRINGS
-#elif defined(BSD) || defined(__bsdi__) || defined(__hurd__)
+#elif (defined(BSD) || defined(__bsdi__) || defined(__hurd__)) && !defined(__darwin__)
#define PS_USE_CHANGE_ARGV
#elif defined(__linux__) || defined(_AIX) || defined(__sgi) || (defined(sun) && !defined(BSD)) || defined(ultrix) || defined(__ksr__) || defined(__osf__) || defined(__QNX__) || defined(__svr4__) || defined(__svr5__) || defined(__darwin__)
#define PS_USE_CLOBBER_ARGV
@@ -143,7 +143,7 @@ save_ps_display_args(int argc, char *argv[])
}
ps_buffer = argv[0];
- ps_buffer_size = end_of_area - argv[0] - 1;
+ ps_buffer_size = end_of_area - argv[0];
/*
* move the environment out of the way
@@ -193,7 +193,13 @@ init_ps_display(const char *username, const char *dbname,
#endif /* PS_USE_CHANGE_ARGV */
#ifdef PS_USE_CLOBBER_ARGV
- save_argv[1] = NULL;
+ {
+ int i;
+
+ /* make extra argv slots point at end_of_area (a NUL) */
+ for (i = 1; i < save_argc; i++)
+ save_argv[i] = ps_buffer + ps_buffer_size;
+ }
#endif /* PS_USE_CLOBBER_ARGV */
/*