aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/archive.c15
-rw-r--r--bfd/coff-i960.c2
-rw-r--r--binutils/copy.c2
3 files changed, 13 insertions, 6 deletions
diff --git a/bfd/archive.c b/bfd/archive.c
index 0e137b9..477b6b1 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 cc9b03a..bd31adb 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 05d9f2d..91b5f26 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);