diff --git a/bfd/archive.c b/bfd/archive.c index 0e137b9e9c..477b6b18ea 100644 --- a/bfd/archive.c +++ b/bfd/archive.c @@ -28,7 +28,10 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ /* $Id$ * $Log$ - * Revision 1.3 1991/04/04 14:56:42 gumby + * Revision 1.4 1991/04/04 17:55:47 steve + * *** empty log message *** + * + * Revision 1.3 1991/04/04 14:56:42 gumby * Minor format fixes. * * Revision 1.2 1991/04/03 22:09:43 steve @@ -499,9 +502,11 @@ bfd_slurp_coff_armap (abfd) carsym *carsyms; if (bfd_read ((void *)&nextname, 1, 1, abfd) != 1) { + bfd_seek (abfd, -1L, SEEK_CUR); bfd_has_map(abfd) = false; return true; } + bfd_seek (abfd, -1L, SEEK_CUR); if (nextname != '/') { /* Actually I think this is an error for a COFF archive */ @@ -509,7 +514,6 @@ bfd_slurp_coff_armap (abfd) return true; } - bfd_seek (abfd, -1L, SEEK_CUR); mapdata = snarf_ar_hdr (abfd); if (mapdata == NULL) return false; @@ -683,11 +687,14 @@ bfd_construct_extended_name_table (abfd, tabloc, tablen) char *normal =normalize( current->filename); unsigned int thislen = strlen (normal); if (thislen > maxname) { + /* Works for now; may need to be re-engineered if we encounter an oddball + archive format and want to generalise this hack. */ + struct ar_hdr *hdr = arch_hdr(current); strcpy (strptr, normal); - current->filename[0] = ' '; + hdr->ar_name[0] = ' '; /* We know there will always be enough room (one of the few cases where you may safely use sprintf). */ - sprintf ((current->filename) + 1, "-%o", (unsigned) (strptr - *tabloc)); + sprintf ((hdr->ar_name) + 1, "%-o", (unsigned) (strptr - *tabloc)); strptr += thislen + 1; } diff --git a/bfd/coff-i960.c b/bfd/coff-i960.c index cc9b03ae2e..bd31adbbe2 100644 --- a/bfd/coff-i960.c +++ b/bfd/coff-i960.c @@ -231,7 +231,7 @@ bfd_target icoff_little_vec = bfd_slurp_coff_armap, /* bfd_slurp_armap */ _bfd_slurp_extended_name_table, /* bfd_slurp_extended_name_table*/ -#if 0 /* */ +#if 1 /* */ bfd_dont_truncate_arname, /* bfd_truncate_arname */ #else bfd_bsd_truncate_arname, diff --git a/binutils/copy.c b/binutils/copy.c index 05d9f2dfed..91b5f26a22 100644 --- a/binutils/copy.c +++ b/binutils/copy.c @@ -148,7 +148,7 @@ bfd *obfd; bfd *this_element; /* Read each archive element in turn from the input, copy the contents to a temp file, and keep the temp file handle */ - char *dir = cat("./",make_tempname(this_element->filename),"copy-dir"); + char *dir = cat("./",make_tempname(""),"copy-dir"); /* Make a temp directory to hold the contents */ mkdir(dir,0777);