diff options
-rw-r--r-- | binutils/ChangeLog | 6 | ||||
-rw-r--r-- | binutils/objcopy.c | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 7819fb8..10dbaaf 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2003-05-13 Michael Eager <eager@mvista.com> + + * objcopy.c: Treat identical src/dst file names as if only one + entered. One Windows creating an output file of the same name as + the input file will delete the input file before it is read. + 2003-05-12 Salvador Eduardo Tropea <salvador@inti.gov.ar> * debug.c (debug_get_real_type): Extend test for circular debug diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 4507249..27c844f 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -2733,9 +2733,10 @@ copy_main (argc, argv) if (stat (input_filename, & statbuf) < 0) fatal (_("Cannot stat: %s: %s"), input_filename, strerror (errno)); - /* If there is no destination file then create a temp and rename - the result into the input. */ - if (output_filename == (char *) NULL) + /* If there is no destination file, or the source and destination files + are the same, then create a temp and rename the result into the input. */ + if ((output_filename == (char *) NULL) || + (strcmp (input_filename, output_filename) == 0)) { char *tmpname = make_tempname (input_filename); |