public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-projects commit in portage-utils: qdepends.c
@ 2013-09-29  6:44 Mike Frysinger (vapier)
  0 siblings, 0 replies; 11+ messages in thread
From: Mike Frysinger (vapier) @ 2013-09-29  6:44 UTC (permalink / raw
  To: gentoo-commits

vapier      13/09/29 06:44:39

  Modified:             qdepends.c
  Log:
  qdepends: constify args

Revision  Changes    Path
1.59                 portage-utils/qdepends.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.59&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.59&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?r1=1.58&r2=1.59

Index: qdepends.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -r1.58 -r1.59
--- qdepends.c	29 Sep 2013 05:09:29 -0000	1.58
+++ qdepends.c	29 Sep 2013 06:44:39 -0000	1.59
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2010 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.58 2013/09/29 05:09:29 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.59 2013/09/29 06:44:39 vapier Exp $
  *
  * Copyright 2005-2010 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2010 Mike Frysinger  - <vapier@gentoo.org>
@@ -30,7 +30,7 @@
 	"Show all DEPEND info",
 	COMMON_OPTS_HELP
 };
-static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.58 2013/09/29 05:09:29 vapier Exp $";
+static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.59 2013/09/29 06:44:39 vapier Exp $";
 #define qdepends_usage(ret) usage(ret, QDEPENDS_FLAGS, qdepends_long_opts, qdepends_opts_help, lookup_applet_idx("qdepends"))
 
 static char qdep_name_only = 0;
@@ -43,9 +43,7 @@
 	DEP_OR = 3,
 	DEP_GROUP = 4
 } dep_type;
-#ifdef EBUG
 static const char * const _dep_names[] = { "NULL", "NORM", "USE", "OR", "GROUP" };
-#endif
 
 struct _dep_node {
 	dep_type type;
@@ -60,21 +58,17 @@
 
 /* prototypes */
 #define dep_dump_tree(r) _dep_dump_tree(r,0)
-void _dep_dump_tree(dep_node *root, int space);
-dep_node *dep_grow_tree(char *depend);
+_q_static void _dep_dump_tree(const dep_node *root, int space);
 void dep_burn_tree(dep_node *root);
-void dep_prune_use(dep_node *root, char *use);
-char *dep_flatten_tree(dep_node *root);
-dep_node *_dep_grow_node(dep_type type, char *info, size_t info_len);
-void _dep_attach(dep_node *root, dep_node *attach_me, int type);
-void _dep_flatten_tree(dep_node *root, char *buf, size_t *pos);
-void _dep_burn_node(dep_node *node);
+char *dep_flatten_tree(const dep_node *root);
+_q_static void _dep_attach(dep_node *root, dep_node *attach_me, int type);
+_q_static void _dep_flatten_tree(const dep_node *root, char *buf, size_t *pos);
+_q_static void _dep_burn_node(dep_node *node);
 int qdepends_main_vdb(const char *depend_file, int argc, char **argv);
 int qdepends_vdb_deep(const char *depend_file, const char *query);
 
 #ifdef EBUG
-void print_word(char *ptr, int num);
-void print_word(char *ptr, int num)
+_q_static void print_word(const char *ptr, size_t num)
 {
 	while (num--)
 		printf("%c", *ptr++);
@@ -82,7 +76,8 @@
 }
 #endif
 
-dep_node *_dep_grow_node(dep_type type, char *info, size_t info_len)
+_q_static dep_node *
+_dep_grow_node(dep_type type, const char *info, size_t info_len)
 {
 	dep_node *ret;
 	size_t len;
@@ -139,10 +134,10 @@
 	}
 }
 
-dep_node *dep_grow_tree(char *depend)
+_q_static dep_node *dep_grow_tree(const char *depend)
 {
 	signed long paren_balanced;
-	char *word, *ptr, *p;
+	const char *ptr, *word;
 	int curr_attach;
 	dep_node *ret, *curr_node, *new_node;
 	dep_type prev_type;
@@ -153,9 +148,6 @@
 	curr_attach = _DEP_NEIGH;
 	word = NULL;
 
-	p = strrchr(depend, '\n');
-	if (p != NULL) *p = 0;
-
 #define _maybe_consume_word(t) \
 	do { \
 	if (!word) break; \
@@ -259,9 +251,12 @@
 	return NULL;
 }
 
-#ifdef EBUG
-void _dep_dump_tree(dep_node *root, int space)
+_q_static void _dep_dump_tree(const dep_node *root, int space)
 {
+#ifndef EBUG
+	return;
+#endif
+
 	int spaceit = space;
 	assert(root);
 	if (root->type == DEP_NULL) goto this_node_sucks;
@@ -276,9 +271,6 @@
 this_node_sucks:
 	if (root->neighbor) _dep_dump_tree(root->neighbor, space);
 }
-#else
-void _dep_dump_tree(_q_unused_ dep_node *root, _q_unused_ int space) {;}
-#endif
 
 void dep_burn_tree(dep_node *root)
 {
@@ -288,7 +280,7 @@
 	_dep_burn_node(root);
 }
 
-void dep_prune_use(dep_node *root, char *use)
+_q_static void dep_prune_use(dep_node *root, const char *use)
 {
 	if (root->neighbor) dep_prune_use(root->neighbor, use);
 	if (root->type == DEP_USE) {
@@ -305,7 +297,7 @@
 	if (root->children) dep_prune_use(root->children, use);
 }
 
-void _dep_flatten_tree(dep_node *root, char *buf, size_t *pos)
+void _dep_flatten_tree(const dep_node *root, char *buf, size_t *pos)
 {
 	if (root->type == DEP_NULL) goto this_node_sucks;
 	if (root->type == DEP_NORM) {
@@ -327,7 +319,7 @@
 	if (root->neighbor) _dep_flatten_tree(root->neighbor, buf, pos);
 }
 
-char *dep_flatten_tree(dep_node *root)
+char *dep_flatten_tree(const dep_node *root)
 {
 	static char flat[8192];
 	size_t pos = 0;





^ permalink raw reply	[flat|nested] 11+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: qdepends.c
@ 2013-09-29 22:19 Mike Frysinger (vapier)
  0 siblings, 0 replies; 11+ messages in thread
From: Mike Frysinger (vapier) @ 2013-09-29 22:19 UTC (permalink / raw
  To: gentoo-commits

vapier      13/09/29 22:19:39

  Modified:             qdepends.c
  Log:
  qdepends: warn if no matches were found #459970

Revision  Changes    Path
1.66                 portage-utils/qdepends.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.66&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.66&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?r1=1.65&r2=1.66

Index: qdepends.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -r1.65 -r1.66
--- qdepends.c	29 Sep 2013 10:36:08 -0000	1.65
+++ qdepends.c	29 Sep 2013 22:19:39 -0000	1.66
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2013 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.65 2013/09/29 10:36:08 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.66 2013/09/29 22:19:39 vapier Exp $
  *
  * Copyright 2005-2010 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2013 Mike Frysinger  - <vapier@gentoo.org>
@@ -32,7 +32,7 @@
 	"Pretty format specified depend strings",
 	COMMON_OPTS_HELP
 };
-static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.65 2013/09/29 10:36:08 vapier Exp $";
+static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.66 2013/09/29 22:19:39 vapier Exp $";
 #define qdepends_usage(ret) usage(ret, QDEPENDS_FLAGS, qdepends_long_opts, qdepends_opts_help, lookup_applet_idx("qdepends"))
 
 static char qdep_name_only = 0;
@@ -465,7 +465,7 @@
 
 	dep_burn_tree(dep_tree);
 
-	return EXIT_SUCCESS;
+	return 1;
 }
 
 _q_static int qdepends_vdb_deep_cb(q_vdb_pkg_ctx *pkg_ctx, void *priv)
@@ -523,7 +523,7 @@
 	}
 	dep_burn_tree(dep_tree);
 
-	return EXIT_SUCCESS;
+	return 1;
 }
 
 int qdepends_main(int argc, char **argv)
@@ -533,7 +533,7 @@
 		.argv = argv,
 	};
 	q_vdb_pkg_cb *cb;
-	int i;
+	int i, ret;
 	bool do_format = false;
 	const char *query = NULL;
 	const char *depend_file;
@@ -576,16 +576,18 @@
 	cb = query ? qdepends_vdb_deep_cb : qdepends_main_vdb_cb;
 
 	if (!depend_file) {
-		int ret = 0;
+		ret = 0;
 		for (i = 0; depend_files[i]; ++i) {
 			printf(" %s*%s %s\n", GREEN, NORM, depend_files[i]);
 			state.depend_file = depend_files[i];
-			ret += q_vdb_foreach_pkg(cb, &state, NULL);
+			ret |= q_vdb_foreach_pkg(cb, &state, NULL);
 		}
-		return ret;
-	}
+	} else
+		ret = q_vdb_foreach_pkg(cb, &state, NULL);
 
-	return q_vdb_foreach_pkg(cb, &state, NULL);
+	if (!ret && !quiet)
+		warn("no matches found for your query");
+	return ret ? EXIT_SUCCESS : EXIT_FAILURE;
 }
 
 #else





^ permalink raw reply	[flat|nested] 11+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: qdepends.c
@ 2013-09-29 10:36 Mike Frysinger (vapier)
  0 siblings, 0 replies; 11+ messages in thread
From: Mike Frysinger (vapier) @ 2013-09-29 10:36 UTC (permalink / raw
  To: gentoo-commits

vapier      13/09/29 10:36:08

  Modified:             qdepends.c
  Log:
  qdepends: include depend file in debug output

Revision  Changes    Path
1.65                 portage-utils/qdepends.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.65&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.65&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?r1=1.64&r2=1.65

Index: qdepends.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- qdepends.c	29 Sep 2013 10:10:51 -0000	1.64
+++ qdepends.c	29 Sep 2013 10:36:08 -0000	1.65
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2013 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.64 2013/09/29 10:10:51 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.65 2013/09/29 10:36:08 vapier Exp $
  *
  * Copyright 2005-2010 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2013 Mike Frysinger  - <vapier@gentoo.org>
@@ -32,7 +32,7 @@
 	"Pretty format specified depend strings",
 	COMMON_OPTS_HELP
 };
-static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.64 2013/09/29 10:10:51 vapier Exp $";
+static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.65 2013/09/29 10:36:08 vapier Exp $";
 #define qdepends_usage(ret) usage(ret, QDEPENDS_FLAGS, qdepends_long_opts, qdepends_opts_help, lookup_applet_idx("qdepends"))
 
 static char qdep_name_only = 0;
@@ -479,7 +479,7 @@
 	char depend[16384], use[8192];
 	dep_node *dep_tree;
 
-	IF_DEBUG(warn("matched %s/%s", catname, pkgname));
+	IF_DEBUG(warn("matched %s/%s for %s", catname, pkgname, state->depend_file));
 
 	if (!eat_file_at(pkg_ctx->fd, state->depend_file, depend, sizeof(depend)))
 		return 0;





^ permalink raw reply	[flat|nested] 11+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: qdepends.c
@ 2013-09-29 10:03 Mike Frysinger (vapier)
  0 siblings, 0 replies; 11+ messages in thread
From: Mike Frysinger (vapier) @ 2013-09-29 10:03 UTC (permalink / raw
  To: gentoo-commits

vapier      13/09/29 10:03:06

  Modified:             qdepends.c
  Log:
  qdepends: check for whitespace around node elements as PMS requires it and it makes parsing of USE deps possible #470180

Revision  Changes    Path
1.62                 portage-utils/qdepends.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.62&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.62&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?r1=1.61&r2=1.62

Index: qdepends.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -r1.61 -r1.62
--- qdepends.c	29 Sep 2013 10:01:55 -0000	1.61
+++ qdepends.c	29 Sep 2013 10:03:06 -0000	1.62
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2013 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.61 2013/09/29 10:01:55 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.62 2013/09/29 10:03:06 vapier Exp $
  *
  * Copyright 2005-2010 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2013 Mike Frysinger  - <vapier@gentoo.org>
@@ -32,7 +32,7 @@
 	"Pretty format specified depend strings",
 	COMMON_OPTS_HELP
 };
-static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.61 2013/09/29 10:01:55 vapier Exp $";
+static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.62 2013/09/29 10:03:06 vapier Exp $";
 #define qdepends_usage(ret) usage(ret, QDEPENDS_FLAGS, qdepends_long_opts, qdepends_opts_help, lookup_applet_idx("qdepends"))
 
 static char qdep_name_only = 0;
@@ -146,6 +146,7 @@
 
 _q_static dep_node *dep_grow_tree(const char *depend)
 {
+	bool saw_whitespace;
 	signed long paren_balanced;
 	const char *ptr, *word;
 	int curr_attach;
@@ -175,8 +176,10 @@
 	word = NULL; \
 	} while (0)
 
+	saw_whitespace = true;
 	for (ptr = depend; *ptr; ++ptr) {
 		if (isspace(*ptr)) {
+			saw_whitespace = true;
 			_maybe_consume_word(DEP_NORM);
 			continue;
 		}
@@ -192,6 +195,8 @@
 			continue;
 		}
 		case '|': {
+			if (!saw_whitespace)
+				break;
 			if (ptr[1] != '|') {
 				warnf("Found a | but not ||");
 				goto error_out;
@@ -203,6 +208,8 @@
 		}
 		case '(': {
 			++paren_balanced;
+			if (!saw_whitespace)
+				break;
 			if (prev_type == DEP_OR || prev_type == DEP_USE) {
 				_maybe_consume_word(DEP_NORM);
 				prev_type = DEP_NULL;
@@ -219,6 +226,8 @@
 		}
 		case ')': {
 			--paren_balanced;
+			if (!saw_whitespace)
+				break;
 			_maybe_consume_word(DEP_NORM);
 
 			if (curr_node->parent == NULL) {
@@ -233,6 +242,7 @@
 			if (!word)
 				word = ptr;
 		}
+		saw_whitespace = false;
 
 		/* fall through to the paren failure below */
 		if (paren_balanced < 0)





^ permalink raw reply	[flat|nested] 11+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: qdepends.c
@ 2013-09-29 10:01 Mike Frysinger (vapier)
  0 siblings, 0 replies; 11+ messages in thread
From: Mike Frysinger (vapier) @ 2013-09-29 10:01 UTC (permalink / raw
  To: gentoo-commits

vapier      13/09/29 10:01:55

  Modified:             qdepends.c
  Log:
  qdepends: pass back an empty node when parsing is OK so -f can exit appropriately

Revision  Changes    Path
1.61                 portage-utils/qdepends.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.61&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.61&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?r1=1.60&r2=1.61

Index: qdepends.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- qdepends.c	29 Sep 2013 09:14:14 -0000	1.60
+++ qdepends.c	29 Sep 2013 10:01:55 -0000	1.61
@@ -1,10 +1,10 @@
 /*
- * Copyright 2005-2010 Gentoo Foundation
+ * Copyright 2005-2013 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.60 2013/09/29 09:14:14 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.61 2013/09/29 10:01:55 vapier Exp $
  *
  * Copyright 2005-2010 Ned Ludd        - <solar@gentoo.org>
- * Copyright 2005-2010 Mike Frysinger  - <vapier@gentoo.org>
+ * Copyright 2005-2013 Mike Frysinger  - <vapier@gentoo.org>
  */
 
 #ifdef APPLET_qdepends
@@ -32,7 +32,7 @@
 	"Pretty format specified depend strings",
 	COMMON_OPTS_HELP
 };
-static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.60 2013/09/29 09:14:14 vapier Exp $";
+static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.61 2013/09/29 10:01:55 vapier Exp $";
 #define qdepends_usage(ret) usage(ret, QDEPENDS_FLAGS, qdepends_long_opts, qdepends_opts_help, lookup_applet_idx("qdepends"))
 
 static char qdep_name_only = 0;
@@ -58,6 +58,10 @@
 };
 typedef struct _dep_node dep_node;
 
+static const dep_node null_node = {
+	.type = DEP_NULL,
+};
+
 /* prototypes */
 #ifdef NDEBUG
 # define dep_dump_tree(r)
@@ -246,7 +250,7 @@
 
 #undef _maybe_consume_word
 
-	return ret;
+	return ret ? : xmemdup(&null_node, sizeof(null_node));
 
 error_out:
 	warnf("DEPEND: %s", depend);
@@ -294,11 +298,13 @@
 		_dep_print_tree(fp, root->neighbor, space);
 }
 
-_q_static void dep_print_depend(FILE *fp, const char *depend)
+_q_static bool dep_print_depend(FILE *fp, const char *depend)
 {
-	dep_node *dep_tree = dep_grow_tree(depend);
+	dep_node *dep_tree;
+
+	dep_tree = dep_grow_tree(depend);
 	if (dep_tree == NULL)
-		return;
+		return false;
 
 	if (!quiet)
 		fprintf(fp, "DEPEND=\"\n");
@@ -308,6 +314,8 @@
 	dep_burn_tree(dep_tree);
 	if (!quiet)
 		fprintf(fp, "\"\n");
+
+	return true;
 }
 
 void dep_burn_tree(dep_node *root)
@@ -545,7 +553,8 @@
 
 	if (do_format) {
 		while (optind < argc) {
-			dep_print_depend(stdout, argv[optind++]);
+			if (!dep_print_depend(stdout, argv[optind++]))
+				return EXIT_FAILURE;
 			if (optind < argc)
 				fprintf(stdout, "\n");
 		}





^ permalink raw reply	[flat|nested] 11+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: qdepends.c
@ 2013-09-29  9:14 Mike Frysinger (vapier)
  0 siblings, 0 replies; 11+ messages in thread
From: Mike Frysinger (vapier) @ 2013-09-29  9:14 UTC (permalink / raw
  To: gentoo-commits

vapier      13/09/29 09:14:14

  Modified:             qdepends.c
  Log:
  qdepends: add a --format mode to make testing easier

Revision  Changes    Path
1.60                 portage-utils/qdepends.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.60&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.60&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?r1=1.59&r2=1.60

Index: qdepends.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -r1.59 -r1.60
--- qdepends.c	29 Sep 2013 06:44:39 -0000	1.59
+++ qdepends.c	29 Sep 2013 09:14:14 -0000	1.60
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2010 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.59 2013/09/29 06:44:39 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.60 2013/09/29 09:14:14 vapier Exp $
  *
  * Copyright 2005-2010 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2010 Mike Frysinger  - <vapier@gentoo.org>
@@ -9,7 +9,7 @@
 
 #ifdef APPLET_qdepends
 
-#define QDEPENDS_FLAGS "drpaNk:Q:" COMMON_FLAGS
+#define QDEPENDS_FLAGS "drpafNk:Q:" COMMON_FLAGS
 static struct option const qdepends_long_opts[] = {
 	{"depend",    no_argument, NULL, 'd'},
 	{"rdepend",   no_argument, NULL, 'r'},
@@ -18,6 +18,7 @@
 	{"query",      a_argument, NULL, 'Q'},
 	{"name-only", no_argument, NULL, 'N'},
 	{"all",       no_argument, NULL, 'a'},
+	{"format",    no_argument, NULL, 'f'},
 	COMMON_LONG_OPTS
 };
 static const char * const qdepends_opts_help[] = {
@@ -28,9 +29,10 @@
 	"Query reverse deps",
 	"Only show package name",
 	"Show all DEPEND info",
+	"Pretty format specified depend strings",
 	COMMON_OPTS_HELP
 };
-static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.59 2013/09/29 06:44:39 vapier Exp $";
+static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.60 2013/09/29 09:14:14 vapier Exp $";
 #define qdepends_usage(ret) usage(ret, QDEPENDS_FLAGS, qdepends_long_opts, qdepends_opts_help, lookup_applet_idx("qdepends"))
 
 static char qdep_name_only = 0;
@@ -57,8 +59,12 @@
 typedef struct _dep_node dep_node;
 
 /* prototypes */
-#define dep_dump_tree(r) _dep_dump_tree(r,0)
-_q_static void _dep_dump_tree(const dep_node *root, int space);
+#ifdef NDEBUG
+# define dep_dump_tree(r)
+#else
+# define dep_dump_tree(r) _dep_print_tree(stdout, r, 0)
+#endif
+_q_static void _dep_print_tree(FILE *fp, const dep_node *root, size_t space);
 void dep_burn_tree(dep_node *root);
 char *dep_flatten_tree(const dep_node *root);
 _q_static void _dep_attach(dep_node *root, dep_node *attach_me, int type);
@@ -251,25 +257,57 @@
 	return NULL;
 }
 
-_q_static void _dep_dump_tree(const dep_node *root, int space)
+_q_static void _dep_print_tree(FILE *fp, const dep_node *root, size_t space)
 {
-#ifndef EBUG
-	return;
-#endif
+	size_t s;
 
-	int spaceit = space;
 	assert(root);
-	if (root->type == DEP_NULL) goto this_node_sucks;
+	if (root->type == DEP_NULL)
+		goto this_node_sucks;
+
+	for (s = space; s; --s)
+		fprintf(fp, "\t");
 
-	while (spaceit--) printf("\t");
-	printf("Node [%s]: ", _dep_names[root->type]);
+	if (verbose > 1)
+		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);*/
-	if (root->info) printf("'%s'", root->info);
-	printf("\n");
+	if (root->type == DEP_OR)
+		fprintf(fp, "|| (");
+	if (root->info) {
+		fprintf(fp, "%s", root->info);
+		/* If there is only one child, be nice to one-line: foo? ( pkg ) */
+		if (root->type == DEP_USE)
+			fprintf(fp, "? (");
+	}
+	fprintf(fp, "\n");
 
-	if (root->children) _dep_dump_tree(root->children, space+1);
-this_node_sucks:
-	if (root->neighbor) _dep_dump_tree(root->neighbor, space);
+	if (root->children)
+		_dep_print_tree(fp, root->children, space+1);
+
+	if (root->type == DEP_OR || root->type == DEP_USE) {
+		for (s = space; s; --s)
+			fprintf(fp, "\t");
+		fprintf(fp, ")\n");
+	}
+ this_node_sucks:
+	if (root->neighbor)
+		_dep_print_tree(fp, root->neighbor, space);
+}
+
+_q_static void dep_print_depend(FILE *fp, const char *depend)
+{
+	dep_node *dep_tree = dep_grow_tree(depend);
+	if (dep_tree == NULL)
+		return;
+
+	if (!quiet)
+		fprintf(fp, "DEPEND=\"\n");
+
+	_dep_print_tree(fp, dep_tree, 1);
+
+	dep_burn_tree(dep_tree);
+	if (!quiet)
+		fprintf(fp, "\"\n");
 }
 
 void dep_burn_tree(dep_node *root)
@@ -478,6 +516,7 @@
 	};
 	q_vdb_pkg_cb *cb;
 	int i;
+	bool do_format = false;
 	const char *query = NULL;
 	const char *depend_file;
 	const char *depend_files[] = { "DEPEND", "RDEPEND", "PDEPEND", NULL, NULL };
@@ -498,11 +537,21 @@
 		case 'a': depend_file = NULL; break;
 		case 'Q': query = optarg; break;
 		case 'N': qdep_name_only = 1; break;
+		case 'f': do_format = true; break;
 		}
 	}
-	if ((argc == optind) && (query == NULL))
+	if ((argc == optind) && (query == NULL) && !do_format)
 		qdepends_usage(EXIT_FAILURE);
 
+	if (do_format) {
+		while (optind < argc) {
+			dep_print_depend(stdout, argv[optind++]);
+			if (optind < argc)
+				fprintf(stdout, "\n");
+		}
+		return EXIT_SUCCESS;
+	}
+
 	state.depend_file = depend_file;
 	state.query = query;
 	cb = query ? qdepends_vdb_deep_cb : qdepends_main_vdb_cb;





^ permalink raw reply	[flat|nested] 11+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: qdepends.c
@ 2013-09-29  5:09 Mike Frysinger (vapier)
  0 siblings, 0 replies; 11+ messages in thread
From: Mike Frysinger (vapier) @ 2013-09-29  5:09 UTC (permalink / raw
  To: gentoo-commits

vapier      13/09/29 05:09:29

  Modified:             qdepends.c
  Log:
  qdepends: use xzalloc

Revision  Changes    Path
1.58                 portage-utils/qdepends.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.58&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.58&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?r1=1.57&r2=1.58

Index: qdepends.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -r1.57 -r1.58
--- qdepends.c	10 Nov 2012 06:35:21 -0000	1.57
+++ qdepends.c	29 Sep 2013 05:09:29 -0000	1.58
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2010 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.57 2012/11/10 06:35:21 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.58 2013/09/29 05:09:29 vapier Exp $
  *
  * Copyright 2005-2010 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2010 Mike Frysinger  - <vapier@gentoo.org>
@@ -30,7 +30,7 @@
 	"Show all DEPEND info",
 	COMMON_OPTS_HELP
 };
-static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.57 2012/11/10 06:35:21 vapier Exp $";
+static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.58 2013/09/29 05:09:29 vapier Exp $";
 #define qdepends_usage(ret) usage(ret, QDEPENDS_FLAGS, qdepends_long_opts, qdepends_opts_help, lookup_applet_idx("qdepends"))
 
 static char qdep_name_only = 0;
@@ -96,8 +96,7 @@
 			info_len = strlen(info);
 		len += info_len + 1;
 	}
-	ret = xmalloc(len);
-	memset(ret, 0x00, len);
+	ret = xzalloc(len);
 
 	ret->type = type;
 	if (info) {





^ permalink raw reply	[flat|nested] 11+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: qdepends.c
@ 2012-11-10  6:35 Mike Frysinger (vapier)
  0 siblings, 0 replies; 11+ messages in thread
From: Mike Frysinger (vapier) @ 2012-11-10  6:35 UTC (permalink / raw
  To: gentoo-commits

vapier      12/11/10 06:35:21

  Modified:             qdepends.c
  Log:
  qdepends: fix by Andreas Fink for --all handling #440048

Revision  Changes    Path
1.57                 portage-utils/qdepends.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.57&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.57&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?r1=1.56&r2=1.57

Index: qdepends.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -r1.56 -r1.57
--- qdepends.c	21 Dec 2011 21:54:44 -0000	1.56
+++ qdepends.c	10 Nov 2012 06:35:21 -0000	1.57
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2010 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.56 2011/12/21 21:54:44 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.57 2012/11/10 06:35:21 vapier Exp $
  *
  * Copyright 2005-2010 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2010 Mike Frysinger  - <vapier@gentoo.org>
@@ -30,7 +30,7 @@
 	"Show all DEPEND info",
 	COMMON_OPTS_HELP
 };
-static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.56 2011/12/21 21:54:44 vapier Exp $";
+static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.57 2012/11/10 06:35:21 vapier Exp $";
 #define qdepends_usage(ret) usage(ret, QDEPENDS_FLAGS, qdepends_long_opts, qdepends_opts_help, lookup_applet_idx("qdepends"))
 
 static char qdep_name_only = 0;
@@ -520,6 +520,7 @@
 		int ret = 0;
 		for (i = 0; depend_files[i]; ++i) {
 			printf(" %s*%s %s\n", GREEN, NORM, depend_files[i]);
+			state.depend_file = depend_files[i];
 			ret += q_vdb_foreach_pkg(cb, &state, NULL);
 		}
 		return ret;





^ permalink raw reply	[flat|nested] 11+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: qdepends.c
@ 2011-12-21 21:54 Mike Frysinger (vapier)
  0 siblings, 0 replies; 11+ messages in thread
From: Mike Frysinger (vapier) @ 2011-12-21 21:54 UTC (permalink / raw
  To: gentoo-commits

vapier      11/12/21 21:54:45

  Modified:             qdepends.c
  Log:
  do not warn if we could not eat the depends file since it might not exist in which case we do not care #395591 by Tomasz Wasiak

Revision  Changes    Path
1.56                 portage-utils/qdepends.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.56&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?rev=1.56&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/qdepends.c?r1=1.55&r2=1.56

Index: qdepends.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -r1.55 -r1.56
--- qdepends.c	19 Dec 2011 04:28:35 -0000	1.55
+++ qdepends.c	21 Dec 2011 21:54:44 -0000	1.56
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2010 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.55 2011/12/19 04:28:35 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.56 2011/12/21 21:54:44 vapier Exp $
  *
  * Copyright 2005-2010 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2010 Mike Frysinger  - <vapier@gentoo.org>
@@ -30,7 +30,7 @@
 	"Show all DEPEND info",
 	COMMON_OPTS_HELP
 };
-static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.55 2011/12/19 04:28:35 vapier Exp $";
+static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.56 2011/12/21 21:54:44 vapier Exp $";
 #define qdepends_usage(ret) usage(ret, QDEPENDS_FLAGS, qdepends_long_opts, qdepends_opts_help, lookup_applet_idx("qdepends"))
 
 static char qdep_name_only = 0;
@@ -375,11 +375,8 @@
 
 	IF_DEBUG(warn("matched %s/%s", catname, pkgname));
 
-	if (!eat_file_at(pkg_ctx->fd, state->depend_file, depend, sizeof(depend))) {
-		warn("i'm such a fatty, could not eat_file(%s) with %zi bytes",
-			state->depend_file, sizeof(depend));
+	if (!eat_file_at(pkg_ctx->fd, state->depend_file, depend, sizeof(depend)))
 		return 0;
-	}
 
 	IF_DEBUG(warn("growing tree..."));
 	dep_tree = dep_grow_tree(depend);
@@ -437,10 +434,8 @@
 
 	IF_DEBUG(warn("matched %s/%s", catname, pkgname));
 
-	if (!eat_file_at(pkg_ctx->fd, state->depend_file, depend, sizeof(depend))) {
-		warn("i'm such a fatty, could not eat_file(%s)", state->depend_file);
+	if (!eat_file_at(pkg_ctx->fd, state->depend_file, depend, sizeof(depend)))
 		return 0;
-	}
 
 	IF_DEBUG(warn("growing tree..."));
 	dep_tree = dep_grow_tree(depend);






^ permalink raw reply	[flat|nested] 11+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: qdepends.c
@ 2009-08-29 19:43 Ned Ludd (solar)
  0 siblings, 0 replies; 11+ messages in thread
From: Ned Ludd (solar) @ 2009-08-29 19:43 UTC (permalink / raw
  To: gentoo-commits

solar       09/08/29 19:43:14

  Modified:             qdepends.c
  Log:
  - fix crash in qdepends. Bug 263892

Revision  Changes    Path
1.48                 portage-utils/qdepends.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/qdepends.c?rev=1.48&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/qdepends.c?rev=1.48&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/qdepends.c?r1=1.47&r2=1.48

Index: qdepends.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -r1.47 -r1.48
--- qdepends.c	14 Mar 2008 23:24:47 -0000	1.47
+++ qdepends.c	29 Aug 2009 19:43:14 -0000	1.48
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2007 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.47 2008/03/14 23:24:47 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.48 2009/08/29 19:43:14 solar Exp $
  *
  * Copyright 2005-2007 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2007 Mike Frysinger  - <vapier@gentoo.org>
@@ -30,7 +30,7 @@
 	"Show all DEPEND info",
 	COMMON_OPTS_HELP
 };
-static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.47 2008/03/14 23:24:47 solar Exp $";
+static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.48 2009/08/29 19:43:14 solar Exp $";
 #define qdepends_usage(ret) usage(ret, QDEPENDS_FLAGS, qdepends_long_opts, qdepends_opts_help, lookup_applet_idx("qdepends"))
 
 static char qdep_name_only = 0;
@@ -293,10 +293,11 @@
 {
 	if (root->neighbor) dep_prune_use(root->neighbor, use);
 	if (root->type == DEP_USE) {
-		char useflag[40+3]; /* use flags shouldnt be longer than 40 ... */
+		char *useflag = NULL;
 		int notfound, invert = (root->info[0] == '!' ? 1 : 0);
-		sprintf(useflag, " %s ", root->info+invert);
+		xasprintf(&useflag, " %s ", root->info+invert);
 		notfound = (strstr(use, useflag) == NULL ? 1 : 0);
+		free(useflag);
 		if (notfound ^ invert) {
 			root->type = DEP_NULL;
 			return;






^ permalink raw reply	[flat|nested] 11+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: qdepends.c
@ 2008-03-14 23:24 Ned Ludd (solar)
  0 siblings, 0 replies; 11+ messages in thread
From: Ned Ludd (solar) @ 2008-03-14 23:24 UTC (permalink / raw
  To: gentoo-commits

solar       08/03/14 23:24:47

  Modified:             qdepends.c
  Log:
  - dont puke with the -Q option when the vdb/USE file does not exist.

Revision  Changes    Path
1.47                 portage-utils/qdepends.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/qdepends.c?rev=1.47&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/qdepends.c?rev=1.47&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/qdepends.c?r1=1.46&r2=1.47

Index: qdepends.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -r1.46 -r1.47
--- qdepends.c	24 May 2007 14:47:18 -0000	1.46
+++ qdepends.c	14 Mar 2008 23:24:47 -0000	1.47
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2007 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.46 2007/05/24 14:47:18 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.47 2008/03/14 23:24:47 solar Exp $
  *
  * Copyright 2005-2007 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2007 Mike Frysinger  - <vapier@gentoo.org>
@@ -30,7 +30,7 @@
 	"Show all DEPEND info",
 	COMMON_OPTS_HELP
 };
-static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.46 2007/05/24 14:47:18 solar Exp $";
+static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.47 2008/03/14 23:24:47 solar Exp $";
 #define qdepends_usage(ret) usage(ret, QDEPENDS_FLAGS, qdepends_long_opts, qdepends_opts_help, lookup_applet_idx("qdepends"))
 
 static char qdep_name_only = 0;
@@ -504,7 +504,10 @@
 
 			snprintf(buf, sizeof(buf), "%s%s/%s/%s/USE", portroot, portvdb,
 			         dentry->d_name, de->d_name);
-			assert(eat_file(buf, use, sizeof(use)) == 1);
+
+			if (eat_file(buf, use, sizeof(use)) == 1)
+				use[0] = ' ';
+
 			for (ptr = use; *ptr; ++ptr)
 				if (*ptr == '\n' || *ptr == '\t')
 					*ptr = ' ';



-- 
gentoo-commits@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2013-09-29 22:19 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-29  6:44 [gentoo-commits] gentoo-projects commit in portage-utils: qdepends.c Mike Frysinger (vapier)
  -- strict thread matches above, loose matches on Subject: below --
2013-09-29 22:19 Mike Frysinger (vapier)
2013-09-29 10:36 Mike Frysinger (vapier)
2013-09-29 10:03 Mike Frysinger (vapier)
2013-09-29 10:01 Mike Frysinger (vapier)
2013-09-29  9:14 Mike Frysinger (vapier)
2013-09-29  5:09 Mike Frysinger (vapier)
2012-11-10  6:35 Mike Frysinger (vapier)
2011-12-21 21:54 Mike Frysinger (vapier)
2009-08-29 19:43 Ned Ludd (solar)
2008-03-14 23:24 Ned Ludd (solar)

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