]> granicus.if.org Git - postgresql/commitdiff
Add PGETC (for pg_service.conf) and PGLOCALE (for locale dir)
authorBruce Momjian <bruce@momjian.us>
Thu, 3 Jun 2004 00:07:38 +0000 (00:07 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 3 Jun 2004 00:07:38 +0000 (00:07 +0000)
environment variable processing to libpq.

The patch also adds code to our client apps so we set the environment
variable directly based on our binary location, unless it is already
set. This will allow our applications to emit proper locale messages
that are generated in libpq.

22 files changed:
doc/src/sgml/libpq.sgml
src/backend/main/main.c
src/bin/initdb/initdb.c
src/bin/pg_controldata/pg_controldata.c
src/bin/pg_ctl/pg_ctl.c
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_dumpall.c
src/bin/pg_dump/pg_restore.c
src/bin/pg_resetxlog/pg_resetxlog.c
src/bin/psql/startup.c
src/bin/scripts/clusterdb.c
src/bin/scripts/createdb.c
src/bin/scripts/createlang.c
src/bin/scripts/createuser.c
src/bin/scripts/dropdb.c
src/bin/scripts/droplang.c
src/bin/scripts/dropuser.c
src/bin/scripts/vacuumdb.c
src/include/port.h
src/interfaces/libpq/fe-connect.c
src/interfaces/libpq/fe-misc.c
src/port/path.c

index 2eaa4da341b6565b7580a6ac07cc2d6a502b80dd..be669715c0895bb4486f46f2bf56bba175ccf0b4 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.155 2004/05/14 18:04:02 neilc Exp $
+$PostgreSQL: pgsql/doc/src/sgml/libpq.sgml,v 1.156 2004/06/03 00:07:35 momjian Exp $
 -->
 
  <chapter id="libpq">
@@ -3582,6 +3582,24 @@ sets the default mode for the genetic query optimizer.
 (Equivalent to <literal>SET geqo TO ...</literal>.)
 </para>
 </listitem>
+<listitem>
+<para>
+<indexterm>
+ <primary><envar>PGETC</envar></primary>
+</indexterm>
+<envar>PGETC</envar>
+sets the directory containing the <filename>pg_service.conf</> file.
+</para>
+</listitem>
+<listitem>
+<para>
+<indexterm>
+ <primary><envar>PGLOCALE</envar></primary>
+</indexterm>
+<envar>PGLOCALE</envar>
+sets the directory containing the <literal>locale</> files.
+</para>
+</listitem>
 </itemizedlist>
 
 Refer to the <acronym>SQL</acronym> command <command>SET</command>
index aee2da0731503398e960c985b2fb179383f30ffa..c9c377e1e946b28b3213784c667b39f922a1b57d 100644 (file)
@@ -13,7 +13,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/main/main.c,v 1.85 2004/05/29 22:48:19 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/main/main.c,v 1.86 2004/06/03 00:07:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -152,7 +152,7 @@ main(int argc, char *argv[])
         * allow startup error messages to be localized.
         */
 
-       set_pglocale(argv[0], "postgres");
+       set_pglocale_pgservice(argv[0], "postgres");
 
 #ifdef WIN32
 
index 3a93931fe244d8a3187b85c9270f83c8b1eed0cc..951d103f57188eba1346affaa6be505d9f42d3a9 100644 (file)
@@ -39,7 +39,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  * Portions taken from FreeBSD.
  *
- * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.34 2004/06/01 02:53:59 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.35 2004/06/03 00:07:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1788,7 +1788,7 @@ main(int argc, char *argv[])
        {"global", "pg_xlog", "pg_clog", "base", "base/1"};
 
        progname = get_progname(argv[0]);
-       set_pglocale(argv[0], "initdb");
+       set_pglocale_pgservice(argv[0], "initdb");
 
     if (argc > 1)
     {
index c7d28d11ee2057ff3299ee66944858b7498117dd..91abe8cfa79cc8ad6ac59277203fdeefd5675eea 100644 (file)
@@ -6,7 +6,7 @@
  * copyright (c) Oliver Elphick <olly@lfix.co.uk>, 2001;
  * licence: BSD
  *
- * $PostgreSQL: pgsql/src/bin/pg_controldata/pg_controldata.c,v 1.16 2004/05/25 01:00:23 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_controldata/pg_controldata.c,v 1.17 2004/06/03 00:07:36 momjian Exp $
  */
 #include "postgres.h"
 
@@ -77,7 +77,7 @@ main(int argc, char *argv[])
        char       *strftime_fmt = "%c";
        const char *progname;
 
-       set_pglocale(argv[0], "pg_controldata");
+       set_pglocale_pgservice(argv[0], "pg_controldata");
 
        progname = get_progname(argv[0]);
 
index f0426dad9b0a78b5f33348b51cf9dbaff40d83b9..9b817ea490204bf98b115135680d254213200bfc 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.5 2004/06/01 22:03:18 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.6 2004/06/03 00:07:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -824,7 +824,7 @@ main(int argc, char **argv)
 #endif
 
        progname = get_progname(argv[0]);
-       set_pglocale(argv[0], "pg_ctl");
+       set_pglocale_pgservice(argv[0], "pg_ctl");
 
        /*
         * save argv[0] so do_start() can look for the postmaster if
index b95aba5e2f7385743f76ac2f3b8c0adc98c3c2c9..f71abb7da9f863d514f47bf349cdfb31170eee59 100644 (file)
@@ -12,7 +12,7 @@
  *     by PostgreSQL
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.372 2004/05/26 18:24:22 momjian Exp $
+ *       $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.373 2004/06/03 00:07:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -242,7 +242,7 @@ main(int argc, char **argv)
        };
        int                     optindex;
 
-       set_pglocale(argv[0], "pg_dump");
+       set_pglocale_pgservice(argv[0], "pg_dump");
 
        g_verbose = false;
 
index 872416b64f74f3311bfc218efb678d91e65c2277..986313846b8265225c53d057e9ff557801cf3170 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.35 2004/05/25 01:00:24 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.36 2004/06/03 00:07:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -101,7 +101,7 @@ main(int argc, char *argv[])
 
        int                     optindex;
 
-       set_pglocale(argv[0], "pg_dump");
+       set_pglocale_pgservice(argv[0], "pg_dump");
 
        progname = get_progname(argv[0]);
 
index de44b583d12443cf054e78c8e056f8d0c10959c6..9b0dd312dad859a823cfecdfd0aadff1c701d0c0 100644 (file)
@@ -34,7 +34,7 @@
  *
  *
  * IDENTIFICATION
- *             $PostgreSQL: pgsql/src/bin/pg_dump/pg_restore.c,v 1.57 2004/05/25 01:00:24 momjian Exp $
+ *             $PostgreSQL: pgsql/src/bin/pg_dump/pg_restore.c,v 1.58 2004/06/03 00:07:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -121,7 +121,7 @@ main(int argc, char **argv)
                {NULL, 0, NULL, 0}
        };
 
-       set_pglocale(argv[0], "pg_dump");
+       set_pglocale_pgservice(argv[0], "pg_dump");
 
        opts = NewRestoreOptions();
 
index 6f2ed53161107a8ff7642bdd4c0606155cf6443e..41b81ea894b647a012ae6c3768f8cbb5a3b46af3 100644 (file)
@@ -23,7 +23,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/pg_resetxlog/pg_resetxlog.c,v 1.19 2004/05/25 01:00:25 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_resetxlog/pg_resetxlog.c,v 1.20 2004/06/03 00:07:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -102,7 +102,7 @@ main(int argc, char *argv[])
        int                     fd;
        char            path[MAXPGPATH];
 
-       set_pglocale(argv[0], "pg_resetxlog");
+       set_pglocale_pgservice(argv[0], "pg_resetxlog");
 
        progname = get_progname(argv[0]);
 
index 1d45105bd4b4f7657d47e4b59c294cc87d378111..e0f55c536d8f5ba49d3ffa8cf54fcffb341a6eda 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2003, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.94 2004/05/25 01:00:26 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.95 2004/06/03 00:07:37 momjian Exp $
  */
 #include "postgres_fe.h"
 
@@ -102,7 +102,7 @@ main(int argc, char *argv[])
        char       *password = NULL;
        bool            need_pass;
 
-       set_pglocale(argv[0], "psql");
+       set_pglocale_pgservice(argv[0], "psql");
 
        pset.progname = get_progname(argv[0]);
 
index 47eab33661f0d104a278271bc865a03652f8f9d5..ca0b46ee24f1278869b672bc469c2d5dddc0d9c9 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Portions Copyright (c) 2002-2003, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/scripts/clusterdb.c,v 1.8 2004/06/01 02:54:09 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/clusterdb.c,v 1.9 2004/06/03 00:07:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -58,7 +58,7 @@ main(int argc, char *argv[])
        char       *table = NULL;
 
        progname = get_progname(argv[0]);
-       set_pglocale(argv[0], "pgscripts");
+       set_pglocale_pgservice(argv[0], "pgscripts");
 
        handle_help_version_opts(argc, argv, "clusterdb", help);
 
index 59bf2ad96b7d528bc6a0c07cb5e3d015df14608a..02acf60f98e39d89a0f90945e2b9b79a2fb85f16 100644 (file)
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/scripts/createdb.c,v 1.10 2004/06/01 02:54:09 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/createdb.c,v 1.11 2004/06/03 00:07:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -60,7 +60,7 @@ main(int argc, char *argv[])
        PGresult   *result;
 
        progname = get_progname(argv[0]);
-       set_pglocale(argv[0], "pgscripts");
+       set_pglocale_pgservice(argv[0], "pgscripts");
 
        handle_help_version_opts(argc, argv, "createdb", help);
 
index 4c7a41e4d02844cd971203c62df0bbf8999ffc09..3e3fa762f5083d07fed9f86b0482883d18372d89 100644 (file)
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/scripts/createlang.c,v 1.11 2004/06/01 02:54:09 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/createlang.c,v 1.12 2004/06/03 00:07:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -61,7 +61,7 @@ main(int argc, char *argv[])
        PGresult   *result;
 
        progname = get_progname(argv[0]);
-       set_pglocale(argv[0], "pgscripts");
+       set_pglocale_pgservice(argv[0], "pgscripts");
 
        handle_help_version_opts(argc, argv, "createlang", help);
 
index 0d6e7bae354f6dc43d8a3f342a28832aedee3f56..e181d72cad2b14af7fdc37693e4c53073b99d2b6 100644 (file)
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/scripts/createuser.c,v 1.12 2004/06/01 02:54:09 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/createuser.c,v 1.13 2004/06/03 00:07:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -63,7 +63,7 @@ main(int argc, char *argv[])
        PGresult   *result;
 
        progname = get_progname(argv[0]);
-       set_pglocale(argv[0], "pgscripts");
+       set_pglocale_pgservice(argv[0], "pgscripts");
 
        handle_help_version_opts(argc, argv, "createuser", help);
 
index 535285f60f0c73b140a7e1b614727e6fa58bb8c8..cfd1031903f1170c0dd5f6e118a479e424d1409a 100644 (file)
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/scripts/dropdb.c,v 1.11 2004/06/01 02:54:09 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/dropdb.c,v 1.12 2004/06/03 00:07:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -51,7 +51,7 @@ main(int argc, char *argv[])
        PGresult   *result;
 
        progname = get_progname(argv[0]);
-       set_pglocale(argv[0], "pgscripts");
+       set_pglocale_pgservice(argv[0], "pgscripts");
 
        handle_help_version_opts(argc, argv, "dropdb", help);
 
index 5e2d8f44590efbd4bbd59a7b89244e8dfcc46477..209ec6d435a3e34143042d899c3f6ae1a1ff524a 100644 (file)
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/scripts/droplang.c,v 1.10 2004/06/01 02:54:09 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/droplang.c,v 1.11 2004/06/03 00:07:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -61,7 +61,7 @@ main(int argc, char *argv[])
        PGresult   *result;
 
        progname = get_progname(argv[0]);
-       set_pglocale(argv[0], "pgscripts");
+       set_pglocale_pgservice(argv[0], "pgscripts");
 
        handle_help_version_opts(argc, argv, "droplang", help);
 
index 6c8bcf44277200105be5af26ce179bfd1e321468..f043e15b6266bdc06b57ac826045a29babb026ef 100644 (file)
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/scripts/dropuser.c,v 1.10 2004/06/01 02:54:09 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/dropuser.c,v 1.11 2004/06/03 00:07:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -51,7 +51,7 @@ main(int argc, char *argv[])
        PGresult   *result;
 
        progname = get_progname(argv[0]);
-       set_pglocale(argv[0], "pgscripts");
+       set_pglocale_pgservice(argv[0], "pgscripts");
 
        handle_help_version_opts(argc, argv, "dropuser", help);
 
index 22dee1df0a17c8828222e46004fcbd78aea769f1..6965c669e1f9a339652af184d4df4788fc814ecc 100644 (file)
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/scripts/vacuumdb.c,v 1.8 2004/06/01 02:54:09 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/vacuumdb.c,v 1.9 2004/06/03 00:07:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -66,7 +66,7 @@ main(int argc, char *argv[])
        bool            verbose = false;
 
        progname = get_progname(argv[0]);
-       set_pglocale(argv[0], "pgscripts");
+       set_pglocale_pgservice(argv[0], "pgscripts");
 
        handle_help_version_opts(argc, argv, "vacuumdb", help);
 
index 907fb20a43bd7d0361dd7a9db55275ed90800e11..7ee0a138cd963a9f8b6ed034beca40315133b375 100644 (file)
@@ -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.39 2004/05/27 14:39:32 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/port.h,v 1.40 2004/06/03 00:07:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -32,7 +32,7 @@ extern void get_include_path(const char *my_exec_path, char *ret_path);
 extern void get_pkginclude_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(const char *argv0, const char *app);
+extern void set_pglocale_pgservice(const char *argv0, const char *app);
 
 /*
  *     is_absolute_path
index 1cfc6808c5ddab0bf790c139b17c945676eaa4d5..1e3379ef651b8233137d41c10ca48bc7a7031753 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.271 2004/05/26 18:35:51 momjian Exp $
+ *       $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.272 2004/06/03 00:07:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -2363,17 +2363,13 @@ pqPacketSend(PGconn *conn, char pack_type,
 
 
 
-#ifndef SYSCONFDIR
-#error "You must compile this file with SYSCONFDIR defined."
-#endif
-
 #define MAXBUFSIZE 256
 
 static int
 parseServiceInfo(PQconninfoOption *options, PQExpBuffer errorMessage)
 {
        char       *service = conninfo_getval(options, "service");
-       char       *serviceFile = SYSCONFDIR "/pg_service.conf";
+       char            serviceFile[MAXPGPATH];
        bool            group_found = false;
        int                     linenr = 0,
                                i;
@@ -2386,6 +2382,13 @@ parseServiceInfo(PQconninfoOption *options, PQExpBuffer errorMessage)
        if (service == NULL)
                service = getenv("PGSERVICE");
 
+       /*
+        *      This could be used by any application so we can't use the binary
+        *      location to find our config files.
+        */     
+       snprintf(serviceFile, MAXPGPATH, "%s/pg_service.conf",
+                        getenv("PGETC") ? getenv("PGETC") : SYSCONFDIR);
+
        if (service != NULL)
        {
                FILE       *f;
index abf2111a508b9d277f4f84c5c1ebdec3638c87c4..1d1a27956014b90658afb6d2efd7ed7d63576cc3 100644 (file)
@@ -23,7 +23,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/interfaces/libpq/fe-misc.c,v 1.106 2004/05/25 01:00:29 momjian Exp $
+ *       $PostgreSQL: pgsql/src/interfaces/libpq/fe-misc.c,v 1.107 2004/06/03 00:07:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1132,7 +1132,7 @@ libpq_gettext(const char *msgid)
        {
                already_bound = 1;
                /* No relocatable lookup here because the binary could be anywhere */
-               bindtextdomain("libpq", LOCALEDIR);
+               bindtextdomain("libpq", getenv("PGLOCALE") ? getenv("PGLOCALE") : LOCALEDIR);
        }
 
        return dgettext("libpq", msgid);
index edd4371bc9dca8c0be5bd0300c9da149bba59e46..1256b09a5002ef2bd77aab54fd061395cd2077f1 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/port/path.c,v 1.16 2004/05/26 19:00:31 momjian Exp $
+ *       $PostgreSQL: pgsql/src/port/path.c,v 1.17 2004/06/03 00:07:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -222,32 +222,47 @@ get_locale_path(const char *my_exec_path, char *ret_path)
 
 
 /*
- *     set_pglocale
+ *     set_pglocale_pgservice
  *
- *     Set application-specific locale
+ *     Set application-specific locale and service directory
  *
  *     This function takes an argv[0] rather than a full path.
  */
 void
-set_pglocale(const char *argv0, const char *app)
+set_pglocale_pgservice(const char *argv0, const char *app)
 {
-#ifdef ENABLE_NLS
        char path[MAXPGPATH];
        char my_exec_path[MAXPGPATH];
-#endif
+       char env_path[MAXPGPATH + strlen("PGLOCALE=")]; /* longer than PGETC */
 
        /* don't set LC_ALL in the backend */
        if (strcmp(app, "postgres") != 0)
                setlocale(LC_ALL, "");
 
-#ifdef ENABLE_NLS
        if (find_my_exec(argv0, my_exec_path) < 0)
                return;
                
+#ifdef ENABLE_NLS
        get_locale_path(my_exec_path, path);
        bindtextdomain(app, path);
        textdomain(app);
+
+       if (!getenv("PGLOCALE"))
+       {
+               /* set for libpq to use */
+               sprintf(env_path, "PGLOCALE=%s", path);
+               putenv(env_path);
+       }
 #endif
+
+       if (!getenv("PGETC"))
+       {
+               get_etc_path(my_exec_path, path);
+       
+               /* set for libpq to use */
+               sprintf(env_path, "PGETC=%s", path);
+               putenv(env_path);
+       }
 }