/* Output generating routines for GDB.
- Copyright (C) 1999-2014 Free Software Foundation, Inc.
+ Copyright (C) 1999-2016 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
Written by Fernando Nasser for Cygnus.
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "defs.h"
-#include <string.h>
#include "expression.h" /* For language.h */
#include "language.h"
#include "ui-out.h"
-#include "gdb_assert.h"
/* table header structures */
{
int colno;
int width;
- int alignment;
+ enum ui_align alignment;
char *col_name;
char *colhdr;
struct ui_out_hdr *next;
{
int flags;
/* Specific implementation of ui-out. */
- struct ui_out_impl *impl;
+ const struct ui_out_impl *impl;
void *data;
/* Current level. */
struct ui_out_level *current;
uiout->level++;
- current = XMALLOC (struct ui_out_level);
+ current = XNEW (struct ui_out_level);
current->field_count = 0;
current->type = type;
VEC_safe_push (ui_out_level_p, uiout->levels, current);
/* This is the default ui-out implementation functions vector. */
-struct ui_out_impl default_ui_out_impl =
+const struct ui_out_impl default_ui_out_impl =
{
default_table_begin,
default_table_body,
default_message,
default_wrap_hint,
default_flush,
- NULL,
+ NULL, /* redirect */
default_data_destroy,
0, /* Does not need MI hacks. */
};
extern void _initialize_ui_out (void);
static void append_header_to_list (struct ui_out *uiout, int width,
- int alignment, const char *col_name,
+ enum ui_align alignment, const char *col_name,
const char *colhdr);
static int get_next_header (struct ui_out *uiout, int *colno, int *width,
- int *alignment, char **colhdr);
+ enum ui_align *alignment, char **colhdr);
static void clear_header_list (struct ui_out *uiout);
static void clear_table (struct ui_out *uiout);
static void verify_field (struct ui_out *uiout, int *fldno, int *width,
- int *align);
+ enum ui_align *align);
/* exported functions (ui_out API) */
static void
do_cleanup_table_end (void *data)
{
- struct ui_out *ui_out = data;
+ struct ui_out *ui_out = (struct ui_out *) data;
ui_out_table_end (ui_out);
}
{
int fldno;
int width;
- int align;
+ enum ui_align align;
verify_field (uiout, &fldno, &width, &align);
}
static void
do_cleanup_end (void *data)
{
- struct ui_out_end_cleanup_data *end_cleanup_data = data;
+ struct ui_out_end_cleanup_data *end_cleanup_data
+ = (struct ui_out_end_cleanup_data *) data;
ui_out_end (end_cleanup_data->uiout, end_cleanup_data->type);
xfree (end_cleanup_data);
{
struct ui_out_end_cleanup_data *end_cleanup_data;
- end_cleanup_data = XMALLOC (struct ui_out_end_cleanup_data);
+ end_cleanup_data = XNEW (struct ui_out_end_cleanup_data);
end_cleanup_data->uiout = uiout;
end_cleanup_data->type = type;
return make_cleanup (do_cleanup_end, end_cleanup_data);
{
int fldno;
int width;
- int align;
+ enum ui_align align;
verify_field (uiout, &fldno, &width, &align);
{
int fldno;
int width;
- int align;
+ enum ui_align align;
verify_field (uiout, &fldno, &width, &align);
{
int fldno;
int width;
- int align;
+ enum ui_align align;
verify_field (uiout, &fldno, &width, &align);
{
int fldno;
int width;
- int align;
+ enum ui_align align;
verify_field (uiout, &fldno, &width, &align);
va_list args;
int fldno;
int width;
- int align;
+ enum ui_align align;
/* Will not align, but has to call anyway. */
verify_field (uiout, &fldno, &width, &align);
static void
clear_table (struct ui_out *uiout)
{
- if (uiout->table.id)
- xfree (uiout->table.id);
+ xfree (uiout->table.id);
+ uiout->table.id = NULL;
clear_header_list (uiout);
}
static void
append_header_to_list (struct ui_out *uiout,
int width,
- int alignment,
+ enum ui_align alignment,
const char *col_name,
const char *colhdr)
{
struct ui_out_hdr *temphdr;
- temphdr = XMALLOC (struct ui_out_hdr);
+ temphdr = XNEW (struct ui_out_hdr);
temphdr->width = width;
temphdr->alignment = alignment;
/* We have to copy the column title as the original may be an
get_next_header (struct ui_out *uiout,
int *colno,
int *width,
- int *alignment,
+ enum ui_align *alignment,
char **colhdr)
{
/* There may be no headers at all or we may have used all columns. */
available/applicable). */
static void
-verify_field (struct ui_out *uiout, int *fldno, int *width, int *align)
+verify_field (struct ui_out *uiout, int *fldno, int *width,
+ enum ui_align *align)
{
struct ui_out_level *current = current_level (uiout);
char *text;
/* Initalize private members at startup. */
struct ui_out *
-ui_out_new (struct ui_out_impl *impl, void *data,
+ui_out_new (const struct ui_out_impl *impl, void *data,
int flags)
{
- struct ui_out *uiout = XMALLOC (struct ui_out);
- struct ui_out_level *current = XMALLOC (struct ui_out_level);
+ struct ui_out *uiout = XNEW (struct ui_out);
+ struct ui_out_level *current = XNEW (struct ui_out_level);
uiout->data = data;
uiout->impl = impl;
current->field_count = 0;
VEC_safe_push (ui_out_level_p, uiout->levels, current);
+ uiout->table.id = NULL;
uiout->table.header_first = NULL;
uiout->table.header_last = NULL;
uiout->table.header_next = NULL;