From e90c6c0a4d28a3f39e671c74ffe7c3de64650aa7 Mon Sep 17 00:00:00 2001
From: Andre Noll <maan@systemlinux.org>
Date: Mon, 25 Mar 2013 19:08:12 +0000
Subject: [PATCH] gui: Speed up add_spaces().

The calls to waddstr() in this function showed up in profiles. So
print the full string at once instead of calling waddstr() for each
character.
---
 gui.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/gui.c b/gui.c
index a34f27de..6e44b09d 100644
--- a/gui.c
+++ b/gui.c
@@ -287,14 +287,20 @@ static char *configfile_exists(void)
 	return file_exists(tmp)? tmp: NULL;
 }
 
-/*
- * print num spaces to curses window
- */
+/* Print given number of spaces to curses window. */
 static void add_spaces(WINDOW* win, unsigned int num)
 {
-	while (num > 0) {
-		num--;
-		waddstr(win, " ");
+	char space[] = "                                ";
+	unsigned sz = sizeof(space);
+
+	while (num >= sz)  {
+		waddstr(win, space);
+		num -= sz;
+	}
+	if (num > 0) {
+		assert(num < sz);
+		space[num] = '\0';
+		waddstr(win, space);
 	}
 }
 
-- 
2.39.5