[PATCH 1/2] pacman: support multiple chomps at the same time
Allan McRae
allan at archlinux.org
Sun Jan 2 10:54:35 UTC 2022
On 24/10/21 21:08, Sefa Eyeoglu wrote:
> When two progressbars are present, one of them always had c while the
> other always had C as the mouth
> ---
Looks good.
A white space fix slipped in at the end there, but I'll let that slide!
A
> src/pacman/callback.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/src/pacman/callback.c b/src/pacman/callback.c
> index 2579b98a..cb8f4302 100644
> --- a/src/pacman/callback.c
> +++ b/src/pacman/callback.c
> @@ -156,12 +156,11 @@ static void fill_progress(const int bar_percent, const int disp_percent,
> /* 8 = 1 space + 1 [ + 1 ] + 5 for percent */
> const int hashlen = proglen > 8 ? proglen - 8 : 0;
> const int hash = bar_percent * hashlen / 100;
> - static int lasthash = 0, mouth = 0;
> + static int lasthash = 0;
> int i;
>
> if(bar_percent == 0) {
> lasthash = 0;
> - mouth = 0;
> }
>
> if(hashlen > 0) {
> @@ -173,15 +172,14 @@ static void fill_progress(const int bar_percent, const int disp_percent,
> putchar('-');
> } else if(i == hashlen - hash) {
> if(lasthash == hash) {
> - if(mouth) {
> + if(i % 2 == 0) {
> fputs("\033[1;33mC\033[m", stdout);
> } else {
> fputs("\033[1;33mc\033[m", stdout);
> }
> } else {
> lasthash = hash;
> - mouth = mouth == 1 ? 0 : 1;
> - if(mouth) {
> + if(i % 2 == 0) {
> fputs("\033[1;33mC\033[m", stdout);
> } else {
> fputs("\033[1;33mc\033[m", stdout);
> @@ -252,7 +250,7 @@ void cb_event(void *ctx, alpm_event_t *event)
> alpm_event_hook_run_t *e = &event->hook_run;
> int digits = number_length(e->total);
> printf("(%*zu/%*zu) %s\n", digits, e->position,
> - digits, e->total,
> + digits, e->total,
> e->desc ? e->desc : e->name);
> }
> break;
More information about the pacman-dev
mailing list