Merge tag 'apparmor-pr-2021-11-10' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-block.git] / scripts / kconfig / menu.c
index 606ba8a63c24edee28d8e4e99aed1104e42a29c8..3d6f7cba88464b30c21aea07c148424250c23455 100644 (file)
@@ -728,7 +728,7 @@ static void get_prompt_str(struct gstr *r, struct property *prop,
                get_dep_str(r, prop->visible.expr, "  Visible if: ");
 
        menu = prop->menu->parent;
-       for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent) {
+       for (i = 0; menu && i < 8; menu = menu->parent) {
                bool accessible = menu_is_visible(menu);
 
                submenu[i++] = menu;
@@ -758,21 +758,24 @@ static void get_prompt_str(struct gstr *r, struct property *prop,
                list_add_tail(&jump->entries, head);
        }
 
-       if (i > 0) {
-               str_printf(r, "  Location:\n");
-               for (j = 4; --i >= 0; j += 2) {
-                       menu = submenu[i];
-                       if (jump && menu == location)
-                               jump->offset = strlen(r->s);
-                       str_printf(r, "%*c-> %s", j, ' ',
-                                  menu_get_prompt(menu));
-                       if (menu->sym) {
-                               str_printf(r, " (%s [=%s])", menu->sym->name ?
-                                       menu->sym->name : "<choice>",
-                                       sym_get_string_value(menu->sym));
-                       }
-                       str_append(r, "\n");
+       str_printf(r, "  Location:\n");
+       for (j = 4; --i >= 0; j += 2) {
+               menu = submenu[i];
+               if (jump && menu == location)
+                       jump->offset = strlen(r->s);
+
+               if (menu == &rootmenu)
+                       /* The real rootmenu prompt is ugly */
+                       str_printf(r, "%*cMain menu", j, ' ');
+               else
+                       str_printf(r, "%*c-> %s", j, ' ', menu_get_prompt(menu));
+
+               if (menu->sym) {
+                       str_printf(r, " (%s [=%s])", menu->sym->name ?
+                               menu->sym->name : "<choice>",
+                               sym_get_string_value(menu->sym));
                }
+               str_append(r, "\n");
        }
 }