mirror of
https://github.com/rkd77/elinks.git
synced 2025-06-30 22:19:29 -04:00
Merge with master
This commit is contained in:
commit
edb3129a5b
237
src/dom/Doxyfile
Normal file
237
src/dom/Doxyfile
Normal file
@ -0,0 +1,237 @@
|
|||||||
|
# Doxyfile 1.5.1
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# Project related configuration options
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
PROJECT_NAME = "ELinks DOM"
|
||||||
|
PROJECT_NUMBER = 0.12.GIT
|
||||||
|
OUTPUT_DIRECTORY = doc
|
||||||
|
CREATE_SUBDIRS = NO
|
||||||
|
OUTPUT_LANGUAGE = English
|
||||||
|
USE_WINDOWS_ENCODING = NO
|
||||||
|
BRIEF_MEMBER_DESC = YES
|
||||||
|
REPEAT_BRIEF = YES
|
||||||
|
ABBREVIATE_BRIEF = "The $name class" \
|
||||||
|
"The $name widget" \
|
||||||
|
"The $name file" \
|
||||||
|
is \
|
||||||
|
provides \
|
||||||
|
specifies \
|
||||||
|
contains \
|
||||||
|
represents \
|
||||||
|
a \
|
||||||
|
an \
|
||||||
|
the
|
||||||
|
ALWAYS_DETAILED_SEC = NO
|
||||||
|
INLINE_INHERITED_MEMB = NO
|
||||||
|
FULL_PATH_NAMES = YES
|
||||||
|
STRIP_FROM_PATH = .
|
||||||
|
STRIP_FROM_INC_PATH =
|
||||||
|
SHORT_NAMES = NO
|
||||||
|
JAVADOC_AUTOBRIEF = YES
|
||||||
|
MULTILINE_CPP_IS_BRIEF = NO
|
||||||
|
DETAILS_AT_TOP = NO
|
||||||
|
INHERIT_DOCS = YES
|
||||||
|
SEPARATE_MEMBER_PAGES = NO
|
||||||
|
TAB_SIZE = 3
|
||||||
|
ALIASES =
|
||||||
|
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||||
|
OPTIMIZE_OUTPUT_JAVA = NO
|
||||||
|
BUILTIN_STL_SUPPORT = NO
|
||||||
|
DISTRIBUTE_GROUP_DOC = NO
|
||||||
|
SUBGROUPING = YES
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# Build related configuration options
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
EXTRACT_ALL = YES
|
||||||
|
EXTRACT_PRIVATE = YES
|
||||||
|
EXTRACT_STATIC = YES
|
||||||
|
EXTRACT_LOCAL_CLASSES = YES
|
||||||
|
EXTRACT_LOCAL_METHODS = YES
|
||||||
|
HIDE_UNDOC_MEMBERS = NO
|
||||||
|
HIDE_UNDOC_CLASSES = NO
|
||||||
|
HIDE_FRIEND_COMPOUNDS = NO
|
||||||
|
HIDE_IN_BODY_DOCS = NO
|
||||||
|
INTERNAL_DOCS = NO
|
||||||
|
CASE_SENSE_NAMES = NO
|
||||||
|
HIDE_SCOPE_NAMES = NO
|
||||||
|
SHOW_INCLUDE_FILES = YES
|
||||||
|
INLINE_INFO = YES
|
||||||
|
SORT_MEMBER_DOCS = YES
|
||||||
|
SORT_BRIEF_DOCS = NO
|
||||||
|
SORT_BY_SCOPE_NAME = NO
|
||||||
|
GENERATE_TODOLIST = YES
|
||||||
|
GENERATE_TESTLIST = YES
|
||||||
|
GENERATE_BUGLIST = YES
|
||||||
|
GENERATE_DEPRECATEDLIST= YES
|
||||||
|
ENABLED_SECTIONS =
|
||||||
|
MAX_INITIALIZER_LINES = 30
|
||||||
|
SHOW_USED_FILES = YES
|
||||||
|
SHOW_DIRECTORIES = NO
|
||||||
|
FILE_VERSION_FILTER =
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to warning and progress messages
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
QUIET = YES
|
||||||
|
WARNINGS = YES
|
||||||
|
WARN_IF_UNDOCUMENTED = YES
|
||||||
|
WARN_IF_DOC_ERROR = YES
|
||||||
|
WARN_NO_PARAMDOC = NO
|
||||||
|
WARN_FORMAT = "$file:$line: $text"
|
||||||
|
WARN_LOGFILE =
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to the input files
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
INPUT = .
|
||||||
|
FILE_PATTERNS = *.c \
|
||||||
|
*.h \
|
||||||
|
*.inc
|
||||||
|
RECURSIVE = YES
|
||||||
|
EXCLUDE =
|
||||||
|
EXCLUDE_SYMLINKS = NO
|
||||||
|
EXCLUDE_PATTERNS =
|
||||||
|
EXAMPLE_PATH =
|
||||||
|
EXAMPLE_PATTERNS = *
|
||||||
|
EXAMPLE_RECURSIVE = NO
|
||||||
|
IMAGE_PATH =
|
||||||
|
INPUT_FILTER =
|
||||||
|
FILTER_PATTERNS =
|
||||||
|
FILTER_SOURCE_FILES = NO
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to source browsing
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
SOURCE_BROWSER = YES
|
||||||
|
INLINE_SOURCES = NO
|
||||||
|
STRIP_CODE_COMMENTS = YES
|
||||||
|
REFERENCED_BY_RELATION = YES
|
||||||
|
REFERENCES_RELATION = YES
|
||||||
|
REFERENCES_LINK_SOURCE = YES
|
||||||
|
USE_HTAGS = NO
|
||||||
|
VERBATIM_HEADERS = YES
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to the alphabetical class index
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
ALPHABETICAL_INDEX = NO
|
||||||
|
COLS_IN_ALPHA_INDEX = 5
|
||||||
|
IGNORE_PREFIX =
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to the HTML output
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
GENERATE_HTML = YES
|
||||||
|
HTML_OUTPUT = html
|
||||||
|
HTML_FILE_EXTENSION = .html
|
||||||
|
HTML_HEADER =
|
||||||
|
HTML_FOOTER =
|
||||||
|
HTML_STYLESHEET =
|
||||||
|
HTML_ALIGN_MEMBERS = YES
|
||||||
|
GENERATE_HTMLHELP = NO
|
||||||
|
CHM_FILE =
|
||||||
|
HHC_LOCATION =
|
||||||
|
GENERATE_CHI = NO
|
||||||
|
BINARY_TOC = NO
|
||||||
|
TOC_EXPAND = NO
|
||||||
|
DISABLE_INDEX = NO
|
||||||
|
ENUM_VALUES_PER_LINE = 4
|
||||||
|
GENERATE_TREEVIEW = NO
|
||||||
|
TREEVIEW_WIDTH = 250
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to the LaTeX output
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
GENERATE_LATEX = NO
|
||||||
|
LATEX_OUTPUT = latex
|
||||||
|
LATEX_CMD_NAME = latex
|
||||||
|
MAKEINDEX_CMD_NAME = makeindex
|
||||||
|
COMPACT_LATEX = NO
|
||||||
|
PAPER_TYPE = a4wide
|
||||||
|
EXTRA_PACKAGES =
|
||||||
|
LATEX_HEADER =
|
||||||
|
PDF_HYPERLINKS = NO
|
||||||
|
USE_PDFLATEX = NO
|
||||||
|
LATEX_BATCHMODE = NO
|
||||||
|
LATEX_HIDE_INDICES = NO
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to the RTF output
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
GENERATE_RTF = NO
|
||||||
|
RTF_OUTPUT = rtf
|
||||||
|
COMPACT_RTF = NO
|
||||||
|
RTF_HYPERLINKS = NO
|
||||||
|
RTF_STYLESHEET_FILE =
|
||||||
|
RTF_EXTENSIONS_FILE =
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to the man page output
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
GENERATE_MAN = NO
|
||||||
|
MAN_OUTPUT = man
|
||||||
|
MAN_EXTENSION = .3
|
||||||
|
MAN_LINKS = NO
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to the XML output
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
GENERATE_XML = NO
|
||||||
|
XML_OUTPUT = xml
|
||||||
|
XML_SCHEMA =
|
||||||
|
XML_DTD =
|
||||||
|
XML_PROGRAMLISTING = YES
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options for the AutoGen Definitions output
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
GENERATE_AUTOGEN_DEF = NO
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to the Perl module output
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
GENERATE_PERLMOD = NO
|
||||||
|
PERLMOD_LATEX = NO
|
||||||
|
PERLMOD_PRETTY = YES
|
||||||
|
PERLMOD_MAKEVAR_PREFIX =
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# Configuration options related to the preprocessor
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
ENABLE_PREPROCESSING = YES
|
||||||
|
MACRO_EXPANSION = NO
|
||||||
|
EXPAND_ONLY_PREDEF = NO
|
||||||
|
SEARCH_INCLUDES = YES
|
||||||
|
INCLUDE_PATH =
|
||||||
|
INCLUDE_FILE_PATTERNS =
|
||||||
|
PREDEFINED =
|
||||||
|
EXPAND_AS_DEFINED =
|
||||||
|
SKIP_FUNCTION_MACROS = YES
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# Configuration::additions related to external references
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
TAGFILES =
|
||||||
|
GENERATE_TAGFILE =
|
||||||
|
ALLEXTERNALS = NO
|
||||||
|
EXTERNAL_GROUPS = YES
|
||||||
|
PERL_PATH = /usr/bin/perl
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# Configuration options related to the dot tool
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
CLASS_DIAGRAMS = NO
|
||||||
|
HIDE_UNDOC_RELATIONS = YES
|
||||||
|
HAVE_DOT = YES
|
||||||
|
CLASS_GRAPH = YES
|
||||||
|
COLLABORATION_GRAPH = YES
|
||||||
|
GROUP_GRAPHS = YES
|
||||||
|
UML_LOOK = NO
|
||||||
|
TEMPLATE_RELATIONS = NO
|
||||||
|
INCLUDE_GRAPH = YES
|
||||||
|
INCLUDED_BY_GRAPH = YES
|
||||||
|
CALL_GRAPH = YES
|
||||||
|
CALLER_GRAPH = NO
|
||||||
|
GRAPHICAL_HIERARCHY = YES
|
||||||
|
DIRECTORY_GRAPH = YES
|
||||||
|
DOT_IMAGE_FORMAT = png
|
||||||
|
DOT_PATH =
|
||||||
|
DOTFILE_DIRS =
|
||||||
|
MAX_DOT_GRAPH_WIDTH = 1024
|
||||||
|
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||||
|
MAX_DOT_GRAPH_DEPTH = 1000
|
||||||
|
DOT_TRANSPARENT = NO
|
||||||
|
DOT_MULTI_TARGETS = NO
|
||||||
|
GENERATE_LEGEND = YES
|
||||||
|
DOT_CLEANUP = YES
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# Configuration::additions related to the search engine
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
SEARCHENGINE = NO
|
@ -331,7 +331,10 @@ get_dom_node_child(struct dom_node *parent, enum dom_node_type type,
|
|||||||
/* Nodes */
|
/* Nodes */
|
||||||
|
|
||||||
struct dom_node *
|
struct dom_node *
|
||||||
init_dom_node_(unsigned char *file, int line,
|
init_dom_node_at(
|
||||||
|
#ifdef DEBUG_MEMLEAK
|
||||||
|
unsigned char *file, int line,
|
||||||
|
#endif
|
||||||
struct dom_node *parent, enum dom_node_type type,
|
struct dom_node *parent, enum dom_node_type type,
|
||||||
struct dom_string *string, int allocated)
|
struct dom_string *string, int allocated)
|
||||||
{
|
{
|
||||||
|
142
src/dom/node.h
142
src/dom/node.h
@ -1,3 +1,58 @@
|
|||||||
|
/** DOM node module
|
||||||
|
*
|
||||||
|
* @file dom/node.h
|
||||||
|
*
|
||||||
|
* This module defines the various node and node list data structures
|
||||||
|
* and functionality to modify and access them, such as adding a node as
|
||||||
|
* a child to a given node and getting the text string of a node as
|
||||||
|
* defined by the DOM specification.
|
||||||
|
*
|
||||||
|
* @par Node hierarchy
|
||||||
|
*
|
||||||
|
* DOM documents are represented as a collection of nodes arranged in a
|
||||||
|
* hierarchic structure. At the root is either a #DOM_NODE_DOCUMENT or
|
||||||
|
* #DOM_NODE_DOCUMENT_FRAGMENT node, each of which may have multiple
|
||||||
|
* child nodes. There is a well-defined order that dictates which child
|
||||||
|
* nodes may be descendants of a given type of node. For example, text
|
||||||
|
* and attribute nodes can have no children, while elements node may
|
||||||
|
* have both attribute and element nodes as children but with each type
|
||||||
|
* in different node lists. The hierarchy is somewhat encoded in the
|
||||||
|
* type specific node data, however, certain node types also define
|
||||||
|
* "custom" node lists for conveniently storing additional "embedded"
|
||||||
|
* data, such as processing instruction nodes having an attribute node
|
||||||
|
* list for conveniently accessing variable-value pairs given for
|
||||||
|
* XML-specific processing instructions:
|
||||||
|
*
|
||||||
|
* @verbatim <?xml version="1.0"?> @endverbatim
|
||||||
|
*
|
||||||
|
* @par Node lists
|
||||||
|
*
|
||||||
|
* There are two types of list: unordered (the default) and
|
||||||
|
* alphabetically ordered (also called "maps"). Both types of list
|
||||||
|
* stores all contained nodes in the index-oriented #dom_node_list data
|
||||||
|
* structure.
|
||||||
|
*
|
||||||
|
* When inserting a node into a list, first use either
|
||||||
|
* #get_dom_node_list_index or #get_dom_node_map_index (depending on
|
||||||
|
* whether the list is unordered or ordered respectively) to calculate
|
||||||
|
* the index at which to insert the new node. Then use
|
||||||
|
* #add_to_dom_node_list to insert the node in the list at the given
|
||||||
|
* position. Alternatively (and mostly preferred), simply use
|
||||||
|
* #add_dom_node to have all of the above done automatically plus some
|
||||||
|
* additional checks.
|
||||||
|
*
|
||||||
|
* A variety of node list accessors are defined. The node structure does
|
||||||
|
* not define any "next" or "previous" members to get siblings due to
|
||||||
|
* reduce memory usage (this might have to change --jonas). Instead, use
|
||||||
|
* #get_dom_node_next and #get_dom_node_next to access siblings. To
|
||||||
|
* lookup the existence of a node in a sorted node list (map) use
|
||||||
|
* #get_dom_node_map_entry. If a specific and unique node subtype should
|
||||||
|
* be found use #get_dom_node_child that given a parent node will find a
|
||||||
|
* child node based on a specific child node type and subtype. Finally,
|
||||||
|
* list can be iterated in forward and reverse order using
|
||||||
|
* #foreach_dom_node and #foreachback_dom_node.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef EL_DOM_NODE_H
|
#ifndef EL_DOM_NODE_H
|
||||||
#define EL_DOM_NODE_H
|
#define EL_DOM_NODE_H
|
||||||
|
|
||||||
@ -6,27 +61,28 @@
|
|||||||
struct dom_node_list;
|
struct dom_node_list;
|
||||||
struct dom_document;
|
struct dom_document;
|
||||||
|
|
||||||
|
/** DOM node types */
|
||||||
enum dom_node_type {
|
enum dom_node_type {
|
||||||
DOM_NODE_UNKNOWN = 0, /* for internal purpose only */
|
DOM_NODE_UNKNOWN = 0, /**< Node type used internally. */
|
||||||
|
|
||||||
DOM_NODE_ELEMENT = 1,
|
DOM_NODE_ELEMENT = 1, /**< Element node */
|
||||||
DOM_NODE_ATTRIBUTE = 2,
|
DOM_NODE_ATTRIBUTE = 2, /**< Attribute node */
|
||||||
DOM_NODE_TEXT = 3,
|
DOM_NODE_TEXT = 3, /**< Text node */
|
||||||
DOM_NODE_CDATA_SECTION = 4,
|
DOM_NODE_CDATA_SECTION = 4, /**< CData section node */
|
||||||
DOM_NODE_ENTITY_REFERENCE = 5,
|
DOM_NODE_ENTITY_REFERENCE = 5, /**< Entity reference node */
|
||||||
DOM_NODE_ENTITY = 6,
|
DOM_NODE_ENTITY = 6, /**< Entity node */
|
||||||
DOM_NODE_PROCESSING_INSTRUCTION = 7,
|
DOM_NODE_PROCESSING_INSTRUCTION = 7, /**< Processing instruction node */
|
||||||
DOM_NODE_COMMENT = 8,
|
DOM_NODE_COMMENT = 8, /**< Comment node */
|
||||||
DOM_NODE_DOCUMENT = 9,
|
DOM_NODE_DOCUMENT = 9, /**< Document root node */
|
||||||
DOM_NODE_DOCUMENT_TYPE = 10,
|
DOM_NODE_DOCUMENT_TYPE = 10, /**< Document type (DTD) node */
|
||||||
DOM_NODE_DOCUMENT_FRAGMENT = 11,
|
DOM_NODE_DOCUMENT_FRAGMENT = 11, /**< Document fragment node */
|
||||||
DOM_NODE_NOTATION = 12,
|
DOM_NODE_NOTATION = 12, /**< Notation node */
|
||||||
|
|
||||||
DOM_NODES
|
DOM_NODES /**< The number of DOM nodes */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Following is the node specific datastructures. They may contain no more
|
/* Following is the node specific data structures. They may contain no
|
||||||
* than 4 pointers or something equivalent. */
|
* more than 4 pointers or something equivalent. */
|
||||||
|
|
||||||
/* The document URI is stored in the string / length members. */
|
/* The document URI is stored in the string / length members. */
|
||||||
struct dom_document_node {
|
struct dom_document_node {
|
||||||
@ -173,26 +229,38 @@ union dom_node_data {
|
|||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
/* This structure is size critical so keep ordering to make it easier to pack
|
/** DOM node
|
||||||
* and avoid unneeded members. */
|
*
|
||||||
|
* The node data structure is an abstract container that can be used to
|
||||||
|
* represent the hierarchic structure of a document, such as relation
|
||||||
|
* between elements, attributes, etc.
|
||||||
|
*
|
||||||
|
* @note This structure is size critical so keep ordering to make
|
||||||
|
* it easier to pack and avoid unneeded members.
|
||||||
|
*/
|
||||||
struct dom_node {
|
struct dom_node {
|
||||||
/* The type of the node */
|
/** The type of the node. Holds a #dom_node_type enum value. */
|
||||||
uint16_t type; /* -> enum dom_node_type */
|
uint16_t type; /* -> enum dom_node_type */
|
||||||
|
|
||||||
/* Was the node string allocated? */
|
/** Was the node string allocated? */
|
||||||
unsigned int allocated:1;
|
unsigned int allocated:1;
|
||||||
|
|
||||||
/* Can contain either stuff like element name or for attributes the
|
/** Type specific node string. Can contain either stuff like
|
||||||
* attribute name. */
|
* element name or for attributes the attribute name. */
|
||||||
struct dom_string string;
|
struct dom_string string;
|
||||||
|
|
||||||
|
/** The parent node. The parent node is NULL for the root node. */
|
||||||
struct dom_node *parent;
|
struct dom_node *parent;
|
||||||
|
|
||||||
/* Various info depending on the type of the node. */
|
/** Type specific node data. */
|
||||||
union dom_node_data data;
|
union dom_node_data data;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* A node list can be used for storing indexed nodes */
|
/** DOM node list
|
||||||
|
*
|
||||||
|
* A node list can be used for storing indexed nodes. If a node list
|
||||||
|
* should be sorted alphabetically use the #get_dom_node_map_index
|
||||||
|
* function to find the index of new nodes before inserting them. */
|
||||||
struct dom_node_list {
|
struct dom_node_list {
|
||||||
size_t size;
|
size_t size;
|
||||||
struct dom_node *entries[1];
|
struct dom_node *entries[1];
|
||||||
@ -250,18 +318,34 @@ get_dom_node_map_entry(struct dom_node_list *node_map,
|
|||||||
/* Removes the node and all its children and free()s itself */
|
/* Removes the node and all its children and free()s itself */
|
||||||
void done_dom_node(struct dom_node *node);
|
void done_dom_node(struct dom_node *node);
|
||||||
|
|
||||||
|
#ifndef DEBUG_MEMLEAK
|
||||||
|
|
||||||
/* The allocated argument is used as the value of node->allocated if >= 0.
|
/* The allocated argument is used as the value of node->allocated if >= 0.
|
||||||
* Use -1 to default node->allocated to the value of parent->allocated. */
|
* Use -1 to default node->allocated to the value of parent->allocated. */
|
||||||
|
|
||||||
struct dom_node *
|
struct dom_node *
|
||||||
init_dom_node_(unsigned char *file, int line,
|
init_dom_node_at(struct dom_node *parent, enum dom_node_type type,
|
||||||
struct dom_node *parent, enum dom_node_type type,
|
struct dom_string *string, int allocated);
|
||||||
struct dom_string *string, int allocated);
|
|
||||||
|
|
||||||
#define init_dom_node(type, string, allocated) \
|
#define init_dom_node(type, string, allocated) \
|
||||||
init_dom_node_(__FILE__, __LINE__, NULL, type, string, allocated)
|
init_dom_node_at(NULL, type, string, allocated)
|
||||||
|
|
||||||
#define add_dom_node(parent, type, string) \
|
#define add_dom_node(parent, type, string) \
|
||||||
init_dom_node_(__FILE__, __LINE__, parent, type, string, -1)
|
init_dom_node_at(parent, type, string, -1)
|
||||||
|
|
||||||
|
#else
|
||||||
|
struct dom_node *
|
||||||
|
init_dom_node_at(unsigned char *file, int line,
|
||||||
|
struct dom_node *parent, enum dom_node_type type,
|
||||||
|
struct dom_string *string, int allocated);
|
||||||
|
|
||||||
|
#define init_dom_node(type, string, allocated) \
|
||||||
|
init_dom_node_at(__FILE__, __LINE__, NULL, type, string, allocated)
|
||||||
|
|
||||||
|
#define add_dom_node(parent, type, string) \
|
||||||
|
init_dom_node_at(__FILE__, __LINE__, parent, type, string, -1)
|
||||||
|
|
||||||
|
#endif /* DEBUG_MEMLEAK */
|
||||||
|
|
||||||
#define add_dom_element(parent, string) \
|
#define add_dom_element(parent, string) \
|
||||||
add_dom_node(parent, DOM_NODE_ELEMENT, string)
|
add_dom_node(parent, DOM_NODE_ELEMENT, string)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user