[PATCH 1/2] pacman: support multiple chomps at the same time
When two progressbars are present, one of them always had c while the other always had C as the mouth --- 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; -- 2.33.1
--- src/pacman/callback.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/src/pacman/callback.c b/src/pacman/callback.c index cb8f4302..a97729ac 100644 --- a/src/pacman/callback.c +++ b/src/pacman/callback.c @@ -156,13 +156,8 @@ 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; int i; - if(bar_percent == 0) { - lasthash = 0; - } - if(hashlen > 0) { fputs(" [", stdout); for(i = hashlen; i > 0; --i) { @@ -171,19 +166,10 @@ static void fill_progress(const int bar_percent, const int disp_percent, if(i > hashlen - hash) { putchar('-'); } else if(i == hashlen - hash) { - if(lasthash == hash) { - if(i % 2 == 0) { - fputs("\033[1;33mC\033[m", stdout); - } else { - fputs("\033[1;33mc\033[m", stdout); - } + if(i % 2 == 0) { + fputs("\033[1;33mC\033[m", stdout); } else { - lasthash = hash; - if(i % 2 == 0) { - fputs("\033[1;33mC\033[m", stdout); - } else { - fputs("\033[1;33mc\033[m", stdout); - } + fputs("\033[1;33mc\033[m", stdout); } } else if(i % 3 == 0) { fputs("\033[0;37mo\033[m", stdout); -- 2.33.1
On 24/10/21 21:08, Sefa Eyeoglu wrote:
--- src/pacman/callback.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-)
diff --git a/src/pacman/callback.c b/src/pacman/callback.c index cb8f4302..a97729ac 100644 --- a/src/pacman/callback.c +++ b/src/pacman/callback.c @@ -156,13 +156,8 @@ 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; int i;
- if(bar_percent == 0) { - lasthash = 0; - } - if(hashlen > 0) { fputs(" [", stdout); for(i = hashlen; i > 0; --i) { @@ -171,19 +166,10 @@ static void fill_progress(const int bar_percent, const int disp_percent, if(i > hashlen - hash) { putchar('-'); } else if(i == hashlen - hash) { - if(lasthash == hash) { - if(i % 2 == 0) { - fputs("\033[1;33mC\033[m", stdout); - } else { - fputs("\033[1;33mc\033[m", stdout); - } + if(i % 2 == 0) { + fputs("\033[1;33mC\033[m", stdout); } else { - lasthash = hash; - if(i % 2 == 0) { - fputs("\033[1;33mC\033[m", stdout); - } else { - fputs("\033[1;33mc\033[m", stdout); - } + fputs("\033[1;33mc\033[m", stdout); }
I had a look into this - the two blocks looked weird. It appears this was purely to avoid doing a 0/1 switch if the hash did not move. So not needed not that i%2 is happening. Looks fine to me. Allan
} else if(i % 3 == 0) { fputs("\033[0;37mo\033[m", stdout);
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;
participants (2)
-
Allan McRae
-
Sefa Eyeoglu