Replace ui_out_list_{begin,end}() with ui_out_{begin,end}().
[deliverable/binutils-gdb.git] / gdb / ui-out.c
index f94cd6025b2b6190dd42057ef3333ae788d379ed..696128d0b6fbf2241bc16097c3f4f8e8de53d439 100644 (file)
@@ -1,5 +1,5 @@
 /* Output generating routines for GDB.
-   Copyright 1999, 2000 Free Software Foundation, Inc.
+   Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
    Contributed by Cygnus Solutions.
    Written by Fernando Nasser for Cygnus.
 
@@ -25,6 +25,7 @@
 #include "expression.h"                /* For language.h */
 #include "language.h"
 #include "ui-out.h"
+#include "gdb_assert.h"
 
 /* Convenience macro for allocting typesafe memory. */
 
@@ -42,6 +43,20 @@ struct ui_out_hdr
     struct ui_out_hdr *next;
   };
 
+/* Maintain a stack so that the info applicable to the inner most list
+   is always available.  Stack/nested level 0 is reserved for the
+   top-level result. */
+
+enum { MAX_UI_OUT_LEVELS = 5 };
+
+struct ui_out_level
+  {
+    /* Count each field; the first element is for non-list fields */
+    int field_count;
+    /* The type of this level. */
+    enum ui_out_type type;
+  };
+
 /* The ui_out structure */
 /* Any change here requires a corresponding one in the initialization
    of the default uiout, which is statically initialized */
@@ -65,11 +80,9 @@ struct ui_out
     /* strinf identifying the table (as specified in the table_begin call) */
     char *table_id;
 
-    /* if on, a list is being generated.  The value is the level of nesting */
-    int list_flag;
-
-    /* we count each field; the first element is for non-list fields */
-    int field_count[5];
+    /* Sub structure tracking the table depth. */
+    int level;
+    struct ui_out_level levels[MAX_UI_OUT_LEVELS];
 
     /* points to the first header (if any) */
     struct ui_out_hdr *headerfirst;
@@ -82,6 +95,43 @@ struct ui_out
 
   };
 
+/* The current (inner most) level. */
+static struct ui_out_level *
+current_level (struct ui_out *uiout)
+{
+  return &uiout->levels[uiout->level];
+}
+
+/* Create a new level, of TYPE.  Return the new level's index. */
+static int
+push_level (struct ui_out *uiout,
+           enum ui_out_type type,
+           const char *id)
+{
+  struct ui_out_level *current;
+  /* We had better not overflow the buffer. */
+  uiout->level++;
+  gdb_assert (uiout->level >= 0 && uiout->level < MAX_UI_OUT_LEVELS);
+  current = current_level (uiout);
+  current->field_count = 0;
+  current->type = type;
+  return uiout->level;
+}
+
+/* Discard the current level, return the discarded level's index.
+   TYPE is the type of the level being discarded. */
+static int
+pop_level (struct ui_out *uiout,
+          enum ui_out_type type)
+{
+  /* We had better not underflow the buffer. */
+  gdb_assert (uiout->level > 0 && uiout->level < MAX_UI_OUT_LEVELS);
+  gdb_assert (current_level (uiout)->type == type);
+  uiout->level--;
+  return uiout->level + 1;
+}
+
+
 /* These are the default implementation functions */
 
 static void default_table_begin (struct ui_out *uiout, int nbrofcols,
@@ -90,9 +140,12 @@ static void default_table_body (struct ui_out *uiout);
 static void default_table_end (struct ui_out *uiout);
 static void default_table_header (struct ui_out *uiout, int width,
                                  enum ui_align alig, char *colhdr);
-static void default_list_begin (struct ui_out *uiout, int list_flag,
-                               char *lstid);
-static void default_list_end (struct ui_out *uiout, int list_flag);
+static void default_begin (struct ui_out *uiout,
+                          enum ui_out_type type,
+                          int level, const char *id);
+static void default_end (struct ui_out *uiout,
+                        enum ui_out_type type,
+                        int level);
 static void default_field_int (struct ui_out *uiout, int fldno, int width,
                               enum ui_align alig, char *fldname, int value);
 static void default_field_skip (struct ui_out *uiout, int fldno, int width,
@@ -118,8 +171,8 @@ struct ui_out_impl default_ui_out_impl =
   default_table_body,
   default_table_end,
   default_table_header,
-  default_list_begin,
-  default_list_end,
+  default_begin,
+  default_end,
   default_field_int,
   default_field_skip,
   default_field_string,
@@ -152,8 +205,12 @@ static void uo_table_body (struct ui_out *uiout);
 static void uo_table_end (struct ui_out *uiout);
 static void uo_table_header (struct ui_out *uiout, int width,
                             enum ui_align align, char *colhdr);
-static void uo_list_begin (struct ui_out *uiout, int list_flag, char *lstid);
-static void uo_list_end (struct ui_out *uiout, int list_flag);
+static void uo_begin (struct ui_out *uiout,
+                     enum ui_out_type type,
+                     int level, const char *id);
+static void uo_end (struct ui_out *uiout,
+                   enum ui_out_type type,
+                   int level);
 static void uo_field_int (struct ui_out *uiout, int fldno, int width,
                          enum ui_align align, char *fldname, int value);
 static void uo_field_skip (struct ui_out *uiout, int fldno, int width,
@@ -187,13 +244,11 @@ static void init_ui_out_state (struct ui_out *uiout);
 /* Mark beginning of a table */
 
 void
-ui_out_table_begin (uiout, nbrofcols, tblid)
-     struct ui_out *uiout;
-     int nbrofcols;
-     char *tblid;
+ui_out_table_begin (struct ui_out *uiout, int nbrofcols, char *tblid)
 {
   if (uiout->table_flag)
-    internal_error ("gdb/ui_out.c: tables cannot be nested; table_begin found before \
+    internal_error (__FILE__, __LINE__,
+                   "tables cannot be nested; table_begin found before \
 previous table_end.");
 
   uiout->table_flag = 1;
@@ -208,17 +263,19 @@ previous table_end.");
 }
 
 void
-ui_out_table_body (uiout)
-     struct ui_out *uiout;
+ui_out_table_body (struct ui_out *uiout)
 {
   if (!uiout->table_flag)
-    internal_error ("gdb/ui_out.c: table_body outside a table is not valid; it must be \
+    internal_error (__FILE__, __LINE__,
+                   "table_body outside a table is not valid; it must be \
 after a table_begin and before a table_end.");
   if (uiout->body_flag)
-    internal_error ("gdb/ui_out.c: extra table_body call not allowed; there must be \
+    internal_error (__FILE__, __LINE__,
+                   "extra table_body call not allowed; there must be \
 only one table_body after a table_begin and before a table_end.");
   if (uiout->headercurr->colno != uiout->table_columns)
-    internal_error ("gdb/ui_out.c: number of headers differ from number of table \
+    internal_error (__FILE__, __LINE__,
+                   "number of headers differ from number of table \
 columns.");
 
   uiout->body_flag = 1;
@@ -228,11 +285,11 @@ columns.");
 }
 
 void
-ui_out_table_end (uiout)
-     struct ui_out *uiout;
+ui_out_table_end (struct ui_out *uiout)
 {
   if (!uiout->table_flag)
-    internal_error ("gdb/ui_out.c: misplaced table_end or missing table_begin.");
+    internal_error (__FILE__, __LINE__,
+                   "misplaced table_end or missing table_begin.");
 
   uiout->body_flag = 0;
   uiout->table_flag = 0;
@@ -240,19 +297,17 @@ ui_out_table_end (uiout)
   uo_table_end (uiout);
 
   if (uiout->table_id)
-    free (uiout->table_id);
+    xfree (uiout->table_id);
   clear_header_list (uiout);
 }
 
 void
-ui_out_table_header (uiout, width, alignment, colhdr)
-     struct ui_out *uiout;
-     int width;
-     enum ui_align alignment;
-     char *colhdr;
+ui_out_table_header (struct ui_out *uiout, int width, enum ui_align alignment,
+                    char *colhdr)
 {
   if (!uiout->table_flag || uiout->body_flag)
-    internal_error ("ui_out: table header must be specified after table_begin \
+    internal_error (__FILE__, __LINE__,
+                   "table header must be specified after table_begin \
 and before table_body.");
 
   append_header_to_list (uiout, width, alignment, colhdr);
@@ -261,51 +316,66 @@ and before table_body.");
 }
 
 void
-ui_out_list_begin (uiout, lstid)
-     struct ui_out *uiout;
-     char *lstid;
+ui_out_begin (struct ui_out *uiout,
+             enum ui_out_type type,
+             const char *id)
 {
+  int new_level;
   if (uiout->table_flag && !uiout->body_flag)
-    internal_error ("ui_out: table header or table_body expected; lists must be \
+    internal_error (__FILE__, __LINE__,
+                   "table header or table_body expected; lists must be \
 specified after table_body.");
-  if (uiout->list_flag >= 4)
-    internal_error ("ui_out: list depth exceeded; only 4 levels of lists can be \
-nested.");
-
-  uiout->list_flag++;
-  uiout->field_count[uiout->list_flag] = 0;
-  if (uiout->table_flag && (uiout->list_flag == 1))
+  new_level = push_level (uiout, type, id);
+  if (uiout->table_flag && (new_level == 1))
     uiout->headercurr = uiout->headerfirst;
+  uo_begin (uiout, type, new_level, id);
+}
 
-  uo_list_begin (uiout, uiout->list_flag, lstid);
+void
+ui_out_list_begin (struct ui_out *uiout,
+                  char *id)
+{
+  ui_out_begin (uiout, ui_out_type_list, id);
+}
+
+void
+ui_out_end (struct ui_out *uiout,
+           enum ui_out_type type)
+{
+  int old_level = pop_level (uiout, type);
+  uo_end (uiout, type, old_level);
 }
 
 void
-ui_out_list_end (uiout)
-     struct ui_out *uiout;
+ui_out_list_end (struct ui_out *uiout)
 {
-  if (!uiout->list_flag)
-    internal_error ("ui_out: misplaced list_end; there is no list to be closed.");
+  ui_out_end (uiout, ui_out_type_list);
+}
 
-  uo_list_end (uiout, uiout->list_flag);
+static void
+do_list_end (void *uiout)
+{
+  ui_out_list_end (uiout);
+}
 
-  uiout->list_flag--;
+struct cleanup *
+make_cleanup_ui_out_list_end (struct ui_out *uiout)
+{
+  return make_cleanup (do_list_end, uiout);
 }
 
 void
-ui_out_field_int (uiout, fldname, value)
-     struct ui_out *uiout;
-     char *fldname;
-     int value;
+ui_out_field_int (struct ui_out *uiout, char *fldname, int value)
 {
   int fldno;
   int width;
   int align;
+  struct ui_out_level *current = current_level (uiout);
 
   verify_field_proper_position (uiout);
 
-  uiout->field_count[uiout->list_flag] += 1;
-  fldno = uiout->field_count[uiout->list_flag];
+  current->field_count += 1;
+  fldno = current->field_count;
 
   verify_field_alignment (uiout, fldno, &width, &align);
 
@@ -313,10 +383,7 @@ ui_out_field_int (uiout, fldname, value)
 }
 
 void
-ui_out_field_core_addr (uiout, fldname, address)
-     struct ui_out *uiout;
-     char *fldname;
-     CORE_ADDR address;
+ui_out_field_core_addr (struct ui_out *uiout, char *fldname, CORE_ADDR address)
 {
   char addstr[20];
 
@@ -328,14 +395,11 @@ ui_out_field_core_addr (uiout, fldname, address)
 }
 
 void
-ui_out_field_stream (uiout, fldname, buf)
-     struct ui_out *uiout;
-     char *fldname;
-     struct ui_stream *buf;
+ui_out_field_stream (struct ui_out *uiout, char *fldname, struct ui_stream *buf)
 {
   long length;
   char *buffer = ui_file_xstrdup (buf->stream, &length);
-  struct cleanup *old_cleanup = make_cleanup (free, buffer);
+  struct cleanup *old_cleanup = make_cleanup (xfree, buffer);
   if (length > 0)
     ui_out_field_string (uiout, fldname, buffer);
   else
@@ -347,18 +411,17 @@ ui_out_field_stream (uiout, fldname, buf)
 /* used to ommit a field */
 
 void
-ui_out_field_skip (uiout, fldname)
-     struct ui_out *uiout;
-     char *fldname;
+ui_out_field_skip (struct ui_out *uiout, char *fldname)
 {
   int fldno;
   int width;
   int align;
+  struct ui_out_level *current = current_level (uiout);
 
   verify_field_proper_position (uiout);
 
-  uiout->field_count[uiout->list_flag] += 1;
-  fldno = uiout->field_count[uiout->list_flag];
+  current->field_count += 1;
+  fldno = current->field_count;
 
   verify_field_alignment (uiout, fldno, &width, &align);
 
@@ -373,11 +436,12 @@ ui_out_field_string (struct ui_out *uiout,
   int fldno;
   int width;
   int align;
+  struct ui_out_level *current = current_level (uiout);
 
   verify_field_proper_position (uiout);
 
-  uiout->field_count[uiout->list_flag] += 1;
-  fldno = uiout->field_count[uiout->list_flag];
+  current->field_count += 1;
+  fldno = current->field_count;
 
   verify_field_alignment (uiout, fldno, &width, &align);
 
@@ -392,11 +456,12 @@ ui_out_field_fmt (struct ui_out *uiout, char *fldname, char *format,...)
   int fldno;
   int width;
   int align;
+  struct ui_out_level *current = current_level (uiout);
 
   verify_field_proper_position (uiout);
 
-  uiout->field_count[uiout->list_flag] += 1;
-  fldno = uiout->field_count[uiout->list_flag];
+  current->field_count += 1;
+  fldno = current->field_count;
 
   /* will not align, but has to call anyway */
   verify_field_alignment (uiout, fldno, &width, &align);
@@ -409,17 +474,13 @@ ui_out_field_fmt (struct ui_out *uiout, char *fldname, char *format,...)
 }
 
 void
-ui_out_spaces (uiout, numspaces)
-     struct ui_out *uiout;
-     int numspaces;
+ui_out_spaces (struct ui_out *uiout, int numspaces)
 {
   uo_spaces (uiout, numspaces);
 }
 
 void
-ui_out_text (uiout, string)
-     struct ui_out *uiout;
-     char *string;
+ui_out_text (struct ui_out *uiout, char *string)
 {
   uo_text (uiout, string);
 }
@@ -437,8 +498,7 @@ ui_out_message (struct ui_out *uiout, int verbosity, char *format,...)
 }
 
 struct ui_stream *
-ui_out_stream_new (uiout)
-     struct ui_out *uiout;
+ui_out_stream_new (struct ui_out *uiout)
 {
   struct ui_stream *tempbuf;
 
@@ -449,11 +509,10 @@ ui_out_stream_new (uiout)
 }
 
 void
-ui_out_stream_delete (buf)
-     struct ui_stream *buf;
+ui_out_stream_delete (struct ui_stream *buf)
 {
   ui_file_delete (buf->stream);
-  free (buf);
+  xfree (buf);
 }
 
 static void
@@ -470,25 +529,20 @@ make_cleanup_ui_out_stream_delete (struct ui_stream *buf)
 
 
 void
-ui_out_wrap_hint (uiout, identstring)
-     struct ui_out *uiout;
-     char *identstring;
+ui_out_wrap_hint (struct ui_out *uiout, char *identstring)
 {
   uo_wrap_hint (uiout, identstring);
 }
 
 void
-ui_out_flush (uiout)
-     struct ui_out *uiout;
+ui_out_flush (struct ui_out *uiout)
 {
   uo_flush (uiout);
 }
 
 /* set the flags specified by the mask given */
 int
-ui_out_set_flags (uiout, mask)
-     struct ui_out *uiout;
-     int mask;
+ui_out_set_flags (struct ui_out *uiout, int mask)
 {
   int oldflags = uiout->flags;
 
@@ -499,9 +553,7 @@ ui_out_set_flags (uiout, mask)
 
 /* clear the flags specified by the mask given */
 int
-ui_out_clear_flags (uiout, mask)
-     struct ui_out *uiout;
-     int mask;
+ui_out_clear_flags (struct ui_out *uiout, int mask)
 {
   int oldflags = uiout->flags;
 
@@ -512,9 +564,7 @@ ui_out_clear_flags (uiout, mask)
 
 /* test the flags against the mask given */
 int
-ui_out_test_flags (uiout, mask)
-     struct ui_out *uiout;
-     int mask;
+ui_out_test_flags (struct ui_out *uiout, int mask)
 {
   return (uiout->flags & mask);
 }
@@ -523,8 +573,7 @@ ui_out_test_flags (uiout, mask)
    'set verbositylevel' command */
 
 int
-ui_out_get_verblvl (uiout)
-     struct ui_out *uiout;
+ui_out_get_verblvl (struct ui_out *uiout)
 {
   /* FIXME: not implemented yet */
   return 0;
@@ -532,54 +581,42 @@ ui_out_get_verblvl (uiout)
 
 #if 0
 void
-ui_out_result_begin (uiout, class)
-     struct ui_out *uiout;
-     char *class;
+ui_out_result_begin (struct ui_out *uiout, char *class)
 {
 }
 
 void
-ui_out_result_end (uiout)
-     struct ui_out *uiout;
+ui_out_result_end (struct ui_out *uiout)
 {
 }
 
 void
-ui_out_info_begin (uiout, class)
-     struct ui_out *uiout;
-     char *class;
+ui_out_info_begin (struct ui_out *uiout, char *class)
 {
 }
 
 void
-ui_out_info_end (uiout)
-     struct ui_out *uiout;
+ui_out_info_end (struct ui_out *uiout)
 {
 }
 
 void
-ui_out_notify_begin (uiout, class)
-     struct ui_out *uiout;
-     char *class;
+ui_out_notify_begin (struct ui_out *uiout, char *class)
 {
 }
 
 void
-ui_out_notify_end (uiout)
-     struct ui_out *uiout;
+ui_out_notify_end (struct ui_out *uiout)
 {
 }
 
 void
-ui_out_error_begin (uiout, class)
-     struct ui_out *uiout;
-     char *class;
+ui_out_error_begin (struct ui_out *uiout, char *class)
 {
 }
 
 void
-ui_out_error_end (uiout)
-     struct ui_out *uiout;
+ui_out_error_end (struct ui_out *uiout)
 {
 }
 #endif
@@ -592,10 +629,7 @@ gdb_error (ui_out * uiout, int severity, char *format,...)
 }
 
 void
-gdb_query (uiout, qflags, qprompt)
-     struct ui_out *uiout;
-     int flags;
-     char *qprompt;
+gdb_query (struct ui_out *uiout, int qflags, char *qprompt)
 {
 }
 #endif
@@ -603,67 +637,50 @@ gdb_query (uiout, qflags, qprompt)
 /* default gdb-out hook functions */
 
 static void
-default_table_begin (uiout, nbrofcols, tblid)
-     struct ui_out *uiout;
-     int nbrofcols;
-     char *tblid;
+default_table_begin (struct ui_out *uiout, int nbrofcols, char *tblid)
 {
 }
 
 static void
-default_table_body (uiout)
-     struct ui_out *uiout;
+default_table_body (struct ui_out *uiout)
 {
 }
 
 static void
-default_table_end (uiout)
-     struct ui_out *uiout;
+default_table_end (struct ui_out *uiout)
 {
 }
 
 static void
-default_table_header (uiout, width, alignment, colhdr)
-     struct ui_out *uiout;
-     int width;
-     enum ui_align alignment;
-     char *colhdr;
+default_table_header (struct ui_out *uiout, int width, enum ui_align alignment,
+                     char *colhdr)
 {
 }
 
 static void
-default_list_begin (uiout, list_flag, lstid)
-     struct ui_out *uiout;
-     int list_flag;
-     char *lstid;
+default_begin (struct ui_out *uiout,
+              enum ui_out_type type,
+              int level,
+              const char *id)
 {
 }
 
 static void
-default_list_end (uiout, list_flag)
-     struct ui_out *uiout;
-     int list_flag;
+default_end (struct ui_out *uiout,
+            enum ui_out_type type,
+            int level)
 {
 }
 
 static void
-default_field_int (uiout, fldno, width, align, fldname, value)
-     struct ui_out *uiout;
-     int fldno;
-     int width;
-     enum ui_align align;
-     char *fldname;
-     int value;
+default_field_int (struct ui_out *uiout, int fldno, int width,
+                  enum ui_align align, char *fldname, int value)
 {
 }
 
 static void
-default_field_skip (uiout, fldno, width, align, fldname)
-     struct ui_out *uiout;
-     int fldno;
-     int width;
-     enum ui_align align;
-     char *fldname;
+default_field_skip (struct ui_out *uiout, int fldno, int width,
+                   enum ui_align align, char *fldname)
 {
 }
 
@@ -678,50 +695,35 @@ default_field_string (struct ui_out *uiout,
 }
 
 static void
-default_field_fmt (uiout, fldno, width, align, fldname, format, args)
-     struct ui_out *uiout;
-     int fldno;
-     int width;
-     enum ui_align align;
-     char *fldname;
-     char *format;
-     va_list args;
+default_field_fmt (struct ui_out *uiout, int fldno, int width,
+                  enum ui_align align, char *fldname, char *format,
+                  va_list args)
 {
 }
 
 static void
-default_spaces (uiout, numspaces)
-     struct ui_out *uiout;
-     int numspaces;
+default_spaces (struct ui_out *uiout, int numspaces)
 {
 }
 
 static void
-default_text (uiout, string)
-     struct ui_out *uiout;
-     char *string;
+default_text (struct ui_out *uiout, char *string)
 {
 }
 
 static void
-default_message (uiout, verbosity, format, args)
-     struct ui_out *uiout;
-     int verbosity;
-     char *format;
-     va_list args;
+default_message (struct ui_out *uiout, int verbosity, char *format,
+                va_list args)
 {
 }
 
 static void
-default_wrap_hint (uiout, identstring)
-     struct ui_out *uiout;
-     char *identstring;
+default_wrap_hint (struct ui_out *uiout, char *identstring)
 {
 }
 
 static void
-default_flush (uiout)
-     struct ui_out *uiout;
+default_flush (struct ui_out *uiout)
 {
 }
 
@@ -760,19 +762,24 @@ uo_table_header (struct ui_out *uiout, int width, enum ui_align align, char *col
 }
 
 void
-uo_list_begin (struct ui_out *uiout, int list_flag, char *lstid)
+uo_begin (struct ui_out *uiout,
+         enum ui_out_type type,
+         int level,
+         const char *id)
 {
-  if (!uiout->impl->list_begin)
+  if (uiout->impl->begin == NULL)
     return;
-  uiout->impl->list_begin (uiout, list_flag, lstid);
+  uiout->impl->begin (uiout, type, level, id);
 }
 
 void
-uo_list_end (struct ui_out *uiout, int list_flag)
+uo_end (struct ui_out *uiout,
+       enum ui_out_type type,
+       int level)
 {
-  if (!uiout->impl->list_end)
+  if (uiout->impl->end == NULL)
     return;
-  uiout->impl->list_end (uiout, list_flag);
+  uiout->impl->end (uiout, type, level);
 }
 
 void
@@ -853,16 +860,15 @@ uo_flush (struct ui_out *uiout)
 /* list of column headers manipulation routines */
 
 static void
-clear_header_list (uiout)
-     struct ui_out *uiout;
+clear_header_list (struct ui_out *uiout)
 {
   while (uiout->headerfirst != NULL)
     {
       uiout->headercurr = uiout->headerfirst;
       uiout->headerfirst = uiout->headerfirst->next;
       if (uiout->headercurr->colhdr != NULL)
-       free (uiout->headercurr->colhdr);
-      free (uiout->headercurr);
+       xfree (uiout->headercurr->colhdr);
+      xfree (uiout->headercurr);
     }
   uiout->headerlast = NULL;
   uiout->headercurr = NULL;
@@ -929,10 +935,12 @@ verify_field_proper_position (struct ui_out *uiout)
   if (uiout->table_flag)
     {
       if (!uiout->body_flag)
-       internal_error ("ui_out: table_body missing; table fields must be \
+       internal_error (__FILE__, __LINE__,
+                       "table_body missing; table fields must be \
 specified after table_body and inside a list.");
-      if (!uiout->list_flag)
-       internal_error ("ui_out: list_begin missing; table fields must be \
+      if (uiout->level == 0)
+       internal_error (__FILE__, __LINE__,
+                       "list_begin missing; table fields must be \
 specified after table_body and inside a list.");
     }
 }
@@ -952,7 +960,8 @@ verify_field_alignment (struct ui_out *uiout,
       && get_curr_header (uiout, &colno, width, align, &text))
     {
       if (fldno != colno)
-       internal_error ("gdb/ui-out.c: ui-out internal error in handling headers.");
+       internal_error (__FILE__, __LINE__,
+                       "ui-out internal error in handling headers.");
     }
   else
     {
@@ -964,8 +973,7 @@ verify_field_alignment (struct ui_out *uiout,
 /* access to ui_out format private members */
 
 void
-ui_out_get_field_separator (uiout)
-     struct ui_out *uiout;
+ui_out_get_field_separator (struct ui_out *uiout)
 {
 }
 
@@ -990,8 +998,8 @@ ui_out_new (struct ui_out_impl *impl,
   uiout->flags = flags;
   uiout->table_flag = 0;
   uiout->body_flag = 0;
-  uiout->list_flag = 0;
-  uiout->field_count[0] = 0;
+  uiout->level = 0;
+  memset (uiout->levels, 0, sizeof (uiout->levels));
   uiout->headerfirst = NULL;
   uiout->headerlast = NULL;
   uiout->headercurr = NULL;
@@ -1001,7 +1009,7 @@ ui_out_new (struct ui_out_impl *impl,
 /* standard gdb initialization hook */
 
 void
-_initialize_ui_out ()
+_initialize_ui_out (void)
 {
   /* nothing needs to be done */
 }
This page took 0.032462 seconds and 4 git commands to generate.