projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[scripts] ext-toolchain.sh:
[openwrt.git]
/
scripts
/
config
/
mconf.c
diff --git
a/scripts/config/mconf.c
b/scripts/config/mconf.c
index
2ef24aa
..
a62e924
100644
(file)
--- a/
scripts/config/mconf.c
+++ b/
scripts/config/mconf.c
@@
-22,6
+22,7
@@
#include <unistd.h>
#include <locale.h>
#include <unistd.h>
#include <locale.h>
+#define BUFSIZE 524288
#define LKC_DIRECT_LINK
#include "lkc.h"
#define LKC_DIRECT_LINK
#include "lkc.h"
@@
-254,10
+255,10
@@
search_help[] = N_(
" USB$ => find all CONFIG_ symbols ending with USB\n"
"\n");
" USB$ => find all CONFIG_ symbols ending with USB\n"
"\n");
-static char buf[
4096
], *bufptr = buf;
-static char input_buf[
4096
];
+static char buf[
BUFSIZE
], *bufptr = buf;
+static char input_buf[
BUFSIZE
];
static char filename[PATH_MAX+1] = ".config";
static char filename[PATH_MAX+1] = ".config";
-static char *args[
1024
], **argptr = args;
+static char *args[
BUFSIZE
], **argptr = args;
static int indent;
static struct termios ios_org;
static int rows = 0, cols = 0;
static int indent;
static struct termios ios_org;
static int rows = 0, cols = 0;
@@
-404,6
+405,7
@@
static void get_symbol_str(struct gstr *r, struct symbol *sym)
sym_get_string_value(sym));
for_all_prompts(sym, prop)
get_prompt_str(r, prop);
sym_get_string_value(sym));
for_all_prompts(sym, prop)
get_prompt_str(r, prop);
+
hit = false;
for_all_properties(sym, prop, P_SELECT) {
if (!hit) {
hit = false;
for_all_properties(sym, prop, P_SELECT) {
if (!hit) {
@@
-415,11
+417,29
@@
static void get_symbol_str(struct gstr *r, struct symbol *sym)
}
if (hit)
str_append(r, "\n");
}
if (hit)
str_append(r, "\n");
+
+ hit = false;
+ for_all_properties(sym, prop, P_DESELECT) {
+ if (!hit) {
+ str_append(r, " Deselects: ");
+ hit = true;
+ } else
+ str_printf(r, " && ");
+ expr_gstr_print(prop->expr, r);
+ }
+ if (hit)
+ str_append(r, "\n");
+
if (sym->rev_dep.expr) {
str_append(r, " Selected by: ");
expr_gstr_print(sym->rev_dep.expr, r);
str_append(r, "\n");
}
if (sym->rev_dep.expr) {
str_append(r, " Selected by: ");
expr_gstr_print(sym->rev_dep.expr, r);
str_append(r, "\n");
}
+ if (sym->rev_dep_inv.expr) {
+ str_append(r, " Deselected by: ");
+ expr_gstr_print(sym->rev_dep_inv.expr, r);
+ str_append(r, "\n");
+ }
str_append(r, "\n\n");
}
str_append(r, "\n\n");
}
@@
-737,6
+757,8
@@
static void conf(struct menu *menu)
if (menu == &rootmenu) {
cprint(":");
cprint("--- ");
if (menu == &rootmenu) {
cprint(":");
cprint("--- ");
+ cprint("D");
+ cprint(_(" Reset to defaults"));
cprint("L");
cprint(_(" Load an Alternate Configuration File"));
cprint("S");
cprint("L");
cprint(_(" Load an Alternate Configuration File"));
cprint("S");
@@
-783,6
+805,9
@@
static void conf(struct menu *menu)
case 's':
conf_string(submenu);
break;
case 's':
conf_string(submenu);
break;
+ case 'D':
+ conf_reset();
+ break;
case 'L':
conf_load();
break;
case 'L':
conf_load();
break;
@@
-847,6
+872,8
@@
static void show_help(struct menu *menu)
struct gstr help = str_new();
struct symbol *sym = menu->sym;
struct gstr help = str_new();
struct symbol *sym = menu->sym;
+ help.max_width = cols - 10;
+
if (sym->help)
{
if (sym->name) {
if (sym->help)
{
if (sym->name) {
@@
-882,6
+909,7
@@
static void conf_choice(struct menu *menu)
const char *prompt = menu_get_prompt(menu);
struct menu *child;
struct symbol *active;
const char *prompt = menu_get_prompt(menu);
struct menu *child;
struct symbol *active;
+ struct property *prop;
int stat;
active = sym_get_choice_value(menu->sym);
int stat;
active = sym_get_choice_value(menu->sym);
@@
-914,6
+942,13
@@
static void conf_choice(struct menu *menu)
case 0:
if (sscanf(input_buf, "%p", &child) != 1)
break;
case 0:
if (sscanf(input_buf, "%p", &child) != 1)
break;
+
+ if (sym_get_tristate_value(child->sym) != yes) {
+ for_all_properties(menu->sym, prop, P_RESET) {
+ if (expr_calc_value(prop->visible.expr) != no)
+ conf_reset();
+ }
+ }
sym_set_tristate_value(child->sym, yes);
return;
case 1:
sym_set_tristate_value(child->sym, yes);
return;
case 1:
This page took
0.026487 seconds
and
4
git commands to generate.