Automatic date update in version.in
[binutils-gdb.git] / binutils / binemul.c
index 894a915716ce39eaec167e93f2c7ad8346c15f99..7f6b72d8773fe8e7e9c1788ce07f6a8d8eeecb6e 100644 (file)
@@ -1,5 +1,5 @@
 /* Binutils emulation layer.
-   Copyright (C) 2002-2019 Free Software Foundation, Inc.
+   Copyright (C) 2002-2022 Free Software Foundation, Inc.
    Written by Tom Rix, Red Hat Inc.
 
    This file is part of GNU Binutils.
@@ -38,42 +38,57 @@ ar_emul_default_usage (FILE *fp)
   fprintf (fp, _("  No emulation specific options\n"));
 }
 
-bfd_boolean
+bool
 ar_emul_append (bfd **after_bfd, char *file_name, const char *target,
-               bfd_boolean verbose, bfd_boolean flatten)
+               bool verbose, bool flatten)
 {
+  bfd *new_bfd;
+
+  new_bfd = bfd_openr (file_name, target);
+  AR_EMUL_ELEMENT_CHECK (new_bfd, file_name);
   if (bin_dummy_emulation.ar_append)
-    return bin_dummy_emulation.ar_append (after_bfd, file_name, target,
+    return bin_dummy_emulation.ar_append (after_bfd, new_bfd,
                                          verbose, flatten);
 
-  return FALSE;
+  return false;
 }
 
-static bfd_boolean
+bool
+ar_emul_append_bfd (bfd **after_bfd, bfd *new_bfd,
+               bool verbose, bool flatten)
+{
+  if (bin_dummy_emulation.ar_append)
+    return bin_dummy_emulation.ar_append (after_bfd, new_bfd,
+                                         verbose, flatten);
+
+  return false;
+}
+
+static bool
 any_ok (bfd *new_bfd ATTRIBUTE_UNUSED)
 {
-  return TRUE;
+  return true;
 }
 
-bfd_boolean
+bool
 do_ar_emul_append (bfd **after_bfd, bfd *new_bfd,
-                  bfd_boolean verbose, bfd_boolean flatten,
-                  bfd_boolean (*check) (bfd *))
+                  bool verbose, bool flatten,
+                  bool (*check) (bfd *))
 {
   /* When flattening, add the members of an archive instead of the
      archive itself.  */
   if (flatten && bfd_check_format (new_bfd, bfd_archive))
     {
       bfd *elt;
-      bfd_boolean added = FALSE;
+      bool added = false;
 
       for (elt = bfd_openr_next_archived_file (new_bfd, NULL);
            elt;
            elt = bfd_openr_next_archived_file (new_bfd, elt))
         {
-          if (do_ar_emul_append (after_bfd, elt, verbose, TRUE, check))
+          if (do_ar_emul_append (after_bfd, elt, verbose, true, check))
             {
-              added = TRUE;
+              added = true;
               after_bfd = &((*after_bfd)->archive_next);
             }
         }
@@ -82,67 +97,73 @@ do_ar_emul_append (bfd **after_bfd, bfd *new_bfd,
     }
 
   if (!check (new_bfd))
-    return FALSE;
+    return false;
 
-  AR_EMUL_APPEND_PRINT_VERBOSE (verbose, new_bfd->filename);
+  AR_EMUL_APPEND_PRINT_VERBOSE (verbose, bfd_get_filename (new_bfd));
 
   new_bfd->archive_next = *after_bfd;
   *after_bfd = new_bfd;
 
-  return TRUE;
+  return true;
 }
 
-bfd_boolean
-ar_emul_default_append (bfd **after_bfd, char *file_name,
-                       const char *target, bfd_boolean verbose,
-                       bfd_boolean flatten)
+bool
+ar_emul_default_append (bfd **after_bfd, bfd *new_bfd,
+                       bool verbose, bool flatten)
 {
-  bfd *new_bfd;
-
-  new_bfd = bfd_openr (file_name, target);
-  AR_EMUL_ELEMENT_CHECK (new_bfd, file_name);
   return do_ar_emul_append (after_bfd, new_bfd, verbose, flatten, any_ok);
 }
 
-bfd_boolean
+bool
 ar_emul_replace (bfd **after_bfd, char *file_name, const char *target,
-                bfd_boolean verbose)
+                bool verbose)
 {
+  bfd *new_bfd;
+
+  new_bfd = bfd_openr (file_name, target);
+  AR_EMUL_ELEMENT_CHECK (new_bfd, file_name);
+
   if (bin_dummy_emulation.ar_replace)
-    return bin_dummy_emulation.ar_replace (after_bfd, file_name,
-                                          target, verbose);
+    return bin_dummy_emulation.ar_replace (after_bfd, new_bfd,
+                                          verbose);
 
-  return FALSE;
+  return false;
 }
 
-bfd_boolean
-ar_emul_default_replace (bfd **after_bfd, char *file_name,
-                        const char *target, bfd_boolean verbose)
+bool
+ar_emul_replace_bfd (bfd **after_bfd, bfd *new_bfd,
+                bool verbose)
 {
-  bfd *new_bfd;
+  if (bin_dummy_emulation.ar_replace)
+    return bin_dummy_emulation.ar_replace (after_bfd, new_bfd,
+                                          verbose);
 
-  new_bfd = bfd_openr (file_name, target);
-  AR_EMUL_ELEMENT_CHECK (new_bfd, file_name);
+  return false;
+}
 
-  AR_EMUL_REPLACE_PRINT_VERBOSE (verbose, file_name);
+bool
+ar_emul_default_replace (bfd **after_bfd, bfd *new_bfd,
+                        bool verbose)
+{
+  AR_EMUL_REPLACE_PRINT_VERBOSE (verbose, bfd_get_filename (new_bfd));
 
   new_bfd->archive_next = *after_bfd;
   *after_bfd = new_bfd;
 
-  return TRUE;
+  return true;
 }
 
-bfd_boolean
+bool
 ar_emul_parse_arg (char *arg)
 {
   if (bin_dummy_emulation.ar_parse_arg)
     return bin_dummy_emulation.ar_parse_arg (arg);
 
-  return FALSE;
+  return false;
 }
 
-bfd_boolean
+bool
 ar_emul_default_parse_arg (char *arg ATTRIBUTE_UNUSED)
 {
-  return FALSE;
+  return false;
 }