]> git.ipfire.org Git - thirdparty/git.git/blobdiff - refspec.c
Merge branch 'jt/t5500-unflake'
[thirdparty/git.git] / refspec.c
index 78edc48ae8eebcfdbfd87172e7ef4ead6c3fff85..9a9bf21934afb74e34b8cef1042860824f4c7282 100644 (file)
--- a/refspec.c
+++ b/refspec.c
@@ -72,7 +72,7 @@ static int parse_refspec(struct refspec_item *item, const char *refspec, int fet
                /* LHS */
                if (!*item->src)
                        ; /* empty is ok; it means "HEAD" */
-               else if (llen == GIT_SHA1_HEXSZ && !get_oid_hex(item->src, &unused))
+               else if (llen == the_hash_algo->hexsz && !get_oid_hex(item->src, &unused))
                        item->exact_sha1 = 1; /* ok */
                else if (!check_refname_format(item->src, flags))
                        ; /* valid looking ref is ok */
@@ -124,12 +124,17 @@ static int parse_refspec(struct refspec_item *item, const char *refspec, int fet
        return 1;
 }
 
-void refspec_item_init(struct refspec_item *item, const char *refspec, int fetch)
+int refspec_item_init(struct refspec_item *item, const char *refspec, int fetch)
 {
        memset(item, 0, sizeof(*item));
+       return parse_refspec(item, refspec, fetch);
+}
 
-       if (!parse_refspec(item, refspec, fetch))
-               die("Invalid refspec '%s'", refspec);
+void refspec_item_init_or_die(struct refspec_item *item, const char *refspec,
+                             int fetch)
+{
+       if (!refspec_item_init(item, refspec, fetch))
+               die(_("invalid refspec '%s'"), refspec);
 }
 
 void refspec_item_clear(struct refspec_item *item)
@@ -152,7 +157,7 @@ void refspec_append(struct refspec *rs, const char *refspec)
 {
        struct refspec_item item;
 
-       refspec_item_init(&item, refspec, rs->fetch);
+       refspec_item_init_or_die(&item, refspec, rs->fetch);
 
        ALLOC_GROW(rs->items, rs->nr + 1, rs->alloc);
        rs->items[rs->nr++] = item;
@@ -191,7 +196,7 @@ void refspec_clear(struct refspec *rs)
 int valid_fetch_refspec(const char *fetch_refspec_str)
 {
        struct refspec_item refspec;
-       int ret = parse_refspec(&refspec, fetch_refspec_str, REFSPEC_FETCH);
+       int ret = refspec_item_init(&refspec, fetch_refspec_str, REFSPEC_FETCH);
        refspec_item_clear(&refspec);
        return ret;
 }