* Portions Copyright (c) 1994, Regents of the University of California
* Portions taken from FreeBSD.
*
- * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.70 2004/11/29 03:05:03 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.71 2004/12/27 20:39:21 tgl Exp $
*
*-------------------------------------------------------------------------
*/
static void *xmalloc(size_t size);
static char *xstrdup(const char *s);
-static char **replace_token(char **lines, char *token, char *replacement);
+static char **replace_token(char **lines,
+ const char *token, const char *replacement);
#ifndef HAVE_UNIX_SOCKETS
-static char **filter_lines_with_token(char **lines, char *token);
+static char **filter_lines_with_token(char **lines, const char *token);
#endif
static char **readfile(char *path);
static void writefile(char *path, char **lines);
* doesn't need any regexp stuff.
*/
static char **
-replace_token(char **lines, char *token, char *replacement)
+replace_token(char **lines, const char *token, const char *replacement)
{
int numlines = 1;
int i;
int pre;
/* just copy pointer if NULL or no change needed */
-
if (lines[i] == NULL || (where = strstr(lines[i], token)) == NULL)
{
result[i] = lines[i];
strcpy(newline + pre + replen, lines[i] + pre + toklen);
result[i] = newline;
-
}
return result;
-
}
/*
* make a copy of lines without any that contain the token
- * a sort of poor man's grep -v
*
+ * a sort of poor man's grep -v
*/
#ifndef HAVE_UNIX_SOCKETS
static char **
-filter_lines_with_token(char **lines, char *token)
+filter_lines_with_token(char **lines, const char *token)
{
int numlines = 1;
int i, src, dst;
snprintf(repltok, sizeof(repltok), "shared_buffers = %d", n_buffers);
conflines = replace_token(conflines, "#shared_buffers = 1000", repltok);
+#if DEF_PGPORT != 5432
+ snprintf(repltok, sizeof(repltok), "#port = %d", DEF_PGPORT);
+ conflines = replace_token(conflines, "#port = 5432", repltok);
+#endif
+
lc_messages = escape_quotes(lc_messages);
snprintf(repltok, sizeof(repltok), "lc_messages = '%s'", lc_messages);
conflines = replace_token(conflines, "#lc_messages = 'C'", repltok);