diff options
Diffstat (limited to 'urlmatch.c')
| -rw-r--r-- | urlmatch.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/urlmatch.c b/urlmatch.c index b615adc923..1d0254abac 100644 --- a/urlmatch.c +++ b/urlmatch.c @@ -1,4 +1,7 @@ -#include "cache.h" +#include "git-compat-util.h" +#include "gettext.h" +#include "hex-ll.h" +#include "strbuf.h" #include "urlmatch.h" #define URL_ALPHA "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" @@ -209,7 +212,7 @@ static char *url_normalize_1(const char *url, struct url_info *out_info, char al */ if (!url_len || strchr(":/?#", *url)) { /* Missing host invalid for all URL schemes except file */ - if (strncmp(norm.buf, "file:", 5)) { + if (!starts_with(norm.buf, "file:")) { if (out_info) { out_info->url = NULL; out_info->err = _("missing host and scheme is not 'file:'"); @@ -268,11 +271,11 @@ static char *url_normalize_1(const char *url, struct url_info *out_info, char al if (url == slash_ptr) { /* Skip ":" port with no number, it's same as default */ } else if (slash_ptr - url == 2 && - !strncmp(norm.buf, "http:", 5) && + starts_with(norm.buf, "http:") && !strncmp(url, "80", 2)) { /* Skip http :80 as it's the default */ } else if (slash_ptr - url == 3 && - !strncmp(norm.buf, "https:", 6) && + starts_with(norm.buf, "https:") && !strncmp(url, "443", 3)) { /* Skip https :443 as it's the default */ } else { @@ -548,7 +551,8 @@ static int cmp_matches(const struct urlmatch_item *a, return 0; } -int urlmatch_config_entry(const char *var, const char *value, void *cb) +int urlmatch_config_entry(const char *var, const char *value, + const struct config_context *ctx, void *cb) { struct string_list_item *item; struct urlmatch_config *collect = cb; @@ -562,7 +566,7 @@ int urlmatch_config_entry(const char *var, const char *value, void *cb) if (!skip_prefix(var, collect->section, &key) || *(key++) != '.') { if (collect->cascade_fn) - return collect->cascade_fn(var, value, cb); + return collect->cascade_fn(var, value, ctx, cb); return 0; /* not interested */ } dot = strrchr(key, '.'); @@ -606,7 +610,7 @@ int urlmatch_config_entry(const char *var, const char *value, void *cb) strbuf_addstr(&synthkey, collect->section); strbuf_addch(&synthkey, '.'); strbuf_addstr(&synthkey, key); - retval = collect->collect_fn(synthkey.buf, value, collect->cb); + retval = collect->collect_fn(synthkey.buf, value, ctx, collect->cb); strbuf_release(&synthkey); return retval; |
