[pacman-dev] [PATCH] Put not explicitly installed packages in grey during update/install/removal

Guillaume Bouchard guillaum.bouchard at gmail.com
Sat Feb 1 06:51:48 EST 2014


Any feedbacks on that patch ? Must I change something ?

On Fri, Jan 24, 2014 at 5:22 PM, Guillaume Bouchard
<guillaum.bouchard at gmail.com> wrote:
> In extended table view, packages which are not explicitly installed are
> displayed in grey. This helps understanding why
> packages are updated.
>
> This helps the package managment workflow. During update, we can
> quickly have a look at why packages are updated and easilly track and
> remove the explicit packages which are not longer required. During
> remove, it shows all the explicit packages which are also removed by a
> cascade removal. During install, it provides a feedback on how your
> action will affect the database.
>
> This patch created a new colstr setting and associate it with BOLDBLACK
> (i.e. grey).
>
> Signed-off-by: Guillaume Bouchard <guillaum.bouchard at gmail.com>
> ---
>  src/pacman/conf.c |  1 +
>  src/pacman/conf.h |  1 +
>  src/pacman/util.c | 13 ++++++++++---
>  3 files changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/src/pacman/conf.c b/src/pacman/conf.c
> index 5450f3b..785061b 100644
> --- a/src/pacman/conf.c
> +++ b/src/pacman/conf.c
> @@ -76,6 +76,7 @@ void enable_colors(int colors)
>                 colstr->warn    = BOLDYELLOW;
>                 colstr->err     = BOLDRED;
>                 colstr->nocolor = NOCOLOR;
> +               colstr->depend  = BOLDBLACK;
>         }
>  }
>
> diff --git a/src/pacman/conf.h b/src/pacman/conf.h
> index 9faf5de..2edbe16 100644
> --- a/src/pacman/conf.h
> +++ b/src/pacman/conf.h
> @@ -32,6 +32,7 @@ typedef struct __colstr_t {
>         const char *warn;
>         const char *err;
>         const char *nocolor;
> +       const char *depend;
>  } colstr_t;
>
>  typedef struct __config_t {
> diff --git a/src/pacman/util.c b/src/pacman/util.c
> index 58b0cec..7cbbd33 100644
> --- a/src/pacman/util.c
> +++ b/src/pacman/util.c
> @@ -57,7 +57,8 @@ enum {
>         CELL_NORMAL = 0,
>         CELL_TITLE = (1 << 0),
>         CELL_RIGHT_ALIGN = (1 << 1),
> -       CELL_FREE = (1 << 3)
> +       CELL_FREE = (1 << 3),
> +       CELL_DEPEND = (1 << 4)
>  };
>
>  int trans_init(alpm_transflag_t flags, int check_valid)
> @@ -488,7 +489,9 @@ static void table_print_line(const alpm_list_t *line, short col_padding,
>
>                 if(cell->mode & CELL_TITLE) {
>                         printf("%s%*s%s", config->colstr.title, cell_width, str, config->colstr.nocolor);
> -               } else {
> +               } else if(cell->mode & CELL_DEPEND) {
> +                       printf("%s%*s%s", config->colstr.depend, cell_width, str, config->colstr.nocolor);
> +        } else {
>                         printf("%*s", cell_width, str);
>                 }
>                 need_padding = 1;
> @@ -808,7 +811,11 @@ static alpm_list_t *create_verbose_row(pm_target_t *target)
>         } else {
>                 pm_asprintf(&str, "%s", alpm_pkg_get_name(target->remove));
>         }
> -       add_table_cell(&ret, str, CELL_NORMAL);
> +       if(alpm_pkg_get_reason(target->remove ? target->remove : target->install) == ALPM_PKG_REASON_DEPEND) {
> +               add_table_cell(&ret, str, CELL_DEPEND);
> +       } else {
> +               add_table_cell(&ret, str, CELL_NORMAL);
> +       }
>
>         /* old and new versions */
>         pm_asprintf(&str, "%s",
> --
> 1.8.5.2
>


More information about the pacman-dev mailing list