libpurple/xmlnode.h

Wed, 13 May 2009 20:29:03 +0000

author
Marcus Lundblad <malu@pidgin.im>
date
Wed, 13 May 2009 20:29:03 +0000
changeset 27110
05ca719b901b
parent 26831
bdddc4158544
child 27345
37d67bee50c2
permissions
-rw-r--r--

Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.

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
20147
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19897
diff changeset
4 */
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19897
diff changeset
5
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19897
diff changeset
6 /* purple
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
7 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15609
diff changeset
8 * Purple is the legal property of its developers, whose names are too numerous
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7642
diff changeset
9 * 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
10 * source distribution.
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
11 *
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
12 * This program is free software; you can redistribute it and/or modify
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
13 * 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
14 * the Free Software Foundation; either version 2 of the License, or
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
15 * (at your option) any later version.
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
16 *
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
17 * This program is distributed in the hope that it will be useful,
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
20 * GNU General Public License for more details.
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
21 *
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
22 * You should have received a copy of the GNU General Public License
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
23 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 18131
diff changeset
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
25 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15609
diff changeset
26 #ifndef _PURPLE_XMLNODE_H_
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15609
diff changeset
27 #define _PURPLE_XMLNODE_H_
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
28
23659
8251d0f67df5 restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23643
diff changeset
29 #include <glib.h>
8251d0f67df5 restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23643
diff changeset
30
14988
66b34458d49e [gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents: 14498
diff changeset
31 #ifdef __cplusplus
66b34458d49e [gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents: 14498
diff changeset
32 extern "C" {
66b34458d49e [gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents: 14498
diff changeset
33 #endif
66b34458d49e [gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents: 14498
diff changeset
34
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
35 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
36 * The valid types for an xmlnode
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
37 */
8135
d4df7d1821a5 [gaim-migrate @ 8840]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
38 typedef enum _XMLNodeType
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
39 {
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
40 XMLNODE_TYPE_TAG, /**< Just a tag */
14162
3546040af8e2 [gaim-migrate @ 16730]
Daniel Atallah <datallah@pidgin.im>
parents: 13808
diff changeset
41 XMLNODE_TYPE_ATTRIB, /**< Has attributes */
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
42 XMLNODE_TYPE_DATA /**< Has data */
8135
d4df7d1821a5 [gaim-migrate @ 8840]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
43 } XMLNodeType;
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
44
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
45 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
46 * An xmlnode.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
47 */
14386
5563ea640401 [gaim-migrate @ 17019]
Nathan Walp <nwalp@pidgin.im>
parents: 14254
diff changeset
48 typedef struct _xmlnode xmlnode;
5563ea640401 [gaim-migrate @ 17019]
Nathan Walp <nwalp@pidgin.im>
parents: 14254
diff changeset
49 struct _xmlnode
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
50 {
14162
3546040af8e2 [gaim-migrate @ 16730]
Daniel Atallah <datallah@pidgin.im>
parents: 13808
diff changeset
51 char *name; /**< The name of the node. */
15238
e52522b871ee [gaim-migrate @ 17963]
Mark Doliner <markdoliner@pidgin.im>
parents: 14988
diff changeset
52 char *xmlns; /**< The namespace of the node */
14162
3546040af8e2 [gaim-migrate @ 16730]
Daniel Atallah <datallah@pidgin.im>
parents: 13808
diff changeset
53 XMLNodeType type; /**< The type of the node. */
3546040af8e2 [gaim-migrate @ 16730]
Daniel Atallah <datallah@pidgin.im>
parents: 13808
diff changeset
54 char *data; /**< The data for the node. */
3546040af8e2 [gaim-migrate @ 16730]
Daniel Atallah <datallah@pidgin.im>
parents: 13808
diff changeset
55 size_t data_sz; /**< The size of the data. */
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
56 struct _xmlnode *parent; /**< The parent node or @c NULL.*/
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
57 struct _xmlnode *child; /**< The child node or @c NULL.*/
12233
0570720fee6c [gaim-migrate @ 14535]
Michael Carlson <corfe83@users.sourceforge.net>
parents: 11707
diff changeset
58 struct _xmlnode *lastchild; /**< The last child node or @c NULL.*/
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
59 struct _xmlnode *next; /**< The next node or @c NULL. */
21454
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
60 char *prefix; /**< The namespace prefix if any. */
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
61 GHashTable *namespace_map; /**< The namespace map. */
14386
5563ea640401 [gaim-migrate @ 17019]
Nathan Walp <nwalp@pidgin.im>
parents: 14254
diff changeset
62 };
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
63
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
64 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
65 * Creates a new xmlnode.
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 * @param name The name of the node.
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 * @return The new node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
70 */
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
71 xmlnode *xmlnode_new(const char *name);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
72
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
73 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
74 * Creates a new xmlnode child.
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 * @param parent The parent node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
77 * @param name The name of the child node.
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 * @return The new child node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
80 */
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
81 xmlnode *xmlnode_new_child(xmlnode *parent, const char *name);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
82
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 * Inserts a node into a node as a child.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
85 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
86 * @param parent The parent node to insert child into.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
87 * @param child The child node to insert into parent.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
88 */
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
89 void xmlnode_insert_child(xmlnode *parent, xmlnode *child);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
90
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
91 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
92 * Gets a child node named name.
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 * @param parent The parent node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
95 * @param name The child's name.
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 * @return The child or NULL.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
98 */
10736
fb529f29c25c [gaim-migrate @ 12338]
Mark Doliner <markdoliner@pidgin.im>
parents: 10425
diff changeset
99 xmlnode *xmlnode_get_child(const xmlnode *parent, const char *name);
10327
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 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
102 * Gets a child node named name in a namespace.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
103 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
104 * @param parent The parent node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
105 * @param name The child's name.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
106 * @param xmlns The namespace.
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 * @return The child or NULL.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
109 */
10736
fb529f29c25c [gaim-migrate @ 12338]
Mark Doliner <markdoliner@pidgin.im>
parents: 10425
diff changeset
110 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
111
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
112 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
113 * Gets the next node with the same name as node.
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 * @param node The node of a twin to find.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
116 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
117 * @return The twin of node or NULL.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
118 */
8135
d4df7d1821a5 [gaim-migrate @ 8840]
Nathan Walp <nwalp@pidgin.im>
parents: 8046
diff changeset
119 xmlnode *xmlnode_get_next_twin(xmlnode *node);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
120
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
121 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
122 * Inserts data into a node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
123 *
10415
faceb835eb87 [gaim-migrate @ 11665]
Mark Doliner <markdoliner@pidgin.im>
parents: 10337
diff changeset
124 * @param node The node to insert data into.
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
125 * @param data The data to insert.
10415
faceb835eb87 [gaim-migrate @ 11665]
Mark Doliner <markdoliner@pidgin.im>
parents: 10337
diff changeset
126 * @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
127 * null-terminated you can pass in -1.
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
128 */
10848
43c8f0954e21 [gaim-migrate @ 12520]
Nathan Walp <nwalp@pidgin.im>
parents: 10736
diff changeset
129 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
130
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
131 /**
18131
7127441da3ba add xmlnode_get_data_unescaped(), and got rid of an unecessary realloc
Nathan Walp <nwalp@pidgin.im>
parents: 15884
diff changeset
132 * Gets (escaped) data from a 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 * @param node The node to get data from.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
135 *
20546
35d778ab0450 Correctly process an additional <Service> with type Profile and name 'Messenger Roaming Identity' sent with the contact list using a recently registered WLM account, that was causing the initial ADL command to be sent malformed, and our presence status not being forwarded to our buddies
Carlos Silva <typ0@pidgin.im>
parents: 18131
diff changeset
136 * @return The data from the node or NULL. This data is in raw escaped format.
18131
7127441da3ba add xmlnode_get_data_unescaped(), and got rid of an unecessary realloc
Nathan Walp <nwalp@pidgin.im>
parents: 15884
diff changeset
137 * You must g_free this string when finished using it.
7127441da3ba add xmlnode_get_data_unescaped(), and got rid of an unecessary realloc
Nathan Walp <nwalp@pidgin.im>
parents: 15884
diff changeset
138 */
7127441da3ba add xmlnode_get_data_unescaped(), and got rid of an unecessary realloc
Nathan Walp <nwalp@pidgin.im>
parents: 15884
diff changeset
139 char *xmlnode_get_data(xmlnode *node);
7127441da3ba add xmlnode_get_data_unescaped(), and got rid of an unecessary realloc
Nathan Walp <nwalp@pidgin.im>
parents: 15884
diff changeset
140
7127441da3ba add xmlnode_get_data_unescaped(), and got rid of an unecessary realloc
Nathan Walp <nwalp@pidgin.im>
parents: 15884
diff changeset
141 /**
7127441da3ba add xmlnode_get_data_unescaped(), and got rid of an unecessary realloc
Nathan Walp <nwalp@pidgin.im>
parents: 15884
diff changeset
142 * Gets unescaped data from a node.
7127441da3ba add xmlnode_get_data_unescaped(), and got rid of an unecessary realloc
Nathan Walp <nwalp@pidgin.im>
parents: 15884
diff changeset
143 *
7127441da3ba add xmlnode_get_data_unescaped(), and got rid of an unecessary realloc
Nathan Walp <nwalp@pidgin.im>
parents: 15884
diff changeset
144 * @param node The node to get data from.
7127441da3ba add xmlnode_get_data_unescaped(), and got rid of an unecessary realloc
Nathan Walp <nwalp@pidgin.im>
parents: 15884
diff changeset
145 *
7127441da3ba add xmlnode_get_data_unescaped(), and got rid of an unecessary realloc
Nathan Walp <nwalp@pidgin.im>
parents: 15884
diff changeset
146 * @return The data from the node, in unescaped form. You must g_free
14162
3546040af8e2 [gaim-migrate @ 16730]
Daniel Atallah <datallah@pidgin.im>
parents: 13808
diff changeset
147 * this string when finished using it.
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
148 */
18131
7127441da3ba add xmlnode_get_data_unescaped(), and got rid of an unecessary realloc
Nathan Walp <nwalp@pidgin.im>
parents: 15884
diff changeset
149 char *xmlnode_get_data_unescaped(xmlnode *node);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
150
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
151 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
152 * Sets an attribute for a node.
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 * @param node The node to set an attribute for.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
155 * @param attr The name of the attribute.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
156 * @param value The value of the attribute.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
157 */
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
158 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
159
26393
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
160 #if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_XMLNODE_C_)
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
161 /**
21454
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
162 * Sets a prefixed attribute for a node
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
163 *
21552
6920e51d8f27 Get rid of a few silly doxygen warnings
Mark Doliner <markdoliner@pidgin.im>
parents: 21454
diff changeset
164 * @param node The node to set an attribute for.
6920e51d8f27 Get rid of a few silly doxygen warnings
Mark Doliner <markdoliner@pidgin.im>
parents: 21454
diff changeset
165 * @param attr The name of the attribute to set
6920e51d8f27 Get rid of a few silly doxygen warnings
Mark Doliner <markdoliner@pidgin.im>
parents: 21454
diff changeset
166 * @param prefix The prefix of the attribute to ste
6920e51d8f27 Get rid of a few silly doxygen warnings
Mark Doliner <markdoliner@pidgin.im>
parents: 21454
diff changeset
167 * @param value The value of the attribute
26393
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
168 *
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
169 * @deprecated Use xmlnode_set_attrib_full instead.
21454
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
170 */
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
171 void xmlnode_set_attrib_with_prefix(xmlnode *node, const char *attr, const char *prefix, const char *value);
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
172
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
173 /**
15265
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
174 * Sets a namespaced attribute for a node
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
175 *
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
176 * @param node The node to set an attribute for.
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
177 * @param attr The name of the attribute to set
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
178 * @param xmlns The namespace of the attribute to ste
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
179 * @param value The value of the attribute
26393
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
180 *
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
181 * @deprecated Use xmlnode_set_attrib_full instead.
15265
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
182 */
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
183 void xmlnode_set_attrib_with_namespace(xmlnode *node, const char *attr, const char *xmlns, const char *value);
26393
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
184 #endif /* PURPLE_DISABLE_DEPRECATED */
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
185
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
186 /**
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
187 * Sets a namespaced attribute for a node
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
188 *
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
189 * @param node The node to set an attribute for.
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
190 * @param attr The name of the attribute to set
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
191 * @param xmlns The namespace of the attribute to ste
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
192 * @param prefix The prefix of the attribute to ste
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
193 * @param value The value of the attribute
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
194 *
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
195 * @since 2.6.0
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
196 */
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
197 void xmlnode_set_attrib_full(xmlnode *node, const char *attr, const char *xmlns,
7420fd99903a Add xmlnode_set_attrib_full that enables you to set an attribute with both
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25911
diff changeset
198 const char *prefix, const char *value);
15265
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
199
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
200 /**
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
201 * Gets an attribute from a node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
202 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
203 * @param node The node to get an attribute from.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
204 * @param attr The attribute to get.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
205 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
206 * @return The value of the attribute.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
207 */
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
208 const char *xmlnode_get_attrib(xmlnode *node, const char *attr);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
209
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
210 /**
15265
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
211 * Gets a namespaced attribute from a node
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
212 *
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
213 * @param node The node to get an attribute from.
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
214 * @param attr The attribute to get
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
215 * @param xmlns The namespace of the attribute to get
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
216 *
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
217 * @return The value of the attribute/
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
218 */
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
219 const char *xmlnode_get_attrib_with_namespace(xmlnode *node, const char *attr, const char *xmlns);
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
220
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
221 /**
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
222 * Removes an attribute from a node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
223 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
224 * @param node The node to remove an attribute from.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
225 * @param attr The attribute to remove.
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_remove_attrib(xmlnode *node, const char *attr);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
228
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
229 /**
15265
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
230 * Removes a namespaced attribute from a node
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
231 *
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
232 * @param node The node to remove an attribute from
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
233 * @param attr The attribute to remove
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
234 * @param xmlns The namespace of the attribute to remove
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
235 */
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
236 void xmlnode_remove_attrib_with_namespace(xmlnode *node, const char *attr, const char *xmlns);
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
237
a5b0ab58b05d [gaim-migrate @ 17993]
Sean Egan <seanegan@pidgin.im>
parents: 15238
diff changeset
238 /**
13808
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
239 * Sets the namespace of a node
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
240 *
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
241 * @param node The node to qualify
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
242 * @param xmlns The namespace of the node
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
243 */
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
244 void xmlnode_set_namespace(xmlnode *node, const char *xmlns);
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
245
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
246 /**
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
247 * Returns the namespace of a node
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
248 *
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
249 * @param node The node to get the namepsace from
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
250 * @return The namespace of this node
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
251 */
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
252 const char *xmlnode_get_namespace(xmlnode *node);
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
253
411ee56da344 [gaim-migrate @ 16229]
Sean Egan <seanegan@pidgin.im>
parents: 12887
diff changeset
254 /**
21454
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
255 * Sets the prefix of a node
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
256 *
21552
6920e51d8f27 Get rid of a few silly doxygen warnings
Mark Doliner <markdoliner@pidgin.im>
parents: 21454
diff changeset
257 * @param node The node to qualify
6920e51d8f27 Get rid of a few silly doxygen warnings
Mark Doliner <markdoliner@pidgin.im>
parents: 21454
diff changeset
258 * @param prefix The prefix of the node
21454
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
259 */
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
260 void xmlnode_set_prefix(xmlnode *node, const char *prefix);
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
261
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
262 /**
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
263 * Returns the prefix of a node
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
264 *
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
265 * @param node The node to get the prefix from
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
266 * @return The prefix of this node
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
267 */
25559
b8df546bf422 There's no reason for these to not be const is there? This doesn't
Mark Doliner <markdoliner@pidgin.im>
parents: 21552
diff changeset
268 const char *xmlnode_get_prefix(const xmlnode *node);
21454
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
269
2ca06ee152ac make our xmlnode preserve prefixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 20603
diff changeset
270 /**
23750
57baab09bf45 Added xmlnode_get_parent.
Michael Ruprecht <maiku@pidgin.im>
parents: 21552
diff changeset
271 * Gets the parent node.
57baab09bf45 Added xmlnode_get_parent.
Michael Ruprecht <maiku@pidgin.im>
parents: 21552
diff changeset
272 *
57baab09bf45 Added xmlnode_get_parent.
Michael Ruprecht <maiku@pidgin.im>
parents: 21552
diff changeset
273 * @param child The child node.
57baab09bf45 Added xmlnode_get_parent.
Michael Ruprecht <maiku@pidgin.im>
parents: 21552
diff changeset
274 *
57baab09bf45 Added xmlnode_get_parent.
Michael Ruprecht <maiku@pidgin.im>
parents: 21552
diff changeset
275 * @return The parent or NULL.
26646
ec5cf90362ec Add some more @since tags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26399
diff changeset
276 *
ec5cf90362ec Add some more @since tags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26399
diff changeset
277 * @since 2.6.0
23750
57baab09bf45 Added xmlnode_get_parent.
Michael Ruprecht <maiku@pidgin.im>
parents: 21552
diff changeset
278 */
57baab09bf45 Added xmlnode_get_parent.
Michael Ruprecht <maiku@pidgin.im>
parents: 21552
diff changeset
279 xmlnode *xmlnode_get_parent(const xmlnode *child);
57baab09bf45 Added xmlnode_get_parent.
Michael Ruprecht <maiku@pidgin.im>
parents: 21552
diff changeset
280
57baab09bf45 Added xmlnode_get_parent.
Michael Ruprecht <maiku@pidgin.im>
parents: 21552
diff changeset
281 /**
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
282 * Returns the node in a string of xml.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
283 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
284 * @param node The starting node to output.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
285 * @param len Address for the size of the string.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
286 *
12887
4235bbee17b1 [gaim-migrate @ 15240]
Daniel Atallah <datallah@pidgin.im>
parents: 12233
diff changeset
287 * @return The node represented as a string. You must
10415
faceb835eb87 [gaim-migrate @ 11665]
Mark Doliner <markdoliner@pidgin.im>
parents: 10337
diff changeset
288 * g_free this string when finished using it.
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
289 */
25559
b8df546bf422 There's no reason for these to not be const is there? This doesn't
Mark Doliner <markdoliner@pidgin.im>
parents: 21552
diff changeset
290 char *xmlnode_to_str(const xmlnode *node, int *len);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
291
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
292 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
293 * Returns the node in a string of human readable xml.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
294 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
295 * @param node The starting node to output.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
296 * @param len Address for the size of the string.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
297 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
298 * @return The node as human readable string including
10415
faceb835eb87 [gaim-migrate @ 11665]
Mark Doliner <markdoliner@pidgin.im>
parents: 10337
diff changeset
299 * tab and new line characters. You must
faceb835eb87 [gaim-migrate @ 11665]
Mark Doliner <markdoliner@pidgin.im>
parents: 10337
diff changeset
300 * g_free this string when finished using it.
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
301 */
25559
b8df546bf422 There's no reason for these to not be const is there? This doesn't
Mark Doliner <markdoliner@pidgin.im>
parents: 21552
diff changeset
302 char *xmlnode_to_formatted_str(const xmlnode *node, int *len);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
303
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
304 /**
10337
778231f38df6 [gaim-migrate @ 11545]
Mark Doliner <markdoliner@pidgin.im>
parents: 10327
diff changeset
305 * 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
306 * root node of an XML document will parse the entire document
778231f38df6 [gaim-migrate @ 11545]
Mark Doliner <markdoliner@pidgin.im>
parents: 10327
diff changeset
307 * 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
308 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
309 * @param str The string of xml.
11707
a2c8dd795e3b [gaim-migrate @ 13998]
Richard Laager <rlaager@pidgin.im>
parents: 10848
diff changeset
310 * @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
311 * NUL-terminated.
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
312 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
313 * @return The new node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
314 */
10848
43c8f0954e21 [gaim-migrate @ 12520]
Nathan Walp <nwalp@pidgin.im>
parents: 10736
diff changeset
315 xmlnode *xmlnode_from_str(const char *str, gssize size);
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
316
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
317 /**
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
318 * Creates a new node from the source node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
319 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
320 * @param src The node to copy.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
321 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
322 * @return A new copy of the src node.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
323 */
15609
e432251bd57e sf patch #1647731, from Markus Elfring
Mark Doliner <markdoliner@pidgin.im>
parents: 15435
diff changeset
324 xmlnode *xmlnode_copy(const xmlnode *src);
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
325
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
326 /**
17775
1df27cab581c implemented user mood, still missing the front end interface
Andreas Monitzer <am@adiumx.com>
parents: 15884
diff changeset
327 * Frees a node and all of its children.
10327
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
328 *
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
329 * @param node The node to free.
a2b44a6bff0e [gaim-migrate @ 11534]
Gary Kramlich <grim@pidgin.im>
parents: 9837
diff changeset
330 */
7131
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
331 void xmlnode_free(xmlnode *node);
bde45b2e6bf3 [gaim-migrate @ 7698]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
332
23643
4a68ddefa857 added a more generic function to read xml files (and made the util version into a wrapper) so it can be used by the
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21552
diff changeset
333 /**
4a68ddefa857 added a more generic function to read xml files (and made the util version into a wrapper) so it can be used by the
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21552
diff changeset
334 * Creates a node from a XML File. Calling this on the
4a68ddefa857 added a more generic function to read xml files (and made the util version into a wrapper) so it can be used by the
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21552
diff changeset
335 * root node of an XML document will parse the entire document
4a68ddefa857 added a more generic function to read xml files (and made the util version into a wrapper) so it can be used by the
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21552
diff changeset
336 * into a tree of nodes, and return the xmlnode of the root.
4a68ddefa857 added a more generic function to read xml files (and made the util version into a wrapper) so it can be used by the
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21552
diff changeset
337 *
26384
1b9c946aaafa Fixing warnings from `make docs` and stuff
Paul Aurich <darkrain42@pidgin.im>
parents: 25911
diff changeset
338 * @param dir The directory where the file is located
1b9c946aaafa Fixing warnings from `make docs` and stuff
Paul Aurich <darkrain42@pidgin.im>
parents: 25911
diff changeset
339 * @param filename The filename
1b9c946aaafa Fixing warnings from `make docs` and stuff
Paul Aurich <darkrain42@pidgin.im>
parents: 25911
diff changeset
340 * @param description A description of the file being parsed. Displayed to
1b9c946aaafa Fixing warnings from `make docs` and stuff
Paul Aurich <darkrain42@pidgin.im>
parents: 25911
diff changeset
341 * the user if the file cannot be read.
1b9c946aaafa Fixing warnings from `make docs` and stuff
Paul Aurich <darkrain42@pidgin.im>
parents: 25911
diff changeset
342 * @param process The subsystem that is calling xmlnode_from_file. Used as
1b9c946aaafa Fixing warnings from `make docs` and stuff
Paul Aurich <darkrain42@pidgin.im>
parents: 25911
diff changeset
343 * the category for debugging.
23643
4a68ddefa857 added a more generic function to read xml files (and made the util version into a wrapper) so it can be used by the
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21552
diff changeset
344 *
26384
1b9c946aaafa Fixing warnings from `make docs` and stuff
Paul Aurich <darkrain42@pidgin.im>
parents: 25911
diff changeset
345 * @return The new node or NULL if an error occurred.
25885
5b5e2ca316b2 Add @since 2.6.0 doxygen comments to some of our new functions, and
Mark Doliner <markdoliner@pidgin.im>
parents: 23659
diff changeset
346 *
5b5e2ca316b2 Add @since 2.6.0 doxygen comments to some of our new functions, and
Mark Doliner <markdoliner@pidgin.im>
parents: 23659
diff changeset
347 * @since 2.6.0
23643
4a68ddefa857 added a more generic function to read xml files (and made the util version into a wrapper) so it can be used by the
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21552
diff changeset
348 */
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 25885
diff changeset
349 xmlnode *xmlnode_from_file(const char *dir, const char *filename,
23643
4a68ddefa857 added a more generic function to read xml files (and made the util version into a wrapper) so it can be used by the
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21552
diff changeset
350 const char *description, const char *process);
4a68ddefa857 added a more generic function to read xml files (and made the util version into a wrapper) so it can be used by the
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 21552
diff changeset
351
14988
66b34458d49e [gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents: 14498
diff changeset
352 #ifdef __cplusplus
66b34458d49e [gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents: 14498
diff changeset
353 }
66b34458d49e [gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents: 14498
diff changeset
354 #endif
66b34458d49e [gaim-migrate @ 17698]
Richard Laager <rlaager@pidgin.im>
parents: 14498
diff changeset
355
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15609
diff changeset
356 #endif /* _PURPLE_XMLNODE_H_ */

mercurial