]> granicus.if.org Git - postgresql/commitdiff
Don't use get_home_path so libpq doesn't pull path.c into the library.
authorBruce Momjian <bruce@momjian.us>
Thu, 19 Aug 2004 00:00:34 +0000 (00:00 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 19 Aug 2004 00:00:34 +0000 (00:00 +0000)
doc/src/sgml/libpq.sgml
src/interfaces/libpq/fe-connect.c

index 06c933064325811bec95f14b4d83feb06264f313..c3f2a70acf696d5eab460a55b0118575cc634ed3 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.160 2004/08/17 16:54:46 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.161 2004/08/19 00:00:34 momjian Exp $
 -->
 
  <chapter id="libpq">
@@ -136,7 +136,8 @@ PGconn *PQconnectdb(const char *conninfo);
       likely to fail if <application>libpq</application> is passed a host name
       that is not the name of the machine at <literal>hostaddr</>.)  Also,
       <literal>host</> rather than <literal>hostaddr</> is used to identify
-      the connection in <filename>$HOME/.pgpass</>.
+      the connection in <filename>$HOME/.pgpass</> (or 
+      <filename>%USERPROFILE%/.pgpass</> on Win32).
      </para>
      <para>
       Without either a host name or host address,
index 319563d92eae3e241e5225f4a50df733bd828261..5e721ed2d915f8654fb66567a0b6fe48724bef82 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.281 2004/08/18 02:59:11 momjian Exp $
+ *       $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.282 2004/08/19 00:00:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -3093,7 +3093,7 @@ PasswordFromFile(char *hostname, char *port, char *dbname, char *username)
 {
        FILE       *fp;
        char       *pgpassfile;
-       char       home[MAXPGPATH];
+       char       *home;
        struct stat stat_buf;
 
 #define LINELEN NAMEDATALEN*5
@@ -3111,10 +3111,13 @@ PasswordFromFile(char *hostname, char *port, char *dbname, char *username)
        if (port == NULL)
                port = DEF_PGPORT_STR;
 
-       /* Look for it in the home dir */
-       if (!get_home_path(home))
+       /*
+        *      Look for it in the home dir.
+        *      We don't use get_home_path() so we don't pull path.c into our library.
+        */
+       if (!(home = getenv(HOMEDIR)))
                return NULL;
-
+       
        pgpassfile = malloc(strlen(home) + 1 + strlen(PGPASSFILE) + 1);
        if (!pgpassfile)
        {
@@ -3122,7 +3125,11 @@ PasswordFromFile(char *hostname, char *port, char *dbname, char *username)
                return NULL;
        }
 
+#ifndef WIN32
        sprintf(pgpassfile, "%s/%s", home, PGPASSFILE);
+#else
+       sprintf(pgpassfile, "%s\\%s", home, PGPASSFILE);
+#endif
 
        /* If password file cannot be opened, ignore it. */
        if (stat(pgpassfile, &stat_buf) == -1)