Index: uspace/app/bdsh/cmds/builtins/cd/cd.c
===================================================================
--- uspace/app/bdsh/cmds/builtins/cd/cd.c	(revision 3771a6e7731d68e45b150595dd2c0f6ba32df887)
+++ uspace/app/bdsh/cmds/builtins/cd/cd.c	(revision 43e02a6fa3d0ad9f13fe920424ab329f790f03f1)
@@ -63,5 +63,5 @@
 	int argc, rc = 0;
 
-	for (argc = 0; argv[argc] != NULL; argc ++);
+	argc = cli_count_args(argv);
 
 	/* We don't yet play nice with whitespace, a getopt implementation should
Index: uspace/app/bdsh/cmds/modules/cat/cat.c
===================================================================
--- uspace/app/bdsh/cmds/modules/cat/cat.c	(revision 3771a6e7731d68e45b150595dd2c0f6ba32df887)
+++ uspace/app/bdsh/cmds/modules/cat/cat.c	(revision 43e02a6fa3d0ad9f13fe920424ab329f790f03f1)
@@ -139,5 +139,5 @@
 	int c, opt_ind;
 
-	for (argc = 0; argv[argc] != NULL; argc ++);
+	argc = cli_count_args(argv);
 
 	for (c = 0, optind = 0, opt_ind = 0; c != -1;) {
Index: uspace/app/bdsh/cmds/modules/help/help.c
===================================================================
--- uspace/app/bdsh/cmds/modules/help/help.c	(revision 3771a6e7731d68e45b150595dd2c0f6ba32df887)
+++ uspace/app/bdsh/cmds/modules/help/help.c	(revision 43e02a6fa3d0ad9f13fe920424ab329f790f03f1)
@@ -32,4 +32,6 @@
 #include <stdlib.h>
 #include <string.h>
+
+#include "config.h"
 #include "entry.h"
 #include "help.h"
@@ -38,4 +40,5 @@
 #include "builtins.h"
 #include "errors.h"
+#include "util.h"
 
 static char *cmdname = "help";
@@ -96,5 +99,5 @@
 	int level = HELP_SHORT;
 
-	for (argc = 0; argv[argc] != NULL; argc ++);
+	argc = cli_count_args(argv);
 
 	if (argc > 3) {
Index: uspace/app/bdsh/cmds/modules/ls/ls.c
===================================================================
--- uspace/app/bdsh/cmds/modules/ls/ls.c	(revision 3771a6e7731d68e45b150595dd2c0f6ba32df887)
+++ uspace/app/bdsh/cmds/modules/ls/ls.c	(revision 43e02a6fa3d0ad9f13fe920424ab329f790f03f1)
@@ -153,6 +153,5 @@
 	DIR *dirp;
 
-	/* Count the arguments */
-	for (argc = 0; argv[argc] != NULL; argc ++);
+	argc = cli_count_args(argv);
 
 	buff = (char *) malloc(PATH_MAX);
Index: uspace/app/bdsh/cmds/modules/mkdir/mkdir.c
===================================================================
--- uspace/app/bdsh/cmds/modules/mkdir/mkdir.c	(revision 3771a6e7731d68e45b150595dd2c0f6ba32df887)
+++ uspace/app/bdsh/cmds/modules/mkdir/mkdir.c	(revision 43e02a6fa3d0ad9f13fe920424ab329f790f03f1)
@@ -189,5 +189,5 @@
 	char *cwd;
 
-	for (argc = 0; argv[argc] != NULL; argc ++);
+	argc = cli_count_args(argv);
 
 	for (c = 0, optind = 0, opt_ind = 0; c != -1;) {
Index: uspace/app/bdsh/cmds/modules/rm/rm.c
===================================================================
--- uspace/app/bdsh/cmds/modules/rm/rm.c	(revision 3771a6e7731d68e45b150595dd2c0f6ba32df887)
+++ uspace/app/bdsh/cmds/modules/rm/rm.c	(revision 43e02a6fa3d0ad9f13fe920424ab329f790f03f1)
@@ -174,5 +174,6 @@
 	char *buff = NULL;
 
-	for (argc = 0; argv[argc] != NULL; argc ++);
+	argc = cli_count_args(argv);
+
 	if (argc < 2) {
 		cli_error(CL_EFAIL,
Index: uspace/app/bdsh/cmds/modules/touch/touch.c
===================================================================
--- uspace/app/bdsh/cmds/modules/touch/touch.c	(revision 3771a6e7731d68e45b150595dd2c0f6ba32df887)
+++ uspace/app/bdsh/cmds/modules/touch/touch.c	(revision 43e02a6fa3d0ad9f13fe920424ab329f790f03f1)
@@ -71,6 +71,5 @@
 	DIR *dirp;
 
-	/* Count the arguments */
-	for (argc = 0; argv[argc] != NULL; argc ++);
+	argc = cli_count_args(argv);
 
 	if (argc == 1) {
Index: uspace/app/bdsh/util.c
===================================================================
--- uspace/app/bdsh/util.c	(revision 3771a6e7731d68e45b150595dd2c0f6ba32df887)
+++ uspace/app/bdsh/util.c	(revision 43e02a6fa3d0ad9f13fe920424ab329f790f03f1)
@@ -238,2 +238,12 @@
 	return (cli_strtok_r(s, delim, &last));
 }
+
+/* Count and return the # of elements in an array */
+unsigned int cli_count_args(char **args)
+{
+	unsigned int i;
+
+	for (i=0; args[i] != NULL; i++);
+	return i;
+}
+
Index: uspace/app/bdsh/util.h
===================================================================
--- uspace/app/bdsh/util.h	(revision 3771a6e7731d68e45b150595dd2c0f6ba32df887)
+++ uspace/app/bdsh/util.h	(revision 43e02a6fa3d0ad9f13fe920424ab329f790f03f1)
@@ -8,4 +8,5 @@
 extern char * cli_strtok_r(char *, const char *, char **);
 extern char * cli_strtok(char *, const char *);
+extern unsigned int cli_count_args(char **);
 
 #endif
