Browse Source

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 <johannes.schindelin@gmx.de>
Signed-off-by: Paul-Sebastian Ungureanu <ungureanupaulsebastian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Paul-Sebastian Ungureanu 6 years ago committed by Junio C Hamano
parent
commit
f5116f43f6
  1. 1
      cache.h
  2. 19
      sha1-name.c

1
cache.h

@ -1333,6 +1333,7 @@ struct object_context { @@ -1333,6 +1333,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);

19
sha1-name.c

@ -1542,6 +1542,25 @@ int get_oid(const char *name, struct object_id *oid) @@ -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

Loading…
Cancel
Save