public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/portage-utils:master commit in: libq/, tests/qdepends/
@ 2022-04-07 17:16 Fabian Groffen
  0 siblings, 0 replies; only message in thread
From: Fabian Groffen @ 2022-04-07 17:16 UTC (permalink / raw
  To: gentoo-commits

commit:     82f8dc2ee9ba0ff97924df0dcc3feba3935b979c
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Thu Apr  7 17:14:08 2022 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Thu Apr  7 17:14:08 2022 +0000
URL:        https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=82f8dc2e

libq/dep: print single nodes on a single line

condense conditional and use-deps to a single line when there's a single
target, e.g.:

use? ( cat/pkg )

instead of

use? (
    cat/pkg
)

Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 libq/dep.c                 | 34 +++++++++++++++++++++++++++++-----
 tests/qdepends/list03.good |  4 +---
 tests/qdepends/list04.good |  4 +---
 tests/qdepends/list05.good |  4 +---
 4 files changed, 32 insertions(+), 14 deletions(-)

diff --git a/libq/dep.c b/libq/dep.c
index d431367..99629e7 100644
--- a/libq/dep.c
+++ b/libq/dep.c
@@ -238,6 +238,13 @@ dep_print_tree(
 	size_t s;
 	int indent = 4;  /* Gentoo 4-wide indent standard */
 	depend_atom *d = NULL;
+	bool singlechild = false;
+	bool nonewline = false;
+
+	if (verbose < 0) {
+		nonewline = true;
+		verbose = -verbose - 1;
+	}
 
 	assert(root);
 	if (root->type == DEP_NULL)
@@ -248,7 +255,8 @@ dep_print_tree(
 
 	if (verbose > 0)
 		fprintf(fp, "Node [%s]: ", _dep_names[root->type]);
-	/*printf("Node %p [%s] %p %p %p: ", root, _dep_names[root->type], root->parent, root->neighbor, root->children);*/
+	/*printf("Node %p [%s] %p %p %p: ", root, _dep_names[root->type],
+	 *       root->parent, root->neighbor, root->children);*/
 	if (root->type == DEP_OR)
 		fprintf(fp, "|| (");
 	if (root->info) {
@@ -286,14 +294,30 @@ dep_print_tree(
 		if (root->type == DEP_USE)
 			fprintf(fp, "? (");
 	}
-	fprintf(fp, "\n");
+
+	if (root->children &&
+		root->children->children == NULL &&
+		root->children->neighbor == NULL)
+	{
+		singlechild = true;
+	}
+
+	if (singlechild)
+		fprintf(fp, " ");
+	else if (!nonewline)
+		fprintf(fp, "\n");
 
 	if (root->children)
-		dep_print_tree(fp, root->children, space+1, hlatoms, hlcolor, verbose);
+		dep_print_tree(fp, root->children,
+					   singlechild ? 0 : space + 1,
+					   hlatoms, hlcolor, singlechild ? -verbose - 1 : verbose);
 
 	if (root->type == DEP_OR || root->type == DEP_USE) {
-		for (s = space; s; --s)
-			fprintf(fp, "%*s", indent, "");
+		if (singlechild)
+			fprintf(fp, " ");
+		else
+			for (s = space; s; --s)
+				fprintf(fp, "%*s", indent, "");
 		fprintf(fp, ")\n");
 	}
  this_node_sucks:

diff --git a/tests/qdepends/list03.good b/tests/qdepends/list03.good
index f66b636..d0eb5d2 100644
--- a/tests/qdepends/list03.good
+++ b/tests/qdepends/list03.good
@@ -1,5 +1,3 @@
 DEPEND="
-    foo? (
-        a/b
-    )
+    foo? ( a/b )
 "

diff --git a/tests/qdepends/list04.good b/tests/qdepends/list04.good
index 2457caf..7f0887a 100644
--- a/tests/qdepends/list04.good
+++ b/tests/qdepends/list04.good
@@ -1,5 +1,3 @@
 DEPEND="
-    || (
-        a/b
-    )
+    || ( a/b )
 "

diff --git a/tests/qdepends/list05.good b/tests/qdepends/list05.good
index 0b7d420..868efae 100644
--- a/tests/qdepends/list05.good
+++ b/tests/qdepends/list05.good
@@ -1,9 +1,7 @@
 DEPEND="
     || (
         || (
-            || (
-                x
-            )
+            || ( x )
             a
         )
     )


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

only message in thread, other threads:[~2022-04-07 17:16 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-07 17:16 [gentoo-commits] proj/portage-utils:master commit in: libq/, tests/qdepends/ Fabian Groffen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox