*
* 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"
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')
*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;
*
* 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"
#ifdef USE_READLINE
if (flags & 1)
{
- const char *home;
+ char home[MAXPGPATH];
useReadline = true;
initialize_readline();
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;
#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;
*
* 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"
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];
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);
* 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 $
*
*-------------------------------------------------------------------------
*/
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
#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,
#define SYSTEMQUOTE ""
#endif
+#ifdef WIN32
+#define HOMEDIR "USERPROFILE"
+#else
+#define HOMEDIR "HOME"
+#endif
+
/* Portable delay handling */
extern void pg_usleep(long microsec);
*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
{
FILE *fp;
char *pgpassfile;
- char *home;
+ char home[MAXPGPATH];
struct stat stat_buf;
#define LINELEN NAMEDATALEN*5
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);
*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
}
+/*
+ * 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/
*/