In the next commits, we will enhance the fsck_tag() function to check tag objects more thoroughly. To this end, we need a function to verify that a given string is a valid object type, but that does not die() in the negative case. Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> --- object.c | 13 ++++++++++++- object.h | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/object.c b/object.c index a16b9f9..5eee592 100644 --- a/object.c +++ b/object.c @@ -33,13 +33,24 @@ const char *typename(unsigned int type) return object_type_strings[type]; } -int type_from_string(const char *str) +int type_from_string_gently(const char *str) { int i; for (i = 1; i < ARRAY_SIZE(object_type_strings); i++) if (!strcmp(str, object_type_strings[i])) return i; + + return -1; +} + +int type_from_string(const char *str) +{ + int i = type_from_string_gently(str); + + if (i >= 0) + return i; + die("invalid object type \"%s\"", str); } diff --git a/object.h b/object.h index 5e8d8ee..5c5d22f 100644 --- a/object.h +++ b/object.h @@ -54,6 +54,7 @@ struct object { extern const char *typename(unsigned int type); extern int type_from_string(const char *str); +extern int type_from_string_gently(const char *str); /* * Return the current number of buckets in the object hashmap. -- 2.0.0.rc3.9669.g840d1f9 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html