* opncls.c (bfd_openstreamr): Call bfd_cache_init.
authorIan Lance Taylor <ian@airs.com>
Mon, 23 Jan 1995 18:35:07 +0000 (18:35 +0000)
committerIan Lance Taylor <ian@airs.com>
Mon, 23 Jan 1995 18:35:07 +0000 (18:35 +0000)
bfd/ChangeLog
bfd/opncls.c

index 2eb4f020720db4f459f38e0a6bfdd33acf505b2f..ad74cfbbbddfbb20e49b32c75e8e43d959ebfcfc 100644 (file)
@@ -1,3 +1,7 @@
+Mon Jan 23 13:33:18 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>
+
+       * opncls.c (bfd_openstreamr): Call bfd_cache_init.
+
 Fri Jan 20 11:44:45 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>
 
        * sunos.c (sunos_add_one_symbol): Only set the sunos specific
index 977cd99e1c87fe0e6a99b9bedc438ee5bdb535bb..b28d6b0b535a70a049035de8ff86a6b0d965162a 100644 (file)
@@ -254,6 +254,52 @@ bfd_fdopenr (filename, target, fd)
 
   return nbfd;
 }
+
+/*
+FUNCTION
+       bfd_openstreamr
+
+SYNOPSIS
+       bfd *bfd_openstreamr();
+
+DESCRIPTION
+
+       Open a BFD for read access on an existing stdio stream.  When
+       the BFD is passed to <<bfd_close>>, the stream will be closed.
+*/
+
+bfd *
+bfd_openstreamr (filename, target, stream)
+     const char *filename;
+     const char *target;
+     FILE *stream;
+{
+  bfd *nbfd;
+  const bfd_target *target_vec;
+
+  nbfd = _bfd_new_bfd ();
+  if (nbfd == NULL)
+    {
+      bfd_set_error (bfd_error_no_memory);
+      return NULL;
+    }
+
+  target_vec = bfd_find_target (target, nbfd);
+  if (target_vec == NULL)
+    {
+      bfd_set_error (bfd_error_invalid_target);
+      return NULL;
+    }
+
+  nbfd->iostream = (char *) stream;
+  nbfd->filename = filename;
+  nbfd->direction = read_direction;
+                               
+  if (! bfd_cache_init (nbfd))
+    return NULL;
+
+  return nbfd;
+}
 \f
 /** bfd_openw -- open for writing.
   Returns a pointer to a freshly-allocated BFD on success, or NULL.