From: Junio C Hamano Date: Tue, 30 Jul 2013 01:33:43 GMT Subject: Re: [PATCH 3/3] config: --get-urlmatch Message-ID: <7vbo5kzv9k.fsf@alter.siamese.dyndns.org> In-Reply-To: <20130730003716.GA13114@sigill.intra.peff.net> Jeff King writes: >> +struct urlmatch_item { >> + size_t max_matched_len; >> + char user_matched; >> + char value_is_null; >> + struct strbuf value; >> +}; > > I think you ultimately want such a string_list for matching arbitrary > numbers of keys, but do you need it for the git-config case? "git config" does not know the semantics of each key, nor available set of keys, no? The string-list is only to support git config --get-urlmatch http http://www.google.com/ i.e. "list everything under http.* hierarchy". And unlike http_option() which can incrementally always call back the setter (and let it override older value), the command has to read everything through and then give us the final value, so I do not think we can get away without one. > You will always be matching collect->key, so you will only ever insert a > single item into the collect->vars list. IOW, this could be: > > struct urlmatch_collect { > struct url_info url; > const char *section; > const char *key; > struct urlmatch_item match; > }; > > I don't mind if it is more complicated than this single-case needs to be > if the code is also being used to http.c, but I haven't seen that yet That is in the works, of course ;-)