From f5116f43f69720059375059311485d99c462551b Mon Sep 17 00:00:00 2001 From: Paul-Sebastian Ungureanu Date: Mon, 25 Feb 2019 23:16:05 +0000 Subject: sha1-name.c: add `get_oidf()` which acts like `get_oid()` Compared to `get_oid()`, `get_oidf()` has as parameters a pointer to `object_id`, a printf format string and additional arguments. This will help simplify the code in subsequent commits. Original-idea-by: Johannes Schindelin Signed-off-by: Paul-Sebastian Ungureanu Signed-off-by: Junio C Hamano --- sha1-name.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'sha1-name.c') diff --git a/sha1-name.c b/sha1-name.c index faa60f69e3..cf0e8a3f85 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1542,6 +1542,25 @@ int get_oid(const char *name, struct object_id *oid) return get_oid_with_context(name, 0, oid, &unused); } +/* + * This returns a non-zero value if the string (built using printf + * format and the given arguments) is not a valid object. + */ +int get_oidf(struct object_id *oid, const char *fmt, ...) +{ + va_list ap; + int ret; + struct strbuf sb = STRBUF_INIT; + + va_start(ap, fmt); + strbuf_vaddf(&sb, fmt, ap); + va_end(ap); + + ret = get_oid(sb.buf, oid); + strbuf_release(&sb); + + return ret; +} /* * Many callers know that the user meant to name a commit-ish by -- cgit v1.2.3