factor out strbuf_expand_bad_format()
Extract a function for reporting placeholders that are not enclosed in a parenthesis or are unknown. This reduces the number of strings to translate and improves consistency across commands. Call it at the end of the if/else chain, after exhausting all accepted possibilities. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
3c2a3fdc38
commit
e36091aa1d
@ -266,7 +266,6 @@ static void show_ce_fmt(struct repository *repo, const struct cache_entry *ce,
|
||||
struct strbuf sb = STRBUF_INIT;
|
||||
|
||||
while (strbuf_expand_step(&sb, &format)) {
|
||||
const char *end;
|
||||
size_t len;
|
||||
struct stat st;
|
||||
|
||||
@ -274,12 +273,6 @@ static void show_ce_fmt(struct repository *repo, const struct cache_entry *ce,
|
||||
strbuf_addch(&sb, '%');
|
||||
else if ((len = strbuf_expand_literal(&sb, format)))
|
||||
format += len;
|
||||
else if (*format != '(')
|
||||
die(_("bad ls-files format: element '%s' "
|
||||
"does not start with '('"), format);
|
||||
else if (!(end = strchr(format + 1, ')')))
|
||||
die(_("bad ls-files format: element '%s' "
|
||||
"does not end in ')'"), format);
|
||||
else if (skip_prefix(format, "(objectmode)", &format))
|
||||
strbuf_addf(&sb, "%06o", ce->ce_mode);
|
||||
else if (skip_prefix(format, "(objectname)", &format))
|
||||
@ -308,8 +301,7 @@ static void show_ce_fmt(struct repository *repo, const struct cache_entry *ce,
|
||||
else if (skip_prefix(format, "(path)", &format))
|
||||
write_name_to_buf(&sb, fullname);
|
||||
else
|
||||
die(_("bad ls-files format: %%%.*s"),
|
||||
(int)(end - format + 1), format);
|
||||
strbuf_expand_bad_format(format, "ls-files");
|
||||
}
|
||||
strbuf_addch(&sb, line_terminator);
|
||||
fwrite(sb.buf, sb.len, 1, stdout);
|
||||
|
||||
Reference in New Issue
Block a user