On Thu, Aug 02 2018, René Scharfe wrote: > Don't translate the argument specification for --chmod; "+x" and "-x" > are the literal strings that the commands accept. > > Separate alternatives using a pipe character instead of a slash, for > consistency. > > Use the flag PARSE_OPT_LITERAL_ARGHELP to prevent parseopt from adding a > pair of angular brackets around the argument help string, as that would > wrongly indicate that users need to replace the literal strings with > some kind of value. Good change. Let's mention in the commit message thath we ended up with this because of 4a4838b46a ("i18n: update-index: mark parseopt strings for translation", 2012-08-20) and 4e55ed32db ("add: add --chmod=+x / --chmod=-x options", 2016-05-31) , both of which obviously didn't intend for this to happen, but were either mass-replacing "..." with N_("..."), or blindly copy/pasting an existing option whose argument should have been translated. > Signed-off-by: Rene Scharfe <l.s.r@xxxxxx> > --- > builtin/add.c | 4 +++- > builtin/update-index.c | 2 +- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/builtin/add.c b/builtin/add.c > index 8a155dd41e..84bfec9b73 100644 > --- a/builtin/add.c > +++ b/builtin/add.c > @@ -304,7 +304,9 @@ static struct option builtin_add_options[] = { > OPT_BOOL( 0 , "refresh", &refresh_only, N_("don't add, only refresh the index")), > OPT_BOOL( 0 , "ignore-errors", &ignore_add_errors, N_("just skip files which cannot be added because of errors")), > OPT_BOOL( 0 , "ignore-missing", &ignore_missing, N_("check if - even missing - files are ignored in dry run")), > - OPT_STRING( 0 , "chmod", &chmod_arg, N_("(+/-)x"), N_("override the executable bit of the listed files")), > + { OPTION_STRING, 0, "chmod", &chmod_arg, "(+|-)x", > + N_("override the executable bit of the listed files"), > + PARSE_OPT_LITERAL_ARGHELP }, > OPT_HIDDEN_BOOL(0, "warn-embedded-repo", &warn_on_embedded_repo, > N_("warn when adding an embedded repository")), > OPT_END(), > diff --git a/builtin/update-index.c b/builtin/update-index.c > index a8709a26ec..7feda6e271 100644 > --- a/builtin/update-index.c > +++ b/builtin/update-index.c > @@ -971,7 +971,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix) > PARSE_OPT_NOARG | /* disallow --cacheinfo=<mode> form */ > PARSE_OPT_NONEG | PARSE_OPT_LITERAL_ARGHELP, > (parse_opt_cb *) cacheinfo_callback}, > - {OPTION_CALLBACK, 0, "chmod", &set_executable_bit, N_("(+/-)x"), > + {OPTION_CALLBACK, 0, "chmod", &set_executable_bit, "(+|-)x", > N_("override the executable bit of the listed files"), > PARSE_OPT_NONEG | PARSE_OPT_LITERAL_ARGHELP, > chmod_callback},