typo fix in a comment in a testcase. oh well...
[oweals/busybox.git] / coreutils / split.c
index d1eb82955b93054f3957519d35f56a8bea6c28de..2191f30ea94727bcf114673a62c43b7518eeb183 100644 (file)
@@ -1,7 +1,7 @@
 /* vi: set sw=4 ts=4: */
 /*
  * split - split a file into pieces
- * Copyright (c) 2007 Bernhard Fischer
+ * Copyright (c) 2007 Bernhard Reutner-Fischer
  *
  * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
  */
@@ -20,7 +20,7 @@ static const struct suffix_mult split_suffices[] = {
 #if ENABLE_FEATURE_SPLIT_FANCY
        { "g", 1024*1024*1024 },
 #endif
-       { }
+       { "", 0 }
 };
 
 /* Increment the suffix part of the filename.
@@ -55,8 +55,8 @@ enum { READ_BUFFER_SIZE = COMMON_BUFSIZE - 1 };
 #define SPLIT_OPT_b (1<<1)
 #define SPLIT_OPT_a (1<<2)
 
-int split_main(int argc, char **argv);
-int split_main(int argc, char **argv)
+int split_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+int split_main(int argc UNUSED_PARAM, char **argv)
 {
        unsigned suffix_len = 2;
        char *pfx;
@@ -68,15 +68,13 @@ int split_main(int argc, char **argv)
        ssize_t bytes_read, to_write;
        char *src;
 
-       opt_complementary = "?2";
-       opt = getopt32(argc, argv, "l:b:a:", &count_p, &count_p, &sfx);
+       opt_complementary = "?2:a+"; /* max 2 args; -a N */
+       opt = getopt32(argv, "l:b:a:", &count_p, &count_p, &suffix_len);
 
        if (opt & SPLIT_OPT_l)
-               cnt = xatoul(count_p);
-       if (opt & SPLIT_OPT_b)
-               cnt = xatoul_sfx(count_p, split_suffices);
-       if (opt & SPLIT_OPT_a)
-               suffix_len = xatou(sfx);
+               cnt = XATOOFF(count_p);
+       if (opt & SPLIT_OPT_b) // FIXME: also needs XATOOFF
+               cnt = xatoull_sfx(count_p, split_suffices);
        sfx = "x";
 
        argv += optind;
@@ -100,11 +98,11 @@ int split_main(int argc, char **argv)
        }
 
        while (1) {
-               bytes_read = safe_read(0, read_buffer, READ_BUFFER_SIZE);
+               bytes_read = safe_read(STDIN_FILENO, read_buffer, READ_BUFFER_SIZE);
                if (!bytes_read)
                        break;
                if (bytes_read < 0)
-                       bb_perror_msg_and_die("%s", argv[0]);
+                       bb_simple_perror_msg_and_die(argv[0]);
                src = read_buffer;
                do {
                        if (!remaining) {
@@ -132,10 +130,10 @@ int split_main(int argc, char **argv)
                                }
                        }
 
-                       xwrite(1, src, to_write);
+                       xwrite(STDOUT_FILENO, src, to_write);
                        bytes_read -= to_write;
                        src += to_write;
                } while (bytes_read);
        }
-       return 0;
+       return EXIT_SUCCESS;
 }