📄 gmarkup.h
字号:
/* gmarkup.h - Simple XML-like string parser/writer * * Copyright 2000 Red Hat, Inc. * * GLib is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * GLib 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with GLib; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)#error "Only <glib.h> can be included directly."#endif#ifndef __G_MARKUP_H__#define __G_MARKUP_H__#include <stdarg.h>#include <glib/gerror.h>#include <glib/gslist.h>G_BEGIN_DECLStypedef enum{ G_MARKUP_ERROR_BAD_UTF8, G_MARKUP_ERROR_EMPTY, G_MARKUP_ERROR_PARSE, /* The following are primarily intended for specific GMarkupParser * implementations to set. */ G_MARKUP_ERROR_UNKNOWN_ELEMENT, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, G_MARKUP_ERROR_INVALID_CONTENT, G_MARKUP_ERROR_MISSING_ATTRIBUTE} GMarkupError;#define G_MARKUP_ERROR g_markup_error_quark ()GQuark g_markup_error_quark (void);typedef enum{ G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1 << 0, G_MARKUP_TREAT_CDATA_AS_TEXT = 1 << 1, G_MARKUP_PREFIX_ERROR_POSITION = 1 << 2} GMarkupParseFlags;typedef struct _GMarkupParseContext GMarkupParseContext;typedef struct _GMarkupParser GMarkupParser;struct _GMarkupParser{ /* Called for open tags <foo bar="baz"> */ void (*start_element) (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error); /* Called for close tags </foo> */ void (*end_element) (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error); /* Called for character data */ /* text is not nul-terminated */ void (*text) (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error); /* Called for strings that should be re-saved verbatim in this same * position, but are not otherwise interpretable. At the moment * this includes comments and processing instructions. */ /* text is not nul-terminated. */ void (*passthrough) (GMarkupParseContext *context, const gchar *passthrough_text, gsize text_len, gpointer user_data, GError **error); /* Called on error, including one set by other * methods in the vtable. The GError should not be freed. */ void (*error) (GMarkupParseContext *context, GError *error, gpointer user_data);};GMarkupParseContext *g_markup_parse_context_new (const GMarkupParser *parser, GMarkupParseFlags flags, gpointer user_data, GDestroyNotify user_data_dnotify);void g_markup_parse_context_free (GMarkupParseContext *context);gboolean g_markup_parse_context_parse (GMarkupParseContext *context, const gchar *text, gssize text_len, GError **error);void g_markup_parse_context_push (GMarkupParseContext *context, GMarkupParser *parser, gpointer user_data);gpointer g_markup_parse_context_pop (GMarkupParseContext *context); gboolean g_markup_parse_context_end_parse (GMarkupParseContext *context, GError **error);G_CONST_RETURN gchar *g_markup_parse_context_get_element (GMarkupParseContext *context);G_CONST_RETURN GSList *g_markup_parse_context_get_element_stack (GMarkupParseContext *context);/* For user-constructed error messages, has no precise semantics */void g_markup_parse_context_get_position (GMarkupParseContext *context, gint *line_number, gint *char_number);gpointer g_markup_parse_context_get_user_data (GMarkupParseContext *context);/* useful when saving */gchar* g_markup_escape_text (const gchar *text, gssize length); gchar *g_markup_printf_escaped (const char *format, ...) G_GNUC_PRINTF (1, 2);gchar *g_markup_vprintf_escaped (const char *format, va_list args);typedef enum{ G_MARKUP_COLLECT_INVALID, G_MARKUP_COLLECT_STRING, G_MARKUP_COLLECT_STRDUP, G_MARKUP_COLLECT_BOOLEAN, G_MARKUP_COLLECT_TRISTATE, G_MARKUP_COLLECT_OPTIONAL = (1 << 16)} GMarkupCollectType;/* useful from start_element */gboolean g_markup_collect_attributes (const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, GError **error, GMarkupCollectType first_type, const gchar *first_attr, ...);G_END_DECLS#endif /* __G_MARKUP_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -