[PATCH 6/6] kconfig: massage the loop in conf_read_simple()

Masahiro Yamada
2023-11-18T07:59:22Z

Make the while-loop code a little more readable.

The gain is that "CONFIG_FOO" without '=' is warned as unexpected data.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

scripts/kconfig/confdata.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 958be12cd621..bd14aae1db58 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -443,6 +443,10 @@ int conf_read_simple(const char *name, int def)

while (getline_stripped(&line, &line_asize, in) != -1) {
conf_lineno++;
+
+ if (!line[0]) /* blank line */
+ continue;
+
if (line[0] == '#') {
if (line[1] != ' ')
continue;
@@ -458,17 +462,20 @@ int conf_read_simple(const char *name, int def)
continue;

val = "n";
- } else if (memcmp(line, CONFIG_, strlen(CONFIG_)) == 0) {
+ } else {
+ if (memcmp(line, CONFIG_, strlen(CONFIG_))) {
+ conf_warning("unexpected data: %s", line);
+ continue;
+ }
+
sym_name = line + strlen(CONFIG_);
p = strchr(sym_name, '=');
- if (!p)
+ if (!p) {
+ conf_warning("unexpected data: %s", line);
continue;
+ }
*p = 0;
val = p + 1;
- } else {
- if (line[0] != '\0')
- conf_warning("unexpected data: %s", line);
- continue;
}

sym = sym_find(sym_name);
--
2.40.1