From: "Jean-Noël Avila via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: "Bagas Sanjaya" <bagasdotme@gmail.com>,
"Johannes Sixt" <j6t@kdbg.org>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Jean-Noël Avila" <jn.avila@free.fr>
Subject: [PATCH v2 0/6] More i18n fixes
Date: Sat, 02 Apr 2022 16:10:47 +0000 [thread overview]
Message-ID: <pull.1181.v2.git.1648915853.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1181.git.1647813291.gitgitgadget@gmail.com>
This is another i18n PR (and hopefully the last for a while).
As usual, the intent is kept the same: curbing the number of strings to
translate, remove constant, error prone parts out of the way, trying in some
sense to "put a precedent" so that the template strings can be reused later.
Changes in v2:
* Make the messages clearer as to what the placeholders are.
* Generalize the quoting of placeholders
* Merge the messages with bad arguments to one
Bagas Sanjaya (1):
sequencer: factor GIT_AUTHOR_* from message strings
Jean-Noël Avila (5):
i18n: factorize generic failure messages
i18n: factorize server support messages in fetch-pack
i18n: factorize "foo does not take arguments" messages
i18n: factorize read-cache error messages
i18n: factorize "bad argument" messages
add-patch.c | 4 ++--
builtin/am.c | 2 +-
builtin/bisect--helper.c | 2 +-
builtin/commit-graph.c | 2 +-
builtin/config.c | 2 +-
builtin/env--helper.c | 2 +-
builtin/gc.c | 8 +++----
builtin/merge.c | 6 ++---
builtin/revert.c | 4 ++--
contrib/scalar/scalar.c | 2 +-
diff.c | 4 ++--
fetch-pack.c | 40 ++++++++++++++++-----------------
grep.c | 2 +-
read-cache.c | 8 +++----
ref-filter.c | 8 +++----
remote-curl.c | 2 +-
send-pack.c | 2 +-
sequencer.c | 12 +++++-----
setup.c | 4 ++--
submodule-config.c | 8 +++----
submodule.c | 2 +-
t/t1300-config.sh | 2 +-
t/t1600-index.sh | 6 ++---
t/t3510-cherry-pick-sequence.sh | 8 +++----
t/t6436-merge-overwrite.sh | 2 +-
t/t7900-maintenance.sh | 4 ++--
26 files changed, 74 insertions(+), 74 deletions(-)
base-commit: 74cc1aa55f30ed76424a0e7226ab519aa6265061
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1181%2Fjnavila%2Fmore_i18n_fixes-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1181/jnavila/more_i18n_fixes-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/1181
Range-diff vs v1:
1: 73a3a8d7d97 ! 1: 4bba3e1f6cb i18n: factorize generic failure messages
@@ Metadata
## Commit message ##
i18n: factorize generic failure messages
- In these message the command that failed should not be translated. So
- it is simpler to just remove these parts from the message.
+ In these message the command or the function that failed should not be
+ translated. So it is simpler to just remove these parts from the
+ message.
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
@@ add-patch.c: static int run_apply_check(struct add_p_state *s,
strvec_pushv(&cp.args, s->mode->apply_check_args);
if (pipe_command(&cp, s->buf.buf, s->buf.len, NULL, 0, NULL, 0))
- return error(_("'git apply --cached' failed"));
-+ return error(_("'%s' failed"), "git apply --cached");
++ return error(_("the command '%s' failed"), "git apply --cached");
return 0;
}
@@ add-patch.c: soft_increment:
if (pipe_command(&cp, s->buf.buf, s->buf.len,
NULL, 0, NULL, 0))
- error(_("'git apply' failed"));
-+ error(_("'%s' failed"), "git apply");
++ error(_("the command '%s' failed"), "git apply");
}
if (repo_read_index(s->s.r) >= 0)
repo_refresh_and_write_index(s->s.r, REFRESH_QUIET, 0,
@@ builtin/am.c: static int is_mail(FILE *fp)
if (fseek(fp, 0L, SEEK_SET))
- die_errno(_("fseek failed"));
-+ die_errno(_("'%s' failed"), "fseek");
++ die_errno(_("the function '%s' failed"), "fseek");
if (regcomp(®ex, header_regex, REG_NOSUB | REG_EXTENDED))
die("invalid pattern: %s", header_regex);
@@ builtin/gc.c: static int multi_pack_index_expire(struct maintenance_run_opts *op
if (run_command(&child))
- return error(_("'git multi-pack-index expire' failed"));
-+ return error(_("'%s' failed"), "git multi-pack-index expire");
++ return error(_("the command '%s' failed"), "git multi-pack-index expire");
return 0;
}
@@ builtin/gc.c: static int multi_pack_index_repack(struct maintenance_run_opts *op
if (run_command(&child))
- return error(_("'git multi-pack-index repack' failed"));
-+ return error(_("'%s' failed"), "git multi-pack-index repack");
++ return error(_("the command '%s' failed"), "git multi-pack-index repack");
return 0;
}
@@ builtin/merge.c: static int save_state(struct object_id *stash)
if (finish_command(&cp) || len < 0)
- die(_("stash failed"));
-+ die(_("'%s' failed"), "stash");
++ die(_("the command '%s' failed"), "stash");
else if (!len) /* no changes */
goto out;
strbuf_setlen(&buffer, buffer.len-1);
@@ builtin/merge.c: static void read_empty(const struct object_id *oid, int verbose
if (run_command_v_opt(args, RUN_GIT_CMD))
- die(_("read-tree failed"));
-+ die(_("'%s' failed"), "read-tree");
++ die(_("the command '%s' failed"), "read-tree");
}
static void reset_hard(const struct object_id *oid, int verbose)
@@ builtin/merge.c: static void reset_hard(const struct object_id *oid, int verbose
if (run_command_v_opt(args, RUN_GIT_CMD))
- die(_("read-tree failed"));
-+ die(_("'%s' failed"), "read-tree");
++ die(_("the command '%s' failed"), "read-tree");
}
static void restore_state(const struct object_id *head,
@@ builtin/revert.c: int cmd_revert(int argc, const char **argv, const char *prefix
res = run_sequencer(argc, argv, &opts);
if (res < 0)
- die(_("revert failed"));
-+ die(_("'%s' failed"), "revert");
++ die(_("the command '%s' failed"), "revert");
return res;
}
@@ builtin/revert.c: int cmd_cherry_pick(int argc, const char **argv, const char *p
res = run_sequencer(argc, argv, &opts);
if (res < 0)
- die(_("cherry-pick failed"));
-+ die(_("'%s' failed"), "cherry-pick");
++ die(_("the command '%s' failed"), "cherry-pick");
return res;
}
@@ fetch-pack.c: static int get_pack(struct fetch_pack_args *args,
ret == 0;
else
- die(_("%s failed"), cmd_name);
-+ die(_("'%s' failed"), cmd_name);
++ die(_("the command '%s' failed"), cmd_name);
if (use_sideband && finish_async(&demux))
die(_("error in sideband demultiplexer"));
@@ remote-curl.c: static int push_dav(int nr_spec, const char **specs)
if (run_command(&child))
- die(_("git-http-push failed"));
-+ die(_("'%s' failed"), "git-http-push");
++ die(_("the command '%s' failed"), "git-http-push");
return 0;
}
@@ setup.c: int daemonize(void)
break;
case -1:
- die_errno(_("fork failed"));
-+ die_errno(_("'%s' failed"), "fork");
++ die_errno(_("the function '%s' failed"), "fork");
default:
exit(0);
}
if (setsid() == -1)
- die_errno(_("setsid failed"));
-+ die_errno(_("'%s' failed"), "setsid");
++ die_errno(_("the function '%s' failed"), "setsid");
close(0);
close(1);
close(2);
@@ t/t3510-cherry-pick-sequence.sh: test_expect_success 'check advice when we move
hint: have you committed already?
hint: try "git cherry-pick --continue"
- fatal: cherry-pick failed
-+ fatal: '\''cherry-pick'\'' failed
++ fatal: the command '\''cherry-pick'\'' failed
EOF
test_must_fail git cherry-pick base..yetanotherpick &&
echo c >foo &&
@@ t/t3510-cherry-pick-sequence.sh: test_expect_success 'selectively advise --skip
error: cherry-pick is already in progress
hint: try "git cherry-pick (--continue | --skip | --abort | --quit)"
- fatal: cherry-pick failed
-+ fatal: '\''cherry-pick'\'' failed
++ fatal: the command '\''cherry-pick'\'' failed
EOF
test_must_fail git cherry-pick picked..yetanotherpick &&
test_must_fail git cherry-pick picked..yetanotherpick 2>advice &&
@@ t/t3510-cherry-pick-sequence.sh: test_expect_success 'selectively advise --skip
error: cherry-pick is already in progress
hint: try "git cherry-pick (--continue | --abort | --quit)"
- fatal: cherry-pick failed
-+ fatal: '\''cherry-pick'\'' failed
++ fatal: the command '\''cherry-pick'\'' failed
EOF
git reset --merge &&
test_must_fail git cherry-pick picked..yetanotherpick 2>advice &&
@@ t/t3510-cherry-pick-sequence.sh: test_expect_success 'allow skipping commit but
cat >expect <<-EOF &&
error: cannot abort from a branch yet to be born
- fatal: cherry-pick failed
-+ fatal: '\''cherry-pick'\'' failed
++ fatal: the command '\''cherry-pick'\'' failed
EOF
git checkout --orphan new_disconnected &&
git reset --hard &&
@@ t/t6436-merge-overwrite.sh: test_expect_success 'will not be confused by symlink
cat >expect <<\EOF
error: Untracked working tree file 'c0.c' would be overwritten by merge.
-fatal: read-tree failed
-+fatal: 'read-tree' failed
++fatal: the command 'read-tree' failed
EOF
test_expect_success 'will not overwrite untracked file on unborn branch' '
2: 8bdbb32f544 = 2: 03022a2fcd1 sequencer: factor GIT_AUTHOR_* from message strings
3: c94d5c932f4 < -: ----------- i18n: factorize "bad argument" messages
4: bf23e1ebe65 ! 3: b06b7670516 i18n: factorize "Server does not support foo" messages
@@ Metadata
Author: Jean-Noël Avila <jn.avila@free.fr>
## Commit message ##
- i18n: factorize "Server does not support foo" messages
+ i18n: factorize server support messages in fetch-pack
+
+ The messages "Server supports foo" and "Server does not support bar"
+ are uniformized and options are quoted.
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
## fetch-pack.c ##
@@ fetch-pack.c: static struct ref *do_fetch_pack(struct fetch_pack_args *args,
- print_verbose(args, _("Server supports %s"), "deepen-since");
+ advertise_sid = 0;
+
+ if (server_supports("shallow"))
+- print_verbose(args, _("Server supports %s"), "shallow");
++ print_verbose(args, _("Server supports '%s'"), "shallow");
+ else if (args->depth > 0 || is_repository_shallow(r))
+ die(_("Server does not support shallow clients"));
+ if (args->depth > 0 || args->deepen_since || args->deepen_not)
+ args->deepen = 1;
+ if (server_supports("multi_ack_detailed")) {
+- print_verbose(args, _("Server supports %s"), "multi_ack_detailed");
++ print_verbose(args, _("Server supports '%s'"), "multi_ack_detailed");
+ multi_ack = 2;
+ if (server_supports("no-done")) {
+- print_verbose(args, _("Server supports %s"), "no-done");
++ print_verbose(args, _("Server supports '%s'"), "no-done");
+ if (args->stateless_rpc)
+ no_done = 1;
+ }
+ }
+ else if (server_supports("multi_ack")) {
+- print_verbose(args, _("Server supports %s"), "multi_ack");
++ print_verbose(args, _("Server supports '%s'"), "multi_ack");
+ multi_ack = 1;
+ }
+ if (server_supports("side-band-64k")) {
+- print_verbose(args, _("Server supports %s"), "side-band-64k");
++ print_verbose(args, _("Server supports '%s'"), "side-band-64k");
+ use_sideband = 2;
+ }
+ else if (server_supports("side-band")) {
+- print_verbose(args, _("Server supports %s"), "side-band");
++ print_verbose(args, _("Server supports '%s'"), "side-band");
+ use_sideband = 1;
+ }
+ if (server_supports("allow-tip-sha1-in-want")) {
+- print_verbose(args, _("Server supports %s"), "allow-tip-sha1-in-want");
++ print_verbose(args, _("Server supports '%s'"), "allow-tip-sha1-in-want");
+ allow_unadvertised_object_request |= ALLOW_TIP_SHA1;
+ }
+ if (server_supports("allow-reachable-sha1-in-want")) {
+- print_verbose(args, _("Server supports %s"), "allow-reachable-sha1-in-want");
++ print_verbose(args, _("Server supports '%s'"), "allow-reachable-sha1-in-want");
+ allow_unadvertised_object_request |= ALLOW_REACHABLE_SHA1;
+ }
+ if (server_supports("thin-pack"))
+- print_verbose(args, _("Server supports %s"), "thin-pack");
++ print_verbose(args, _("Server supports '%s'"), "thin-pack");
+ else
+ args->use_thin_pack = 0;
+ if (server_supports("no-progress"))
+- print_verbose(args, _("Server supports %s"), "no-progress");
++ print_verbose(args, _("Server supports '%s'"), "no-progress");
+ else
+ args->no_progress = 0;
+ if (server_supports("include-tag"))
+- print_verbose(args, _("Server supports %s"), "include-tag");
++ print_verbose(args, _("Server supports '%s'"), "include-tag");
+ else
+ args->include_tag = 0;
+ if (server_supports("ofs-delta"))
+- print_verbose(args, _("Server supports %s"), "ofs-delta");
++ print_verbose(args, _("Server supports '%s'"), "ofs-delta");
+ else
+ prefer_ofs_delta = 0;
+
+ if (server_supports("filter")) {
+ server_supports_filtering = 1;
+- print_verbose(args, _("Server supports %s"), "filter");
++ print_verbose(args, _("Server supports '%s'"), "filter");
+ } else if (args->filter_options.choice) {
+ warning("filtering not recognized by server, ignoring");
+ }
+
+ if (server_supports("deepen-since")) {
+- print_verbose(args, _("Server supports %s"), "deepen-since");
++ print_verbose(args, _("Server supports '%s'"), "deepen-since");
deepen_since_ok = 1;
} else if (args->deepen_since)
- die(_("Server does not support --shallow-since"));
-+ die(_("Server does not support %s"), "--shallow-since");
++ die(_("Server does not support '%s'"), "--shallow-since");
if (server_supports("deepen-not")) {
- print_verbose(args, _("Server supports %s"), "deepen-not");
+- print_verbose(args, _("Server supports %s"), "deepen-not");
++ print_verbose(args, _("Server supports '%s'"), "deepen-not");
deepen_not_ok = 1;
} else if (args->deepen_not)
- die(_("Server does not support --shallow-exclude"));
-+ die(_("Server does not support %s"), "--shallow-exclude");
++ die(_("Server does not support '%s'"), "--shallow-exclude");
if (server_supports("deepen-relative"))
- print_verbose(args, _("Server supports %s"), "deepen-relative");
+- print_verbose(args, _("Server supports %s"), "deepen-relative");
++ print_verbose(args, _("Server supports '%s'"), "deepen-relative");
else if (args->deepen_relative)
- die(_("Server does not support --deepen"));
-+ die(_("Server does not support %s"), "--deepen");
++ die(_("Server does not support '%s'"), "--deepen");
if (!server_supports_hash(the_hash_algo->name, NULL))
die(_("Server does not support this repository's object format"));
5: 2e1bd504673 ! 4: 6221c37145c i18n: factorize "foo does not take arguments" messages
@@ Metadata
## Commit message ##
i18n: factorize "foo does not take arguments" messages
+ The messages are split into the ones for ref-filter which deal with
+ atoms and scalar which has an option.
+
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
## contrib/scalar/scalar.c ##
@@ contrib/scalar/scalar.c: cleanup:
{
if (argc != 1)
- die(_("`scalar list` does not take arguments"));
-+ die(_("%s does not take arguments"), "`scalar list`");
++ die(_("the '%s' command does not take arguments"), "scalar list");
if (run_git("config", "--global", "--get-all", "scalar.repo", NULL) < 0)
return -1;
@@ ref-filter.c: static int objecttype_atom_parser(struct ref_format *format, struc
{
if (arg)
- return strbuf_addf_ret(err, -1, _("%%(objecttype) does not take arguments"));
-+ return strbuf_addf_ret(err, -1, _("%s does not take arguments"), "%(objecttype)");
++ return strbuf_addf_ret(err, -1, _("the atom '%s' does not take arguments"), "%(objecttype)");
if (*atom->name == '*')
oi_deref.info.typep = &oi_deref.type;
else
@@ ref-filter.c: static int deltabase_atom_parser(struct ref_format *format, struct
{
if (arg)
- return strbuf_addf_ret(err, -1, _("%%(deltabase) does not take arguments"));
-+ return strbuf_addf_ret(err, -1, _("%s does not take arguments"), "%(deltabase)");
++ return strbuf_addf_ret(err, -1, _("the atom '%s' does not take arguments"), "%(deltabase)");
if (*atom->name == '*')
oi_deref.info.delta_base_oid = &oi_deref.delta_base_oid;
else
@@ ref-filter.c: static int body_atom_parser(struct ref_format *format, struct used
{
if (arg)
- return strbuf_addf_ret(err, -1, _("%%(body) does not take arguments"));
-+ return strbuf_addf_ret(err, -1, _("%s does not take arguments"), "%(body)");
++ return strbuf_addf_ret(err, -1, _("the atom '%s' does not take arguments"), "%(body)");
atom->u.contents.option = C_BODY_DEP;
return 0;
}
@@ ref-filter.c: static int rest_atom_parser(struct ref_format *format, struct used
{
if (arg)
- return strbuf_addf_ret(err, -1, _("%%(rest) does not take arguments"));
-+ return strbuf_addf_ret(err, -1, _("%s does not take arguments"), "%(rest)");
++ return strbuf_addf_ret(err, -1, _("the atom '%s' does not take arguments"), "%(rest)");
format->use_rest = 1;
return 0;
}
6: b8f97e6fde8 ! 5: 1888778902a i18n: factorize read-cache error messages
@@ read-cache.c: static unsigned int get_index_format_default(struct repository *r)
if (version < INDEX_FORMAT_LB || INDEX_FORMAT_UB < version) {
- warning(_("index.version set, but the value is invalid.\n"
- "Using version %i"), INDEX_FORMAT_DEFAULT);
-+ warning(_("%s set, but the value is invalid.\n"
++ warning(_("'%s' set, but the value is invalid.\n"
+ "Using version %i"), "index.version", INDEX_FORMAT_DEFAULT);
return INDEX_FORMAT_DEFAULT;
}
@@ read-cache.c: static unsigned int get_index_format_default(struct repository *r)
version < INDEX_FORMAT_LB || INDEX_FORMAT_UB < version) {
- warning(_("GIT_INDEX_VERSION set, but the value is invalid.\n"
- "Using version %i"), INDEX_FORMAT_DEFAULT);
-+ warning(_("%s set, but the value is invalid.\n"
++ warning(_("'%s' set, but the value is invalid.\n"
+ "Using version %i"), "GIT_INDEX_VERSION", INDEX_FORMAT_DEFAULT);
version = INDEX_FORMAT_DEFAULT;
}
return version;
+
+ ## t/t1600-index.sh ##
+@@ t/t1600-index.sh: test_expect_success 'bogus GIT_INDEX_VERSION issues warning' '
+ git add a 2>err &&
+ sed "s/[0-9]//" err >actual.err &&
+ sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
+- warning: GIT_INDEX_VERSION set, but the value is invalid.
++ warning: '\''GIT_INDEX_VERSION'\'' set, but the value is invalid.
+ Using version Z
+ EOF
+ test_cmp expect.err actual.err
+@@ t/t1600-index.sh: test_expect_success 'out of bounds GIT_INDEX_VERSION issues warning' '
+ git add a 2>err &&
+ sed "s/[0-9]//" err >actual.err &&
+ sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
+- warning: GIT_INDEX_VERSION set, but the value is invalid.
++ warning: '\''GIT_INDEX_VERSION'\'' set, but the value is invalid.
+ Using version Z
+ EOF
+ test_cmp expect.err actual.err
+@@ t/t1600-index.sh: test_expect_success 'out of bounds index.version issues warning' '
+ git add a 2>err &&
+ sed "s/[0-9]//" err >actual.err &&
+ sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
+- warning: index.version set, but the value is invalid.
++ warning: '\''index.version'\'' set, but the value is invalid.
+ Using version Z
+ EOF
+ test_cmp expect.err actual.err
7: ca52567b201 ! 6: febe64a8a06 i18n: factorize unrecognized options arguments messages
@@ Metadata
Author: Jean-Noël Avila <jn.avila@free.fr>
## Commit message ##
- i18n: factorize unrecognized options arguments messages
+ i18n: factorize "bad argument" messages
+
+ We also quote the placeholders as they replace constant strings.
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
+ ## builtin/bisect--helper.c ##
+@@ builtin/bisect--helper.c: static int bisect_write(const char *state, const char *rev,
+ } else if (one_of(state, terms->term_good, "skip", NULL)) {
+ strbuf_addf(&tag, "refs/bisect/%s-%s", state, rev);
+ } else {
+- res = error(_("Bad bisect_write argument: %s"), state);
++ res = error(_("bad '%s' argument: '%s'"), "bisect_write", state);
+ goto finish;
+ }
+
+
## builtin/commit-graph.c ##
@@ builtin/commit-graph.c: static int write_option_parse_split(const struct option *opt, const char *arg,
else if (!strcmp(arg, "replace"))
*flags = COMMIT_GRAPH_SPLIT_REPLACE;
else
- die(_("unrecognized --split argument, %s"), arg);
-+ die(_("unrecognized %s argument '%s'"), "--split", arg);
++ die(_("bad '%s' argument: '%s'"), "--split", arg);
return 0;
}
@@ builtin/config.c: static int option_parse_type(const struct option *opt, const c
new_type = TYPE_COLOR;
else
- die(_("unrecognized --type argument, %s"), arg);
-+ die(_("unrecognized %s argument '%s'"), "--type", arg);
++ die(_("bad '%s' argument: '%s'"), "--type", arg);
}
to_type = opt->value;
@@ builtin/env--helper.c: static int option_parse_type(const struct option *opt, co
*cmdmode = ENV_HELPER_TYPE_ULONG;
else
- die(_("unrecognized --type argument, %s"), arg);
-+ die(_("unrecognized %s argument '%s'"), "--type", arg);
++ die(_("bad '%s' argument: '%s'"), "--type", arg);
return 0;
}
@@ builtin/gc.c: static int maintenance_opt_schedule(const struct option *opt, cons
if (!*priority)
- die(_("unrecognized --schedule argument '%s'"), arg);
-+ die(_("unrecognized %s argument '%s'"), "--schedule", arg);
++ die(_("bad '%s' argument: '%s'"), "--schedule", arg);
return 0;
}
@@ builtin/gc.c: static int maintenance_opt_scheduler(const struct option *opt, con
*scheduler = parse_scheduler(arg);
if (*scheduler == SCHEDULER_INVALID)
- return error(_("unrecognized --scheduler argument '%s'"), arg);
-+ return error(_("unrecognized %s argument '%s'"), "--scheduler", arg);
++ return error(_("bad '%s' argument: '%s'"), "--scheduler", arg);
+ return 0;
+ }
+
+
+ ## diff.c ##
+@@ diff.c: static int diff_opt_color_moved(const struct option *opt,
+ } else {
+ int cm = parse_color_moved(arg);
+ if (cm < 0)
+- return error(_("bad --color-moved argument: %s"), arg);
++ return error(_("bad '%s' argument: '%s'"), "--color-moved", arg);
+ options->color_moved = cm;
+ }
return 0;
+@@ diff.c: static int diff_opt_word_diff(const struct option *opt,
+ else if (!strcmp(arg, "none"))
+ options->word_diff = DIFF_WORDS_NONE;
+ else
+- return error(_("bad --word-diff argument: %s"), arg);
++ return error(_("bad '%s' argument: '%s'"), "--word-diff", arg);
+ } else {
+ if (options->word_diff == DIFF_WORDS_NONE)
+ options->word_diff = DIFF_WORDS_PLAIN;
+
+ ## grep.c ##
+@@ grep.c: static int parse_pattern_type_arg(const char *opt, const char *arg)
+ return GREP_PATTERN_TYPE_FIXED;
+ else if (!strcmp(arg, "perl"))
+ return GREP_PATTERN_TYPE_PCRE;
+- die("bad %s argument: %s", opt, arg);
++ die("bad '%s' argument: '%s'", opt, arg);
+ }
+
+ define_list_config_array_extra(color_grep_slots, {"match"});
+
+ ## send-pack.c ##
+@@ send-pack.c: int option_parse_push_signed(const struct option *opt,
+ *(int *)(opt->value) = SEND_PACK_PUSH_CERT_IF_ASKED;
+ return 0;
+ }
+- die("bad %s argument: %s", opt->long_name, arg);
++ die("bad '%s' argument: '%s'", opt->long_name, arg);
+ }
+
+ static void feed_object(const struct object_id *oid, FILE *fh, int negative)
+
+ ## submodule-config.c ##
+@@ submodule-config.c: static int parse_fetch_recurse(const char *opt, const char *arg,
+ * git-completion.bash when you add new options.
+ */
+ if (die_on_error)
+- die("bad %s argument: %s", opt, arg);
++ die("bad '%s' argument: '%s'", opt, arg);
+ else
+ return RECURSE_SUBMODULES_ERROR;
+ }
+@@ submodule-config.c: static int parse_update_recurse(const char *opt, const char *arg,
+ return RECURSE_SUBMODULES_OFF;
+ default:
+ if (die_on_error)
+- die("bad %s argument: %s", opt, arg);
++ die("bad '%s' argument: '%s'", opt, arg);
+ return RECURSE_SUBMODULES_ERROR;
+ }
}
+@@ submodule-config.c: static int parse_push_recurse(const char *opt, const char *arg,
+ case 1:
+ /* There's no simple "on" value when pushing */
+ if (die_on_error)
+- die("bad %s argument: %s", opt, arg);
++ die("bad '%s' argument: '%s'", opt, arg);
+ else
+ return RECURSE_SUBMODULES_ERROR;
+ case 0:
+@@ submodule-config.c: static int parse_push_recurse(const char *opt, const char *arg,
+ * git-completion.bash when you add new modes.
+ */
+ else if (die_on_error)
+- die("bad %s argument: %s", opt, arg);
++ die("bad '%s' argument: '%s'", opt, arg);
+ else
+ return RECURSE_SUBMODULES_ERROR;
+ }
+
+ ## submodule.c ##
+@@ submodule.c: void handle_ignore_submodules_arg(struct diff_options *diffopt,
+ else if (!strcmp(arg, "dirty"))
+ diffopt->flags.ignore_dirty_submodules = 1;
+ else if (strcmp(arg, "none"))
+- die(_("bad --ignore-submodules argument: %s"), arg);
++ die(_("bad '%s' argument: '%s'"), "--ignore-submodules", arg);
+ /*
+ * Please update _git_status() in git-completion.bash when you
+ * add new options
+
+ ## t/t1300-config.sh ##
+@@ t/t1300-config.sh: test_expect_success 'unset type specifiers may be reset to conflicting ones' '
+
+ test_expect_success '--type rejects unknown specifiers' '
+ test_must_fail git config --type=nonsense section.foo 2>error &&
+- test_i18ngrep "unrecognized --type argument" error
++ test_i18ngrep "bad '\''--type'\'' argument" error
+ '
+
+ test_expect_success '--replace-all does not invent newlines' '
+
+ ## t/t7900-maintenance.sh ##
+@@ t/t7900-maintenance.sh: test_expect_success '--auto and --schedule incompatible' '
+
+ test_expect_success 'invalid --schedule value' '
+ test_must_fail git maintenance run --schedule=annually 2>err &&
+- test_i18ngrep "unrecognized --schedule" err
++ test_i18ngrep "bad '\''--schedule'\''" err
+ '
+
+ test_expect_success '--schedule inheritance weekly -> daily -> hourly' '
+@@ t/t7900-maintenance.sh: test_expect_success !MINGW 'register and unregister with regex metacharacters' '
+
+ test_expect_success 'start --scheduler=<scheduler>' '
+ test_expect_code 129 git maintenance start --scheduler=foo 2>err &&
+- test_i18ngrep "unrecognized --scheduler argument" err &&
++ test_i18ngrep "bad '\''--scheduler'\'' argument" err &&
+ test_expect_code 129 git maintenance start --no-scheduler 2>err &&
+ test_i18ngrep "unknown option" err &&
--
gitgitgadget
next prev parent reply other threads:[~2022-04-02 16:12 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-20 21:54 [PATCH 0/7] More i18n fixes Jean-Noël Avila via GitGitGadget
2022-03-20 21:54 ` [PATCH 1/7] i18n: factorize generic failure messages Jean-Noël Avila via GitGitGadget
2022-03-20 21:54 ` [PATCH 2/7] sequencer: factor GIT_AUTHOR_* from message strings Bagas Sanjaya via GitGitGadget
2022-03-21 5:22 ` Bagas Sanjaya
2022-03-20 21:54 ` [PATCH 3/7] i18n: factorize "bad argument" messages Jean-Noël Avila via GitGitGadget
2022-03-20 21:54 ` [PATCH 4/7] i18n: factorize "Server does not support foo" messages Jean-Noël Avila via GitGitGadget
2022-03-20 21:54 ` [PATCH 5/7] i18n: factorize "foo does not take arguments" messages Jean-Noël Avila via GitGitGadget
2022-03-20 21:54 ` [PATCH 6/7] i18n: factorize read-cache error messages Jean-Noël Avila via GitGitGadget
2022-03-20 21:54 ` [PATCH 7/7] i18n: factorize unrecognized options arguments messages Jean-Noël Avila via GitGitGadget
2022-03-21 6:48 ` [PATCH 0/7] More i18n fixes Johannes Sixt
2022-03-21 13:59 ` Ævar Arnfjörð Bjarmason
2022-03-21 19:03 ` Junio C Hamano
2022-03-21 20:13 ` Jean-Noël AVILA
2022-03-21 20:35 ` Jean-Noël AVILA
2022-04-02 16:10 ` Jean-Noël Avila via GitGitGadget [this message]
2022-04-02 16:10 ` [PATCH v2 1/6] i18n: factorize generic failure messages Jean-Noël Avila via GitGitGadget
2022-04-03 5:56 ` Bagas Sanjaya
2022-04-03 14:34 ` Ævar Arnfjörð Bjarmason
2022-04-03 14:47 ` Ævar Arnfjörð Bjarmason
2022-04-02 16:10 ` [PATCH v2 2/6] sequencer: factor GIT_AUTHOR_* from message strings Bagas Sanjaya via GitGitGadget
2022-04-02 16:10 ` [PATCH v2 3/6] i18n: factorize server support messages in fetch-pack Jean-Noël Avila via GitGitGadget
2022-04-02 16:10 ` [PATCH v2 4/6] i18n: factorize "foo does not take arguments" messages Jean-Noël Avila via GitGitGadget
2022-04-03 14:39 ` Ævar Arnfjörð Bjarmason
2022-04-03 22:21 ` Junio C Hamano
2022-04-02 16:10 ` [PATCH v2 5/6] i18n: factorize read-cache error messages Jean-Noël Avila via GitGitGadget
2022-04-03 22:29 ` Junio C Hamano
2022-04-02 16:10 ` [PATCH v2 6/6] i18n: factorize "bad argument" messages Jean-Noël Avila via GitGitGadget
2022-04-03 14:41 ` Ævar Arnfjörð Bjarmason
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=pull.1181.v2.git.1648915853.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=avarab@gmail.com \
--cc=bagasdotme@gmail.com \
--cc=git@vger.kernel.org \
--cc=j6t@kdbg.org \
--cc=jn.avila@free.fr \
/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).