| 2038 | } |
| 2039 | |
| 2040 | static void print_symbol(FILE *out, struct menu *menu) |
| 2041 | { |
| 2042 | struct symbol *sym = menu->sym; |
| 2043 | struct property *prop; |
| 2044 | |
| 2045 | if (sym_is_choice(sym)) |
| 2046 | fprintf(out, "\nchoice\n"); |
| 2047 | else |
| 2048 | fprintf(out, "\nconfig %s\n", sym->name); |
| 2049 | switch (sym->type) { |
| 2050 | case S_BOOLEAN: |
| 2051 | fputs(" bool\n", out); |
| 2052 | break; |
| 2053 | case S_TRISTATE: |
| 2054 | fputs(" tristate\n", out); |
| 2055 | break; |
| 2056 | case S_STRING: |
| 2057 | fputs(" string\n", out); |
| 2058 | break; |
| 2059 | case S_INT: |
| 2060 | fputs(" integer\n", out); |
| 2061 | break; |
| 2062 | case S_HEX: |
| 2063 | fputs(" hex\n", out); |
| 2064 | break; |
| 2065 | default: |
| 2066 | fputs(" ???\n", out); |
| 2067 | break; |
| 2068 | } |
| 2069 | for (prop = sym->prop; prop; prop = prop->next) { |
| 2070 | if (prop->menu != menu) |
| 2071 | continue; |
| 2072 | switch (prop->type) { |
| 2073 | case P_PROMPT: |
| 2074 | fputs(" prompt ", out); |
| 2075 | print_quoted_string(out, prop->text); |
| 2076 | if (!expr_is_yes(prop->visible.expr)) { |
| 2077 | fputs(" if ", out); |
| 2078 | expr_fprint(prop->visible.expr, out); |
| 2079 | } |
| 2080 | fputc('\n', out); |
| 2081 | break; |
| 2082 | case P_DEFAULT: |
| 2083 | fputs( " default ", out); |
| 2084 | expr_fprint(prop->expr, out); |
| 2085 | if (!expr_is_yes(prop->visible.expr)) { |
| 2086 | fputs(" if ", out); |
| 2087 | expr_fprint(prop->visible.expr, out); |
| 2088 | } |
| 2089 | fputc('\n', out); |
| 2090 | break; |
| 2091 | case P_CHOICE: |
| 2092 | fputs(" #choice value\n", out); |
| 2093 | break; |
| 2094 | case P_SELECT: |
| 2095 | fputs( " select ", out); |
| 2096 | expr_fprint(prop->expr, out); |
| 2097 | fputc('\n', out); |
no test coverage detected