X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c721300b5973c219002ef05ae327f154c55e41a3..1a0c7d558e91aa27b08319f2c2b5e6e1d85d2fd5:/distrib/msw/unix2dos.c diff --git a/distrib/msw/unix2dos.c b/distrib/msw/unix2dos.c index 991b8517c5..f725b9ee51 100644 --- a/distrib/msw/unix2dos.c +++ b/distrib/msw/unix2dos.c @@ -37,7 +37,7 @@ main(int argc, char *argv[]) unix2Dos = 1; i = 1; - if (i > argc) + if (argc > 1) { if (strcmp(argv[1], "--help") == 0) { @@ -69,24 +69,26 @@ main(int argc, char *argv[]) char tmpFile[512]; sprintf(tmpFile, "%s.tmp", argv[i]); - fp = fopen(argv[i], "r"); - outFile = fopen(tmpFile, "w"); - if (!outFile) - { - fprintf(stderr, "Cannot open %s.\n", tmpFile); - exit(1); - } + fp = fopen(argv[i], "rb"); if (!fp) { fprintf(stderr, "Cannot open %s.\n", argv[i]); + i ++; + continue; + } + outFile = fopen(tmpFile, "wb"); + if (!outFile) + { + fprintf(stderr, "Cannot open %s.\n", tmpFile); exit(1); } translate(fp, outFile, unix2Dos); if (warning) /* unix2dos acting on a possible DOS file */ { - fprintf(stderr,"%s: %s may have already been in DOS format.\n", - prog, argv[i]); + fprintf(stderr,"%s: %s may have already been in DOS format. Not converted.\n", + prog, argv[i]); + warning = 0; } fclose(fp); fclose(outFile); @@ -110,28 +112,37 @@ void translate(FILE *ifp, FILE *ofp, int unix2Dos) int c,d; if (!unix2Dos) + { /* DOS2Unix */ - while ((c = getc(ifp)) != EOF){ + while ((c = getc(ifp)) != EOF) + { if (c == CR) - switch(d = getc(ifp)){ /* check to see if LF follows */ - case LF: - putc(d,ofp); /* if so, ignore CR */ - break; - default: - putc(c,ofp); /* if not, output CR and following char */ - putc(d,ofp); - } else putc(c, ofp); /* c is not a CR */ + { + switch(d = getc(ifp)) + { /* check to see if LF follows */ + case LF: + putc(d,ofp); /* if so, ignore CR */ + break; + default: + putc(c,ofp); /* if not, output CR and following char */ + putc(d,ofp); + } + } + else + putc(c, ofp); /* c is not a CR */ } - - else + } + else + { /* Unix2DOS */ while ((c = getc(ifp)) != EOF){ if (c == CR) warning = 1; /* set warning flag: input file may be a DOS file */ - if (c == LF) + if (c == LF && (warning == 0)) putc(CR, ofp); /* add CR before each LF */ putc(c, ofp); } + } } void usage()