--- cygutils-1.0.0/src/conv/conv.c Sun Mar 3 03:09:39 2002 +++ /home/paveltz/conv.c Mon Apr 15 19:28:16 2002 @@ -326,6 +326,7 @@ static int convert(const char *fn, int C char *tempFn; FILE *in = stdin, *out = stdout; char buf[PATH_MAX * 2]; + int error; if (fn != NULL) { fprintf(stderr, "%s: ", fn); if ((in = fopen(fn, "rb")) == NULL) { @@ -345,7 +346,8 @@ static int convert(const char *fn, int C setmode(1, O_BINARY); } - while ((c = fgetc(in)) != EOF) { + while ((c = fgetc(in)) != EOF || + !(error = (feof (in) != 0 || ferror(in) != 0))) { if (c == '\r') { if ((ConvType == CT_UNIX2DOS) && (fn != NULL)) { // file is alredy in DOS format so it is not necessery to touch it @@ -393,8 +395,9 @@ static int convert(const char *fn, int C } fputc(c, out); } - if (c != EOF) - while ((c = fgetc(in)) != EOF) { + if (c != EOF || !error) + while ((c = fgetc(in)) != EOF || + !(error = (feof (in) != 0 || ferror(in) != 0))) { if (c == '\r') continue; if (c == '\n') { @@ -424,7 +427,8 @@ static int convert(const char *fn, int C return -2; } - while ((c = fgetc(in)) != EOF) + while ((c = fgetc(in)) != EOF || + !(error = (feof (in) != 0 || ferror(in) != 0))) fputc(c, out); if (fclose(in) < 0) {