From 6eabea3a7e6f1e4417f44dc293cbbbd5d9aca003 Mon Sep 17 00:00:00 2001 From: Ulf Magnusson Date: Fri, 25 May 2018 21:19:07 +0200 Subject: [PATCH] Kconfiglib: Warn for unquoted string defaults Unquoted string defaults work through a quirk of Kconfig (undefined symbols get their name as their string value), but look confusing. It's done inconsistently now too. Suggested by Kumar Gala. Signed-off-by: Ulf Magnusson --- scripts/kconfig/kconfiglib.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/scripts/kconfig/kconfiglib.py b/scripts/kconfig/kconfiglib.py index 383dbc3a409..f83c292863e 100644 --- a/scripts/kconfig/kconfiglib.py +++ b/scripts/kconfig/kconfiglib.py @@ -4754,7 +4754,18 @@ def _check_sym_sanity(sym): .format(TYPE_TO_STR[sym.orig_type], _name_and_loc(sym), expr_str(default))) - if sym.orig_type in (INT, HEX) and \ + if sym.orig_type == STRING: + if not default.is_constant and not default.nodes and \ + default.name != default.name.upper(): + # 'default foo' on a string symbol could be either a symbol + # reference or someone leaving out the quotes. Guess that + # the quotes were left out if 'foo' isn't all-uppercase + # (and no symbol named 'foo' exists). + sym.kconfig._warn("style: quotes recommended around " + "default value for string symbol " + + _name_and_loc(sym)) + + elif sym.orig_type in (INT, HEX) and \ not _int_hex_ok(default, sym.orig_type): sym.kconfig._warn("the {0} symbol {1} has a non-{0} default {2}"