Lines Matching defs:sym

80 	struct symbol *sym;
94 sym = sym_lookup(name, 0);
95 sym_calc_value(sym);
96 strcat(res_value, sym_get_string_value(sym));
120 static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p)
124 switch (sym->type) {
127 sym->def[def].tri = mod;
128 sym->flags |= def_flags;
134 sym->def[def].tri = yes;
135 sym->flags |= def_flags;
139 sym->def[def].tri = no;
140 sym->flags |= def_flags;
143 conf_warning("symbol value '%s' invalid for %s", p, sym->name);
149 sym->type = S_STRING;
171 if (sym_string_valid(sym, p)) {
172 sym->def[def].val = strdup(p);
173 sym->flags |= def_flags;
175 conf_warning("symbol value '%s' invalid for %s", p, sym->name);
190 struct symbol *sym;
213 name = conf_expand_value(prop->expr->left.sym->name);
232 for_all_symbols(i, sym) {
233 sym->flags |= SYMBOL_CHANGED;
234 sym->flags &= ~(def_flags|SYMBOL_VALID);
235 if (sym_is_choice(sym))
236 sym->flags |= def_flags;
237 switch (sym->type) {
241 if (sym->def[def].val)
242 free(sym->def[def].val);
245 sym->def[def].val = NULL;
246 sym->def[def].tri = no;
252 sym = NULL;
263 sym = sym_find(line + 2 + strlen(CONFIG_));
264 if (!sym) {
269 sym = sym_lookup(line + 2 + strlen(CONFIG_), 0);
270 if (sym->type == S_UNKNOWN)
271 sym->type = S_BOOLEAN;
273 if (sym->flags & def_flags) {
274 conf_warning("override: reassigning to symbol %s", sym->name);
276 switch (sym->type) {
279 sym->def[def].tri = no;
280 sym->flags |= def_flags;
297 sym = sym_find(line + strlen(CONFIG_));
298 if (!sym) {
303 sym = sym_lookup(line + strlen(CONFIG_), 0);
304 if (sym->type == S_UNKNOWN)
305 sym->type = S_OTHER;
307 if (sym->flags & def_flags) {
308 conf_warning("override: reassigning to symbol %s", sym->name);
310 if (conf_set_sym_val(sym, def, def_flags, p))
318 if (sym && sym_is_choice_value(sym)) {
319 struct symbol *cs = prop_get_symbol(sym_get_choice_prop(sym));
320 switch (sym->def[def].tri) {
325 conf_warning("%s creates inconsistent choice state", sym->name);
331 conf_warning("override: %s changes choice state", sym->name);
332 cs->def[def].val = sym;
335 cs->def[def].tri = EXPR_OR(cs->def[def].tri, sym->def[def].tri);
347 struct symbol *sym;
355 for_all_symbols(i, sym) {
356 sym_calc_value(sym);
357 if (sym_is_choice(sym) || (sym->flags & SYMBOL_AUTO))
359 if (sym_has_value(sym) && (sym->flags & SYMBOL_WRITE)) {
361 switch (sym->type) {
364 if (sym->def[S_DEF_USER].tri != sym_get_tristate_value(sym))
366 if (!sym_is_choice(sym))
370 if (!strcmp(sym->curr.val, sym->def[S_DEF_USER].val))
374 } else if (!sym_has_value(sym) && !(sym->flags & SYMBOL_WRITE))
381 for_all_symbols(i, sym) {
382 if (sym_has_value(sym) && !sym_is_choice_value(sym)) {
388 if (sym->visible == no && !conf_unsaved)
389 sym->flags &= ~SYMBOL_DEF_USER;
390 switch (sym->type) {
395 if (sym_string_within_range(sym, sym->def[S_DEF_USER].val))
397 sym->flags &= ~(SYMBOL_VALID|SYMBOL_DEF_USER);
420 kconfig_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg)
423 switch (sym->type) {
431 CONFIG_, sym->name);
439 fprintf(fp, "%s%s=%s\n", CONFIG_, sym->name, value);
474 header_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg)
477 switch (sym->type) {
490 CONFIG_, sym->name, suffix);
500 CONFIG_, sym->name, prefix, value);
506 CONFIG_, sym->name, value);
548 tristate_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg)
551 if (sym->type == S_TRISTATE && *value != 'n')
552 fprintf(fp, "%s%s=%c\n", CONFIG_, sym->name, (char)toupper(*value));
561 static void conf_write_symbol(FILE *fp, struct symbol *sym,
566 switch (sym->type) {
571 str = sym_get_string_value(sym);
573 printer->print_symbol(fp, sym, str, printer_arg);
577 str = sym_get_string_value(sym);
578 printer->print_symbol(fp, sym, str, printer_arg);
602 struct symbol *sym;
617 sym = menu->sym;
618 if (sym == NULL) {
621 } else if (!sym_is_choice(sym)) {
622 sym_calc_value(sym);
623 if (!(sym->flags & SYMBOL_WRITE))
625 sym->flags &= ~SYMBOL_WRITE;
627 if (!sym_is_changable(sym))
630 if (strcmp(sym_get_string_value(sym), sym_get_string_default(sym)) == 0)
640 if (sym_is_choice_value(sym)) {
644 cs = prop_get_symbol(sym_get_choice_prop(sym));
646 if (!sym_is_optional(cs) && sym == ds) {
647 if ((sym->type == S_BOOLEAN) &&
648 sym_get_tristate_value(sym) == yes)
652 conf_write_symbol(out, sym, &kconfig_printer_cb, NULL);
676 struct symbol *sym;
724 sym = menu->sym;
725 if (!sym) {
733 } else if (!(sym->flags & SYMBOL_CHOICE)) {
734 sym_calc_value(sym);
735 if (!(sym->flags & SYMBOL_WRITE))
737 sym->flags &= ~SYMBOL_WRITE;
739 conf_write_symbol(out, sym, &kconfig_printer_cb, NULL);
778 struct symbol *sym;
789 for_all_symbols(i, sym) {
790 sym_calc_value(sym);
791 if ((sym->flags & SYMBOL_AUTO) || !sym->name)
793 if (sym->flags & SYMBOL_WRITE) {
794 if (sym->flags & SYMBOL_DEF_AUTO) {
799 switch (sym->type) {
802 if (sym_get_tristate_value(sym) ==
803 sym->def[S_DEF_AUTO].tri)
809 if (!strcmp(sym_get_string_value(sym),
810 sym->def[S_DEF_AUTO].val))
821 switch (sym->type) {
824 if (sym_get_tristate_value(sym) == no)
831 } else if (!(sym->flags & SYMBOL_DEF_AUTO))
841 s = sym->name;
887 struct symbol *sym;
922 for_all_symbols(i, sym) {
923 sym_calc_value(sym);
924 if (!(sym->flags & SYMBOL_WRITE) || !sym->name)
928 conf_write_symbol(out, sym, &kconfig_printer_cb, (void *)1);
930 conf_write_symbol(tristate, sym, &tristate_printer_cb, (void *)1);
932 conf_write_symbol(out_h, sym, &header_printer_cb, NULL);
989 struct symbol *sym;
1005 expr_list_for_each_sym(prop->expr, e, sym)
1015 expr_list_for_each_sym(prop->expr, e, sym) {
1017 sym->def[S_DEF_USER].tri = yes;
1018 csym->def[S_DEF_USER].val = sym;
1021 sym->def[S_DEF_USER].tri = no;
1032 struct symbol *sym;
1040 expr_list_for_each_sym(prop->expr, e, sym) {
1041 if (!sym_has_value(sym))
1042 sym->def[S_DEF_USER].tri = no;
1051 struct symbol *sym, *csym;
1054 for_all_symbols(i, sym) {
1055 if (sym_has_value(sym))
1057 switch (sym_get_type(sym)) {
1062 sym->def[S_DEF_USER].tri = yes;
1065 sym->def[S_DEF_USER].tri = mod;
1068 sym->def[S_DEF_USER].tri = no;
1071 cnt = sym_get_type(sym) == S_TRISTATE ? 3 : 2;
1072 sym->def[S_DEF_USER].tri = (tristate)(rand() % cnt);
1077 if (!(sym_is_choice(sym) && mode == def_random))
1078 sym->flags |= SYMBOL_DEF_USER;