Bump to version 1.22.1
[platform/upstream/busybox.git] / coreutils / dos2unix.c
index 309cbc3..07398bd 100644 (file)
@@ -9,11 +9,29 @@
  *
  * dos2unix filters reading input from stdin and writing output to stdout.
  *
- * Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
 */
 
+//usage:#define dos2unix_trivial_usage
+//usage:       "[-ud] [FILE]"
+//usage:#define dos2unix_full_usage "\n\n"
+//usage:       "Convert FILE in-place from DOS to Unix format.\n"
+//usage:       "When no file is given, use stdin/stdout.\n"
+//usage:     "\n       -u      dos2unix"
+//usage:     "\n       -d      unix2dos"
+//usage:
+//usage:#define unix2dos_trivial_usage
+//usage:       "[-ud] [FILE]"
+//usage:#define unix2dos_full_usage "\n\n"
+//usage:       "Convert FILE in-place from Unix to DOS format.\n"
+//usage:       "When no file is given, use stdin/stdout.\n"
+//usage:     "\n       -u      dos2unix"
+//usage:     "\n       -d      unix2dos"
+
 #include "libbb.h"
 
+/* This is a NOEXEC applet. Be very careful! */
+
 enum {
        CT_UNIX2DOS = 1,
        CT_DOS2UNIX
@@ -39,13 +57,11 @@ static void convert(char *fn, int conv_type)
                fstat(fileno(in), &st);
 
                temp_fn = xasprintf("%sXXXXXX", resolved_fn);
-               i = mkstemp(temp_fn);
-               if (i == -1
-                || fchmod(i, st.st_mode) == -1
-                || !(out = fdopen(i, "w+"))
-               ) {
+               i = xmkstemp(temp_fn);
+               if (fchmod(i, st.st_mode) == -1)
                        bb_simple_perror_msg_and_die(temp_fn);
-               }
+
+               out = xfdopen_for_write(i);
        }
 
        while ((i = fgetc(in)) != EOF) {
@@ -69,7 +85,7 @@ static void convert(char *fn, int conv_type)
 }
 
 int dos2unix_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int dos2unix_main(int argc, char **argv)
+int dos2unix_main(int argc UNUSED_PARAM, char **argv)
 {
        int o, conv_type;
 
@@ -88,11 +104,11 @@ int dos2unix_main(int argc, char **argv)
        if (o)
                conv_type = o;
 
+       argv += optind;
        do {
                /* might be convert(NULL) if there is no filename given */
-               convert(argv[optind], conv_type);
-               optind++;
-       } while (optind < argc);
+               convert(*argv, conv_type);
+       } while (*argv && *++argv);
 
        return 0;
 }