-#include "internal.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
+/* vi: set sw=4 ts=4: */
+/*
+ * Licensed under GPLv2, see file LICENSE in this tarball for details.
+ */
-const char length_usage[] = "length string";
+/* BB_AUDIT SUSv3 N/A -- Apparently a busybox (obsolete?) extension. */
-int
-length_main(struct FileInfo * i, int argc, char * * argv)
+#include "libbb.h"
+
+/* This is a NOFORK applet. Be very careful! */
+
+int length_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+int length_main(int argc, char **argv)
{
- printf("%d\n", strlen(argv[1]));
- return 0;
+ if ((argc != 2) || (**(++argv) == '-')) {
+ bb_show_usage();
+ }
+
+ printf("%u\n", (unsigned)strlen(*argv));
+
+ return fflush(stdout);
}