aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/kconfig/confdata.c
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/kconfig/confdata.c')
-rw-r--r--scripts/kconfig/confdata.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index e0f402f3b75d..e4fa3f302541 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -145,6 +145,33 @@ static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p)
145 return 0; 145 return 0;
146} 146}
147 147
148/* Read an environment variable and assign the value to the symbol */
149int conf_set_env_sym(const char *env, const char *symname, int def)
150{
151 struct symbol *sym;
152 char *p;
153 int def_flags;
154
155 p = getenv(env);
156 if (p) {
157 char warning[200];
158 sprintf(warning, "Environment variable (%s = \"%s\")", env, p);
159 conf_filename = warning;
160 def_flags = SYMBOL_DEF << def;
161 if (def == S_DEF_USER) {
162 sym = sym_find(symname);
163 if (!sym)
164 return 1;
165 } else {
166 sym = sym_lookup(symname, 0);
167 if (sym->type == S_UNKNOWN)
168 sym->type = S_OTHER;
169 }
170 conf_set_sym_val(sym, def, def_flags, p);
171 }
172 return 0;
173}
174
148int conf_read_simple(const char *name, int def) 175int conf_read_simple(const char *name, int def)
149{ 176{
150 FILE *in = NULL; 177 FILE *in = NULL;