diff options
Diffstat (limited to 'dos2unix.c')
-rw-r--r-- | dos2unix.c | 91 |
1 files changed, 0 insertions, 91 deletions
@@ -27,19 +27,9 @@ * See the COPYING file for license information. */ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> #include <getopt.h> #include "busybox.h" -#define CT_AUTO 0 -#define CT_UNIX2DOS 1 -#define CT_DOS2UNIX 2 - -int convert(char *fn, int ConvType); - int dos2unix_main(int argc, char *argv[]) { int ConvType = CT_AUTO; int o; @@ -69,84 +59,3 @@ int dos2unix_main(int argc, char *argv[]) { return o; } -// if fn is NULL then input is stdin and output is stdout -int convert(char *fn, int ConvType) { - char c; - char *tempFn = NULL; - FILE *in = stdin, *out = stdout; - - if (fn != NULL) { - if ((in = fopen(fn, "r")) == NULL) { - perror_msg(fn); - return -1; - } - tempFn = tmpnam(NULL); - if (tempFn == NULL || (out = fopen(tempFn, "w")) == NULL) { - perror_msg(NULL); - return -2; - } - } - - while ((c = fgetc(in)) != EOF) { - if (c == '\r') { - if ((ConvType == CT_UNIX2DOS) && (fn != NULL)) { - // file is alredy in DOS format so it is not necessery to touch it - if (fclose(in) < 0 || fclose(out) < 0 || remove(tempFn) < 0) { - perror_msg(NULL); - return -2; - } - return 0; - } - if (!ConvType) - ConvType = CT_DOS2UNIX; - break; - } - if (c == '\n') { - if ((ConvType == CT_DOS2UNIX) && (fn != NULL)) { - // file is alredy in UNIX format so it is not necessery to touch it - if (fclose(in) < 0 || fclose(out) < 0 || remove(tempFn) < 0) { - perror_msg(NULL); - return -2; - } - return 0; - } - if (!ConvType) - ConvType = CT_UNIX2DOS; - if (ConvType == CT_UNIX2DOS) - fputc('\r', out); - fputc('\n', out); - break; - } - fputc(c, out); - } - if (c != EOF) - while ((c = fgetc(in)) != EOF) { - if (c == '\r') - continue; - if (c == '\n') { - if (ConvType == CT_UNIX2DOS) - fputc('\r', out); - fputc('\n', out); - continue; - } - fputc(c, out); - } - - if (fn != NULL) { - if (fclose(in) < 0 || fclose(out) < 0 || - (in = fopen(tempFn, "r")) == NULL || (out = fopen(fn, "w")) == NULL) { - perror_msg(NULL); - return -2; - } - - while ((c = fgetc(in)) != EOF) - fputc(c, out); - - if (fclose(in) < 0 || fclose(out) < 0 || remove(tempFn) < 0) { - perror_msg(NULL); - return -2; - } - } - - return 0; -} |