From 7b3c8bc77a0ff599d683dd4d26a5da128ac837ab Mon Sep 17 00:00:00 2001 From: Explorer09 Date: Sat, 19 Mar 2016 10:20:55 +0800 Subject: [PATCH] BarMeterMode_draw minor code improvement Removed a loop that sets the bar[] buffer with spaces and merged that task to the snprintf() call just below. No need for the barOffset variable. Display behavior is unchanged. Size comparision (when compiled on Ubuntu 14.04 64-bit): $ size htop.old htop.new text data bss dec hex filename 137312 15112 3776 156200 26228 htop.old 137216 15112 3776 156104 261c8 htop.new --- Meter.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Meter.c b/Meter.c index 321fd28b..039c00b8 100644 --- a/Meter.c +++ b/Meter.c @@ -287,11 +287,8 @@ static void BarMeterMode_draw(Meter* this, int x, int y, int w) { char bar[w + 1]; int blockSizes[10]; - for (int i = 0; i < w; i++) - bar[i] = ' '; - const size_t barOffset = w - MIN((int)strlen(buffer), w); - snprintf(bar + barOffset, w - barOffset + 1, "%s", buffer); + snprintf(bar, w + 1, "%*s", w, buffer); // First draw in the bar[] buffer... int offset = 0;