PERFORCE change 164931 for review
David Forsythe
dforsyth at FreeBSD.org
Tue Jun 23 06:14:52 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=164931
Change 164931 by dforsyth at squirrel on 2009/06/23 06:14:03
Mock pkg_info spits out conflicts.
Affected files ...
.. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#25 edit
.. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#24 edit
.. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_cfl.c#3 edit
.. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_cfl.h#3 edit
.. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.c#18 edit
.. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.h#15 edit
.. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#18 edit
Differences ...
==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#25 (text+ko) ====
@@ -315,6 +315,24 @@
}
void
+pkg_pkg_cfl_list_init(struct pkg *p)
+{
+ if (p == NULL)
+ arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT);
+
+ return (pkg_plist_pkg_cfl_list_reset(&p->plist));
+}
+
+struct pkg_cfl *
+pkg_pkg_cfl_list_next(struct pkg *p)
+{
+ if (p == NULL)
+ arg_rage_quit(__func__, "Not a valid package.", RAGE_AT_CLIENT);
+
+ return (pkg_plist_pkg_cfl_list_next(&p->plist));
+}
+
+void
pkg_reset(struct pkg *p)
{
if (p == NULL)
==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#24 (text+ko) ====
@@ -93,6 +93,16 @@
const char *pkg_dep_origin(struct pkg_dep *pd);
+/* pkg_cfl */
+
+struct pkg_cfl;
+
+struct pkg_cfl *pkg_cfl_new(void);
+
+int pkg_cfl_set_name(struct pkg_cfl *pc, const char *name);
+
+const char *pkg_cfl_name(struct pkg_cfl *pc);
+
/* pkg */
/* Add mtree stuff later. */
@@ -165,6 +175,10 @@
struct pkg_dep *pkg_pkg_dep_list_next(struct pkg *p);
+void pkg_pkg_cfl_list_init(struct pkg *p);
+
+struct pkg_cfl *pkg_pkg_cfl_list_next(struct pkg *p);
+
void pkg_delete(struct pkg *p);
/* pkgdb */
==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_cfl.c#3 (text+ko) ====
@@ -30,3 +30,12 @@
return ((pc->name == NULL) ? MEMORY_ERR | NOT_OK : OK);
}
+
+const char *
+pkg_cfl_name(struct pkg_cfl *pc)
+{
+ if (pc == NULL)
+ arg_rage_quit(__func__, "Not a valid conflict.", RAGE_AT_LIBPKG);
+
+ return pc->name;
+}
==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_cfl.h#3 (text+ko) ====
@@ -9,8 +9,12 @@
TAILQ_ENTRY(pkg_cfl) next;
};
+#if 0
struct pkg_cfl *pkg_cfl_new(void);
int pkg_cfl_set_name(struct pkg_cfl *pc, const char *name);
+const char *pkg_cfl_name(struct pkg_cfl *pc);
+#endif
+
#endif
==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.c#18 (text+ko) ====
@@ -283,6 +283,7 @@
pc = pkg_cfl_new();
pkg_cfl_set_name(pc, argument);
pkg_plist_pkg_cfl_list_append(pl, pc);
+ printf("appended %s\n", argument);
st->last_elem = PLIST_CONFLICTS;
}
#if 0
@@ -552,3 +553,41 @@
TAILQ_INSERT_TAIL(&pl->pkg_cfl_head, pc, next);
}
+
+struct pkg_cfl *
+pkg_plist_pkg_cfl_list_first(struct pkg_plist *pl)
+{
+ if (pl == NULL)
+ arg_rage_quit(__func__, "Not a valid plist.", RAGE_AT_LIBPKG);
+
+ return (TAILQ_FIRST(&pl->pkg_cfl_head));
+}
+
+void
+pkg_plist_pkg_cfl_list_reset(struct pkg_plist *pl)
+{
+ if (pl == NULL)
+ arg_rage_quit(__func__, "Not a valid plist.", RAGE_AT_LIBPKG);
+
+ pl->pkg_cfl_curr = NULL;
+}
+
+struct pkg_cfl *
+pkg_plist_pkg_cfl_list_next(struct pkg_plist *pl)
+{
+ struct pkg_cfl *pc;
+
+ if (pl == NULL)
+ arg_rage_quit(__func__, "Not a valid plist.", RAGE_AT_LIBPKG);
+
+ if (pl->pkg_cfl_curr == NULL)
+ pc = pkg_plist_pkg_cfl_list_first(pl);
+ else
+ pc = TAILQ_NEXT(pl->pkg_cfl_curr, next);
+
+ if (pc != NULL)
+ pl->pkg_cfl_curr = pc;
+
+ return (pc);
+}
+
==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.h#15 (text+ko) ====
@@ -148,4 +148,9 @@
void pkg_plist_pkg_cfl_list_append(struct pkg_plist *pl,
struct pkg_cfl *pc);
+
+void pkg_plist_pkg_cfl_list_reset(struct pkg_plist *pl);
+struct pkg_cfl *pkg_plist_pkg_cfl_list_next(struct pkg_plist *pl);
+struct pkg_cfl *pkg_plist_pkg_cfl_list_first(struct pkg_plist *pl);
+
#endif
==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#18 (text+ko) ====
@@ -120,6 +120,7 @@
{
struct pkg_file *pf;
struct pkg_dep *pd;
+ struct pkg_cfl *pc;
const char *ident;
const char *comment;
const char *name;
@@ -189,6 +190,13 @@
origin = pkg_dep_origin(pd);
printf("\t\t%s : %s\n", name, origin);
}
+
+ printf("\tconflicts:\n");
+ pkg_pkg_cfl_list_init(p);
+ while ((pc = pkg_pkg_cfl_list_next(p)) != NULL) {
+ name = pkg_cfl_name(pc);
+ printf("\t\t%s\n", name);
+ }
}
}
More information about the p4-projects
mailing list