[PATCH v6 1/4] sha1-name.c: added 'get_oidf', which acts like 'get_oid'
- From
Paul-Sebastian Ungureanu <ungureanupaulsebastian@gmail.com>
- Date
- Jun 25, 2018, 16:42 UTC
- Message-ID
- <4c1f71b067ac235c3003d58e1f3dfb07866be129.1529943789.git.ungureanupaulsebastian@gmail.com>
- In-Reply-To
- <cover.1529943789.git.ungureanupaulsebastian@gmail.com>
Compared to 'get_oid', 'get_oidf' has as parameters a printf format string and the additional arguments. This will help simplify the code in subsequent commits.
Original-idea-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Paul-Sebastian Ungureanu <ungureanupaulsebastian@gmail.com> --- cache.h | 1 + sha1-name.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+)
diff --git a/cache.h b/cache.h index 89a107a7f..9252a4546 100644 --- a/cache.h +++ b/cache.h @@ -1321,6 +1321,7 @@ struct object_context { GET_OID_BLOB) extern int get_oid(const char *str, struct object_id *oid); +extern int get_oidf(struct object_id *oid, const char *fmt, ...); extern int get_oid_commit(const char *str, struct object_id *oid); extern int get_oid_committish(const char *str, struct object_id *oid); extern int get_oid_tree(const char *str, struct object_id *oid); diff --git a/sha1-name.c b/sha1-name.c index 60d9ef3c7..80ee8f742 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1466,6 +1466,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
-- 2.18.0.rc2.13.g506fc12fb