Refactor display_targets for readability
On Mon, Feb 21, 2011 at 1:02 PM, Jakob Gruber <jakob.gruber@gmail.com> wrote:
> Row handling is moved to its own function in preparation for verbose > package lists. > > Signed-off-by: Jakob Gruber <jakob.gruber@gmail.com> > --- > *src/pacman/util.c | * 53 ++++++++++++++++++++++++++++------------------------- > *1 files changed, 28 insertions(+), 25 deletions(-) > > diff --git a/src/pacman/util.c b/src/pacman/util.c > index 8903d61..85d2d8c 100644 > --- a/src/pacman/util.c > +++ b/src/pacman/util.c > @@ -498,10 +498,26 @@ void list_display_linebreak(const char *title, const alpm_list_t *list) > * * * * * * * *} > * * * *} > *} > + > +/* returns package info as a string */ > +static char *create_list_element(pmpkg_t *pkg) > +{ > + * * * char *ret, *size; > + * * * const char *pkgstr = config->showsize ? "%s-%s [%s]" : "%s-%s"; > + > + * * * size = size_to_human_string_mb(alpm_pkg_get_size(pkg)); > + * * * pm_asprintf(&ret, pkgstr, alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg), > + * * * * * * * * * * * size); > + * * * free(size); > + > + * * * return ret; return() > +} > + > */* prepare a list of pkgs to display */ > *void display_targets(const alpm_list_t *pkgs, int install) > *{ > * * * *char *str, *size; > + * * * const char *title; > * * * *const alpm_list_t *i; > * * * *off_t isize = 0, dlsize = 0; > * * * *alpm_list_t *targets = NULL; > @@ -510,34 +526,24 @@ void display_targets(const alpm_list_t *pkgs, int install) > * * * * * * * *return; > * * * *} > > - * * * printf(" "); > + * * * title = install ? _("Targets (%d):") : _("Remove (%d):"); > + > * * * *for(i = pkgs; i; i = alpm_list_next(i)) { > * * * * * * * *pmpkg_t *pkg = alpm_list_getdata(i); > > - * * * * * * * if(install) { > - * * * * * * * * * * * dlsize += alpm_pkg_download_size(pkg); > - * * * * * * * } > + * * * * * * * dlsize += alpm_pkg_download_size(pkg); So we're now adding this up for both install and remove? We should probably keep it conditional. > * * * * * * * *isize += alpm_pkg_get_isize(pkg); > > - * * * * * * * /* print the package size with the output if ShowSize option set */ > - * * * * * * * if(config->showsize) { > - * * * * * * * * * * * size = size_to_human_string_mb(alpm_pkg_get_size(pkg)); > - * * * * * * * * * * * pm_asprintf(&str, "%s-%s [%s]", alpm_pkg_get_name(pkg), > - * * * * * * * * * * * * * * * * * * * alpm_pkg_get_version(pkg), size); > - * * * * * * * * * * * free(size); > - * * * * * * * } else { > - * * * * * * * * * * * pm_asprintf(&str, "%s-%s", alpm_pkg_get_name(pkg), > - * * * * * * * * * * * * * * * * * * * alpm_pkg_get_version(pkg)); > - * * * * * * * } > - * * * * * * * targets = alpm_list_add(targets, str); > + * * * * * * * targets = alpm_list_add(targets, create_list_element(pkg)); > * * * *} > > - * * * if(install) { > - * * * * * * * pm_asprintf(&str, _("Targets (%d):"), alpm_list_count(targets)); > - * * * * * * * list_display(str, targets); > - * * * * * * * free(str); > - * * * * * * * printf(" "); > + * * * pm_asprintf(&str, title, alpm_list_count(targets)); > + > + * * * printf(" "); > + * * * list_display(str, targets); > + * * * printf(" "); > > + * * * if(install) { > * * * * * * * *size = size_to_human_string_mb(dlsize); > * * * * * * * *printf(_("Total Download Size: * *%s "), size); > * * * * * * * *free(size); > @@ -547,16 +553,13 @@ void display_targets(const alpm_list_t *pkgs, int install) > * * * * * * * * * * * *free(size); > * * * * * * * *} > * * * *} else { > - * * * * * * * pm_asprintf(&str, _("Remove (%d):"), alpm_list_count(targets)); > - * * * * * * * list_display(str, targets); > - * * * * * * * free(str); > - * * * * * * * printf(" "); > - > * * * * * * * *size = size_to_human_string_mb(isize); > * * * * * * * *printf(_("Total Removed Size: * %s "), size); > * * * * * * * *free(size); > * * * *} > > +out: > + * * * free(str); > * * * *FREELIST(targets); > *} > > -- > 1.7.4.1 > > > |
Refactor display_targets for readability
On 02/25/2011 03:57 PM, Dan McGee wrote:
On Mon, Feb 21, 2011 at 1:02 PM, Jakob Gruber<jakob.gruber@gmail.com> wrote: Row handling is moved to its own function in preparation for verbose package lists. Signed-off-by: Jakob Gruber<jakob.gruber@gmail.com> --- src/pacman/util.c | 53 ++++++++++++++++++++++++++++------------------------- 1 files changed, 28 insertions(+), 25 deletions(-) diff --git a/src/pacman/util.c b/src/pacman/util.c index 8903d61..85d2d8c 100644 --- a/src/pacman/util.c +++ b/src/pacman/util.c @@ -498,10 +498,26 @@ void list_display_linebreak(const char *title, const alpm_list_t *list) } } } + +/* returns package info as a string */ +static char *create_list_element(pmpkg_t *pkg) +{ + char *ret, *size; + const char *pkgstr = config->showsize ? "%s-%s [%s]" : "%s-%s"; + + size = size_to_human_string_mb(alpm_pkg_get_size(pkg)); + pm_asprintf(&ret, pkgstr, alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg), + size); + free(size); + + return ret; return() Done, sorry bout that. +} + /* prepare a list of pkgs to display */ void display_targets(const alpm_list_t *pkgs, int install) { char *str, *size; + const char *title; const alpm_list_t *i; off_t isize = 0, dlsize = 0; alpm_list_t *targets = NULL; @@ -510,34 +526,24 @@ void display_targets(const alpm_list_t *pkgs, int install) return; } - printf(" "); + title = install ? _("Targets (%d):") : _("Remove (%d):"); + for(i = pkgs; i; i = alpm_list_next(i)) { pmpkg_t *pkg = alpm_list_getdata(i); - if(install) { - dlsize += alpm_pkg_download_size(pkg); - } + dlsize += alpm_pkg_download_size(pkg); So we're now adding this up for both install and remove? We should probably keep it conditional. Done. isize += alpm_pkg_get_isize(pkg); - /* print the package size with the output if ShowSize option set */ - if(config->showsize) { - size = size_to_human_string_mb(alpm_pkg_get_size(pkg)); - pm_asprintf(&str, "%s-%s [%s]", alpm_pkg_get_name(pkg), - alpm_pkg_get_version(pkg), size); - free(size); - } else { - pm_asprintf(&str, "%s-%s", alpm_pkg_get_name(pkg), - alpm_pkg_get_version(pkg)); - } - targets = alpm_list_add(targets, str); + targets = alpm_list_add(targets, create_list_element(pkg)); } - if(install) { - pm_asprintf(&str, _("Targets (%d):"), alpm_list_count(targets)); - list_display(str, targets); - free(str); - printf(" "); + pm_asprintf(&str, title, alpm_list_count(targets)); + + printf(" "); + list_display(str, targets); + printf(" "); + if(install) { size = size_to_human_string_mb(dlsize); printf(_("Total Download Size: %s "), size); free(size); @@ -547,16 +553,13 @@ void display_targets(const alpm_list_t *pkgs, int install) free(size); } } else { - pm_asprintf(&str, _("Remove (%d):"), alpm_list_count(targets)); - list_display(str, targets); - free(str); - printf(" "); - size = size_to_human_string_mb(isize); printf(_("Total Removed Size: %s "), size); free(size); } +out: + free(str); FREELIST(targets); } -- 1.7.4.1 |
| All times are GMT. The time now is 10:16 AM. |
VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.