/* Routines for handling XML generic OS data provided by target.
- Copyright (C) 2008-2018 Free Software Foundation, Inc.
+ Copyright (C) 2008-2023 Free Software Foundation, Inc.
This file is part of GDB.
#include "defs.h"
#include "target.h"
-#include "vec.h"
#include "xml-support.h"
#include "osdata.h"
#include "ui-out.h"
{
have_warned = 1;
warning (_("Can not parse XML OS data; XML support was disabled "
- "at compile time"));
+ "at compile time"));
}
return NULL;
static void
osdata_start_osdata (struct gdb_xml_parser *parser,
- const struct gdb_xml_element *element,
- void *user_data,
+ const struct gdb_xml_element *element,
+ void *user_data,
std::vector<gdb_xml_value> &attributes)
{
struct osdata_parsing_data *data = (struct osdata_parsing_data *) user_data;
static void
osdata_start_item (struct gdb_xml_parser *parser,
- const struct gdb_xml_element *element,
- void *user_data,
+ const struct gdb_xml_element *element,
+ void *user_data,
std::vector<gdb_xml_value> &attributes)
{
struct osdata_parsing_data *data = (struct osdata_parsing_data *) user_data;
static void
osdata_start_column (struct gdb_xml_parser *parser,
- const struct gdb_xml_element *element,
- void *user_data,
+ const struct gdb_xml_element *element,
+ void *user_data,
std::vector<gdb_xml_value> &attributes)
{
struct osdata_parsing_data *data = (struct osdata_parsing_data *) user_data;
static void
osdata_end_column (struct gdb_xml_parser *parser,
- const struct gdb_xml_element *element,
- void *user_data, const char *body_text)
+ const struct gdb_xml_element *element,
+ void *user_data, const char *body_text)
{
osdata_parsing_data *data = (struct osdata_parsing_data *) user_data;
struct osdata *osdata = data->osdata.get ();
get_osdata (const char *type)
{
std::unique_ptr<osdata> osdata;
- gdb::unique_xmalloc_ptr<char> xml = target_get_osdata (type);
+ gdb::optional<gdb::char_vector> xml = target_get_osdata (type);
if (xml)
{
- if (xml.get ()[0] == '\0')
+ if ((*xml)[0] == '\0')
{
if (type)
warning (_("Empty data returned by target. Wrong osdata type?"));
warning (_("Empty type list returned by target. No type data?"));
}
else
- osdata = osdata_parse (xml.get ());
+ osdata = osdata_parse (xml->data ());
}
if (osdata == NULL)
snprintf (col_name, 32, "col%d", ix);
uiout->table_header (10, ui_left,
col_name, last->columns[ix].name.c_str ());
- }
+ }
}
uiout->table_body ();
continue;
snprintf (col_name, 32, "col%d", ix_cols);
- uiout->field_string (col_name,
- item.columns[ix_cols].value.c_str ());
+ uiout->field_string (col_name, item.columns[ix_cols].value);
}
}
- uiout->text ("\n");
+ uiout->text ("\n");
}
}
}
info_osdata (arg);
}
+void _initialize_osdata ();
void
-_initialize_osdata (void)
+_initialize_osdata ()
{
add_info ("os", info_osdata_command,
- _("Show OS data ARG."));
+ _("Show OS data ARG."));
}