From: Yu Watanabe Date: Mon, 9 Nov 2020 05:40:02 +0000 (+0900) Subject: core: reduce scope of variants X-Git-Tag: v247-rc2~17^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=601844b71dd2414c8c015192c8b11cbf89cfc2cb;p=thirdparty%2Fsystemd.git core: reduce scope of variants Fixes #17543. --- diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c index 0ab64e17082..5f8b0fedf0d 100644 --- a/src/core/load-fragment.c +++ b/src/core/load-fragment.c @@ -5646,9 +5646,7 @@ void unit_dump_config_items(FILE *f) { NULSTR_FOREACH(i, load_fragment_gperf_nulstr) { const char *rvalue = "OTHER", *lvalue; const ConfigPerfItem *p; - size_t prefix_len; const char *dot; - unsigned j; assert_se(p = load_fragment_gperf_lookup(i, strlen(i))); @@ -5657,7 +5655,7 @@ void unit_dump_config_items(FILE *f) { p->ltype == DISABLED_LEGACY) continue; - for (j = 0; j < ELEMENTSOF(table); j++) + for (size_t j = 0; j < ELEMENTSOF(table); j++) if (p->parse == table[j].callback) { rvalue = table[j].rvalue; break; @@ -5665,15 +5663,17 @@ void unit_dump_config_items(FILE *f) { dot = strchr(i, '.'); lvalue = dot ? dot + 1 : i; - prefix_len = dot-i; - if (dot) + if (dot) { + size_t prefix_len = dot - i; + if (!prev || !strneq(prev, i, prefix_len+1)) { if (prev) fputc('\n', f); fprintf(f, "[%.*s]\n", (int) prefix_len, i); } + } fprintf(f, "%s=%s\n", lvalue, rvalue); prev = i;