浏览代码

kconfig: print the range of integer/hex symbol in help text

Without this patch, one has to refer to the Kconfig file to find
out the range of an integer/hex symbol.

  │ Symbol: NR_CPUS [=4]
  │ Type  : integer
  │ Range : [2 8]
  │ Prompt: Maximum number of CPUs
  │   Defined at arch/x86/Kconfig:761
  │   Depends on: SMP [=y] && !MAXSMP [=n]
  │   Location:
  │     -> Processor type and features

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Li Zefan 15 年之前
父节点
当前提交
70ed074718
共有 2 个文件被更改,包括 9 次插入1 次删除
  1. 1 1
      scripts/kconfig/expr.c
  2. 8 0
      scripts/kconfig/menu.c

+ 1 - 1
scripts/kconfig/expr.c

@@ -1121,7 +1121,7 @@ static void expr_print_gstr_helper(void *data, struct symbol *sym, const char *s
 	}
 	}
 
 
 	str_append(gs, str);
 	str_append(gs, str);
-	if (sym)
+	if (sym && sym->type != S_UNKNOWN)
 		str_printf(gs, " [=%s]", sym_str);
 		str_printf(gs, " [=%s]", sym_str);
 }
 }
 
 

+ 8 - 0
scripts/kconfig/menu.c

@@ -505,6 +505,14 @@ void get_symbol_str(struct gstr *r, struct symbol *sym)
 		str_printf(r, "Symbol: %s [=%s]\n", sym->name,
 		str_printf(r, "Symbol: %s [=%s]\n", sym->name,
 			   sym_get_string_value(sym));
 			   sym_get_string_value(sym));
 		str_printf(r, "Type  : %s\n", sym_type_name(sym->type));
 		str_printf(r, "Type  : %s\n", sym_type_name(sym->type));
+		if (sym->type == S_INT || sym->type == S_HEX) {
+			prop = sym_get_range_prop(sym);
+			if (prop) {
+				str_printf(r, "Range : ");
+				expr_gstr_print(prop->expr, r);
+				str_append(r, "\n");
+			}
+		}
 	}
 	}
 	for_all_prompts(sym, prop)
 	for_all_prompts(sym, prop)
 		get_prompt_str(r, prop);
 		get_prompt_str(r, prop);