mirror of
https://github.com/git/git.git
synced 2024-05-11 21:46:09 +02:00
cat-file: use strbuf_expand_bad_format()
Report unknown format elements and missing closing parentheses with consistent and translated messages by calling strbuf_expand_bad_format() at the very end of the combined if/else chain of expand_format() and expand_atom(). Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e36091aa1d
commit
7c43bdf07b
|
@ -310,8 +310,8 @@ static int is_atom(const char *atom, const char *s, int slen)
|
|||
return alen == slen && !memcmp(atom, s, alen);
|
||||
}
|
||||
|
||||
static void expand_atom(struct strbuf *sb, const char *atom, int len,
|
||||
struct expand_data *data)
|
||||
static int expand_atom(struct strbuf *sb, const char *atom, int len,
|
||||
struct expand_data *data)
|
||||
{
|
||||
if (is_atom("objectname", atom, len)) {
|
||||
if (!data->mark_query)
|
||||
|
@ -343,7 +343,8 @@ static void expand_atom(struct strbuf *sb, const char *atom, int len,
|
|||
strbuf_addstr(sb,
|
||||
oid_to_hex(&data->delta_base_oid));
|
||||
} else
|
||||
die("unknown format element: %.*s", len, atom);
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void expand_format(struct strbuf *sb, const char *start,
|
||||
|
@ -354,12 +355,11 @@ static void expand_format(struct strbuf *sb, const char *start,
|
|||
|
||||
if (skip_prefix(start, "%", &start) || *start != '(')
|
||||
strbuf_addch(sb, '%');
|
||||
else if (!(end = strchr(start + 1, ')')))
|
||||
die("format element '%s' does not end in ')'", start);
|
||||
else {
|
||||
expand_atom(sb, start + 1, end - start - 1, data);
|
||||
else if ((end = strchr(start + 1, ')')) &&
|
||||
expand_atom(sb, start + 1, end - start - 1, data))
|
||||
start = end + 1;
|
||||
}
|
||||
else
|
||||
strbuf_expand_bad_format(start, "cat-file");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue