git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 3/3] config: treat section case insensitive in store_aux_event

From
Stefan Beller <sbeller@google.com>
Date
Jul 30, 2018, 23:04 UTC
Message-ID
<20180730230443.74416-4-sbeller@google.com>
In-Reply-To
<20180730230443.74416-1-sbeller@google.com>

This is a no-op because the section names are lower-cased already in get_base_var, this is purely for demonstration that we do not need to care about case issues in this part of the code.

Signed-off-by: Stefan Beller <sbeller@google.com>
---
 config.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/config.c b/config.c
index de646d2c56f..c247164ad17 100644
--- a/config.c
+++ b/config.c
@@ -2355,14 +2355,28 @@ static int store_aux_event(enum config_event_t type,
 	store->parsed[store->parsed_nr].type = type;
 
 	if (type == CONFIG_EVENT_SECTION) {
+		char *p;
+		int slen; /* section length */
 		if (cf->var.len < 2 || cf->var.buf[cf->var.len - 1] != '.')
 			return error("invalid section name '%s'", cf->var.buf);
 
+		p = strchr(cf->var.buf, '.');
+		if (!p)
+			/* no subsection, so treat all as section: */
+			slen = store->baselen;
+		else
+			slen = p - cf->var.buf;
+
+		if (slen > store->baselen)
+			slen = store->baselen;
+
 		/* Is this the section we were looking for? */
 		store->is_keys_section =
 			store->parsed[store->parsed_nr].is_keys_section =
 			cf->var.len - 1 == store->baselen &&
-			!strncmp(cf->var.buf, store->key, store->baselen);
+			!strncasecmp(cf->var.buf, store->key, slen) &&
+			!strncmp(cf->var.buf + slen, store->key + slen,
+				 store->baselen - slen);
 		if (store->is_keys_section) {
 			store->section_seen = 1;
 			ALLOC_GROW(store->seen, store->seen_nr + 1,
-- 
2.18.0.132.g195c49a2227
Previous: Junio C HamanoNext: Junio C Hamano
Message 16 of 33 in “config: fix case sensitive subsection names on writing”
  1. config: fix case sensitive subsection names on writingStefan Beller, Jul 27, 2018
  2. Brandon WilliamsJul 27, 2018
  3. Junio C HamanoJul 27, 2018
  4. Stefan BellerJul 27, 2018
  5. config: fix case sensitive subsection names on writingStefan Beller, Jul 27, 2018
  6. Stefan BellerJul 27, 2018
  7. Junio C HamanoJul 28, 2018
  8. Stefan BellerJul 28, 2018
  9. Jeff KingJul 28, 2018
  10. Junio C HamanoJul 28, 2018
  11. Johannes SchindelinJul 30, 2018
  12. 0/3 config: fix case sensitive subsection names on writingStefan Beller, Jul 30, 2018
  13. 1/3 t1300: document current behavior of setting optionsStefan Beller, Jul 30, 2018
  14. 2/3 config: fix case sensitive subsection names on writingStefan Beller, Jul 30, 2018
  15. Junio C HamanoJul 31, 2018
  16. 3/3 config: treat section case insensitive in store_aux_eventStefan Beller, Jul 30, 2018
  17. Junio C HamanoJul 31, 2018
  18. 0/3 sb/config-write-fix done without robbing PeterStefan Beller, Aug 1, 2018
  19. 1/3 t1300: document current behavior of setting optionsStefan Beller, Aug 1, 2018
  20. 2/3 config: fix case sensitive subsection names on writingStefan Beller, Aug 1, 2018
  21. Ramsay JonesAug 1, 2018
  22. Junio C HamanoAug 1, 2018
  23. Junio C HamanoAug 1, 2018
  24. Stefan BellerAug 3, 2018
  25. Junio C HamanoAug 3, 2018
  26. 3/3 git-config: document accidental multi-line setting in deprecated syntaxStefan Beller, Aug 1, 2018
  27. Eric SunshineAug 1, 2018
  28. Junio C HamanoAug 2, 2018
  29. 0/3 Reroll of sb/config-write-fixStefan Beller, Aug 3, 2018
  30. 1/3 t1300: document current behavior of setting optionsStefan Beller, Aug 3, 2018
  31. 2/3 config: fix case sensitive subsection names on writingStefan Beller, Aug 3, 2018
  32. 3/3 git-config: document accidental multi-line setting in deprecated syntaxStefan Beller, Aug 3, 2018
  33. Junio C HamanoJul 27, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.