unix2Dos = 1;
i = 1;
- if (i > argc)
+ if (argc > 1)
{
if (strcmp(argv[1], "--help") == 0)
{
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);
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()