Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp
[pandora-kernel.git] / scripts / kconfig / expr.c
index 6f98dbf..579ece4 100644 (file)
@@ -87,7 +87,7 @@ struct expr *expr_copy(struct expr *org)
                break;
        case E_AND:
        case E_OR:
-       case E_CHOICE:
+       case E_LIST:
                e->left.expr = expr_copy(org->left.expr);
                e->right.expr = expr_copy(org->right.expr);
                break;
@@ -217,7 +217,7 @@ int expr_eq(struct expr *e1, struct expr *e2)
                expr_free(e2);
                trans_count = old_count;
                return res;
-       case E_CHOICE:
+       case E_LIST:
        case E_RANGE:
        case E_NONE:
                /* panic */;
@@ -648,7 +648,7 @@ struct expr *expr_transform(struct expr *e)
        case E_EQUAL:
        case E_UNEQUAL:
        case E_SYMBOL:
-       case E_CHOICE:
+       case E_LIST:
                break;
        default:
                e->left.expr = expr_transform(e->left.expr);
@@ -932,7 +932,7 @@ struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symb
                break;
        case E_SYMBOL:
                return expr_alloc_comp(type, e->left.sym, sym);
-       case E_CHOICE:
+       case E_LIST:
        case E_RANGE:
        case E_NONE:
                /* panic */;
@@ -955,14 +955,14 @@ tristate expr_calc_value(struct expr *e)
        case E_AND:
                val1 = expr_calc_value(e->left.expr);
                val2 = expr_calc_value(e->right.expr);
-               return E_AND(val1, val2);
+               return EXPR_AND(val1, val2);
        case E_OR:
                val1 = expr_calc_value(e->left.expr);
                val2 = expr_calc_value(e->right.expr);
-               return E_OR(val1, val2);
+               return EXPR_OR(val1, val2);
        case E_NOT:
                val1 = expr_calc_value(e->left.expr);
-               return E_NOT(val1);
+               return EXPR_NOT(val1);
        case E_EQUAL:
                sym_calc_value(e->left.sym);
                sym_calc_value(e->right.sym);
@@ -1000,9 +1000,9 @@ int expr_compare_type(enum expr_type t1, enum expr_type t2)
                if (t2 == E_OR)
                        return 1;
        case E_OR:
-               if (t2 == E_CHOICE)
+               if (t2 == E_LIST)
                        return 1;
-       case E_CHOICE:
+       case E_LIST:
                if (t2 == 0)
                        return 1;
        default:
@@ -1034,12 +1034,18 @@ void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *
                expr_print(e->left.expr, fn, data, E_NOT);
                break;
        case E_EQUAL:
-               fn(data, e->left.sym, e->left.sym->name);
+               if (e->left.sym->name)
+                       fn(data, e->left.sym, e->left.sym->name);
+               else
+                       fn(data, NULL, "<choice>");
                fn(data, NULL, "=");
                fn(data, e->right.sym, e->right.sym->name);
                break;
        case E_UNEQUAL:
-               fn(data, e->left.sym, e->left.sym->name);
+               if (e->left.sym->name)
+                       fn(data, e->left.sym, e->left.sym->name);
+               else
+                       fn(data, NULL, "<choice>");
                fn(data, NULL, "!=");
                fn(data, e->right.sym, e->right.sym->name);
                break;
@@ -1053,11 +1059,11 @@ void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *
                fn(data, NULL, " && ");
                expr_print(e->right.expr, fn, data, E_AND);
                break;
-       case E_CHOICE:
+       case E_LIST:
                fn(data, e->right.sym, e->right.sym->name);
                if (e->left.expr) {
                        fn(data, NULL, " ^ ");
-                       expr_print(e->left.expr, fn, data, E_CHOICE);
+                       expr_print(e->left.expr, fn, data, E_LIST);
                }
                break;
        case E_RANGE: