Re: [PATCH] parseopt: do not translate empty help string
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 20, 2012, 19:21 UTC
- Message-ID
- <7vboi5jrn1.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <bcb1f4437760452f967737fddf26dff019d0f0b2.1345487066.git.trast@student.ethz.ch>
Thomas Rast <trast@student.ethz.ch> writes:
Show 26 quoted lines
> The gettext .po files have a header, but it looks like the translation
> specification for an empty string. This results in _("") actually
> returning that header.
>
> Prevent parseopt from passing empty strings to gettext when it
> displays help about commands. In some instances it already did this,
> but git-grep's --or etc. caught another case.
>
> Signed-off-by: Thomas Rast <trast@student.ethz.ch>
> ---
> parse-options.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/parse-options.c b/parse-options.c
> index c1c66bd..f95bbb2 100644
> --- a/parse-options.c
> +++ b/parse-options.c
> @@ -562,7 +562,8 @@ static int usage_with_options_internal(struct parse_opt_ctx_t *ctx,
> fputc('\n', outfile);
> pad = USAGE_OPTS_WIDTH;
> }
> - fprintf(outfile, "%*s%s\n", pad + USAGE_GAP, "", _(opts->help));
> + fprintf(outfile, "%*s%s\n", pad + USAGE_GAP, "",
> + *opts->help ? _(opts->help) : "");
> }
> fputc('\n', outfile);Thanks; this is a tricky bit to catch and makes me wonder where else we have a similar breakage.
Perhaps we would want to do this instead? I dunno.
gettext.h | 2 ++ 1 file changed, 2 insertions(+)
diff --git i/gettext.h w/gettext.h index 57ba8bb..376297b 100644 --- i/gettext.h +++ w/gettext.h @@ -44,6 +44,8 @@ extern int use_gettext_poison(void); static inline FORMAT_PRESERVING(1) const char *_(const char *msgid) { + if (!*msgid) + return ""; return use_gettext_poison() ? "# GETTEXT POISON #" : gettext(msgid); }