Unbreak using stdin/stdout for file input / output.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@324 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
parent
ffb2be1eda
commit
5280d185be
14
fileio.c
14
fileio.c
|
@ -937,6 +937,7 @@ int fileio(int op, char * filename, FILEFMT format,
|
|||
struct fioparms fio;
|
||||
int i;
|
||||
AVRMEM * mem;
|
||||
int using_stdio;
|
||||
|
||||
mem = avr_locate_mem(p, memtype);
|
||||
if (mem == NULL) {
|
||||
|
@ -977,6 +978,8 @@ int fileio(int op, char * filename, FILEFMT format,
|
|||
}
|
||||
}
|
||||
|
||||
using_stdio = 0;
|
||||
|
||||
if (strcmp(filename, "-")==0) {
|
||||
if (fio.op == FIO_READ) {
|
||||
fname = "<stdin>";
|
||||
|
@ -986,6 +989,7 @@ int fileio(int op, char * filename, FILEFMT format,
|
|||
fname = "<stdout>";
|
||||
f = stdout;
|
||||
}
|
||||
using_stdio = 1;
|
||||
}
|
||||
else {
|
||||
fname = filename;
|
||||
|
@ -993,6 +997,14 @@ int fileio(int op, char * filename, FILEFMT format,
|
|||
}
|
||||
|
||||
if (format == FMT_AUTO) {
|
||||
if (using_stdio) {
|
||||
fprintf(stderr,
|
||||
"%s: can't auto detect file format when using stdin/out.\n"
|
||||
" Please specify a file format using the -f option and try again.\n",
|
||||
progname);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
format = fmt_autodetect(fname);
|
||||
if (format < 0) {
|
||||
fprintf(stderr,
|
||||
|
@ -1006,6 +1018,7 @@ int fileio(int op, char * filename, FILEFMT format,
|
|||
}
|
||||
|
||||
if (format != FMT_IMM) {
|
||||
if (!using_stdio) {
|
||||
fname = filename;
|
||||
f = fopen(fname, fio.mode);
|
||||
if (f == NULL) {
|
||||
|
@ -1014,6 +1027,7 @@ int fileio(int op, char * filename, FILEFMT format,
|
|||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch (format) {
|
||||
case FMT_IHEX:
|
||||
|
|
Loading…
Reference in New Issue