make halt and poweroff messages more accurate (i.e., claim "we're about to",
rather than "it's done", and combine with reboot handler to save space.
diff --git a/init/init.c b/init/init.c
index d072a22..0290f66 100644
--- a/init/init.c
+++ b/init/init.c
@@ -175,7 +175,7 @@
 /* Function prototypes */
 static void delete_init_action(struct init_action *a);
 static int waitfor(const struct init_action *a, pid_t pid);
-static void halt_signal(int sig);
+static void shutdown_signal(int sig);
 
 
 static void loop_forever(void)
@@ -395,7 +395,7 @@
 		if (fail)
 			_exit(1);
 		/* else */
-		halt_signal(SIGUSR1);
+		shutdown_signal(SIGUSR1);
 	}
 }
 
@@ -746,33 +746,30 @@
 	}
 }
 
-static void halt_signal(int sig ATTRIBUTE_UNUSED)
+static void shutdown_signal(int sig)
 {
+	char *m;
+	int rb;
+
 	shutdown_system();
-	message(CONSOLE | LOG, "The system is halted.");
+
+	if (sig == SIGTERM) {
+		m = "reboot";
+		rb = RB_AUTOBOOT;
+	} else if (sig == SIGUSR2) {
+		m = "poweroff";
+		rb = RB_POWER_OFF;
+	} else {
+		m = "halt";
+		rb = RB_HALT_SYSTEM;
+	}
+	message(CONSOLE | LOG, "Requesting system %s.", m);
 	sync();
 
 	/* allow time for last message to reach serial console */
 	sleep(2);
 
-	if (sig == SIGUSR2)
-		init_reboot(RB_POWER_OFF);
-	else
-		init_reboot(RB_HALT_SYSTEM);
-
-	loop_forever();
-}
-
-static void reboot_signal(int sig ATTRIBUTE_UNUSED)
-{
-	shutdown_system();
-	message(CONSOLE | LOG, "Please stand by while rebooting the system.");
-	sync();
-
-	/* allow time for last message to reach serial console */
-	sleep(2);
-
-	init_reboot(RB_AUTOBOOT);
+	init_reboot(rb);
 
 	loop_forever();
 }
@@ -1020,10 +1017,10 @@
 	 * clear all of these in run() */
 	signal(SIGHUP, exec_signal);
 	signal(SIGQUIT, exec_signal);
-	signal(SIGUSR1, halt_signal);
-	signal(SIGUSR2, halt_signal);
+	signal(SIGUSR1, shutdown_signal);
+	signal(SIGUSR2, shutdown_signal);
 	signal(SIGINT, ctrlaltdel_signal);
-	signal(SIGTERM, reboot_signal);
+	signal(SIGTERM, shutdown_signal);
 	signal(SIGCONT, cont_handler);
 	signal(SIGSTOP, stop_handler);
 	signal(SIGTSTP, stop_handler);