This helps maintain the layout somewhat when translatable text is poisoned. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- gettext.c | 10 ++++++++++ gettext.h | 6 ++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/gettext.c b/gettext.c index f75bca7..60bc2ad 100644 --- a/gettext.c +++ b/gettext.c @@ -24,6 +24,16 @@ int use_gettext_poison(void) poison_requested = getenv("GIT_GETTEXT_POISON") ? 1 : 0; return poison_requested; } + +const char *poison_text(const char *msgid) +{ + int len = strlen(msgid); + if (len && msgid[len-1] == '\n') + return "# GETTEXT POISON #\n"; + else + return "# GETTEXT POISON #"; +} + #endif #ifndef NO_GETTEXT diff --git a/gettext.h b/gettext.h index 57ba8bb..2313c84 100644 --- a/gettext.h +++ b/gettext.h @@ -38,20 +38,22 @@ static inline void git_setup_gettext(void) #ifdef GETTEXT_POISON extern int use_gettext_poison(void); +extern const char *poison_text(const char *msgid); #else #define use_gettext_poison() 0 +#define poison_text(x) NULL #endif static inline FORMAT_PRESERVING(1) const char *_(const char *msgid) { - return use_gettext_poison() ? "# GETTEXT POISON #" : gettext(msgid); + return use_gettext_poison() ? poison_text(msgid) : gettext(msgid); } static inline FORMAT_PRESERVING(1) FORMAT_PRESERVING(2) const char *Q_(const char *msgid, const char *plu, unsigned long n) { if (use_gettext_poison()) - return "# GETTEXT POISON #"; + return poison_text(msgid); return ngettext(msgid, plu, n); } -- 1.7.3.1.256.g2539c.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html