On Wed, Nov 23, 2011 at 9:51 AM, Benedikt Morbach <[email protected]> wrote: > Signed-off-by: Benedikt Morbach <[email protected]> > --- Can you provide some example output from this?
Overall, I'm not liking what I think this is, as it seems like an extremely narrow implementation of https://bugs.archlinux.org/task/25236 ... > src/pacman/query.c | 11 ++++++++++- > src/pacman/util.c | 27 ++++++++++++++++++++------- > src/pacman/util.h | 1 + > test/pacman/tests/query022.py | 14 ++++++++++++++ > 4 files changed, 45 insertions(+), 8 deletions(-) > create mode 100644 test/pacman/tests/query022.py > > diff --git a/src/pacman/query.c b/src/pacman/query.c > index fbff341..0017918 100644 > --- a/src/pacman/query.c > +++ b/src/pacman/query.c > @@ -488,7 +488,16 @@ static int display(alpm_pkg_t *pkg) > if(!config->op_q_info && !config->op_q_list > && !config->op_q_changelog && !config->op_q_check) { > if(!config->quiet) { > - printf("%s %s\n", alpm_pkg_get_name(pkg), > alpm_pkg_get_version(pkg)); > + printf("%s %s", alpm_pkg_get_name(pkg), > alpm_pkg_get_version(pkg)); > + > + alpm_list_t *optrequires; > + if(config->op_q_unrequired && config->op_q_optdeps && > + (optrequires = > alpm_pkg_compute_requiredby(pkg, 1)) != NULL) { > + list_display_extra(_(" (optdepend for:"), > optrequires, ", ", ")"); > + FREELIST(optrequires); > + } else { > + printf("\n"); > + } > } else { > printf("%s\n", alpm_pkg_get_name(pkg)); > } > diff --git a/src/pacman/util.c b/src/pacman/util.c > index 1f89663..c54975e 100644 > --- a/src/pacman/util.c > +++ b/src/pacman/util.c > @@ -657,16 +657,24 @@ int table_display(const char *title, const alpm_list_t > *header, > > void list_display(const char *title, const alpm_list_t *list) > { > + list_display_extra(title, list, NULL, NULL); > +} > + > +void list_display_extra(const char *title, const alpm_list_t *list, > + const char *delim, const char *after) > +{ > const alpm_list_t *i; > size_t len = 0; > > + delim = delim ? delim : " "; > + > if(title) { > len = string_length(title) + 1; > printf("%s ", title); > } > > if(!list) { > - printf("%s\n", _("None")); > + printf("%s", _("None")); > } else { > const unsigned short maxcols = getcols(); > size_t cols = len; > @@ -680,20 +688,25 @@ void list_display(const char *title, const alpm_list_t > *list) > if(maxcols > len && cols + s + 2 >= maxcols) { > size_t j; > cols = len; > - printf("\n"); > + putchar('\n'); > for (j = 1; j <= len; j++) { > - printf(" "); > + putchar(' '); > } > } else if(cols != len) { > - /* 2 spaces are added if this is not the > first element on a line. */ > - printf(" "); > - cols += 2; > + /* delimiter is added if this is not the > first element on a line. */ > + fputs(delim, stdout); > + cols += strlen(delim); > } > fputs(str, stdout); > cols += s; > } > - putchar('\n'); > } > + > + if(after) { > + fputs(after, stdout); > + } > + > + putchar('\n'); > } > > void list_display_linebreak(const char *title, const alpm_list_t *list) > diff --git a/src/pacman/util.h b/src/pacman/util.h > index ca33752..ffff4b5 100644 > --- a/src/pacman/util.h > +++ b/src/pacman/util.h > @@ -63,6 +63,7 @@ void string_display(const char *title, const char *string); > double humanize_size(off_t bytes, const char target_unit, const char > **label); > int table_display(const char *title, const alpm_list_t *header, const > alpm_list_t *rows); > void list_display(const char *title, const alpm_list_t *list); > +void list_display_extra(const char *title, const alpm_list_t *list, const > char *delim, const char *after); > void list_display_linebreak(const char *title, const alpm_list_t *list); > void signature_display(const char *title, alpm_siglist_t *siglist); > void display_targets(void); > diff --git a/test/pacman/tests/query022.py b/test/pacman/tests/query022.py > new file mode 100644 > index 0000000..f5e3458 > --- /dev/null > +++ b/test/pacman/tests/query022.py > @@ -0,0 +1,14 @@ > +self.description = "Query unneeded deps (installed optdeps not required)" > + > +pkg = pmpkg("dummy") > +pkg.optdepends = ["dep: for foobar"] > +self.addpkg2db("local", pkg) > + > +dep = pmpkg("dep") > +self.addpkg2db("local", dep) > +dep.reason = 1 > + > +self.args = "-Qtdn" > + > +self.addrule("PACMAN_RETCODE=0") > +self.addrule("PACMAN_OUTPUT=^dep.*dummy") > -- > 1.7.7.3 > >
