*: shrink: use Vladimir's "o+" specifier instead of xatou(opt_param)

function                                             old     new   delta
getopt32                                            1370    1385     +15
sulogin_main                                         490     494      +4
realpath_main                                         84      86      +2
sleep_main                                            76      77      +1
mt_main                                              256     257      +1
printenv_main                                         75      74      -1
fdformat_main                                        546     545      -1
usleep_main                                           44      42      -2
setlogcons_main                                       77      75      -2
ed_main                                             2654    2649      -5
deallocvt_main                                        69      64      -5
addgroup_main                                        373     368      -5
mkfs_minix_main                                     2989    2982      -7
tail_main                                           1221    1213      -8
sv_main                                             1254    1241     -13
du_main                                              348     328     -20
tftp_main                                            325     302     -23
split_main                                           581     558     -23
nc_main                                             1000     977     -23
diff_main                                            891     868     -23
arping_main                                         1797    1770     -27
ls_main                                              893     847     -46
od_main                                             2797    2750     -47
readprofile_main                                    1944    1895     -49
tcpudpsvd_main                                      1973    1922     -51
udhcpc_main                                         2590    2513     -77
grep_main                                            824     722    -102
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/22 up/down: 23/-560)         Total: -537 bytes
   text    data     bss     dec     hex filename
 796973     658    7428  805059   c48c3 busybox_old
 796479     662    7420  804561   c46d1 busybox_unstripped

diff --git a/console-tools/deallocvt.c b/console-tools/deallocvt.c
index 1172245..1200cae 100644
--- a/console-tools/deallocvt.c
+++ b/console-tools/deallocvt.c
@@ -16,19 +16,15 @@
 enum { VT_DISALLOCATE = 0x5608 }; /* free memory associated to vt */
 
 int deallocvt_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int deallocvt_main(int argc, char **argv)
+int deallocvt_main(int argc ATTRIBUTE_UNUSED, char **argv)
 {
 	/* num = 0 deallocate all unused consoles */
 	int num = 0;
 
-	switch (argc) {
-	case 2:
+	if (argv[1]) {
+		if (argv[2])
+			bb_show_usage();
 		num = xatou_range(argv[1], 1, 63);
-		/* Fallthrough */
-	case 1:
-		break;
-	default:
-		bb_show_usage();
 	}
 
 	/* double cast suppresses "cast to ptr from int of different size" */
diff --git a/console-tools/openvt.c b/console-tools/openvt.c
index ff16953..39b9859 100644
--- a/console-tools/openvt.c
+++ b/console-tools/openvt.c
@@ -27,9 +27,10 @@
 	/* grab new one */
 	close(0);
 	xopen(vtname, O_RDWR);
-	dup2(0, STDOUT_FILENO);
-	dup2(0, STDERR_FILENO);
+	xdup2(0, STDOUT_FILENO);
+	xdup2(0, STDERR_FILENO);
 
-	BB_EXECVP(argv[2], &argv[2]);
+	argv += 2;
+	BB_EXECVP(argv[0], argv);
 	_exit(1);
 }
diff --git a/console-tools/setkeycodes.c b/console-tools/setkeycodes.c
index ba3d2e4..e9a0508 100644
--- a/console-tools/setkeycodes.c
+++ b/console-tools/setkeycodes.c
@@ -14,7 +14,7 @@
 
 /* From <linux/kd.h> */
 struct kbkeycode {
-	unsigned int scancode, keycode;
+	unsigned scancode, keycode;
 };
 enum {
 	KDSETKEYCODE = 0x4B4D  /* write kernel keycode table entry */
@@ -33,7 +33,7 @@
 	fd = get_console_fd();
 
 	while (argc > 2) {
-		a.keycode = xatoul_range(argv[2], 0, 127);
+		a.keycode = xatou_range(argv[2], 0, 127);
 		a.scancode = sc = xstrtoul_range(argv[1], 16, 0, 255);
 		if (a.scancode > 127) {
 			a.scancode -= 0xe000;
diff --git a/console-tools/setlogcons.c b/console-tools/setlogcons.c
index 0f6491c..b312fa7 100644
--- a/console-tools/setlogcons.c
+++ b/console-tools/setlogcons.c
@@ -12,7 +12,7 @@
 #include "libbb.h"
 
 int setlogcons_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int setlogcons_main(int argc, char **argv)
+int setlogcons_main(int argc ATTRIBUTE_UNUSED, char **argv)
 {
 	struct {
 		char fn;
@@ -22,8 +22,8 @@
 	arg.fn = 11;    /* redirect kernel messages */
 	arg.subarg = 0; /* to specified console (current as default) */
 
-	if (argc == 2)
-		arg.subarg = xatoul_range(argv[1], 0, 63);
+	if (argv[1])
+		arg.subarg = xatou_range(argv[1], 0, 63);
 
 	xioctl(xopen(VC_1, O_RDONLY), TIOCLINUX, &arg);