wifi: ieee80211: correctly mark FTM frames non-bufferable
[carl9170fw.git] / config / menu.c
index b4fb0c88b6e0e0672b03053a71a98aec96a38e3b..a5fbd6ccc006e05308f0ef24cf3cb1545a55cb15 100644 (file)
@@ -65,7 +65,8 @@ void menu_add_entry(struct symbol *sym)
 struct menu *menu_add_menu(void)
 {
        last_entry_ptr = &current_entry->list;
-       return current_menu = current_entry;
+       current_menu = current_entry;
+       return current_menu;
 }
 
 void menu_end_menu(void)
@@ -736,6 +737,17 @@ static void get_prompt_str(struct gstr *r, struct property *prop,
        str_printf(r, "  Prompt: %s\n", prop->text);
 
        get_dep_str(r, prop->menu->dep, "  Depends on: ");
+       /*
+        * Most prompts in Linux have visibility that exactly matches their
+        * dependencies. For these, we print only the dependencies to improve
+        * readability. However, prompts with inline "if" expressions and
+        * prompts with a parent that has a "visible if" expression have
+        * differing dependencies and visibility. In these rare cases, we
+        * print both.
+        */
+       if (!expr_eq(prop->menu->dep, prop->visible.expr))
+               get_dep_str(r, prop->visible.expr, "  Visible if: ");
+
        menu = prop->menu->parent;
        for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent) {
                bool accessible = menu_is_visible(menu);
@@ -840,18 +852,18 @@ static void get_symbol_str(struct gstr *r, struct symbol *sym,
                }
        }
 
-       get_symbol_props_str(r, sym, P_SELECT, "  Selects: ");
+       get_symbol_props_str(r, sym, P_SELECT, "Selects: ");
        if (sym->rev_dep.expr) {
-               expr_gstr_print_revdep(sym->rev_dep.expr, r, yes, "  Selected by [y]:\n");
-               expr_gstr_print_revdep(sym->rev_dep.expr, r, mod, "  Selected by [m]:\n");
-               expr_gstr_print_revdep(sym->rev_dep.expr, r, no, "  Selected by [n]:\n");
+               expr_gstr_print_revdep(sym->rev_dep.expr, r, yes, "Selected by [y]:\n");
+               expr_gstr_print_revdep(sym->rev_dep.expr, r, mod, "Selected by [m]:\n");
+               expr_gstr_print_revdep(sym->rev_dep.expr, r, no, "Selected by [n]:\n");
        }
 
-       get_symbol_props_str(r, sym, P_IMPLY, "  Implies: ");
+       get_symbol_props_str(r, sym, P_IMPLY, "Implies: ");
        if (sym->implied.expr) {
-               expr_gstr_print_revdep(sym->implied.expr, r, yes, "  Implied by [y]:\n");
-               expr_gstr_print_revdep(sym->implied.expr, r, mod, "  Implied by [m]:\n");
-               expr_gstr_print_revdep(sym->implied.expr, r, no, "  Implied by [n]:\n");
+               expr_gstr_print_revdep(sym->implied.expr, r, yes, "Implied by [y]:\n");
+               expr_gstr_print_revdep(sym->implied.expr, r, mod, "Implied by [m]:\n");
+               expr_gstr_print_revdep(sym->implied.expr, r, no, "Implied by [n]:\n");
        }
 
        str_append(r, "\n\n");