Lines Matching refs:sym

234 static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p)
238 switch (sym->type) {
241 sym->def[def].tri = mod;
242 sym->flags |= def_flags;
248 sym->def[def].tri = yes;
249 sym->flags |= def_flags;
253 sym->def[def].tri = no;
254 sym->flags |= def_flags;
259 p, sym->name);
279 if (sym_string_valid(sym, p)) {
280 sym->def[def].val = xstrdup(p);
281 sym->flags |= def_flags;
285 p, sym->name);
356 struct symbol *sym;
376 sym_calc_value(prop->expr->left.sym);
377 name = sym_get_string_value(prop->expr->left.sym);
395 for_all_symbols(i, sym) {
396 sym->flags |= SYMBOL_CHANGED;
397 sym->flags &= ~(def_flags|SYMBOL_VALID);
398 if (sym_is_choice(sym))
399 sym->flags |= def_flags;
400 switch (sym->type) {
404 if (sym->def[def].val)
405 free(sym->def[def].val);
408 sym->def[def].val = NULL;
409 sym->def[def].tri = no;
415 sym = NULL;
426 sym = sym_find(line + 2 + strlen(CONFIG_));
427 if (!sym) {
432 sym = sym_lookup(line + 2 + strlen(CONFIG_), 0);
433 if (sym->type == S_UNKNOWN)
434 sym->type = S_BOOLEAN;
436 if (sym->flags & def_flags) {
437 conf_warning("override: reassigning to symbol %s", sym->name);
439 switch (sym->type) {
442 sym->def[def].tri = no;
443 sym->flags |= def_flags;
460 sym = sym_find(line + strlen(CONFIG_));
461 if (!sym) {
475 if (sym->flags & def_flags) {
476 conf_warning("override: reassigning to symbol %s", sym->name);
478 if (conf_set_sym_val(sym, def, def_flags, p))
488 if (sym && sym_is_choice_value(sym)) {
489 struct symbol *cs = prop_get_symbol(sym_get_choice_prop(sym));
490 switch (sym->def[def].tri) {
495 conf_warning("%s creates inconsistent choice state", sym->name);
501 conf_warning("override: %s changes choice state", sym->name);
502 cs->def[def].val = sym;
505 cs->def[def].tri = EXPR_OR(cs->def[def].tri, sym->def[def].tri);
515 struct symbol *sym;
528 for_all_symbols(i, sym) {
529 sym_calc_value(sym);
530 if (sym_is_choice(sym) || (sym->flags & SYMBOL_NO_WRITE))
532 if (sym_has_value(sym) && (sym->flags & SYMBOL_WRITE)) {
534 switch (sym->type) {
537 if (sym->def[S_DEF_USER].tri == sym_get_tristate_value(sym))
541 if (!strcmp(sym->curr.val, sym->def[S_DEF_USER].val))
545 } else if (!sym_has_value(sym) && !(sym->flags & SYMBOL_WRITE))
552 for_all_symbols(i, sym) {
553 if (sym_has_value(sym) && !sym_is_choice_value(sym)) {
559 if (sym->visible == no && !conf_unsaved)
560 sym->flags &= ~SYMBOL_DEF_USER;
561 switch (sym->type) {
566 if (sym_string_within_range(sym, sym->def[S_DEF_USER].val))
568 sym->flags &= ~(SYMBOL_VALID|SYMBOL_DEF_USER);
591 kconfig_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg)
594 switch (sym->type) {
602 CONFIG_, sym->name);
610 fprintf(fp, "%s%s=%s\n", CONFIG_, sym->name, value);
645 header_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg)
648 switch (sym->type) {
661 CONFIG_, sym->name, suffix);
671 CONFIG_, sym->name, prefix, value);
677 CONFIG_, sym->name, value);
713 static void conf_write_symbol(FILE *fp, struct symbol *sym,
718 switch (sym->type) {
722 str = sym_get_string_value(sym);
724 printer->print_symbol(fp, sym, str, printer_arg);
728 str = sym_get_string_value(sym);
729 printer->print_symbol(fp, sym, str, printer_arg);
753 struct symbol *sym;
768 sym = menu->sym;
769 if (sym == NULL) {
772 } else if (!sym_is_choice(sym)) {
773 sym_calc_value(sym);
774 if (!(sym->flags & SYMBOL_WRITE))
776 sym->flags &= ~SYMBOL_WRITE;
778 if (!sym_is_changeable(sym))
781 if (strcmp(sym_get_string_value(sym), sym_get_string_default(sym)) == 0)
791 if (sym_is_choice_value(sym)) {
795 cs = prop_get_symbol(sym_get_choice_prop(sym));
797 if (!sym_is_optional(cs) && sym == ds) {
798 if ((sym->type == S_BOOLEAN) &&
799 sym_get_tristate_value(sym) == yes)
803 conf_write_symbol(out, sym, &kconfig_printer_cb, NULL);
827 struct symbol *sym;
870 sym = menu->sym;
871 if (!sym) {
880 } else if (!(sym->flags & SYMBOL_CHOICE) &&
881 !(sym->flags & SYMBOL_WRITTEN)) {
882 sym_calc_value(sym);
883 if (!(sym->flags & SYMBOL_WRITE))
889 sym->flags |= SYMBOL_WRITTEN;
890 conf_write_symbol(out, sym, &kconfig_printer_cb, NULL);
901 if (!menu->sym && menu_is_visible(menu) &&
915 for_all_symbols(i, sym)
916 sym->flags &= ~SYMBOL_WRITTEN;
972 struct symbol *sym;
987 for_all_symbols(i, sym) {
988 sym_calc_value(sym);
989 if ((sym->flags & SYMBOL_NO_WRITE) || !sym->name)
991 if (sym->flags & SYMBOL_WRITE) {
992 if (sym->flags & SYMBOL_DEF_AUTO) {
997 switch (sym->type) {
1000 if (sym_get_tristate_value(sym) ==
1001 sym->def[S_DEF_AUTO].tri)
1007 if (!strcmp(sym_get_string_value(sym),
1008 sym->def[S_DEF_AUTO].val))
1019 switch (sym->type) {
1022 if (sym_get_tristate_value(sym) == no)
1029 } else if (!(sym->flags & SYMBOL_DEF_AUTO))
1038 res = conf_touch_dep(sym->name);
1048 struct symbol *sym;
1075 for_all_symbols(i, sym) {
1076 sym_calc_value(sym);
1077 if (!(sym->flags & SYMBOL_WRITE) || !sym->name)
1081 conf_write_symbol(out, sym, &kconfig_printer_cb, (void *)1);
1082 conf_write_symbol(out_h, sym, &header_printer_cb, NULL);
1137 struct symbol *sym;
1153 expr_list_for_each_sym(prop->expr, e, sym)
1163 expr_list_for_each_sym(prop->expr, e, sym) {
1165 sym->def[S_DEF_USER].tri = yes;
1166 csym->def[S_DEF_USER].val = sym;
1169 sym->def[S_DEF_USER].tri = no;
1171 sym->flags |= SYMBOL_DEF_USER;
1173 sym->flags &= ~SYMBOL_VALID;
1185 struct symbol *sym;
1193 expr_list_for_each_sym(prop->expr, e, sym) {
1194 if (!sym_has_value(sym))
1195 sym->def[S_DEF_USER].tri = no;
1204 struct symbol *sym, *csym;
1252 for_all_symbols(i, sym) {
1253 if (sym_has_value(sym) || (sym->flags & SYMBOL_VALID))
1255 switch (sym_get_type(sym)) {
1261 sym->def[S_DEF_USER].tri = yes;
1264 sym->def[S_DEF_USER].tri = mod;
1267 if (sym->flags & SYMBOL_ALLNOCONFIG_Y)
1268 sym->def[S_DEF_USER].tri = yes;
1270 sym->def[S_DEF_USER].tri = no;
1273 sym->def[S_DEF_USER].tri = no;
1275 if (sym->type == S_TRISTATE) {
1277 sym->def[S_DEF_USER].tri = yes;
1279 sym->def[S_DEF_USER].tri = mod;
1281 sym->def[S_DEF_USER].tri = yes;
1286 if (!(sym_is_choice(sym) && mode == def_random))
1287 sym->flags |= SYMBOL_DEF_USER;
1332 struct symbol *sym;
1337 for_all_symbols(i, sym) {
1338 if (sym_get_type(sym) == S_TRISTATE &&
1339 sym->def[S_DEF_USER].tri == old_val)
1340 sym->def[S_DEF_USER].tri = new_val;