{ m_is_xinclude = is_xinclude; }
/* A thrown error, if any. */
{ m_is_xinclude = is_xinclude; }
/* A thrown error, if any. */
#ifdef HAVE_XML_STOPPARSER
XML_StopParser (m_expat_parser, XML_FALSE);
#endif
#ifdef HAVE_XML_STOPPARSER
XML_StopParser (m_expat_parser, XML_FALSE);
#endif
gdb_xml_parser::vdebug (const char *format, va_list ap)
{
int line = XML_GetCurrentLineNumber (m_expat_parser);
gdb_xml_parser::vdebug (const char *format, va_list ap)
{
int line = XML_GetCurrentLineNumber (m_expat_parser);
struct xinclude_parsing_data
{
xinclude_parsing_data (std::string &output_,
struct xinclude_parsing_data
{
xinclude_parsing_data (std::string &output_,
/* A function to call to obtain additional features, and its
baton. */
xml_fetch_another fetcher;
/* A function to call to obtain additional features, and its
baton. */
xml_fetch_another fetcher;
gdb_xml_error (parser, _("Could not load XML document \"%s\""), href);
if (!xml_process_xincludes (data->output, parser->name (),
gdb_xml_error (parser, _("Could not load XML document \"%s\""), href);
if (!xml_process_xincludes (data->output, parser->name (),
data->include_depth + 1))
gdb_xml_error (parser, _("Parsing \"%s\" failed"), href);
data->include_depth + 1))
gdb_xml_error (parser, _("Parsing \"%s\" failed"), href);
bool
xml_process_xincludes (std::string &result,
const char *name, const char *text,
bool
xml_process_xincludes (std::string &result,
const char *name, const char *text,
- xinclude_parsing_data data (result, fetcher, fetcher_baton, depth);
+ xinclude_parsing_data data (result, fetcher, depth);
gdb_xml_parser parser (name, xinclude_elements, &data);
parser.set_is_xinclude (true);
gdb_xml_parser parser (name, xinclude_elements, &data);
parser.set_is_xinclude (true);
for (p = xml_builtin; (*p)[0]; p++)
if (strcmp ((*p)[0], filename) == 0)
for (p = xml_builtin; (*p)[0]; p++)
if (strcmp ((*p)[0], filename) == 0)
-gdb::unique_xmalloc_ptr<char>
-xml_fetch_content_from_file (const char *filename, void *baton)
+gdb::optional<gdb::char_vector>
+xml_fetch_content_from_file (const char *filename, const char *dirname)
- char *fullname = concat (dirname, "/", filename, (char *) NULL);
+ gdb::unique_xmalloc_ptr<char> fullname
+ (concat (dirname, "/", filename, (char *) NULL));
- if (fread (text.get (), 1, len, file.get ()) != len
+ if (fread (text.data (), 1, len, file.get ()) != len
{
add_setshow_boolean_cmd ("xml", class_maintenance, &debug_xml,
_("Set XML parser debugging."),
{
add_setshow_boolean_cmd ("xml", class_maintenance, &debug_xml,
_("Set XML parser debugging."),