X-Git-Url: http://drtracing.org/?a=blobdiff_plain;ds=sidebyside;f=gdb%2Fxml-support.h;h=7fea45dde323a3c2dcd4060785a8b44bc9aa5d35;hb=774113b02f41ded4d9ba4d18571ee5024312ad1b;hp=135263d5d52d4be43054bb409d1445535bf3dc92;hpb=a96d9b2e9a79e6cc7a9da9b4e5bab6fcc35f1eb4;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/xml-support.h b/gdb/xml-support.h index 135263d5d5..7fea45dde3 100644 --- a/gdb/xml-support.h +++ b/gdb/xml-support.h @@ -1,6 +1,6 @@ /* Helper routines for parsing XML using Expat. - Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 2006-2016 Free Software Foundation, Inc. This file is part of GDB. @@ -23,6 +23,7 @@ #include "gdb_obstack.h" #include "vec.h" +#include "xml-utils.h" struct gdb_xml_parser; struct gdb_xml_element; @@ -47,11 +48,6 @@ LONGEST xml_builtin_xfer_partial (const char *filename, extern const char *xml_builtin[][2]; -/* Return a malloc allocated string with special characters from TEXT - replaced by entity references. */ - -char *xml_escape_text (const char *text); - /* Support for XInclude. */ /* Callback to fetch a new XML file, based on the provided HREF. */ @@ -175,13 +171,6 @@ struct gdb_xml_element gdb_xml_element_end_handler *end_handler; }; -/* Initialize and return a parser. Register a cleanup to destroy the - parser. */ - -struct gdb_xml_parser *gdb_xml_create_parser_and_cleanup - (const char *name, const struct gdb_xml_element *elements, - void *user_data); - /* Associate DTD_NAME, which must be the name of a compiled-in DTD, with PARSER. */ @@ -196,16 +185,34 @@ void gdb_xml_use_dtd (struct gdb_xml_parser *parser, const char *dtd_name); int gdb_xml_parse (struct gdb_xml_parser *parser, const char *buffer); +/* Parse a XML document. DOCUMENT is the data to parse, which should + be NUL-terminated. If non-NULL, use the compiled-in DTD named + DTD_NAME to drive the parsing. + + The return value is 0 for success or -1 for error. It may throw, + but only if something unexpected goes wrong during parsing; parse + errors will be caught, warned about, and reported as failure. */ + +int gdb_xml_parse_quick (const char *name, const char *dtd_name, + const struct gdb_xml_element *elements, + const char *document, void *user_data); + /* Issue a debugging message from one of PARSER's handlers. */ void gdb_xml_debug (struct gdb_xml_parser *parser, const char *format, ...) - ATTR_FORMAT (printf, 2, 0); + ATTRIBUTE_PRINTF (2, 0); /* Issue an error message from one of PARSER's handlers, and stop parsing. */ void gdb_xml_error (struct gdb_xml_parser *parser, const char *format, ...) - ATTR_NORETURN ATTR_FORMAT (printf, 2, 0); + ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 0); + +/* Find the attribute named NAME in the set of parsed attributes + ATTRIBUTES. Returns NULL if not found. */ + +struct gdb_xml_value *xml_find_attribute (VEC(gdb_xml_value_s) *attributes, + const char *name); /* Parse an integer attribute into a ULONGEST. */