Merge tag 'amd-drm-next-5.13-2021-03-23' of https://gitlab.freedesktop.org/agd5f...
[linux-2.6-microblaze.git] / scripts / kconfig / conf.c
index db03e2f..957d2a0 100644 (file)
@@ -84,8 +84,6 @@ static void xfgets(char *str, int size, FILE *in)
 
 static int conf_askvalue(struct symbol *sym, const char *def)
 {
-       enum symbol_type type = sym_get_type(sym);
-
        if (!sym_has_value(sym))
                printf("(NEW) ");
 
@@ -107,24 +105,12 @@ static int conf_askvalue(struct symbol *sym, const char *def)
                        return 0;
                }
                /* fall through */
-       case oldaskconfig:
+       default:
                fflush(stdout);
                xfgets(line, sizeof(line), stdin);
-               return 1;
-       default:
                break;
        }
 
-       switch (type) {
-       case S_INT:
-       case S_HEX:
-       case S_STRING:
-               printf("%s\n", def);
-               return 1;
-       default:
-               ;
-       }
-       printf("%s", line);
        return 1;
 }
 
@@ -137,7 +123,7 @@ static int conf_string(struct menu *menu)
                printf("%*s%s ", indent - 1, "", menu->prompt->text);
                printf("(%s) ", sym->name);
                def = sym_get_string_value(sym);
-               if (sym_get_string_value(sym))
+               if (def)
                        printf("[%s] ", def);
                if (!conf_askvalue(sym, def))
                        return 0;
@@ -419,34 +405,37 @@ static void check_conf(struct menu *menu)
                return;
 
        sym = menu->sym;
-       if (sym && !sym_has_value(sym)) {
-               if (sym_is_changeable(sym) ||
-                   (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) {
-                       if (input_mode == listnewconfig) {
-                               if (sym->name) {
-                                       const char *str;
-
-                                       if (sym->type == S_STRING) {
-                                               str = sym_get_string_value(sym);
-                                               str = sym_escape_string_value(str);
-                                               printf("%s%s=%s\n", CONFIG_, sym->name, str);
-                                               free((void *)str);
-                                       } else {
-                                               str = sym_get_string_value(sym);
-                                               printf("%s%s=%s\n", CONFIG_, sym->name, str);
-                                       }
-                               }
-                       } else if (input_mode == helpnewconfig) {
-                               printf("-----\n");
-                               print_help(menu);
-                               printf("-----\n");
+       if (sym && !sym_has_value(sym) &&
+           (sym_is_changeable(sym) ||
+            (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes))) {
 
-                       } else {
-                               if (!conf_cnt++)
-                                       printf("*\n* Restart config...\n*\n");
-                               rootEntry = menu_get_parent_menu(menu);
-                               conf(rootEntry);
+               switch (input_mode) {
+               case listnewconfig:
+                       if (sym->name) {
+                               const char *str;
+
+                               if (sym->type == S_STRING) {
+                                       str = sym_get_string_value(sym);
+                                       str = sym_escape_string_value(str);
+                                       printf("%s%s=%s\n", CONFIG_, sym->name, str);
+                                       free((void *)str);
+                               } else {
+                                       str = sym_get_string_value(sym);
+                                       printf("%s%s=%s\n", CONFIG_, sym->name, str);
+                               }
                        }
+                       break;
+               case helpnewconfig:
+                       printf("-----\n");
+                       print_help(menu);
+                       printf("-----\n");
+                       break;
+               default:
+                       if (!conf_cnt++)
+                               printf("*\n* Restart config...\n*\n");
+                       rootEntry = menu_get_parent_menu(menu);
+                       conf(rootEntry);
+                       break;
                }
        }
 
@@ -494,6 +483,7 @@ static void conf_usage(const char *progname)
        printf("  --randconfig            New config with random answer to all options\n");
        printf("  --yes2modconfig         Change answers from yes to mod if possible\n");
        printf("  --mod2yesconfig         Change answers from mod to yes if possible\n");
+       printf("  (If none of the above is given, --oldaskconfig is the default)\n");
 }
 
 int main(int ac, char **av)
@@ -505,7 +495,7 @@ int main(int ac, char **av)
 
        tty_stdio = isatty(0) && isatty(1);
 
-       while ((opt = getopt_long(ac, av, "s", long_opts, NULL)) != -1) {
+       while ((opt = getopt_long(ac, av, "hs", long_opts, NULL)) != -1) {
                if (opt == 's') {
                        conf_set_message_callback(NULL);
                        continue;
@@ -561,7 +551,7 @@ int main(int ac, char **av)
                case yes2modconfig:
                case mod2yesconfig:
                        break;
-               case '?':
+               case 'h':
                        conf_usage(progname);
                        exit(1);
                        break;