rpm2cpio: handle bz2 too; code shrink
[oweals/busybox.git] / coreutils / length.c
index 82f50c159cd813bf03b4ab2abfaeb5d50b728c59..43a0f59880097e73d8db3df23a4e178077d5db1f 100644 (file)
@@ -1,20 +1,22 @@
 /* vi: set sw=4 ts=4: */
-#include "internal.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
+/*
+ * Licensed under GPLv2, see file LICENSE in this tarball for details.
+ */
 
-const char length_usage[] =
-       "length STRING\n"
-#ifndef BB_FEATURE_TRIVIAL_HELP
-       "\nPrints out the length of the specified STRING.\n"
-#endif
-       ;
+/* BB_AUDIT SUSv3 N/A -- Apparently a busybox (obsolete?) extension. */
 
-extern int length_main(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)
 {
-       if (argc != 2 || **(argv + 1) == '-')
-               usage(length_usage);
-       printf("%lu\n", (long)strlen(argv[1]));
-       return (TRUE);
+       if ((argc != 2) || (**(++argv) == '-')) {
+               bb_show_usage();
+       }
+
+       printf("%u\n", (unsigned)strlen(*argv));
+
+       return fflush(stdout);
 }