[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] maintainer-makefile: check for i18n setup
From: |
Eric Blake |
Subject: |
[PATCH] maintainer-makefile: check for i18n setup |
Date: |
Thu, 11 Nov 2010 17:25:41 -0700 |
* top/maint.mk (sc_bindtextdomain): Check for evidence that _()
will likely work.
Signed-off-by: Eric Blake <address@hidden>
---
I recently debugged a situation in libvirt where a program had
not set up the i18n framework, therefore calls to _() were doing
nothing. If this rule had been in place, I would have quickly
detected that main() was not properly initializing gettext
during 'make syntax-check'.
I noticed that this gives several false positives for coreutils,
for example on #ifdef'd test code in lib/euidaccess-stat.c,
but such files can easily be avoided by listing them in
.x-sc_bindtextdomain. Also, for a package that does not yet
use gettext, it's easy enough to entirely skip this test via
a cfg.mk entry.
Any comments before I commit this?
ChangeLog | 6 ++++++
top/maint.mk | 9 +++++++++
2 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index c319549..78caa49 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-11-11 Eric Blake <address@hidden>
+
+ maintainer-makefile: check for i18n setup
+ * top/maint.mk (sc_bindtextdomain): Check for evidence that _()
+ will likely work.
+
2010-11-11 Christian Weisgerber <address@hidden> (tiny change)
mknod: avoid false failure with dash
diff --git a/top/maint.mk b/top/maint.mk
index 55aeb7b..39df47d 100644
--- a/top/maint.mk
+++ b/top/maint.mk
@@ -594,6 +594,15 @@ sc_program_name:
halt='the above files do not call set_program_name' \
$(_sc_search_regexp)
+# Ensure that each .c file containing a "main" function also
+# calls bindtextdomain.
+sc_bindtextdomain:
+ @require='bindtextdomain *\(' \
+ in_vc_files='\.c$$' \
+ containing='\<main *(' \
+ halt='the above files do not call bindtextdomain' \
+ $(_sc_search_regexp)
+
# Require that the final line of each test-lib.sh-using test be this one:
# Exit $fail
# Note: this test requires GNU grep's --label= option.
--
1.7.3.2
- [PATCH] maintainer-makefile: check for i18n setup,
Eric Blake <=