<!--
-$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">
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,
*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
{
FILE *fp;
char *pgpassfile;
- char home[MAXPGPATH];
+ char *home;
struct stat stat_buf;
#define LINELEN NAMEDATALEN*5
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)
{
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)