aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/nls.mk5
-rw-r--r--src/bin/pg_dump/nls.mk5
-rw-r--r--src/bin/psql/nls.mk1
-rw-r--r--src/interfaces/ecpg/ecpglib/nls.mk1
-rw-r--r--src/interfaces/ecpg/preproc/nls.mk1
-rw-r--r--src/interfaces/libpq/nls.mk1
-rw-r--r--src/nls-global.mk13
-rw-r--r--src/pl/plperl/nls.mk1
-rw-r--r--src/pl/plpgsql/src/nls.mk1
-rw-r--r--src/pl/plpython/nls.mk5
-rw-r--r--src/pl/tcl/nls.mk1
11 files changed, 33 insertions, 2 deletions
diff --git a/src/backend/nls.mk b/src/backend/nls.mk
index 7672d67090e..297d1cb1902 100644
--- a/src/backend/nls.mk
+++ b/src/backend/nls.mk
@@ -5,6 +5,11 @@ GETTEXT_FILES = + gettext-files
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS) \
GUC_check_errmsg GUC_check_errdetail GUC_check_errhint \
write_stderr yyerror parser_yyerror
+GETTEXT_FLAGS = $(BACKEND_COMMON_GETTEXT_FLAGS) \
+ GUC_check_errmsg:1:c-format \
+ GUC_check_errdetail:1:c-format \
+ GUC_check_errhint:1:c-format \
+ write_stderr:1:c-format
gettext-files: distprep
find $(srcdir)/ $(srcdir)/../port/ -name '*.c' -print >$@
diff --git a/src/bin/pg_dump/nls.mk b/src/bin/pg_dump/nls.mk
index 48a4990163b..a4824af1b8c 100644
--- a/src/bin/pg_dump/nls.mk
+++ b/src/bin/pg_dump/nls.mk
@@ -7,3 +7,8 @@ GETTEXT_FILES = pg_dump.c common.c pg_backup_archiver.c pg_backup_custom.c \
../../port/exec.c
GETTEXT_TRIGGERS = write_msg:2 die_horribly:3 exit_horribly:3 simple_prompt \
ExecuteSqlCommand:3 ahlog:3
+GETTEXT_FLAGS = \
+ write_msg:2:c-format \
+ die_horribly:3:c-format \
+ exit_horribly:3:c-format \
+ ahlog:3:c-format
diff --git a/src/bin/psql/nls.mk b/src/bin/psql/nls.mk
index 38d9b157f2c..8d744348f0b 100644
--- a/src/bin/psql/nls.mk
+++ b/src/bin/psql/nls.mk
@@ -5,3 +5,4 @@ GETTEXT_FILES = command.c common.c copy.c help.c input.c large_obj.c \
mainloop.c print.c startup.c describe.c sql_help.h sql_help.c \
../../port/exec.c
GETTEXT_TRIGGERS = N_ psql_error simple_prompt
+GETTEXT_FLAGS = psql_error:1:c-format
diff --git a/src/interfaces/ecpg/ecpglib/nls.mk b/src/interfaces/ecpg/ecpglib/nls.mk
index 2c92237bd7f..a127e636516 100644
--- a/src/interfaces/ecpg/ecpglib/nls.mk
+++ b/src/interfaces/ecpg/ecpglib/nls.mk
@@ -3,3 +3,4 @@ CATALOG_NAME = ecpglib
AVAIL_LANGUAGES = de es fr it ja pt_BR tr zh_CN
GETTEXT_FILES = connect.c error.c execute.c misc.c
GETTEXT_TRIGGERS = ecpg_gettext
+GETTEXT_FLAGS = ecpg_gettext:1:pass-c-format
diff --git a/src/interfaces/ecpg/preproc/nls.mk b/src/interfaces/ecpg/preproc/nls.mk
index 2c66d7833af..2a10b7668d7 100644
--- a/src/interfaces/ecpg/preproc/nls.mk
+++ b/src/interfaces/ecpg/preproc/nls.mk
@@ -3,3 +3,4 @@ CATALOG_NAME = ecpg
AVAIL_LANGUAGES = de es fr it ja ko pt_BR tr zh_CN zh_TW
GETTEXT_FILES = descriptor.c ecpg.c pgc.c preproc.c type.c variable.c
GETTEXT_TRIGGERS = mmerror:3
+GETTEXT_FLAGS = mmerror:3:c-format
diff --git a/src/interfaces/libpq/nls.mk b/src/interfaces/libpq/nls.mk
index ae0911e850d..2cd1efa9b03 100644
--- a/src/interfaces/libpq/nls.mk
+++ b/src/interfaces/libpq/nls.mk
@@ -3,3 +3,4 @@ CATALOG_NAME = libpq
AVAIL_LANGUAGES = cs de es fr it ja ko pt_BR ru sv ta tr zh_CN zh_TW
GETTEXT_FILES = fe-auth.c fe-connect.c fe-exec.c fe-lobj.c fe-misc.c fe-protocol2.c fe-protocol3.c fe-secure.c
GETTEXT_TRIGGERS = libpq_gettext pqInternalNotice:2
+GETTEXT_FLAGS = libpq_gettext:1:pass-c-format pqInternalNotice:2:c-format
diff --git a/src/nls-global.mk b/src/nls-global.mk
index dda3e29a7a3..c95c3a496fa 100644
--- a/src/nls-global.mk
+++ b/src/nls-global.mk
@@ -12,6 +12,9 @@
# GETTEXT_FILES -- list of source files that contain message strings
# GETTEXT_TRIGGERS -- (optional) list of functions that contain
# translatable strings
+# GETTEXT_FLAGS -- (optional) list of gettext --flag arguments to mark
+# function arguments that contain C format strings
+# (functions must be listed in TRIGGERS and FLAGS)
#
# That's all, the rest is done here, if --enable-nls was specified.
#
@@ -41,6 +44,7 @@ endif
# _ is defined in c.h, so it's global
GETTEXT_TRIGGERS += _
+GETTEXT_FLAGS += _:1:pass-c-format
# common settings that apply to backend and all backend modules
@@ -49,6 +53,11 @@ BACKEND_COMMON_GETTEXT_TRIGGERS = \
errdetail errdetail_log errdetail_plural:1,2 \
errhint \
errcontext
+BACKEND_COMMON_GETTEXT_FLAGS = \
+ errmsg:1:c-format errmsg_plural:1:c-format errmsg_plural:2:c-format \
+ errdetail:1:c-format errdetail_log:1:c-format errdetail_plural:1:c-format errdetail_plural:2:c-format \
+ errhint:1:c-format \
+ errcontext:1:c-format
all-po: $(MO_FILES)
@@ -59,7 +68,7 @@ all-po: $(MO_FILES)
ifeq ($(word 1,$(GETTEXT_FILES)),+)
po/$(CATALOG_NAME).pot: $(word 2, $(GETTEXT_FILES)) $(MAKEFILE_LIST)
ifdef XGETTEXT
- $(XGETTEXT) -D $(srcdir) -n $(addprefix -k, $(GETTEXT_TRIGGERS)) -f $<
+ $(XGETTEXT) -D $(srcdir) -n $(addprefix -k, $(GETTEXT_TRIGGERS)) $(addprefix --flag=, $(GETTEXT_FLAGS)) -f $<
else
@echo "You don't have 'xgettext'."; exit 1
endif
@@ -68,7 +77,7 @@ po/$(CATALOG_NAME).pot: $(GETTEXT_FILES) $(MAKEFILE_LIST)
# Change to srcdir explicitly, don't rely on $^. That way we get
# consistent #: file references in the po files.
ifdef XGETTEXT
- $(XGETTEXT) -D $(srcdir) -n $(addprefix -k, $(GETTEXT_TRIGGERS)) $(GETTEXT_FILES)
+ $(XGETTEXT) -D $(srcdir) -n $(addprefix -k, $(GETTEXT_TRIGGERS)) $(addprefix --flag=, $(GETTEXT_FLAGS)) $(GETTEXT_FILES)
else
@echo "You don't have 'xgettext'."; exit 1
endif
diff --git a/src/pl/plperl/nls.mk b/src/pl/plperl/nls.mk
index 57846d159fb..26041e53f7d 100644
--- a/src/pl/plperl/nls.mk
+++ b/src/pl/plperl/nls.mk
@@ -3,3 +3,4 @@ CATALOG_NAME = plperl
AVAIL_LANGUAGES = de es fr it ja pt_BR ro tr zh_CN zh_TW
GETTEXT_FILES = plperl.c SPI.c
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS)
+GETTEXT_FLAGS = $(BACKEND_COMMON_GETTEXT_FLAGS)
diff --git a/src/pl/plpgsql/src/nls.mk b/src/pl/plpgsql/src/nls.mk
index 98f25ea7e54..5be1859a903 100644
--- a/src/pl/plpgsql/src/nls.mk
+++ b/src/pl/plpgsql/src/nls.mk
@@ -3,3 +3,4 @@ CATALOG_NAME = plpgsql
AVAIL_LANGUAGES = de es fr it ja ko pt_BR ro zh_CN zh_TW
GETTEXT_FILES = pl_comp.c pl_exec.c pl_gram.c pl_funcs.c pl_handler.c pl_scanner.c
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS) yyerror plpgsql_yyerror
+GETTEXT_FLAGS = $(BACKEND_COMMON_GETTEXT_FLAGS)
diff --git a/src/pl/plpython/nls.mk b/src/pl/plpython/nls.mk
index 0fdd234ad23..27d5e7cea8f 100644
--- a/src/pl/plpython/nls.mk
+++ b/src/pl/plpython/nls.mk
@@ -3,3 +3,8 @@ CATALOG_NAME = plpython
AVAIL_LANGUAGES = de es fr it ja pt_BR ro tr zh_CN zh_TW
GETTEXT_FILES = plpython.c
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS) PLy_elog:2 PLy_exception_set:2 PLy_exception_set_plural:2,3
+GETTEXT_FLAGS = $(BACKEND_COMMON_GETTEXT_FLAGS) \
+ PLy_elog:2:c-format \
+ PLy_exception_set:2:c-format \
+ PLy_exception_set_plural:2:c-format \
+ PLy_exception_set_plural:3:c-format
diff --git a/src/pl/tcl/nls.mk b/src/pl/tcl/nls.mk
index be95c15a04c..bb63f28b8c0 100644
--- a/src/pl/tcl/nls.mk
+++ b/src/pl/tcl/nls.mk
@@ -3,3 +3,4 @@ CATALOG_NAME = pltcl
AVAIL_LANGUAGES = de es fr it ja pt_BR ro tr zh_CN zh_TW
GETTEXT_FILES = pltcl.c
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS)
+GETTEXT_FLAGS = $(BACKEND_COMMON_GETTEXT_FLAGS)