From: Junio C Hamano <gitster@pobox.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: git@vger.kernel.org, "Jeff King" <peff@peff.net>,
"SZEDER Gábor" <szeder.dev@gmail.com>,
"Vasco Almeida" <vascomalmeida@sapo.pt>,
"Jiang Xin" <worldhello.net@gmail.com>
Subject: Re: [PATCH] i18n: make GETTEXT_POISON a runtime option
Date: Wed, 24 Oct 2018 14:45:49 +0900 [thread overview]
Message-ID: <xmqqefcfoq2a.fsf@gitster-ct.c.googlers.com> (raw)
In-Reply-To: <20181023210154.32507-1-avarab@gmail.com> ("Ævar Arnfjörð Bjarmason"'s message of "Tue, 23 Oct 2018 21:01:54 +0000")
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
> Notes on the implementation:
>
> * The only reason we need a new "git-sh-i18n--helper" and the
> corresponding "test-tool gettext-poison" is to expose
> git_env_bool() to shellscripts, since git-sh-i18n and friends need
> to inspect the $GIT_TEST_GETTEXT_POISON variable.
>
> We only call these if $GIT_TEST_GETTEXT_POISON is set, or in the
> test suite, and this code can go away for non-test code once the
> last i18n-using shellscript is rewritten in C.
Makes me wonder if we want to teach "git config" a new "--env-bool"
option that can be used by third-party scripts. Or would it be just
the matter of writing
git config --default=false --type=bool "$GIT_WHATEVER_ENV"
in these third-party scripts and we do not need to add such a thing?
> * The reason for not doing:
>
> test_lazy_prereq GETTEXT_POISON 'test-tool gettext-poison'
> test_lazy_prereq C_LOCALE_OUTPUT '! test-tool gettext-poison'
>
> In test-lib.sh is because there's some interpolation problem with
> that syntax which makes t6040-tracking-info.sh fail. Hence using
> the simpler test_set_prereq.
s/In/in/, as you haven't finished the sentence yet. But more
importantly, what is this "some interpolation problem"? Are you
saying that test_lazy_prereq implementation is somehow broken and
cannot take certain strings? If so, perhaps we want to fix that,
and people other than you can help to do so, once you let them know
what the problem is.
> See also
> https://public-inbox.org/git/871s8gd32p.fsf@evledraar.gmail.com/ for
> more discussion.
"See also [*1*] for more discussion" as you've already have
reference below.
>
> 1. https://public-inbox.org/git/871s8gd32p.fsf@evledraar.gmail.com/
>
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
>
> Here's a polished version of that. I think it makes sense to queue
> this up before any other refactoring of GETTEXT_POISON, and some patch
> to unconditionally preserve format specifiers as I suggested upthread
> could go on top of this.
> ...
> +int cmd_sh_i18n__helper(int argc, const char **argv, const char *prefix)
> +{
> + int poison = -1;
> + struct option options[] = {
> + OPT_BOOL(0, "git-test-gettext-poison", &poison,
> + N_("is GIT_TEST_GETTEXT_POISON in effect?")),
> + OPT_END()
> + };
> +
> + argc = parse_options(argc, argv, NULL, options,
> + builtin_sh_i18n_helper_usage, PARSE_OPT_KEEP_ARGV0);
> +
> + if (poison != -1)
> + return !git_env_bool("GIT_TEST_GETTEXT_POISON", 0);
Hmm? If "--[no-]git-test-gettext-poison" is given, poison is either
0 or 1, and we return the value we read from the environment? What
convoluted way to implement the option is that, or is there anything
subtle that I am not getting?
If the "default" parameter to git_env_bool() were poison, and then
the option was renamed to "--get-git-text-gettext-poison", then I
sort of understand the code, though (it's like "git config" with
"--default" option).
But if there is nothing subtle, it may make sense to implement this
as an opt-cmdmode instead.
> diff --git a/po/README b/po/README
> index fef4c0f0b5..dba46c4a40 100644
> --- a/po/README
> +++ b/po/README
> @@ -289,16 +289,11 @@ something in the test suite might still depend on the US English
> version of the strings, e.g. to grep some error message or other
> output.
>
> -To smoke out issues like these Git can be compiled with gettext poison
> -support, at the top-level:
> +To smoke out issues like these Git tested with a translation mode that
> +emits gibberish on every call to gettext. To use it run the test suite
> +with it, e.g.:
s/these Git tested/these, Git can be tested/; even though the comma
is not a new issue you introduced.
next prev parent reply other threads:[~2018-10-24 5:45 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-22 15:36 [PATCH] Poison gettext with the Ook language Nguyễn Thái Ngọc Duy
2018-10-22 20:22 ` SZEDER Gábor
2018-10-22 20:22 ` [PATCH 1/8] test-lib.sh: preserve GIT_GETTEXT_POISON from the environment SZEDER Gábor
2018-10-22 20:22 ` [PATCH 2/8] gettext: don't poison if GIT_GETTEXT_POISON is set but empty SZEDER Gábor
2018-10-22 20:38 ` Ævar Arnfjörð Bjarmason
2018-10-22 20:22 ` [PATCH 3/8] lib-rebase: loosen GETTEXT_POISON check in fake editor SZEDER Gábor
2018-10-22 20:22 ` [PATCH 4/8] gettext: #ifdef away GETTEXT POISON-related code from _() and Q_() SZEDER Gábor
2018-10-22 20:22 ` [PATCH 5/8] gettext: put "# GETTEXT POISON #" string literal into a macro SZEDER Gábor
2018-10-22 20:22 ` [PATCH 6/8] gettext: use an enum for the mode of GETTEXT POISONing SZEDER Gábor
2018-10-22 20:22 ` [PATCH 7/8] gettext: introduce GIT_GETTEXT_POISON=scrambled SZEDER Gábor
2018-10-23 14:44 ` Duy Nguyen
2018-10-22 20:22 ` [PATCH 8/8] travis-ci: run GETTEXT POISON build job in scrambled mode, too SZEDER Gábor
2018-10-23 14:37 ` [PATCH] Poison gettext with the Ook language Duy Nguyen
2018-10-27 10:11 ` Jakub Narebski
2018-10-22 20:52 ` Johannes Schindelin
2018-10-22 21:09 ` Ævar Arnfjörð Bjarmason
2018-10-22 21:46 ` Ævar Arnfjörð Bjarmason
2018-10-22 23:04 ` Junio C Hamano
2018-10-23 21:01 ` [PATCH] i18n: make GETTEXT_POISON a runtime option Ævar Arnfjörð Bjarmason
2018-10-24 5:45 ` Junio C Hamano [this message]
2018-10-24 7:44 ` Jeff King
2018-10-25 1:00 ` Junio C Hamano
2018-10-25 1:09 ` Jeff King
2018-10-25 1:24 ` Ramsay Jones
2018-10-25 21:23 ` Jeff King
2018-10-26 19:20 ` Ævar Arnfjörð Bjarmason
2018-10-27 6:59 ` Jeff King
2018-10-27 10:42 ` Ævar Arnfjörð Bjarmason
2018-10-24 11:47 ` [PATCH v2] " Ævar Arnfjörð Bjarmason
2018-11-01 19:31 ` [PATCH v3] " Ævar Arnfjörð Bjarmason
2018-11-02 3:11 ` Junio C Hamano
2018-11-02 16:37 ` SZEDER Gábor
2018-11-08 20:26 ` Ævar Arnfjörð Bjarmason
2018-11-08 20:51 ` SZEDER Gábor
2018-11-08 3:24 ` Junio C Hamano
2018-11-08 19:12 ` Eric Sunshine
2018-11-08 21:15 ` [PATCH v4 0/2] " Ævar Arnfjörð Bjarmason
2018-11-08 21:15 ` [PATCH v4 1/2] " Ævar Arnfjörð Bjarmason
2018-11-08 21:15 ` [PATCH v4 2/2] Makefile: ease dynamic-gettext-poison transition Ævar Arnfjörð Bjarmason
2018-10-23 9:30 ` [PATCH] Poison gettext with the Ook language Johannes Schindelin
2018-10-23 10:17 ` Ævar Arnfjörð Bjarmason
2018-10-23 11:07 ` Johannes Schindelin
2018-10-23 15:00 ` Duy Nguyen
2018-10-23 16:45 ` Ævar Arnfjörð Bjarmason
2018-10-24 14:41 ` Duy Nguyen
2018-10-24 17:54 ` Ævar Arnfjörð Bjarmason
2018-10-25 3:52 ` Junio C Hamano
2018-10-25 6:20 ` Jeff King
2018-10-27 6:55 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqefcfoq2a.fsf@gitster-ct.c.googlers.com \
--to=gitster@pobox.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
--cc=szeder.dev@gmail.com \
--cc=vascomalmeida@sapo.pt \
--cc=worldhello.net@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).