All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] kconfig: print each first level disjunction block from a new line
@ 2013-03-21  8:10 Konstantin Khlebnikov
  0 siblings, 0 replies; only message in thread
From: Konstantin Khlebnikov @ 2013-03-21  8:10 UTC (permalink / raw)
  To: linux-kernel; +Cc: Michal Marek, Andrew Morton, linux-kbuild

This patch improves readability of complicated expressions.

before:
   Selected by: A && AA && AAA || B && BB && (BBB || BBBB) || C && CC && CCC

after:
   Selected by: A && AA && AAA
 || B && BB && (BBB || BBBB)
 || C && CC && CCC

Modules' config options usually comes first in these blocks.

Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Michal Marek <mmarek@suse.cz>
Cc: linux-kbuild@vger.kernel.org
---
 scripts/kconfig/expr.c |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/scripts/kconfig/expr.c b/scripts/kconfig/expr.c
index d662652..e47eb28 100644
--- a/scripts/kconfig/expr.c
+++ b/scripts/kconfig/expr.c
@@ -1087,9 +1087,15 @@ void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *
 		fn(data, e->right.sym, e->right.sym->name);
 		break;
 	case E_OR:
-		expr_print(e->left.expr, fn, data, E_OR);
-		fn(data, NULL, " || ");
-		expr_print(e->right.expr, fn, data, E_OR);
+		if (prevtoken == E_NONE) {
+			expr_print(e->left.expr, fn, data, E_NONE);
+			fn(data, NULL, "\n|| ");
+			expr_print(e->right.expr, fn, data, E_NONE);
+		} else {
+			expr_print(e->left.expr, fn, data, E_OR);
+			fn(data, NULL, " || ");
+			expr_print(e->right.expr, fn, data, E_OR);
+		}
 		break;
 	case E_AND:
 		expr_print(e->left.expr, fn, data, E_AND);


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2013-03-21  8:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-03-21  8:10 [PATCH] kconfig: print each first level disjunction block from a new line Konstantin Khlebnikov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.