diff options
| author | Taylor Blau <me@ttaylorr.com> | 2025-03-18 18:50:27 -0400 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-03-21 01:45:16 -0700 |
| commit | 459e54b5497b53f298fe9164112f9bcb33bedb8d (patch) | |
| tree | 298147dd9214e0ab90606c3ebbc7b06c02ff2050 /refspec.c | |
| parent | ec6829e4849feb7b0343940e00896055027b06eb (diff) | |
| download | git-459e54b5497b53f298fe9164112f9bcb33bedb8d.tar.xz | |
refspec: replace `refspec_item_init()` with fetch/push variants
For similar reasons as in the previous refactoring of `refspec_init()`
into `refspec_init_fetch()` and `refspec_init_push()`, apply the same
refactoring to `refspec_item_init()`.
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Acked-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refspec.c')
| -rw-r--r-- | refspec.c | 22 |
1 files changed, 19 insertions, 3 deletions
@@ -153,13 +153,24 @@ static int parse_refspec(struct refspec_item *item, const char *refspec, int fet return 1; } -int refspec_item_init(struct refspec_item *item, const char *refspec, int fetch) +static int refspec_item_init(struct refspec_item *item, const char *refspec, + int fetch) { memset(item, 0, sizeof(*item)); item->raw = xstrdup(refspec); return parse_refspec(item, refspec, fetch); } +int refspec_item_init_fetch(struct refspec_item *item, const char *refspec) +{ + return refspec_item_init(item, refspec, 1); +} + +int refspec_item_init_push(struct refspec_item *item, const char *refspec) +{ + return refspec_item_init(item, refspec, 0); +} + void refspec_item_clear(struct refspec_item *item) { FREE_AND_NULL(item->src); @@ -186,8 +197,13 @@ void refspec_init_push(struct refspec *rs) void refspec_append(struct refspec *rs, const char *refspec) { struct refspec_item item; + int ret; - if (!refspec_item_init(&item, refspec, rs->fetch)) + if (rs->fetch) + ret = refspec_item_init_fetch(&item, refspec); + else + ret = refspec_item_init_push(&item, refspec); + if (!ret) die(_("invalid refspec '%s'"), refspec); ALLOC_GROW(rs->items, rs->nr + 1, rs->alloc); @@ -233,7 +249,7 @@ void refspec_clear(struct refspec *rs) int valid_fetch_refspec(const char *fetch_refspec_str) { struct refspec_item refspec; - int ret = refspec_item_init(&refspec, fetch_refspec_str, 1); + int ret = refspec_item_init_fetch(&refspec, fetch_refspec_str); refspec_item_clear(&refspec); return ret; } |
