| 386 | } |
| 387 | |
| 388 | int conf_read_simple(const char *name, int def) |
| 389 | { |
| 390 | FILE *in = NULL; |
| 391 | char *line = NULL; |
| 392 | size_t line_asize = 0; |
| 393 | char *p, *val, *sym_name; |
| 394 | struct symbol *sym; |
| 395 | int i, def_flags; |
| 396 | const char *warn_unknown; |
| 397 | |
| 398 | warn_unknown = getenv("KCONFIG_WARN_UNKNOWN_SYMBOLS"); |
| 399 | if (name) { |
| 400 | in = zconf_fopen(name); |
| 401 | } else { |
| 402 | char *env; |
| 403 | |
| 404 | name = conf_get_configname(); |
| 405 | in = zconf_fopen(name); |
| 406 | if (in) |
| 407 | goto load; |
| 408 | conf_set_changed(true); |
| 409 | |
| 410 | env = getenv("KCONFIG_DEFCONFIG_LIST"); |
| 411 | if (!env) |
| 412 | return 1; |
| 413 | |
| 414 | while (1) { |
| 415 | bool is_last; |
| 416 | |
| 417 | while (isspace(*env)) |
| 418 | env++; |
| 419 | |
| 420 | if (!*env) |
| 421 | break; |
| 422 | |
| 423 | p = env; |
| 424 | while (*p && !isspace(*p)) |
| 425 | p++; |
| 426 | |
| 427 | is_last = (*p == '\0'); |
| 428 | |
| 429 | *p = '\0'; |
| 430 | |
| 431 | in = zconf_fopen(env); |
| 432 | if (in) { |
| 433 | conf_message("using defaults found in %s", |
| 434 | env); |
| 435 | goto load; |
| 436 | } |
| 437 | |
| 438 | if (is_last) |
| 439 | break; |
| 440 | |
| 441 | env = p + 1; |
| 442 | } |
| 443 | } |
| 444 | if (!in) |
| 445 | return 1; |
no test coverage detected