diff options
author | Eric Andersen | 2004-07-15 06:01:05 +0000 |
---|---|---|
committer | Eric Andersen | 2004-07-15 06:01:05 +0000 |
commit | 837f058fb307e0bcf7b9ad4f02a44ea3047f427e (patch) | |
tree | bde5459d496b1afc91b7d4a261b66252a47ca414 /scripts/config/expr.c | |
parent | 449f2bca967dc4682a52487fe4a53f13c3623002 (diff) | |
download | busybox-837f058fb307e0bcf7b9ad4f02a44ea3047f427e.zip busybox-837f058fb307e0bcf7b9ad4f02a44ea3047f427e.tar.gz |
Peter Kjellerstedt at axis.com writes:
Hello,
the attached patch should bring extra/config in line
with the Linux 2.6.7 sources.
The following are the commit messages for the respective
files from the Linux bk-repository:
checklist.c:
* fix menuconfig choice item help display
confdata.c:
* config: choice fix
* kconfig: don't rename target dir when saving config
expr.c, expr.h:
* config: disable debug prints
mconf.c:
* fix menuconfig choice item help display
menu.c:
* Kconfig: use select statements
symbol.c:
* config: choice fix
* Avoid bogus warning about recursive dependencies
* c99 struct initialiser conversions
textbox.c:
* janitor: don't init statics to 0
util.c:
* fix lxdialog behaviour
//Peter
Diffstat (limited to 'scripts/config/expr.c')
-rw-r--r-- | scripts/config/expr.c | 50 |
1 files changed, 28 insertions, 22 deletions
diff --git a/scripts/config/expr.c b/scripts/config/expr.c index 3f15ae8..10f4523 100644 --- a/scripts/config/expr.c +++ b/scripts/config/expr.c @@ -10,6 +10,8 @@ #define LKC_DIRECT_LINK #include "lkc.h" +#define DEBUG_EXPR 0 + struct expr *expr_alloc_symbol(struct symbol *sym) { struct expr *e = malloc(sizeof(*e)); @@ -220,10 +222,12 @@ int expr_eq(struct expr *e1, struct expr *e2) /* panic */; } - print_expr(0, e1, 0); - printf(" = "); - print_expr(0, e2, 0); - printf(" ?\n"); + if (DEBUG_EXPR) { + expr_fprint(e1, stdout); + printf(" = "); + expr_fprint(e2, stdout); + printf(" ?\n"); + } return 0; } @@ -397,11 +401,13 @@ struct expr *expr_join_or(struct expr *e1, struct expr *e2) return expr_alloc_symbol(&symbol_yes); } - printf("optimize "); - print_expr(0, e1, 0); - printf(" || "); - print_expr(0, e2, 0); - printf(" ?\n"); + if (DEBUG_EXPR) { + printf("optimize ("); + expr_fprint(e1, stdout); + printf(") || ("); + expr_fprint(e2, stdout); + printf(")?\n"); + } return NULL; } @@ -444,6 +450,11 @@ struct expr *expr_join_and(struct expr *e1, struct expr *e2) // (a) && (a!='n') -> (a) return expr_alloc_symbol(sym1); + if ((e1->type == E_SYMBOL && e2->type == E_UNEQUAL && e2->right.sym == &symbol_mod) || + (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_mod)) + // (a) && (a!='m') -> (a='y') + return expr_alloc_comp(E_EQUAL, sym1, &symbol_yes); + if (sym1->type == S_TRISTATE) { if (e1->type == E_EQUAL && e2->type == E_UNEQUAL) { // (a='b') && (a!='c') -> 'b'='c' ? 'n' : a='b' @@ -483,11 +494,14 @@ struct expr *expr_join_and(struct expr *e1, struct expr *e2) (e2->type == E_SYMBOL && e1->type == E_UNEQUAL && e1->right.sym == &symbol_yes)) return NULL; } - printf("optimize "); - print_expr(0, e1, 0); - printf(" && "); - print_expr(0, e2, 0); - printf(" ?\n"); + + if (DEBUG_EXPR) { + printf("optimize ("); + expr_fprint(e1, stdout); + printf(") && ("); + expr_fprint(e2, stdout); + printf(")?\n"); + } return NULL; } @@ -1073,11 +1087,3 @@ void expr_fprint(struct expr *e, FILE *out) { expr_print(e, expr_print_file_helper, out, E_NONE); } - -void print_expr(int mask, struct expr *e, int prevtoken) -{ - if (!(cdebug & mask)) - return; - expr_fprint(e, stdout); -} - |