projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[modules]
[openwrt.git]
/
scripts
/
config
/
mconf.c
diff --git
a/scripts/config/mconf.c
b/scripts/config/mconf.c
index
5caf822
..
8c58b62
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");
}
@@
-887,6
+907,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);
@@
-919,6
+940,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.020129 seconds
and
4
git commands to generate.