From 1ba6db50b6004417108aeb451f07cabb9299c841 Mon Sep 17 00:00:00 2001
From: Přemysl Janouch 
Date: Thu, 9 Jul 2015 00:10:46 +0200
Subject: degesch: split handle_command_help()
---
 degesch.c | 61 ++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 34 insertions(+), 27 deletions(-)
diff --git a/degesch.c b/degesch.c
index 6e3d6a6..fdfab28 100644
--- a/degesch.c
+++ b/degesch.c
@@ -7494,43 +7494,50 @@ try_handle_command_help_option (struct app_context *ctx, const char *name)
 	return true;
 }
 
+static bool
+show_command_list (struct app_context *ctx)
+{
+	log_global_indent (ctx, "");
+	log_global_indent (ctx, "Commands:");
+
+	int longest = 0;
+	for (size_t i = 0; i < N_ELEMENTS (g_command_handlers); i++)
+	{
+		int len = strlen (g_command_handlers[i].name);
+		longest = MAX (longest, len);
+	}
+	for (size_t i = 0; i < N_ELEMENTS (g_command_handlers); i++)
+	{
+		struct command_handler *handler = &g_command_handlers[i];
+		log_global_indent (ctx, "  #&s", xstrdup_printf
+			("%-*s  %s", longest, handler->name, handler->description));
+	}
+	return true;
+}
+
+static bool
+show_command_help (struct app_context *ctx, struct command_handler *handler)
+{
+	log_global_indent (ctx, "");
+	log_global_indent (ctx, "#s: #s", handler->name, handler->description);
+	log_global_indent (ctx, "  Arguments: #s",
+		handler->usage ? handler->usage : "(none)");
+	return true;
+}
+
 static bool
 handle_command_help (struct handler_args *a)
 {
 	struct app_context *ctx = a->ctx;
 	if (!*a->arguments)
-	{
-		log_global_indent (ctx, "");
-		log_global_indent (ctx, "Commands:");
-
-		int longest = 0;
-		for (size_t i = 0; i < N_ELEMENTS (g_command_handlers); i++)
-		{
-			int len = strlen (g_command_handlers[i].name);
-			longest = MAX (longest, len);
-		}
-		for (size_t i = 0; i < N_ELEMENTS (g_command_handlers); i++)
-		{
-			struct command_handler *handler = &g_command_handlers[i];
-			log_global_indent (ctx, "  #&s", xstrdup_printf
-				("%-*s  %s", longest, handler->name, handler->description));
-		}
-		return true;
-	}
+		return show_command_list (ctx);
 
 	char *command = cut_word (&a->arguments);
 	for (size_t i = 0; i < N_ELEMENTS (g_command_handlers); i++)
 	{
 		struct command_handler *handler = &g_command_handlers[i];
-		if (strcasecmp_ascii (command, handler->name))
-			continue;
-
-		log_global_indent (ctx, "");
-		log_global_indent (ctx, "#s: #s",
-			handler->name, handler->description);
-		log_global_indent (ctx, "  Arguments: #s",
-			handler->usage ? handler->usage : "(none)");
-		return true;
+		if (!strcasecmp_ascii (command, handler->name))
+			return show_command_help (ctx, handler);
 	}
 
 	if (!try_handle_command_help_option (ctx, command))
-- 
cgit v1.2.3-70-g09d2