2004-08-13 Theodore A. Roth * fileio.c (ihex2b): Remove carriage returns from end of line. (srec2b): Ditto. (fileio_setparms): Set modes to binary. (fmt_autodetect): Open the file in binary mode. Don't test for binary file format, instead, just check for recognizable formats and if none are found, default to binary. (fileio): Remove special case setting binary io for WIN32NATIVE. Index: fileio.c =================================================================== RCS file: /cvsroot/avrdude/avrdude/fileio.c,v retrieving revision 1.31 diff -u -p -p -r1.31 fileio.c --- fileio.c 24 Jun 2004 11:05:07 -0000 1.31 +++ fileio.c 13 Aug 2004 21:00:38 -0000 @@ -282,6 +282,8 @@ int ihex2b(char * infile, FILE * inf, len = strlen(buffer); if (buffer[len-1] == '\n') buffer[--len] = 0; + if (buffer[len-1] == '\r') + buffer[--len] = 0; if (buffer[0] != ':') continue; rc = ihex_readrec(&ihex, buffer); @@ -564,6 +566,8 @@ int srec2b(char * infile, FILE * inf, len = strlen(buffer); if (buffer[len-1] == '\n') buffer[--len] = 0; + if (buffer[len-1] == '\r') + buffer[--len] = 0; if (buffer[0] != 0x53) continue; rc = srec_readrec(&srec, buffer); @@ -798,14 +802,14 @@ int fileio_setparms(int op, struct fiopa switch (op) { case FIO_READ: - fp->mode = "r"; + fp->mode = "rb"; fp->iodesc = "input"; fp->dir = "from"; fp->rw = "read"; break; case FIO_WRITE: - fp->mode = "w"; + fp->mode = "wb"; fp->iodesc = "output"; fp->dir = "to"; fp->rw = "wrote"; @@ -831,7 +835,7 @@ int fmt_autodetect(char * fname) int len; int found; - f = fopen(fname, "r"); + f = fopen(fname, "rb"); if (f == NULL) { fprintf(stderr, "%s: error opening %s: %s\n", progname, fname, strerror(errno)); @@ -844,17 +848,6 @@ int fmt_autodetect(char * fname) if (buf[len-1] == '\n') buf[--len] = 0; - /* check for binary data */ - found = 0; - for (i=0; i 127) { - found = 1; - break; - } - } - if (found) - return FMT_RBIN; - /* check for lines that look like intel hex */ if ((buf[0] == ':') && (len >= 11)) { found = 1; @@ -882,7 +875,10 @@ int fmt_autodetect(char * fname) } } - return -1; + fprintf (stderr, "WARNING: Couldn't find a recognizable file format, " + "defaulting to raw binary.\n"); + + return FMT_RBIN; } @@ -910,21 +906,6 @@ int fileio(int op, char * filename, FILE if (rc < 0) return -1; - #if defined(WIN32NATIVE) - /* Open Raw Binary format in binary mode on Windows.*/ - if(format == FMT_RBIN) - { - if(fio.op == FIO_READ) - { - fio.mode = "rb"; - } - if(fio.op == FIO_WRITE) - { - fio.mode = "wb"; - } - } - #endif - /* point at the requested memory buffer */ buf = mem->buf; if (fio.op == FIO_READ)