Dear Bruce san.
I receive an inquiry from a user frequently. Where is it about a home
directory in a place? Then, In offer of the initial state of Windows,
the place is hidden and is not visible to a user. I considered what can
be offered this way and that. Then, using pg_config thinks that it is good.
This patch show a user a clear place. Please take this into consideration.
F:\postgresql-8.1.2stable\src\bin\pg_config\Release>pg_config.exe
BINDIR = F:/postgresql-8.1.2stable/src/bin/pg_config/Release
DOCDIR =
INCLUDEDIR =
PKGINCLUDEDIR =
INCLUDEDIR-SERVER =
LIBDIR =
PKGLIBDIR =
LOCALEDIR =
MANDIR =
SHAREDIR =
SYSCONFDIR =
PGXS = /pgxs/src/makefiles/pgxs.mk
HOMEDIR = "C:/Documents and Settings/saito/Application Data/postgresql"
VERSION = PostgreSQL 8.1.1
dir "C:/Documents and Settings/saito/Application Data/postgresql"
2005/08/10 11:19 <DIR> .
2005/08/10 11:19 <DIR> ..
2005/08/10 11:19 0 pgpass.conf
2005/01/13 00:00 3,520 postgresql.crt
2005/01/13 00:00 891 postgresql.key
Regards,
Hiroshi Saito
--- src/bin/pg_config/pg_config.c.orig Fri Jan 6 10:16:56 2006
+++ src/bin/pg_config/pg_config.c Fri Jan 6 10:49:23 2006
@@ -29,6 +29,17 @@
static const char *progname;
static char mypath[MAXPGPATH];
+#ifdef WIN32
+#ifdef _WIN32_IE
+#undef _WIN32_IE
+#endif
+#define _WIN32_IE 0x0500
+#ifdef near
+#undef near
+#endif
+#define near
+#include <shlobj.h>
+#endif
/*
* This function cleans up the paths for use with either cmd.exe or Msys
@@ -47,6 +58,7 @@
#ifdef WIN32
char *ptr;
+#ifndef WIN32_CLIENT_ONLY
if (GetShortPathName(path, path, MAXPGPATH - 1) == 0)
{
/*
@@ -59,7 +71,7 @@
return;
}
}
-
+#endif /* !WIN32_CLIENT_ONLY */
/* Replace '\' with '/' */
for (ptr = path; *ptr; ptr++)
{
@@ -364,6 +376,25 @@
printf("PostgreSQL " PG_VERSION "\n");
}
+#ifdef WIN32
+static void
+show_homedir(bool all)
+{
+ char homedir[MAXPGPATH];
+
+ if (all)
+ printf("HOMEDIR = ");
+
+ ZeroMemory(homedir, sizeof(homedir));
+ SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, homedir);
+ cleanup_path(homedir);
+#ifdef WIN32_CLIENT_ONLY
+ printf("\"%s/postgresql\"\n", homedir);
+#else
+ printf("%s/postgresql\n", homedir);
+#endif
+}
+#endif
/*
* Table of known information items
@@ -397,6 +428,9 @@
{"--ldflags", show_ldflags},
{"--ldflags_sl", show_ldflags_sl},
{"--libs", show_libs},
+#ifdef WIN32
+ {"--homedir", show_homedir},
+#endif
{"--version", show_version},
{NULL, NULL}
};
@@ -431,6 +465,9 @@
printf(_(" --ldflags show LDFLAGS value used when
PostgreSQL was built\n"));
printf(_(" --ldflags_sl show LDFLAGS_SL value used when
PostgreSQL was built\n"));
printf(_(" --libs show LIBS value used when PostgreSQL
was built\n"));
+#ifdef WIN32
+ printf(_(" --homedir show HOME directry of owner user\n"));
+#endif
printf(_(" --version show the PostgreSQL version\n"));
printf(_(" --help show this help, then exit\n"));
printf(_("\nWith no arguments, all known items are shown.\n\n"));
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to [EMAIL PROTECTED] so that your
message can get through to the mailing list cleanly