*** empty log message ***
authorSteve Chamberlain <steve@cygnus>
Thu, 4 Apr 1991 17:55:47 +0000 (17:55 +0000)
committerSteve Chamberlain <steve@cygnus>
Thu, 4 Apr 1991 17:55:47 +0000 (17:55 +0000)
bfd/archive.c
bfd/coff-i960.c
binutils/copy.c

index 0e137b9e9cc68ee4ea18b9a0c3f233e147bb5e48..477b6b18eadb2a5e649604ddeba8532aa29003cb 100644 (file)
@@ -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;
        }
index cc9b03ae2e0b3f5433fa29d9b3978ee2168d1ccc..bd31adbbe2897670faa89112ee0944440e9b60b5 100644 (file)
@@ -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,
index 05d9f2dfed9b24c9d49a47083f22c7f7c1aa6047..91b5f26a2201c8a921fc1fc20cf11a4201eb128b 100644 (file)
@@ -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);