From 9f0521ec90214ad79575a264acc7a5918c2b9ff9 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Mon, 25 Jul 2011 01:48:40 -0500 Subject: [PATCH] main: fix up depth traversal nonsense, set to depth 2 for pkg-config mode --- main.c | 22 +++++++++++++++++++++- pkg.h | 1 + 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index ffdb110..870b5d3 100644 --- a/main.c +++ b/main.c @@ -21,6 +21,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ +#include #include #include "pkg.h" @@ -89,7 +90,7 @@ pkg_queue_walk(pkg_queue_t *head) */ if (!maximum_traverse_depth) maximum_traverse_depth = -1; - else if (maximum_traverse_depth) + else if (maximum_traverse_depth > 0) maximum_traverse_depth++; foreach_list_entry(head, pkgq) @@ -130,6 +131,22 @@ version(void) printf("%s %s\n", PACKAGE_NAME, PACKAGE_VERSION); } +static bool +check_pkgconfig(const char *progname) +{ + char *prognm = strdup(progname); + char *name = basename(prognm); + + if (!strcasecmp(name, "pkg-config")) + { + free(prognm); + return true; + } + + free(prognm); + return false; +} + int main(int argc, const char *argv[]) { @@ -161,6 +178,9 @@ main(int argc, const char *argv[]) poptStrerror(ret)); return EXIT_FAILURE; } + + if (check_pkgconfig(argv[0])) + maximum_traverse_depth = 2; if (want_version) { diff --git a/pkg.h b/pkg.h index 5118654..a9a7089 100644 --- a/pkg.h +++ b/pkg.h @@ -29,6 +29,7 @@ #define _GNU_SOURCE #include #include +#include #include #ifndef BUFSIZ