proc-events.c: fix compilation on Solaris
[deliverable/binutils-gdb.git] / gdb / complaints.c
index dbacb2ad1e430b8242c58d893a22efb7035e90b5..44e98f8dadded827ec7447cfe9caf05701288d99 100644 (file)
@@ -1,6 +1,6 @@
 /* Support for complaint handling during symbol reading in GDB.
 
-   Copyright (C) 1990-2015 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 #include "command.h"
 #include "gdbcmd.h"
 
-extern void _initialize_complaints (void);
-
 /* Should each complaint message be self explanatory, or should we
    assume that a series of complaints is being produced?  */
 
-/* case 1: First message of a series that must
-   start off with explanation.  case 2: Subsequent message of a series
-   that needs no explanation (the user already knows we have a problem
-   so we can just state our piece).  */
 enum complaint_series {
   /* Isolated self explanatory message.  */
   ISOLATED_MESSAGE,
+
   /* First message of a series, includes an explanation.  */
   FIRST_MESSAGE,
+
   /* First message of a series, but does not need to include any sort
      of explanation.  */
   SHORT_FIRST_MESSAGE,
+
   /* Subsequent message of a series that needs no explanation (the
      user already knows we have a problem so we can just state our
      piece).  */
@@ -69,13 +66,7 @@ struct complaints
 {
   struct complain *root;
 
-  /* Should each complaint be self explanatory, or should we assume
-     that a series of complaints is being produced?  case 0: Isolated
-     self explanatory message.  case 1: First message of a series that
-     must start off with explanation.  case 2: Subsequent message of a
-     series that needs no explanation (the user already knows we have
-     a problem so we can just state our piece).  */
-  int series;
+  enum complaint_series series;
 
   /* The explanatory messages that should accompany the complaint.
      NOTE: cagney/2002-08-14: In a desperate attempt at being vaguely
@@ -99,7 +90,7 @@ static struct explanation symfile_explanations[] = {
 
 static struct complaints symfile_complaint_book = {
   &complaint_sentinel,
-  0,
+  ISOLATED_MESSAGE,
   symfile_explanations
 };
 struct complaints *symfile_complaints = &symfile_complaint_book;
@@ -157,7 +148,7 @@ find_complaint (struct complaints *complaints, const char *file,
    before we stop whining about it?  Default is no whining at all,
    since so many systems have ill-constructed symbol files.  */
 
-static int stop_whining = 0;
+int stop_whining = 0;
 
 /* Print a complaint, and link the complaint block into a chain for
    later handling.  */
@@ -201,16 +192,14 @@ vcomplaint (struct complaints **c, const char *file,
        vwarning (fmt, args);
       else
        {
-         char *msg;
-         struct cleanup *cleanups;
-         msg = xstrvprintf (fmt, args);
-         cleanups = make_cleanup (xfree, msg);
+         std::string msg = string_vprintf (fmt, args);
          wrap_here ("");
          if (series != SUBSEQUENT_MESSAGE)
            begin_line ();
          /* XXX: i18n */
          fprintf_filtered (gdb_stderr, "%s%s%s",
-                           complaints->explanation[series].prefix, msg,
+                           complaints->explanation[series].prefix,
+                           msg.c_str (),
                            complaints->explanation[series].postfix);
          /* Force a line-break after any isolated message.  For the
              other cases, clear_complaints() takes care of any missing
@@ -223,7 +212,6 @@ vcomplaint (struct complaints **c, const char *file,
            fputs_filtered ("\n", gdb_stderr);
          else
            wrap_here ("");
-         do_cleanups (cleanups);
        }
     }
 
@@ -248,7 +236,7 @@ vcomplaint (struct complaints **c, const char *file,
 }
 
 void
-complaint (struct complaints **complaints, const char *fmt, ...)
+complaint_internal (struct complaints **complaints, const char *fmt, ...)
 {
   va_list args;
 
This page took 0.025444 seconds and 4 git commands to generate.