libgaim/xmlnode.h

Tue, 29 Aug 2006 02:22:08 +0000

author
Hil <allhilbert@users.sourceforge.net>
date
Tue, 29 Aug 2006 02:22:08 +0000
changeset 14432
3710852cdab5
parent 14386
5563ea640401
child 14498
ede839a78714
permissions
-rw-r--r--

[gaim-migrate @ 17076]
SF Patch #1547720 from Hilbert
Fixes SF Bug #1541097

If you search, leave the Find dialog open, switch tabs, and search again, the search happens in the original tab. This patch fixes that bug. Now when you search, it searches in the active conversation window.

committer: Richard Laager <rlaager@pidgin.im>

7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1 /**
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2 * @file xmlnode.h XML DOM functions
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
3 * @ingroup core
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
4 *
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
5 * gaim
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
6 *
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7642
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7642
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7642
diff changeset
9 * source distribution.
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
10 *
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
14 * (at your option) any later version.
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
15 *
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
19 * GNU General Public License for more details.
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
20 *
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
24 */
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
25 #ifndef _GAIM_XMLNODE_H_
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
26 #define _GAIM_XMLNODE_H_
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
27
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
28 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
29 * The valid types for an xmlnode
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
30 */
8135
d4df7d1821a5 [gaim-migrate @ 8840]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
31 typedef enum _XMLNodeType
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
32 {
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
33 XMLNODE_TYPE_TAG, /**< Just a tag */
14162
3546040af8e2 [gaim-migrate @ 16730]
Daniel Atallah <datallah@pidgin.im>
parents: 13808
diff changeset
34 XMLNODE_TYPE_ATTRIB, /**< Has attributes */
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
35 XMLNODE_TYPE_DATA /**< Has data */
8135
d4df7d1821a5 [gaim-migrate @ 8840]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
36 } XMLNodeType;
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
37
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
38 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
39 * An xmlnode.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
40 */
14386
5563ea640401 [gaim-migrate @ 17019]
Nathan Walp <nwalp@pidgin.im>
parents: 14254
diff changeset
41 typedef struct _xmlnode xmlnode;
5563ea640401 [gaim-migrate @ 17019]
Nathan Walp <nwalp@pidgin.im>
parents: 14254
diff changeset
42 struct _xmlnode
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
43 {
14162
3546040af8e2 [gaim-migrate @ 16730]
Daniel Atallah <datallah@pidgin.im>
parents: 13808
diff changeset
44 char *name; /**< The name of the node. */
13808
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
45 #ifdef HAVE_LIBXML
14162
3546040af8e2 [gaim-migrate @ 16730]
Daniel Atallah <datallah@pidgin.im>
parents: 13808
diff changeset
46 char *namespace; /**< The namespace of the node */
13808
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
47 #endif
14162
3546040af8e2 [gaim-migrate @ 16730]
Daniel Atallah <datallah@pidgin.im>
parents: 13808
diff changeset
48 XMLNodeType type; /**< The type of the node. */
3546040af8e2 [gaim-migrate @ 16730]
Daniel Atallah <datallah@pidgin.im>
parents: 13808
diff changeset
49 char *data; /**< The data for the node. */
3546040af8e2 [gaim-migrate @ 16730]
Daniel Atallah <datallah@pidgin.im>
parents: 13808
diff changeset
50 size_t data_sz; /**< The size of the data. */
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
51 struct _xmlnode *parent; /**< The parent node or @c NULL.*/
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
52 struct _xmlnode *child; /**< The child node or @c NULL.*/
12233
0570720fee6c [gaim-migrate @ 14535]
Michael Carlson <corfe83@users.sourceforge.net>
parents: 11707
diff changeset
53 struct _xmlnode *lastchild; /**< The last child node or @c NULL.*/
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
54 struct _xmlnode *next; /**< The next node or @c NULL. */
14386
5563ea640401 [gaim-migrate @ 17019]
Nathan Walp <nwalp@pidgin.im>
parents: 14254
diff changeset
55 };
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
56
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
57 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
58 * Creates a new xmlnode.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
59 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
60 * @param name The name of the node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
61 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
62 * @return The new node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
63 */
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
64 xmlnode *xmlnode_new(const char *name);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
65
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
66 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
67 * Creates a new xmlnode child.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
68 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
69 * @param parent The parent node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
70 * @param name The name of the child node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
71 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
72 * @return The new child node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
73 */
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
74 xmlnode *xmlnode_new_child(xmlnode *parent, const char *name);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
75
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
76 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
77 * Inserts a node into a node as a child.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
78 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
79 * @param parent The parent node to insert child into.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
80 * @param child The child node to insert into parent.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
81 */
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
82 void xmlnode_insert_child(xmlnode *parent, xmlnode *child);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
83
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
84 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
85 * Gets a child node named name.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
86 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
87 * @param parent The parent node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
88 * @param name The child's name.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
89 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
90 * @return The child or NULL.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
91 */
10736
fb529f29c25c [gaim-migrate @ 12338]
Mark Doliner <markdoliner@pidgin.im>
parents: 10425
diff changeset
92 xmlnode *xmlnode_get_child(const xmlnode *parent, const char *name);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
93
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
94 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
95 * Gets a child node named name in a namespace.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
96 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
97 * @param parent The parent node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
98 * @param name The child's name.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
99 * @param xmlns The namespace.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
100 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
101 * @return The child or NULL.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
102 */
10736
fb529f29c25c [gaim-migrate @ 12338]
Mark Doliner <markdoliner@pidgin.im>
parents: 10425
diff changeset
103 xmlnode *xmlnode_get_child_with_namespace(const xmlnode *parent, const char *name, const char *xmlns);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
104
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
105 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
106 * Gets the next node with the same name as node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
107 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
108 * @param node The node of a twin to find.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
109 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
110 * @return The twin of node or NULL.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
111 */
8135
d4df7d1821a5 [gaim-migrate @ 8840]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
112 xmlnode *xmlnode_get_next_twin(xmlnode *node);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
113
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
114 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
115 * Inserts data into a node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
116 *
10415
faceb835eb87 [gaim-migrate @ 11665]
Mark Doliner <markdoliner@pidgin.im>
parents: 10337
diff changeset
117 * @param node The node to insert data into.
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
118 * @param data The data to insert.
10415
faceb835eb87 [gaim-migrate @ 11665]
Mark Doliner <markdoliner@pidgin.im>
parents: 10337
diff changeset
119 * @param size The size of the data to insert. If data is
faceb835eb87 [gaim-migrate @ 11665]
Mark Doliner <markdoliner@pidgin.im>
parents: 10337
diff changeset
120 * null-terminated you can pass in -1.
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
121 */
10848
43c8f0954e21 [gaim-migrate @ 12520]
Nathan Walp <nwalp@pidgin.im>
parents: 10736
diff changeset
122 void xmlnode_insert_data(xmlnode *node, const char *data, gssize size);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
123
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
124 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
125 * Gets data from a node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
126 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
127 * @param node The node to get data from.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
128 *
14162
3546040af8e2 [gaim-migrate @ 16730]
Daniel Atallah <datallah@pidgin.im>
parents: 13808
diff changeset
129 * @return The data from the node. You must g_free
3546040af8e2 [gaim-migrate @ 16730]
Daniel Atallah <datallah@pidgin.im>
parents: 13808
diff changeset
130 * this string when finished using it.
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
131 */
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
132 char *xmlnode_get_data(xmlnode *node);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
133
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
134 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
135 * Sets an attribute for a node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
136 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
137 * @param node The node to set an attribute for.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
138 * @param attr The name of the attribute.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
139 * @param value The value of the attribute.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
140 */
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
141 void xmlnode_set_attrib(xmlnode *node, const char *attr, const char *value);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
142
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
143 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
144 * Gets an attribute from a node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
145 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
146 * @param node The node to get an attribute from.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
147 * @param attr The attribute to get.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
148 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
149 * @return The value of the attribute.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
150 */
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
151 const char *xmlnode_get_attrib(xmlnode *node, const char *attr);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
152
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
153 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
154 * Removes an attribute from a node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
155 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
156 * @param node The node to remove an attribute from.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
157 * @param attr The attribute to remove.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
158 */
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
159 void xmlnode_remove_attrib(xmlnode *node, const char *attr);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
160
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
161 /**
13808
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
162 * Sets the namespace of a node
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
163 *
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
164 * @param node The node to qualify
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
165 * @param xmlns The namespace of the node
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
166 */
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
167 void xmlnode_set_namespace(xmlnode *node, const char *xmlns);
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
168
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
169 /**
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
170 * Returns the namespace of a node
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
171 *
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
172 * @param node The node to get the namepsace from
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
173 * @return The namespace of this node
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
174 */
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
175 const char *xmlnode_get_namespace(xmlnode *node);
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
176
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
177 /**
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
178 * Returns the node in a string of xml.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
179 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
180 * @param node The starting node to output.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
181 * @param len Address for the size of the string.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
182 *
12887
4235bbee17b1 [gaim-migrate @ 15240]
Daniel Atallah <datallah@pidgin.im>
parents: 12233
diff changeset
183 * @return The node represented as a string. You must
10415
faceb835eb87 [gaim-migrate @ 11665]
Mark Doliner <markdoliner@pidgin.im>
parents: 10337
diff changeset
184 * g_free this string when finished using it.
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
185 */
10425
d82cef15da95 [gaim-migrate @ 11677]
Mark Doliner <markdoliner@pidgin.im>
parents: 10424
diff changeset
186 char *xmlnode_to_str(xmlnode *node, int *len);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
187
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
188 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
189 * Returns the node in a string of human readable xml.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
190 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
191 * @param node The starting node to output.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
192 * @param len Address for the size of the string.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
193 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
194 * @return The node as human readable string including
10415
faceb835eb87 [gaim-migrate @ 11665]
Mark Doliner <markdoliner@pidgin.im>
parents: 10337
diff changeset
195 * tab and new line characters. You must
faceb835eb87 [gaim-migrate @ 11665]
Mark Doliner <markdoliner@pidgin.im>
parents: 10337
diff changeset
196 * g_free this string when finished using it.
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
197 */
10425
d82cef15da95 [gaim-migrate @ 11677]
Mark Doliner <markdoliner@pidgin.im>
parents: 10424
diff changeset
198 char *xmlnode_to_formatted_str(xmlnode *node, int *len);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
199
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
200 /**
10337
778231f38df6 [gaim-migrate @ 11545]
Mark Doliner <markdoliner@pidgin.im>
parents: 10327
diff changeset
201 * Creates a node from a string of XML. Calling this on the
778231f38df6 [gaim-migrate @ 11545]
Mark Doliner <markdoliner@pidgin.im>
parents: 10327
diff changeset
202 * root node of an XML document will parse the entire document
778231f38df6 [gaim-migrate @ 11545]
Mark Doliner <markdoliner@pidgin.im>
parents: 10327
diff changeset
203 * into a tree of nodes, and return the xmlnode of the root.
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
204 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
205 * @param str The string of xml.
11707
a2c8dd795e3b [gaim-migrate @ 13998]
Richard Laager <rlaager@pidgin.im>
parents: 10848
diff changeset
206 * @param size The size of the string, or -1 if @a str is
a2c8dd795e3b [gaim-migrate @ 13998]
Richard Laager <rlaager@pidgin.im>
parents: 10848
diff changeset
207 * NUL-terminated.
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
208 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
209 * @return The new node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
210 */
10848
43c8f0954e21 [gaim-migrate @ 12520]
Nathan Walp <nwalp@pidgin.im>
parents: 10736
diff changeset
211 xmlnode *xmlnode_from_str(const char *str, gssize size);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
212
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
213 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
214 * Creates a new node from the source node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
215 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
216 * @param src The node to copy.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
217 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
218 * @return A new copy of the src node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
219 */
8167
deae0da446a9 [gaim-migrate @ 8880]
Nathan Walp <nwalp@pidgin.im>
parents: 8135
diff changeset
220 xmlnode *xmlnode_copy(xmlnode *src);
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
221
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
222 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
223 * Frees a node and all of it's children.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
224 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
225 * @param node The node to free.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
226 */
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
227 void xmlnode_free(xmlnode *node);
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
228
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
229 #endif /* _GAIM_XMLNODE_H_ */

mercurial