diff options
author | Bruce Momjian <bruce@momjian.us> | 2004-08-18 02:59:12 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2004-08-18 02:59:12 +0000 |
commit | 1abf13db3c7f1ffa4e40c9f51f7ba76f390e7f06 (patch) | |
tree | ebd668ab6ae559e447a1799bf611c449eb86da23 /src | |
parent | 19cd31b0682d32142edf7599b653d4eff7031a8c (diff) | |
download | postgresql-1abf13db3c7f1ffa4e40c9f51f7ba76f390e7f06.tar.gz postgresql-1abf13db3c7f1ffa4e40c9f51f7ba76f390e7f06.zip |
Add get_home_path() to use USERPROFILE on Win32 and HOME on Unix.
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/psql/common.c | 12 | ||||
-rw-r--r-- | src/bin/psql/input.c | 12 | ||||
-rw-r--r-- | src/bin/psql/startup.c | 6 | ||||
-rw-r--r-- | src/include/port.h | 12 | ||||
-rw-r--r-- | src/interfaces/libpq/fe-connect.c | 7 | ||||
-rw-r--r-- | src/port/path.c | 23 |
6 files changed, 47 insertions, 25 deletions
diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index 681c88cc4e7..40316c5d8a7 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2003, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/common.c,v 1.87 2004/05/23 22:20:10 neilc Exp $ + * $PostgreSQL: pgsql/src/bin/psql/common.c,v 1.88 2004/08/18 02:59:11 momjian Exp $ */ #include "postgres_fe.h" #include "common.h" @@ -1078,13 +1078,13 @@ expand_tilde(char **filename) if (**filename == '~') { char *fn; - char *home; char oldp, *p; struct passwd *pw; + char home[MAXPGPATH]; fn = *filename; - home = NULL; + *home = '\0'; p = fn + 1; while (*p != '/' && *p != '\0') @@ -1094,12 +1094,12 @@ expand_tilde(char **filename) *p = '\0'; if (*(fn + 1) == '\0') - home = getenv("HOME"); + get_home_path(home); else if ((pw = getpwnam(fn + 1)) != NULL) - home = pw->pw_dir; + StrNCpy(home, pw->pw_dir, MAXPGPATH); *p = oldp; - if (home) + if (strlen(home) != 0) { char *newfn; diff --git a/src/bin/psql/input.c b/src/bin/psql/input.c index 326f91ef679..d1ad9dd6158 100644 --- a/src/bin/psql/input.c +++ b/src/bin/psql/input.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2003, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/input.c,v 1.34 2004/01/25 03:07:22 neilc Exp $ + * $PostgreSQL: pgsql/src/bin/psql/input.c,v 1.35 2004/08/18 02:59:11 momjian Exp $ */ #include "postgres_fe.h" #include "input.h" @@ -171,7 +171,7 @@ initializeInput(int flags) #ifdef USE_READLINE if (flags & 1) { - const char *home; + char home[MAXPGPATH]; useReadline = true; initialize_readline(); @@ -180,8 +180,7 @@ initializeInput(int flags) if (GetVariable(pset.vars, "HISTSIZE") == NULL) SetVariable(pset.vars, "HISTSIZE", "500"); using_history(); - home = getenv("HOME"); - if (home) + if (get_home_path(home)) { char *psql_history; @@ -231,10 +230,9 @@ finishInput(int exitstatus, void *arg) #ifdef USE_READLINE if (useHistory) { - char *home; + char home[MAXPGPATH]; - home = getenv("HOME"); - if (home) + if (get_home_path(home)) { char *psql_history; int hist_size; diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c index e0f55c536d8..2bd2b50aff0 100644 --- a/src/bin/psql/startup.c +++ b/src/bin/psql/startup.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2003, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.95 2004/06/03 00:07:37 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.96 2004/08/18 02:59:11 momjian Exp $ */ #include "postgres_fe.h" @@ -570,8 +570,8 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options) static void process_psqlrc(char *argv0) { - char *home; char *psqlrc; + char home[MAXPGPATH]; char global_file[MAXPGPATH]; char my_exec_path[MAXPGPATH]; char etc_path[MAXPGPATH]; @@ -582,7 +582,7 @@ process_psqlrc(char *argv0) snprintf(global_file, MAXPGPATH, "%s/%s", etc_path, SYSPSQLRC); process_psqlrc_file(global_file); - if ((home = getenv("HOME")) != NULL) + if (get_home_path(home)) { psqlrc = pg_malloc(strlen(home) + 1 + strlen(PSQLRC) + 1); sprintf(psqlrc, "%s/%s", home, PSQLRC); diff --git a/src/include/port.h b/src/include/port.h index c03e72f163d..58585fc77dc 100644 --- a/src/include/port.h +++ b/src/include/port.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/port.h,v 1.53 2004/08/17 14:38:38 momjian Exp $ + * $PostgreSQL: pgsql/src/include/port.h,v 1.54 2004/08/18 02:59:11 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -50,6 +50,7 @@ extern void get_lib_path(const char *my_exec_path, char *ret_path); extern void get_pkglib_path(const char *my_exec_path, char *ret_path); extern void get_locale_path(const char *my_exec_path, char *ret_path); extern void set_pglocale_pgservice(const char *argv0, const char *app); +extern bool get_home_path(char *ret_path); /* * is_absolute_path @@ -74,9 +75,6 @@ extern void set_pglocale_pgservice(const char *argv0, const char *app); #endif - - - /* Portable way to find binaries */ extern int find_my_exec(const char *argv0, char *retpath); extern int find_other_exec(const char *argv0, const char *target, @@ -104,6 +102,12 @@ extern int find_other_exec(const char *argv0, const char *target, #define SYSTEMQUOTE "" #endif +#ifdef WIN32 +#define HOMEDIR "USERPROFILE" +#else +#define HOMEDIR "HOME" +#endif + /* Portable delay handling */ extern void pg_usleep(long microsec); diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index b560f358a6c..319563d92ea 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.280 2004/08/17 04:24:23 tgl Exp $ + * $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.281 2004/08/18 02:59:11 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -3093,7 +3093,7 @@ PasswordFromFile(char *hostname, char *port, char *dbname, char *username) { FILE *fp; char *pgpassfile; - char *home; + char home[MAXPGPATH]; struct stat stat_buf; #define LINELEN NAMEDATALEN*5 @@ -3112,8 +3112,7 @@ PasswordFromFile(char *hostname, char *port, char *dbname, char *username) port = DEF_PGPORT_STR; /* Look for it in the home dir */ - home = getenv("HOME"); - if (!home) + if (!get_home_path(home)) return NULL; pgpassfile = malloc(strlen(home) + 1 + strlen(PGPASSFILE) + 1); diff --git a/src/port/path.c b/src/port/path.c index 7e99ec80adc..db5913f387b 100644 --- a/src/port/path.c +++ b/src/port/path.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/port/path.c,v 1.30 2004/08/13 14:47:23 tgl Exp $ + * $PostgreSQL: pgsql/src/port/path.c,v 1.31 2004/08/18 02:59:12 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -371,6 +371,27 @@ set_pglocale_pgservice(const char *argv0, const char *app) /* + * get_include_path + */ +bool +get_home_path(char *ret_path) +{ + if (getenv(HOMEDIR) == NULL) + { + *ret_path = '\0'; + return false; + } + else + { + StrNCpy(ret_path, getenv(HOMEDIR), MAXPGPATH); + canonicalize_path(ret_path); + return true; + } +} + + + +/* * make_relative - adjust path to be relative to bin/ */ static void |