Replace ui_out_list_{begin,end}() with ui_out_{begin,end}().

This commit is contained in:
Andrew Cagney 2001-05-09 01:33:10 +00:00
parent 80f49b30cf
commit 631ec795c9
6 changed files with 144 additions and 39 deletions

View File

@ -1,3 +1,26 @@
2001-05-08 Andrew Cagney <ac131313@redhat.com>
* cli-out.c (cli_begin, cli_end): Replace cli_list_begin and
cli_list_end.
(cli_ui_out_impl): Update.
* ui-out.c (default_begin, default_end): Replace
default_list_begin and default_list_end.
(default_ui_out_impl): Update.
(uo_begin, uo_end): Replace ou_list_begin and uo_list_end.
(ui_out_begin, ui_out_end): Replace ui_out_list_begin and
ui_out_list_end.
(ui_out_list_begin, ui_out_list_end): New. Compatibility
functions.
(struct ui_out_level): Add field type.
(push_level, pop_level): Update. Add type parameter.
* ui-out.h (enum ui_out_type): Declare.
(ui_out_begin, ui_out_end): Declare.
(ui_out_begin_ftype, ui_out_end_ftype): Replace list_begin_ftype
and list_end_ftype.
(struct ui_out_impl): Update.
2001-05-07 Andrew Cagney <ac131313@redhat.com>
* ui-out.h (list_begin_ftype, list_end_ftype): Rename argument

View File

@ -43,8 +43,9 @@ static void cli_table_body (struct ui_out *uiout);
static void cli_table_end (struct ui_out *uiout);
static void cli_table_header (struct ui_out *uiout, int width,
enum ui_align alig, char *colhdr);
static void cli_list_begin (struct ui_out *uiout, int list_flag, char *lstid);
static void cli_list_end (struct ui_out *uiout, int list_flag);
static void cli_begin (struct ui_out *uiout, enum ui_out_type type,
int level, const char *lstid);
static void cli_end (struct ui_out *uiout, enum ui_out_type type, int level);
static void cli_field_int (struct ui_out *uiout, int fldno, int width,
enum ui_align alig, char *fldname, int value);
static void cli_field_skip (struct ui_out *uiout, int fldno, int width,
@ -73,8 +74,8 @@ static struct ui_out_impl cli_ui_out_impl =
cli_table_body,
cli_table_end,
cli_table_header,
cli_list_begin,
cli_list_end,
cli_begin,
cli_end,
cli_field_int,
cli_field_skip,
cli_field_string,
@ -134,14 +135,19 @@ cli_table_header (struct ui_out *uiout, int width, enum ui_align alignment,
/* Mark beginning of a list */
void
cli_list_begin (struct ui_out *uiout, int list_flag, char *lstid)
cli_begin (struct ui_out *uiout,
enum ui_out_type type,
int level,
const char *id)
{
}
/* Mark end of a list */
void
cli_list_end (struct ui_out *uiout, int list_flag)
cli_end (struct ui_out *uiout,
enum ui_out_type type,
int level)
{
}

View File

@ -1,3 +1,9 @@
2001-05-08 Andrew Cagney <ac131313@redhat.com>
* mi-out.c (mi_begin, mi_end): Replace mi_list_begin and
mi_list_end.
(mi_ui_out_impl): Update.
2001-03-28 Andrew Cagney <ac131313@redhat.com>
* mi-main.c (mi_cmd_data_read_memory): Use xcalloc.

View File

@ -43,8 +43,9 @@ static void mi_table_body (struct ui_out *uiout);
static void mi_table_end (struct ui_out *uiout);
static void mi_table_header (struct ui_out *uiout, int width,
enum ui_align alig, char *colhdr);
static void mi_list_begin (struct ui_out *uiout, int list_flag, char *lstid);
static void mi_list_end (struct ui_out *uiout, int list_flag);
static void mi_begin (struct ui_out *uiout, enum ui_out_type type,
int level, const char *id);
static void mi_end (struct ui_out *uiout, enum ui_out_type type, int level);
static void mi_field_int (struct ui_out *uiout, int fldno, int width,
enum ui_align alig, char *fldname, int value);
static void mi_field_skip (struct ui_out *uiout, int fldno, int width,
@ -73,8 +74,8 @@ struct ui_out_impl mi_ui_out_impl =
mi_table_body,
mi_table_end,
mi_table_header,
mi_list_begin,
mi_list_end,
mi_begin,
mi_end,
mi_field_int,
mi_field_skip,
mi_field_string,
@ -149,7 +150,10 @@ mi_table_header (struct ui_out *uiout, int width, int alignment, char *colhdr)
/* Mark beginning of a list */
void
mi_list_begin (struct ui_out *uiout, int list_flag, char *lstid)
mi_begin (struct ui_out *uiout,
enum ui_out_type type,
int level,
const char *lstid)
{
struct ui_out_data *data = ui_out_data (uiout);
field_separator (uiout);
@ -162,7 +166,9 @@ mi_list_begin (struct ui_out *uiout, int list_flag, char *lstid)
/* Mark end of a list */
void
mi_list_end (struct ui_out *uiout, int list_flag)
mi_end (struct ui_out *uiout,
enum ui_out_type type,
int level)
{
struct ui_out_data *data = ui_out_data (uiout);
list_close (uiout);

View File

@ -53,6 +53,8 @@ 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 */
@ -103,24 +105,28 @@ current_level (struct ui_out *uiout)
/* 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);
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)
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;
}
@ -134,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 level,
char *lstid);
static void default_list_end (struct ui_out *uiout, int level);
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,
@ -162,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,
@ -196,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 level, char *lstid);
static void uo_list_end (struct ui_out *uiout, int level);
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,
@ -303,24 +316,40 @@ and before table_body.");
}
void
ui_out_list_begin (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 (__FILE__, __LINE__,
"table header or table_body expected; lists must be \
specified after table_body.");
new_level = push_level (uiout, lstid);
new_level = push_level (uiout, type, id);
if (uiout->table_flag && (new_level == 1))
uiout->headercurr = uiout->headerfirst;
uo_list_begin (uiout, new_level, lstid);
uo_begin (uiout, type, new_level, id);
}
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 (struct ui_out *uiout)
{
int old_level = pop_level (uiout);
uo_list_end (uiout, old_level);
ui_out_end (uiout, ui_out_type_list);
}
static void
@ -629,12 +658,17 @@ default_table_header (struct ui_out *uiout, int width, enum ui_align alignment,
}
static void
default_list_begin (struct ui_out *uiout, int level, char *lstid)
default_begin (struct ui_out *uiout,
enum ui_out_type type,
int level,
const char *id)
{
}
static void
default_list_end (struct ui_out *uiout, int level)
default_end (struct ui_out *uiout,
enum ui_out_type type,
int level)
{
}
@ -728,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 level, 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, level, lstid);
uiout->impl->begin (uiout, type, level, id);
}
void
uo_list_end (struct ui_out *uiout, int level)
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, level);
uiout->impl->end (uiout, type, level);
}
void

View File

@ -65,6 +65,25 @@ struct ui_stream
/* Prototypes for ui-out API. */
/* A result is a recursive data structure consisting of lists and
tupples. */
enum ui_out_type
{
ui_out_type_tupple,
ui_out_type_list
};
extern void ui_out_begin (struct ui_out *uiout,
enum ui_out_type level_type,
const char *id);
extern void ui_out_end (struct ui_out *uiout, enum ui_out_type type);
/* A table can be considered a special tupple/list combination with
the implied structure: ``table = { hdr = { header, ... } , body = [ {
field, ... }, ... ] }'' */
extern void ui_out_table_begin (struct ui_out *uiout, int nbrofcols,
char *tblid);
@ -75,6 +94,9 @@ extern void ui_out_table_body (struct ui_out *uiout);
extern void ui_out_table_end (struct ui_out *uiout);
/* Compatibility wrappers, new code should use ui_out_begin() and
ui_out_end(). */
extern void ui_out_list_begin (struct ui_out *uiout, char *lstid);
extern void ui_out_list_end (struct ui_out *uiout);
@ -164,9 +186,12 @@ typedef void (table_header_ftype) (struct ui_out * uiout, int width,
enum ui_align align, char *colhdr);
/* Note: level 0 is the top-level so LEVEL is always greater than
zero. */
typedef void (list_begin_ftype) (struct ui_out * uiout,
int level, char *lstid);
typedef void (list_end_ftype) (struct ui_out * uiout, int level);
typedef void (ui_out_begin_ftype) (struct ui_out *uiout,
enum ui_out_type type,
int level, const char *id);
typedef void (ui_out_end_ftype) (struct ui_out *uiout,
enum ui_out_type type,
int level);
typedef void (field_int_ftype) (struct ui_out * uiout, int fldno, int width,
enum ui_align align, char *fldname, int value);
typedef void (field_skip_ftype) (struct ui_out * uiout, int fldno, int width,
@ -195,8 +220,8 @@ struct ui_out_impl
table_body_ftype *table_body;
table_end_ftype *table_end;
table_header_ftype *table_header;
list_begin_ftype *list_begin;
list_end_ftype *list_end;
ui_out_begin_ftype *begin;
ui_out_end_ftype *end;
field_int_ftype *field_int;
field_skip_ftype *field_skip;
field_string_ftype *field_string;