aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2008-12-11 07:34:09 +0000
committerPeter Eisentraut <peter_e@gmx.net>2008-12-11 07:34:09 +0000
commit218b4e8dd86016f82c3a71dec9d339240e866505 (patch)
tree1406076a9d31827ee9de1b04e16f4637d3fc186e /src
parent55368223cde4f19b4cd97eff7ea82b4a85a7a04c (diff)
downloadpostgresql-218b4e8dd86016f82c3a71dec9d339240e866505.tar.gz
postgresql-218b4e8dd86016f82c3a71dec9d339240e866505.zip
Append major version number and for libraries soname major version number
to the gettext domain name, to simplify parallel installations. Also, rename set_text_domain() to pg_bindtextdomain(), because that is what it does.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.global.in3
-rw-r--r--src/Makefile.shlib6
-rw-r--r--src/backend/main/main.c4
-rw-r--r--src/backend/utils/init/miscinit.c4
-rw-r--r--src/bin/initdb/initdb.c4
-rw-r--r--src/bin/pg_config/pg_config.c4
-rw-r--r--src/bin/pg_controldata/pg_controldata.c4
-rw-r--r--src/bin/pg_ctl/pg_ctl.c4
-rw-r--r--src/bin/pg_dump/pg_dump.c4
-rw-r--r--src/bin/pg_dump/pg_dumpall.c4
-rw-r--r--src/bin/pg_dump/pg_restore.c4
-rw-r--r--src/bin/pg_resetxlog/pg_resetxlog.c4
-rw-r--r--src/bin/psql/startup.c4
-rw-r--r--src/bin/scripts/clusterdb.c4
-rw-r--r--src/bin/scripts/createdb.c4
-rw-r--r--src/bin/scripts/createlang.c4
-rw-r--r--src/bin/scripts/createuser.c4
-rw-r--r--src/bin/scripts/dropdb.c4
-rw-r--r--src/bin/scripts/droplang.c4
-rw-r--r--src/bin/scripts/dropuser.c4
-rw-r--r--src/bin/scripts/reindexdb.c4
-rw-r--r--src/bin/scripts/vacuumdb.c4
-rw-r--r--src/include/c.h28
-rw-r--r--src/include/miscadmin.h4
-rw-r--r--src/include/pg_config.h.in3
-rw-r--r--src/interfaces/ecpg/ecpglib/misc.c6
-rw-r--r--src/interfaces/ecpg/preproc/ecpg.c4
-rw-r--r--src/interfaces/libpq/fe-misc.c6
-rw-r--r--src/nls-global.mk7
-rw-r--r--src/pl/plperl/plperl.c6
-rw-r--r--src/pl/plpgsql/src/pl_handler.c4
-rw-r--r--src/pl/plpgsql/src/plpgsql.h4
-rw-r--r--src/pl/plpython/plpython.c6
-rw-r--r--src/pl/tcl/pltcl.c6
-rw-r--r--src/port/exec.c4
-rw-r--r--src/test/regress/pg_regress.c4
36 files changed, 108 insertions, 73 deletions
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index 58f2d83074f..a1fc846ac86 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -1,5 +1,5 @@
# -*-makefile-*-
-# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.248 2008/12/07 08:36:22 petere Exp $
+# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.249 2008/12/11 07:34:07 petere Exp $
#------------------------------------------------------------------------------
# All PostgreSQL makefiles include this file and use the variables it sets,
@@ -30,6 +30,7 @@ all:
# PostgreSQL version number
VERSION = @PACKAGE_VERSION@
+MAJORVERSION = @PG_MAJORVERSION@
# Support for VPATH builds
vpath_build = @vpath_build@
diff --git a/src/Makefile.shlib b/src/Makefile.shlib
index f6136a7a87d..37a99dbf951 100644
--- a/src/Makefile.shlib
+++ b/src/Makefile.shlib
@@ -6,7 +6,7 @@
# Copyright (c) 1998, Regents of the University of California
#
# IDENTIFICATION
-# $PostgreSQL: pgsql/src/Makefile.shlib,v 1.118 2008/11/24 11:59:37 petere Exp $
+# $PostgreSQL: pgsql/src/Makefile.shlib,v 1.119 2008/12/11 07:34:07 petere Exp $
#
#-------------------------------------------------------------------------
@@ -115,6 +115,10 @@ endif
# Try to keep the sections in some kind of order, folks...
override CFLAGS += $(CFLAGS_SL)
+ifdef SO_MAJOR_VERSION
+# libraries ought to use this to refer to versioned gettext domain names
+override CPPFLAGS += -DSO_MAJOR_VERSION=$(SO_MAJOR_VERSION)
+endif
ifeq ($(PORTNAME), aix)
ifdef SO_MAJOR_VERSION
diff --git a/src/backend/main/main.c b/src/backend/main/main.c
index 53604da03ca..3f5aa344795 100644
--- a/src/backend/main/main.c
+++ b/src/backend/main/main.c
@@ -13,7 +13,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/main/main.c,v 1.110 2008/01/01 19:45:49 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/main/main.c,v 1.111 2008/12/11 07:34:07 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -87,7 +87,7 @@ main(int argc, char *argv[])
* error messages to be localized.
*/
- set_pglocale_pgservice(argv[0], "postgres");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("postgres"));
#ifdef WIN32
diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c
index c3b26698e2a..6490122b552 100644
--- a/src/backend/utils/init/miscinit.c
+++ b/src/backend/utils/init/miscinit.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/init/miscinit.c,v 1.168 2008/10/09 17:24:05 alvherre Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/init/miscinit.c,v 1.169 2008/12/11 07:34:07 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1214,7 +1214,7 @@ process_local_preload_libraries(void)
}
void
-set_text_domain(const char *domain)
+pg_bindtextdomain(const char *domain)
{
#ifdef ENABLE_NLS
if (my_exec_path[0] != '\0')
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
index 04c29bec59e..1e75a3436c0 100644
--- a/src/bin/initdb/initdb.c
+++ b/src/bin/initdb/initdb.c
@@ -42,7 +42,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
* Portions taken from FreeBSD.
*
- * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.164 2008/11/14 02:09:51 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.165 2008/12/11 07:34:07 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2511,7 +2511,7 @@ main(int argc, char *argv[])
};
progname = get_progname(argv[0]);
- set_pglocale_pgservice(argv[0], "initdb");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("initdb"));
if (argc > 1)
{
diff --git a/src/bin/pg_config/pg_config.c b/src/bin/pg_config/pg_config.c
index db3f9f1e086..2a297b2af5e 100644
--- a/src/bin/pg_config/pg_config.c
+++ b/src/bin/pg_config/pg_config.c
@@ -17,7 +17,7 @@
*
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/pg_config/pg_config.c,v 1.28 2008/03/27 03:57:33 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_config/pg_config.c,v 1.29 2008/12/11 07:34:07 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -465,7 +465,7 @@ main(int argc, char **argv)
int j;
int ret;
- set_pglocale_pgservice(argv[0], "pg_config");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_config"));
progname = get_progname(argv[0]);
diff --git a/src/bin/pg_controldata/pg_controldata.c b/src/bin/pg_controldata/pg_controldata.c
index 96827c3aac4..e375057bfa9 100644
--- a/src/bin/pg_controldata/pg_controldata.c
+++ b/src/bin/pg_controldata/pg_controldata.c
@@ -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.41 2008/09/24 08:59:42 mha Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_controldata/pg_controldata.c,v 1.42 2008/12/11 07:34:08 petere Exp $
*/
#include "postgres_fe.h"
@@ -76,7 +76,7 @@ main(int argc, char *argv[])
const char *strftime_fmt = "%c";
const char *progname;
- set_pglocale_pgservice(argv[0], "pg_controldata");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_controldata"));
progname = get_progname(argv[0]);
diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c
index 7dc57aae6ef..52545ce8dc3 100644
--- a/src/bin/pg_ctl/pg_ctl.c
+++ b/src/bin/pg_ctl/pg_ctl.c
@@ -4,7 +4,7 @@
*
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.104 2008/09/30 12:51:07 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.105 2008/12/11 07:34:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1648,7 +1648,7 @@ main(int argc, char **argv)
#endif
progname = get_progname(argv[0]);
- set_pglocale_pgservice(argv[0], "pg_ctl");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_ctl"));
/*
* save argv[0] so do_start() can look for the postmaster if necessary. we
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index de01df421d4..0f7419a6533 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -12,7 +12,7 @@
* by PostgreSQL
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.506 2008/12/04 17:51:27 petere Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.507 2008/12/11 07:34:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -274,7 +274,7 @@ main(int argc, char **argv)
{NULL, 0, NULL, 0}
};
- set_pglocale_pgservice(argv[0], "pg_dump");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_dump"));
g_verbose = false;
diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c
index 889ed4eae6b..73e133ff521 100644
--- a/src/bin/pg_dump/pg_dumpall.c
+++ b/src/bin/pg_dump/pg_dumpall.c
@@ -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.108 2008/11/21 20:14:27 mha Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.109 2008/12/11 07:34:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -127,7 +127,7 @@ main(int argc, char *argv[])
int optindex;
- set_pglocale_pgservice(argv[0], "pg_dump");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_dump"));
progname = get_progname(argv[0]);
diff --git a/src/bin/pg_dump/pg_restore.c b/src/bin/pg_dump/pg_restore.c
index 89eb3b4371a..95bb61b72fe 100644
--- a/src/bin/pg_dump/pg_restore.c
+++ b/src/bin/pg_dump/pg_restore.c
@@ -34,7 +34,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_restore.c,v 1.88 2008/04/13 03:49:22 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_restore.c,v 1.89 2008/12/11 07:34:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -119,7 +119,7 @@ main(int argc, char **argv)
{NULL, 0, NULL, 0}
};
- set_pglocale_pgservice(argv[0], "pg_dump");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_dump"));
opts = NewRestoreOptions();
diff --git a/src/bin/pg_resetxlog/pg_resetxlog.c b/src/bin/pg_resetxlog/pg_resetxlog.c
index da18910b47c..30baab704db 100644
--- a/src/bin/pg_resetxlog/pg_resetxlog.c
+++ b/src/bin/pg_resetxlog/pg_resetxlog.c
@@ -23,7 +23,7 @@
* Portions Copyright (c) 1996-2008, 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.69 2008/11/14 21:45:07 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_resetxlog/pg_resetxlog.c,v 1.70 2008/12/11 07:34:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -96,7 +96,7 @@ main(int argc, char *argv[])
int fd;
char path[MAXPGPATH];
- set_pglocale_pgservice(argv[0], "pg_resetxlog");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_resetxlog"));
progname = get_progname(argv[0]);
diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c
index b18eb445184..c8602161c07 100644
--- a/src/bin/psql/startup.c
+++ b/src/bin/psql/startup.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2008, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.151 2008/07/20 06:08:38 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.152 2008/12/11 07:34:08 petere Exp $
*/
#include "postgres_fe.h"
@@ -96,7 +96,7 @@ main(int argc, char *argv[])
char *password_prompt = NULL;
bool new_pass;
- set_pglocale_pgservice(argv[0], "psql");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("psql"));
if (argc > 1)
{
diff --git a/src/bin/scripts/clusterdb.c b/src/bin/scripts/clusterdb.c
index c815cf2a4f9..d7fedc4cdb0 100644
--- a/src/bin/scripts/clusterdb.c
+++ b/src/bin/scripts/clusterdb.c
@@ -4,7 +4,7 @@
*
* Portions Copyright (c) 2002-2008, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/scripts/clusterdb.c,v 1.21 2008/11/24 08:46:04 petere Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/clusterdb.c,v 1.22 2008/12/11 07:34:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -58,7 +58,7 @@ main(int argc, char *argv[])
bool verbose = false;
progname = get_progname(argv[0]);
- set_pglocale_pgservice(argv[0], "pgscripts");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pgscripts"));
handle_help_version_opts(argc, argv, "clusterdb", help);
diff --git a/src/bin/scripts/createdb.c b/src/bin/scripts/createdb.c
index ee172ad187a..8c42f36f151 100644
--- a/src/bin/scripts/createdb.c
+++ b/src/bin/scripts/createdb.c
@@ -5,7 +5,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/bin/scripts/createdb.c,v 1.28 2008/11/10 16:25:41 alvherre Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/createdb.c,v 1.29 2008/12/11 07:34:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -63,7 +63,7 @@ main(int argc, char *argv[])
PGresult *result;
progname = get_progname(argv[0]);
- set_pglocale_pgservice(argv[0], "pgscripts");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pgscripts"));
handle_help_version_opts(argc, argv, "createdb", help);
diff --git a/src/bin/scripts/createlang.c b/src/bin/scripts/createlang.c
index f27e0d25425..e25a42618f5 100644
--- a/src/bin/scripts/createlang.c
+++ b/src/bin/scripts/createlang.c
@@ -5,7 +5,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/bin/scripts/createlang.c,v 1.30 2008/07/14 22:00:04 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/createlang.c,v 1.31 2008/12/11 07:34:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -52,7 +52,7 @@ main(int argc, char *argv[])
PGresult *result;
progname = get_progname(argv[0]);
- set_pglocale_pgservice(argv[0], "pgscripts");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pgscripts"));
handle_help_version_opts(argc, argv, "createlang", help);
diff --git a/src/bin/scripts/createuser.c b/src/bin/scripts/createuser.c
index 7bdf3244c48..c6e7b6ea9e0 100644
--- a/src/bin/scripts/createuser.c
+++ b/src/bin/scripts/createuser.c
@@ -5,7 +5,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/bin/scripts/createuser.c,v 1.38 2008/01/01 19:45:56 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/createuser.c,v 1.39 2008/12/11 07:34:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -81,7 +81,7 @@ main(int argc, char *argv[])
PGresult *result;
progname = get_progname(argv[0]);
- set_pglocale_pgservice(argv[0], "pgscripts");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pgscripts"));
handle_help_version_opts(argc, argv, "createuser", help);
diff --git a/src/bin/scripts/dropdb.c b/src/bin/scripts/dropdb.c
index d7fde3d6e52..aca4ada4481 100644
--- a/src/bin/scripts/dropdb.c
+++ b/src/bin/scripts/dropdb.c
@@ -5,7 +5,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/bin/scripts/dropdb.c,v 1.22 2008/01/01 19:45:56 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/dropdb.c,v 1.23 2008/12/11 07:34:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -50,7 +50,7 @@ main(int argc, char *argv[])
PGresult *result;
progname = get_progname(argv[0]);
- set_pglocale_pgservice(argv[0], "pgscripts");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pgscripts"));
handle_help_version_opts(argc, argv, "dropdb", help);
diff --git a/src/bin/scripts/droplang.c b/src/bin/scripts/droplang.c
index 308bef71357..ebdb4849ee1 100644
--- a/src/bin/scripts/droplang.c
+++ b/src/bin/scripts/droplang.c
@@ -5,7 +5,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/bin/scripts/droplang.c,v 1.27 2008/07/14 22:00:04 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/droplang.c,v 1.28 2008/12/11 07:34:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -63,7 +63,7 @@ main(int argc, char *argv[])
PGresult *result;
progname = get_progname(argv[0]);
- set_pglocale_pgservice(argv[0], "pgscripts");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pgscripts"));
handle_help_version_opts(argc, argv, "droplang", help);
diff --git a/src/bin/scripts/dropuser.c b/src/bin/scripts/dropuser.c
index 9facf923344..45b08f85aba 100644
--- a/src/bin/scripts/dropuser.c
+++ b/src/bin/scripts/dropuser.c
@@ -5,7 +5,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/bin/scripts/dropuser.c,v 1.23 2008/01/01 19:45:56 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/dropuser.c,v 1.24 2008/12/11 07:34:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -50,7 +50,7 @@ main(int argc, char *argv[])
PGresult *result;
progname = get_progname(argv[0]);
- set_pglocale_pgservice(argv[0], "pgscripts");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pgscripts"));
handle_help_version_opts(argc, argv, "dropuser", help);
diff --git a/src/bin/scripts/reindexdb.c b/src/bin/scripts/reindexdb.c
index f94a964179a..5fdfd6b91cc 100644
--- a/src/bin/scripts/reindexdb.c
+++ b/src/bin/scripts/reindexdb.c
@@ -4,7 +4,7 @@
*
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/scripts/reindexdb.c,v 1.13 2008/01/01 19:45:56 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/reindexdb.c,v 1.14 2008/12/11 07:34:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -64,7 +64,7 @@ main(int argc, char *argv[])
const char *index = NULL;
progname = get_progname(argv[0]);
- set_pglocale_pgservice(argv[0], "pgscripts");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pgscripts"));
handle_help_version_opts(argc, argv, "reindexdb", help);
diff --git a/src/bin/scripts/vacuumdb.c b/src/bin/scripts/vacuumdb.c
index 7f960a45595..ca961297443 100644
--- a/src/bin/scripts/vacuumdb.c
+++ b/src/bin/scripts/vacuumdb.c
@@ -5,7 +5,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/bin/scripts/vacuumdb.c,v 1.20 2008/01/01 19:45:56 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/vacuumdb.c,v 1.21 2008/12/11 07:34:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -64,7 +64,7 @@ main(int argc, char *argv[])
bool verbose = false;
progname = get_progname(argv[0]);
- set_pglocale_pgservice(argv[0], "pgscripts");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pgscripts"));
handle_help_version_opts(argc, argv, "vacuumdb", help);
diff --git a/src/include/c.h b/src/include/c.h
index ca86067b9f9..4493fb91037 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -12,7 +12,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/c.h,v 1.230 2008/10/09 22:23:46 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/c.h,v 1.231 2008/12/11 07:34:08 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -715,6 +715,32 @@ typedef NameData *Name;
#define STATUS_WAITING (2)
+/* gettext domain name mangling */
+
+/*
+ * To better support parallel installations of major PostgeSQL
+ * versions as well as parallel installations of major library soname
+ * versions, we mangle the gettext domain name by appending those
+ * version numbers. The coding rule ought to be that whereever the
+ * domain name is mentioned as a literal, it must be wrapped into
+ * PG_TEXTDOMAIN(). The macros below do not work on non-literals; but
+ * that is somewhat intentional because it avoids having to worry
+ * about multiple states of premangling and postmangling as the values
+ * are being passed around.
+ *
+ * Make sure this matches the installation rules in nls-global.mk.
+ */
+
+/* need a second indirection because we want to stringize the macro value, not the name */
+#define CppAsString2(x) CppAsString(x)
+
+#ifdef SO_MAJOR_VERSION
+# define PG_TEXTDOMAIN(domain) (domain CppAsString2(SO_MAJOR_VERSION) "-" PG_MAJORVERSION)
+#else
+# define PG_TEXTDOMAIN(domain) (domain "-" PG_MAJORVERSION)
+#endif
+
+
/* ----------------------------------------------------------------
* Section 8: system-specific hacks
*
diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h
index 3a3f3830991..821f8647363 100644
--- a/src/include/miscadmin.h
+++ b/src/include/miscadmin.h
@@ -13,7 +13,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/miscadmin.h,v 1.205 2008/11/11 02:42:32 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/miscadmin.h,v 1.206 2008/12/11 07:34:08 petere Exp $
*
* NOTES
* some of the information in this file should be moved to other files.
@@ -343,7 +343,7 @@ extern void RecordSharedMemoryInLockFile(unsigned long id1,
extern void ValidatePgVersion(const char *path);
extern void process_shared_preload_libraries(void);
extern void process_local_preload_libraries(void);
-extern void set_text_domain(const char *domain);
+extern void pg_bindtextdomain(const char *domain);
/* in access/transam/xlog.c */
extern bool BackupInProgress(void);
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 9f6f21bf817..5ba3ca82604 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -642,6 +642,9 @@
(--with-krb-srvnam=NAME) */
#undef PG_KRB_SRVNAM
+/* PostgreSQL major version as a string */
+#undef PG_MAJORVERSION
+
/* PostgreSQL version as a string */
#undef PG_VERSION
diff --git a/src/interfaces/ecpg/ecpglib/misc.c b/src/interfaces/ecpg/ecpglib/misc.c
index dbeb448f213..29c391612e2 100644
--- a/src/interfaces/ecpg/ecpglib/misc.c
+++ b/src/interfaces/ecpg/ecpglib/misc.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/misc.c,v 1.43 2008/11/01 19:53:35 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/misc.c,v 1.44 2008/12/11 07:34:09 petere Exp $ */
#define POSTGRES_ECPG_INTERNAL
#include "postgres_fe.h"
@@ -474,7 +474,7 @@ ecpg_gettext(const char *msgid)
ldir = getenv("PGLOCALEDIR");
if (!ldir)
ldir = LOCALEDIR;
- bindtextdomain("ecpg", ldir);
+ bindtextdomain(PG_TEXTDOMAIN("ecpg"), ldir);
#ifdef WIN32
SetLastError(save_errno);
#else
@@ -482,7 +482,7 @@ ecpg_gettext(const char *msgid)
#endif
}
- return dgettext("ecpg", msgid);
+ return dgettext(PG_TEXTDOMAIN("ecpg"), msgid);
}
#endif /* ENABLE_NLS */
diff --git a/src/interfaces/ecpg/preproc/ecpg.c b/src/interfaces/ecpg/preproc/ecpg.c
index 5c3245bd885..70317fcf0c3 100644
--- a/src/interfaces/ecpg/preproc/ecpg.c
+++ b/src/interfaces/ecpg/preproc/ecpg.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.c,v 1.105 2008/05/16 15:20:04 petere Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.c,v 1.106 2008/12/11 07:34:09 petere Exp $ */
/* New main for ecpg, the PostgreSQL embedded SQL precompiler. */
/* (C) Michael Meskes <meskes@postgresql.org> Feb 5th, 1998 */
@@ -138,7 +138,7 @@ main(int argc, char *const argv[])
char my_exec_path[MAXPGPATH];
char include_path[MAXPGPATH];
- set_pglocale_pgservice(argv[0], "ecpg");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("ecpg"));
progname = get_progname(argv[0]);
diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c
index 691262cf8ab..c7fd13a09c9 100644
--- a/src/interfaces/libpq/fe-misc.c
+++ b/src/interfaces/libpq/fe-misc.c
@@ -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.136 2008/10/27 09:42:31 mha Exp $
+ * $PostgreSQL: pgsql/src/interfaces/libpq/fe-misc.c,v 1.137 2008/12/11 07:34:09 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1166,7 +1166,7 @@ libpq_gettext(const char *msgid)
ldir = getenv("PGLOCALEDIR");
if (!ldir)
ldir = LOCALEDIR;
- bindtextdomain("libpq", ldir);
+ bindtextdomain(PG_TEXTDOMAIN("libpq"), ldir);
#ifdef WIN32
SetLastError(save_errno);
#else
@@ -1174,7 +1174,7 @@ libpq_gettext(const char *msgid)
#endif
}
- return dgettext("libpq", msgid);
+ return dgettext(PG_TEXTDOMAIN("libpq"), msgid);
}
#endif /* ENABLE_NLS */
diff --git a/src/nls-global.mk b/src/nls-global.mk
index c6fed12936b..8487b58c9da 100644
--- a/src/nls-global.mk
+++ b/src/nls-global.mk
@@ -1,4 +1,4 @@
-# $PostgreSQL: pgsql/src/nls-global.mk,v 1.14 2008/05/17 21:27:12 momjian Exp $
+# $PostgreSQL: pgsql/src/nls-global.mk,v 1.15 2008/12/11 07:34:07 petere Exp $
# Common rules for Native Language Support (NLS)
#
@@ -62,10 +62,11 @@ else # not XGETTEXT
endif # not XGETTEXT
+# catalog name extentions must match behavior of PG_TEXTDOMAIN() in c.h
install-po: all-po installdirs-po
ifneq (,$(LANGUAGES))
for lang in $(LANGUAGES); do \
- $(INSTALL_DATA) po/$$lang.mo '$(DESTDIR)$(localedir)'/$$lang/LC_MESSAGES/$(CATALOG_NAME).mo || exit 1; \
+ $(INSTALL_DATA) po/$$lang.mo '$(DESTDIR)$(localedir)'/$$lang/LC_MESSAGES/$(CATALOG_NAME)$(SO_MAJOR_VERSION)-$(MAJORVERSION).mo || exit 1; \
done
endif
@@ -73,7 +74,7 @@ installdirs-po:
$(mkinstalldirs) $(foreach lang, $(LANGUAGES), '$(DESTDIR)$(localedir)'/$(lang)/LC_MESSAGES)
uninstall-po:
- rm -f $(foreach lang, $(LANGUAGES), '$(DESTDIR)$(localedir)'/$(lang)/LC_MESSAGES/$(CATALOG_NAME).mo)
+ rm -f $(foreach lang, $(LANGUAGES), '$(DESTDIR)$(localedir)'/$(lang)/LC_MESSAGES/$(CATALOG_NAME)$(SO_MAJOR_VERSION)-$(MAJORVERSION).mo)
clean-po:
diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c
index a221b92a2f1..e2df129f52b 100644
--- a/src/pl/plperl/plperl.c
+++ b/src/pl/plperl/plperl.c
@@ -1,7 +1,7 @@
/**********************************************************************
* plperl.c - perl as a procedural language for PostgreSQL
*
- * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.142 2008/11/19 01:10:24 tgl Exp $
+ * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.143 2008/12/11 07:34:09 petere Exp $
*
**********************************************************************/
@@ -32,7 +32,7 @@
/* define our text domain for translations */
#undef TEXTDOMAIN
-#define TEXTDOMAIN "plperl"
+#define TEXTDOMAIN PG_TEXTDOMAIN("plperl")
/* perl stuff */
#include "plperl.h"
@@ -190,7 +190,7 @@ _PG_init(void)
if (inited)
return;
- set_text_domain(TEXTDOMAIN);
+ pg_bindtextdomain(TEXTDOMAIN);
DefineCustomBoolVariable("plperl.use_strict",
gettext_noop("If true, will compile trusted and untrusted perl code in strict mode"),
diff --git a/src/pl/plpgsql/src/pl_handler.c b/src/pl/plpgsql/src/pl_handler.c
index 223d06f7b6f..f2f52561fe1 100644
--- a/src/pl/plpgsql/src/pl_handler.c
+++ b/src/pl/plpgsql/src/pl_handler.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_handler.c,v 1.41 2008/10/09 17:24:05 alvherre Exp $
+ * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_handler.c,v 1.42 2008/12/11 07:34:09 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -42,7 +42,7 @@ _PG_init(void)
if (inited)
return;
- set_text_domain(TEXTDOMAIN);
+ pg_bindtextdomain(TEXTDOMAIN);
plpgsql_HashTableInit();
RegisterXactCallback(plpgsql_xact_cb, NULL);
diff --git a/src/pl/plpgsql/src/plpgsql.h b/src/pl/plpgsql/src/plpgsql.h
index df03f23eccc..c114ff9a9fd 100644
--- a/src/pl/plpgsql/src/plpgsql.h
+++ b/src/pl/plpgsql/src/plpgsql.h
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/pl/plpgsql/src/plpgsql.h,v 1.105 2008/11/05 00:07:54 tgl Exp $
+ * $PostgreSQL: pgsql/src/pl/plpgsql/src/plpgsql.h,v 1.106 2008/12/11 07:34:09 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -30,7 +30,7 @@
/* define our text domain for translations */
#undef TEXTDOMAIN
-#define TEXTDOMAIN "plpgsql"
+#define TEXTDOMAIN PG_TEXTDOMAIN("plpgsql")
/* ----------
* Compiler's namestack item types
diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c
index 1e136b22c64..b8658837f4c 100644
--- a/src/pl/plpython/plpython.c
+++ b/src/pl/plpython/plpython.c
@@ -1,7 +1,7 @@
/**********************************************************************
* plpython.c - python as a procedural language for PostgreSQL
*
- * $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.116 2008/11/04 15:16:48 tgl Exp $
+ * $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.117 2008/12/11 07:34:09 petere Exp $
*
*********************************************************************
*/
@@ -66,7 +66,7 @@ typedef int Py_ssize_t;
/* define our text domain for translations */
#undef TEXTDOMAIN
-#define TEXTDOMAIN "plpython"
+#define TEXTDOMAIN PG_TEXTDOMAIN("plpython")
#include <compile.h>
#include <eval.h>
@@ -2750,7 +2750,7 @@ _PG_init(void)
if (inited)
return;
- set_text_domain(TEXTDOMAIN);
+ pg_bindtextdomain(TEXTDOMAIN);
Py_Initialize();
PLy_init_interp();
diff --git a/src/pl/tcl/pltcl.c b/src/pl/tcl/pltcl.c
index 722c7ed43b4..f71af5c7257 100644
--- a/src/pl/tcl/pltcl.c
+++ b/src/pl/tcl/pltcl.c
@@ -2,7 +2,7 @@
* pltcl.c - PostgreSQL support for Tcl as
* procedural language (PL)
*
- * $PostgreSQL: pgsql/src/pl/tcl/pltcl.c,v 1.123 2008/10/11 00:09:33 alvherre Exp $
+ * $PostgreSQL: pgsql/src/pl/tcl/pltcl.c,v 1.124 2008/12/11 07:34:09 petere Exp $
*
**********************************************************************/
@@ -44,7 +44,7 @@
/* define our text domain for translations */
#undef TEXTDOMAIN
-#define TEXTDOMAIN "pltcl"
+#define TEXTDOMAIN PG_TEXTDOMAIN("pltcl")
#if defined(UNICODE_CONVERSION) && HAVE_TCL_VERSION(8,1)
@@ -268,7 +268,7 @@ _PG_init(void)
if (pltcl_pm_init_done)
return;
- set_text_domain(TEXTDOMAIN);
+ pg_bindtextdomain(TEXTDOMAIN);
#ifdef WIN32
/* Required on win32 to prevent error loading init.tcl */
diff --git a/src/port/exec.c b/src/port/exec.c
index ce0a7017947..6b917857ac6 100644
--- a/src/port/exec.c
+++ b/src/port/exec.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/port/exec.c,v 1.60 2008/04/16 22:16:00 adunstan Exp $
+ * $PostgreSQL: pgsql/src/port/exec.c,v 1.61 2008/12/11 07:34:09 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -630,7 +630,7 @@ set_pglocale_pgservice(const char *argv0, const char *app)
* PGLOCALEDIR */
/* don't set LC_ALL in the backend */
- if (strcmp(app, "postgres") != 0)
+ if (strcmp(app, PG_TEXTDOMAIN("postgres")) != 0)
setlocale(LC_ALL, "");
if (find_my_exec(argv0, my_exec_path) < 0)
diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c
index ed8dbf4c353..6075b5a7d35 100644
--- a/src/test/regress/pg_regress.c
+++ b/src/test/regress/pg_regress.c
@@ -11,7 +11,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.54 2008/11/28 12:45:34 petere Exp $
+ * $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.55 2008/12/11 07:34:09 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1894,7 +1894,7 @@ regression_main(int argc, char *argv[], init_function ifunc, test_function tfunc
};
progname = get_progname(argv[0]);
- set_pglocale_pgservice(argv[0], "pg_regress");
+ set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_regress"));
#ifndef HAVE_UNIX_SOCKETS
/* no unix domain sockets available, so change default */