WIP - add extractor, generate snippet_data
This commit is contained in:
225
node_modules/sharp/vendor/include/gsf/gsf-libxml.h
generated
vendored
Normal file
225
node_modules/sharp/vendor/include/gsf/gsf-libxml.h
generated
vendored
Normal file
@ -0,0 +1,225 @@
|
||||
/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||
/*
|
||||
* gsf-libxml.h: Utility wrappers for using gsf with libxml
|
||||
*
|
||||
* Copyright (C) 2002-2006 Jody Goldberg (jody@gnome.org)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of version 2.1 of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
|
||||
* USA
|
||||
*/
|
||||
|
||||
#ifndef GSF_LIBXML_H
|
||||
#define GSF_LIBXML_H
|
||||
|
||||
#include <gsf/gsf-fwd.h>
|
||||
#include <libxml/tree.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/****************************************************************************/
|
||||
/* GSF wrappers for libxml2 */
|
||||
xmlParserCtxt *gsf_xml_parser_context (GsfInput *input);
|
||||
#if 0
|
||||
/* this is cleaner, tack it on for 2.0 */
|
||||
xmlSAXHandlerPtr sax, gpointer user);
|
||||
#endif
|
||||
int gsf_xmlDocFormatDump (GsfOutput *output,
|
||||
xmlDoc *cur,
|
||||
char const *encoding,
|
||||
gboolean format);
|
||||
|
||||
typedef gboolean (*GsfXMLProbeFunc) (const xmlChar *name,
|
||||
const xmlChar *prefix,
|
||||
const xmlChar *URI,
|
||||
int nb_namespaces,
|
||||
const xmlChar **namespaces,
|
||||
int nb_attributes,
|
||||
int nb_defaulted,
|
||||
const xmlChar **attributes);
|
||||
gboolean gsf_xml_probe (GsfInput *input,
|
||||
GsfXMLProbeFunc func);
|
||||
|
||||
/****************************************************************************/
|
||||
/* Simplified wrapper to SAX based xml import */
|
||||
|
||||
/**
|
||||
* GsfXMLContent:
|
||||
* @GSF_XML_NO_CONTENT: node has no cstr contents
|
||||
* @GSF_XML_CONTENT: node has cstr contents
|
||||
* @GSF_XML_SHARED_CONTENT: node has contents that is shared with children
|
||||
* @GSF_XML_2ND: node is second or later occurrence
|
||||
*
|
||||
* Controls the handling of character data within a parser node.
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
GSF_XML_NO_CONTENT = FALSE,
|
||||
GSF_XML_CONTENT,
|
||||
GSF_XML_SHARED_CONTENT,
|
||||
GSF_XML_2ND /* Second definition */
|
||||
} GsfXMLContent;
|
||||
typedef gboolean (*GsfXMLInUnknownFunc) (GsfXMLIn *xin,
|
||||
xmlChar const *elem, xmlChar const **attrs);
|
||||
typedef void (*GsfXMLInExtDtor) (GsfXMLIn *xin, gpointer old_state);
|
||||
|
||||
struct _GsfXMLIn {
|
||||
/* public state : read only */
|
||||
gpointer user_state;
|
||||
GString *content;
|
||||
GsfXMLInDoc const *doc;
|
||||
GsfXMLInNode const *node; /* current node (not on the stack) */
|
||||
/*< private >*/
|
||||
GSList *node_stack; /* stack of GsfXMLInNode */
|
||||
};
|
||||
|
||||
struct _GsfXMLInNode {
|
||||
char const *id; /* unique in the entire tree */
|
||||
int ns_id;
|
||||
char const *name;
|
||||
char const *parent_id;
|
||||
void (*start) (GsfXMLIn *xin, xmlChar const **attrs);
|
||||
void (*end) (GsfXMLIn *xin, GsfXMLBlob *unknown);
|
||||
|
||||
union {
|
||||
int v_int;
|
||||
gboolean v_bool;
|
||||
gpointer v_blob;
|
||||
char const *v_str;
|
||||
} user_data;
|
||||
GsfXMLContent has_content;
|
||||
|
||||
unsigned int check_children_for_ns : 1;
|
||||
unsigned int share_children_with_parent : 1;
|
||||
};
|
||||
|
||||
struct _GsfXMLInNS {
|
||||
char const *uri;
|
||||
unsigned ns_id;
|
||||
};
|
||||
|
||||
#define GSF_XML_IN_NS(id, uri) \
|
||||
{ uri, id }
|
||||
#define GSF_XML_IN_NS_END \
|
||||
{ NULL, 0 }
|
||||
|
||||
#define GSF_XML_IN_NODE_FULL(parent_id, id, ns, name, has_content, \
|
||||
share_children_with_parent, check_ns, start, end, user) \
|
||||
{ \
|
||||
#id, ns, name, #parent_id, start, end, { user }, has_content, \
|
||||
check_ns, share_children_with_parent, \
|
||||
}
|
||||
|
||||
#define GSF_XML_IN_NODE(parent_id, id, ns, name, has_content, start, end) \
|
||||
GSF_XML_IN_NODE_FULL(parent_id, id, ns, name, has_content, \
|
||||
FALSE, FALSE, start, end, 0)
|
||||
#define GSF_XML_IN_NODE_END \
|
||||
{ NULL, 0, NULL, NULL, NULL, NULL, { 0 }, GSF_XML_NO_CONTENT, FALSE, FALSE }
|
||||
|
||||
GType gsf_xml_in_doc_get_type (void);
|
||||
GsfXMLInDoc *gsf_xml_in_doc_new (GsfXMLInNode const *nodes, GsfXMLInNS const *ns);
|
||||
void gsf_xml_in_doc_free (GsfXMLInDoc *doc);
|
||||
gboolean gsf_xml_in_doc_parse (GsfXMLInDoc *doc, GsfInput *input,
|
||||
gpointer user_state);
|
||||
void gsf_xml_in_doc_add_nodes (GsfXMLInDoc *doc,
|
||||
GsfXMLInNode const *nodes);
|
||||
void gsf_xml_in_doc_set_unknown_handler (GsfXMLInDoc *doc,
|
||||
GsfXMLInUnknownFunc handler);
|
||||
|
||||
void gsf_xml_in_push_state (GsfXMLIn *xin, GsfXMLInDoc const *doc,
|
||||
gpointer new_state, GsfXMLInExtDtor dtor,
|
||||
xmlChar const **attrs);
|
||||
|
||||
GsfInput *gsf_xml_in_get_input (GsfXMLIn const *xin);
|
||||
char const *gsf_xml_in_check_ns (GsfXMLIn const *xin, char const *str,
|
||||
unsigned int ns_id);
|
||||
gboolean gsf_xml_in_namecmp (GsfXMLIn const *xin, char const *str,
|
||||
unsigned int ns_id, char const *name);
|
||||
void gsf_xml_in_set_silent_unknowns (GsfXMLIn *xin, gboolean silent);
|
||||
|
||||
GType gsf_xml_in_ns_get_type (void);
|
||||
|
||||
/****************************************************************************/
|
||||
/* Simplified GSF based xml export (does not use libxml) */
|
||||
|
||||
struct GsfXMLOutClass_ {
|
||||
GObjectClass base;
|
||||
|
||||
/*< private >*/
|
||||
/* Padding for future expansion */
|
||||
void (*_gsf_reserved1) (void);
|
||||
void (*_gsf_reserved2) (void);
|
||||
void (*_gsf_reserved3) (void);
|
||||
void (*_gsf_reserved4) (void);
|
||||
};
|
||||
|
||||
struct _GsfXMLOut {
|
||||
GObject base;
|
||||
GsfOutput *output;
|
||||
|
||||
/*< private >*/
|
||||
struct _GsfXMLOutPrivate *priv;
|
||||
};
|
||||
|
||||
#define GSF_XML_OUT_TYPE (gsf_xml_out_get_type ())
|
||||
#define GSF_XML_OUT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSF_XML_OUT_TYPE, GsfXMLOut))
|
||||
#define GSF_IS_XML_OUT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSF_XML_OUT_TYPE))
|
||||
|
||||
GType gsf_xml_out_get_type (void);
|
||||
/* void gsf_xml_out_register_type (GTypeModule *module); glib dynamic types are not thread safe */
|
||||
|
||||
GsfXMLOut *gsf_xml_out_new (GsfOutput *output);
|
||||
|
||||
void gsf_xml_out_set_doc_type (GsfXMLOut *xout, char const *type);
|
||||
void gsf_xml_out_start_element (GsfXMLOut *xout, char const *id);
|
||||
char const *gsf_xml_out_end_element (GsfXMLOut *xout);
|
||||
|
||||
gboolean gsf_xml_out_get_pretty_print (GsfXMLOut *xout);
|
||||
gboolean gsf_xml_out_set_pretty_print (GsfXMLOut *xout, gboolean pp);
|
||||
|
||||
void gsf_xml_out_simple_element (GsfXMLOut *xout, char const *id,
|
||||
char const *content);
|
||||
void gsf_xml_out_simple_int_element (GsfXMLOut *xout, char const *id,
|
||||
int val);
|
||||
void gsf_xml_out_simple_float_element (GsfXMLOut *xout, char const *id,
|
||||
double val, int precision);
|
||||
|
||||
void gsf_xml_out_add_cstr_unchecked (GsfXMLOut *xout, char const *id,
|
||||
char const *val_utf8);
|
||||
void gsf_xml_out_add_cstr (GsfXMLOut *xout, char const *id,
|
||||
char const *val_utf8);
|
||||
void gsf_xml_out_add_bool (GsfXMLOut *xout, char const *id,
|
||||
gboolean val);
|
||||
void gsf_xml_out_add_int (GsfXMLOut *xout, char const *id,
|
||||
int val);
|
||||
void gsf_xml_out_add_uint (GsfXMLOut *xout, char const *id,
|
||||
unsigned int val);
|
||||
void gsf_xml_out_add_float (GsfXMLOut *xout, char const *id,
|
||||
double val, int precision);
|
||||
void gsf_xml_out_add_color (GsfXMLOut *xout, char const *id,
|
||||
unsigned int r, unsigned int g, unsigned int b);
|
||||
void gsf_xml_out_add_base64 (GsfXMLOut *xout, char const *id,
|
||||
guint8 const *data, unsigned int len);
|
||||
void gsf_xml_out_add_enum (GsfXMLOut *xout, char const *id,
|
||||
GType etype, gint val);
|
||||
void gsf_xml_out_add_gvalue (GsfXMLOut *xout, char const *id,
|
||||
GValue const *val);
|
||||
|
||||
/****************************************************************************/
|
||||
/* Some general utilities */
|
||||
gboolean gsf_xml_gvalue_from_str (GValue *res, GType t, char const *str);
|
||||
GsfOutput *gsf_xml_out_get_output (GsfXMLOut const *xout);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* GSF_LIBXML_H */
|
||||
Reference in New Issue
Block a user