Wed, 13 May 2009 20:29:03 +0000
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.
| 6562 | 1 | /** |
| 2 | * @file value.c Value wrapper API | |
| 3 | * @ingroup core | |
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
4 | */ |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
5 | |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
6 | /* purple |
| 6562 | 7 | * |
| 15884 | 8 | * Purple is the legal property of its developers, whose names are too numerous |
| 8046 | 9 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 10 | * source distribution. | |
| 6562 | 11 | * |
| 12 | * This program is free software; you can redistribute it and/or modify | |
| 13 | * it under the terms of the GNU General Public License as published by | |
| 14 | * the Free Software Foundation; either version 2 of the License, or | |
| 15 | * (at your option) any later version. | |
| 16 | * | |
| 17 | * This program is distributed in the hope that it will be useful, | |
| 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 20 | * GNU General Public License for more details. | |
| 21 | * | |
| 22 | * You should have received a copy of the GNU General Public License | |
| 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:
15884
diff
changeset
|
24 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 6562 | 25 | */ |
| 26 | #include "internal.h" | |
| 27 | ||
| 28 | #include "value.h" | |
| 29 | ||
| 30 | #define OUTGOING_FLAG 0x01 | |
| 31 | ||
| 15884 | 32 | PurpleValue * |
| 33 | purple_value_new(PurpleType type, ...) | |
| 6562 | 34 | { |
| 15884 | 35 | PurpleValue *value; |
| 6562 | 36 | va_list args; |
| 37 | ||
| 15884 | 38 | g_return_val_if_fail(type != PURPLE_TYPE_UNKNOWN, NULL); |
| 6562 | 39 | |
| 15884 | 40 | value = g_new0(PurpleValue, 1); |
| 6562 | 41 | |
| 42 | value->type = type; | |
| 43 | ||
| 44 | va_start(args, type); | |
| 45 | ||
| 15884 | 46 | if (type == PURPLE_TYPE_SUBTYPE) |
| 6562 | 47 | value->u.subtype = va_arg(args, int); |
| 15884 | 48 | else if (type == PURPLE_TYPE_BOXED) |
| 6562 | 49 | value->u.specific_type = g_strdup(va_arg(args, char *)); |
| 50 | ||
| 51 | va_end(args); | |
| 52 | ||
| 53 | return value; | |
| 54 | } | |
| 55 | ||
| 15884 | 56 | PurpleValue * |
| 57 | purple_value_new_outgoing(PurpleType type, ...) | |
| 6562 | 58 | { |
| 15884 | 59 | PurpleValue *value; |
| 6562 | 60 | va_list args; |
| 61 | ||
| 15884 | 62 | g_return_val_if_fail(type != PURPLE_TYPE_UNKNOWN, NULL); |
| 6562 | 63 | |
| 15884 | 64 | value = g_new0(PurpleValue, 1); |
| 6562 | 65 | |
| 66 | value->type = type; | |
| 67 | ||
| 68 | va_start(args, type); | |
| 69 | ||
| 15884 | 70 | if (type == PURPLE_TYPE_SUBTYPE) |
| 6562 | 71 | value->u.subtype = va_arg(args, int); |
| 15884 | 72 | else if (type == PURPLE_TYPE_BOXED) |
| 6562 | 73 | value->u.specific_type = g_strdup(va_arg(args, char *)); |
| 74 | ||
| 75 | va_end(args); | |
| 76 | ||
| 77 | value->flags |= OUTGOING_FLAG; | |
| 78 | ||
| 79 | return value; | |
| 80 | } | |
| 81 | ||
| 82 | void | |
| 15884 | 83 | purple_value_destroy(PurpleValue *value) |
| 6562 | 84 | { |
| 85 | g_return_if_fail(value != NULL); | |
| 86 | ||
| 15884 | 87 | if (purple_value_get_type(value) == PURPLE_TYPE_BOXED) |
| 6562 | 88 | { |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
8809
diff
changeset
|
89 | g_free(value->u.specific_type); |
| 6562 | 90 | } |
| 15884 | 91 | else if (purple_value_get_type(value) == PURPLE_TYPE_STRING) |
| 6562 | 92 | { |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
8809
diff
changeset
|
93 | g_free(value->data.string_data); |
| 6562 | 94 | } |
| 95 | ||
| 96 | g_free(value); | |
| 97 | } | |
| 98 | ||
| 15884 | 99 | PurpleValue * |
| 100 | purple_value_dup(const PurpleValue *value) | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
101 | { |
| 15884 | 102 | PurpleValue *new_value; |
| 103 | PurpleType type; | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
104 | |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
105 | g_return_val_if_fail(value != NULL, NULL); |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
106 | |
| 15884 | 107 | type = purple_value_get_type(value); |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
108 | |
| 15884 | 109 | if (type == PURPLE_TYPE_SUBTYPE) |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
110 | { |
| 15884 | 111 | new_value = purple_value_new(PURPLE_TYPE_SUBTYPE, |
| 112 | purple_value_get_subtype(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
113 | } |
| 15884 | 114 | else if (type == PURPLE_TYPE_BOXED) |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
115 | { |
| 15884 | 116 | new_value = purple_value_new(PURPLE_TYPE_BOXED, |
| 117 | purple_value_get_specific_type(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
118 | } |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
119 | else |
| 15884 | 120 | new_value = purple_value_new(type); |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
121 | |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
122 | new_value->flags = value->flags; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
123 | |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
124 | switch (type) |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
125 | { |
| 15884 | 126 | case PURPLE_TYPE_CHAR: |
| 127 | purple_value_set_char(new_value, purple_value_get_char(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
128 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
129 | |
| 15884 | 130 | case PURPLE_TYPE_UCHAR: |
| 131 | purple_value_set_uchar(new_value, purple_value_get_uchar(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
132 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
133 | |
| 15884 | 134 | case PURPLE_TYPE_BOOLEAN: |
| 135 | purple_value_set_boolean(new_value, purple_value_get_boolean(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
136 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
137 | |
| 15884 | 138 | case PURPLE_TYPE_SHORT: |
| 139 | purple_value_set_short(new_value, purple_value_get_short(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
140 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
141 | |
| 15884 | 142 | case PURPLE_TYPE_USHORT: |
| 143 | purple_value_set_ushort(new_value, purple_value_get_ushort(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
144 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
145 | |
| 15884 | 146 | case PURPLE_TYPE_INT: |
| 147 | purple_value_set_int(new_value, purple_value_get_int(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
148 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
149 | |
| 15884 | 150 | case PURPLE_TYPE_UINT: |
| 151 | purple_value_set_uint(new_value, purple_value_get_uint(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
152 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
153 | |
| 15884 | 154 | case PURPLE_TYPE_LONG: |
| 155 | purple_value_set_long(new_value, purple_value_get_long(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
156 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
157 | |
| 15884 | 158 | case PURPLE_TYPE_ULONG: |
| 159 | purple_value_set_ulong(new_value, purple_value_get_ulong(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
160 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
161 | |
| 15884 | 162 | case PURPLE_TYPE_INT64: |
| 163 | purple_value_set_int64(new_value, purple_value_get_int64(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
164 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
165 | |
| 15884 | 166 | case PURPLE_TYPE_UINT64: |
| 167 | purple_value_set_uint64(new_value, purple_value_get_uint64(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
168 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
169 | |
| 15884 | 170 | case PURPLE_TYPE_STRING: |
| 171 | purple_value_set_string(new_value, purple_value_get_string(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
172 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
173 | |
| 15884 | 174 | case PURPLE_TYPE_OBJECT: |
| 175 | purple_value_set_object(new_value, purple_value_get_object(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
176 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
177 | |
| 15884 | 178 | case PURPLE_TYPE_POINTER: |
| 179 | purple_value_set_pointer(new_value, purple_value_get_pointer(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
180 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
181 | |
| 15884 | 182 | case PURPLE_TYPE_ENUM: |
| 183 | purple_value_set_enum(new_value, purple_value_get_enum(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
184 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
185 | |
| 15884 | 186 | case PURPLE_TYPE_BOXED: |
| 187 | purple_value_set_boxed(new_value, purple_value_get_boxed(value)); | |
|
8809
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
188 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
189 | |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
190 | default: |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
191 | break; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
192 | } |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
193 | |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
194 | return new_value; |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
195 | } |
|
4fc1959df5ce
[gaim-migrate @ 9571]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
196 | |
| 15884 | 197 | PurpleType |
| 198 | purple_value_get_type(const PurpleValue *value) | |
| 6562 | 199 | { |
| 15884 | 200 | g_return_val_if_fail(value != NULL, PURPLE_TYPE_UNKNOWN); |
| 6562 | 201 | |
| 202 | return value->type; | |
| 203 | } | |
| 204 | ||
| 205 | unsigned int | |
| 15884 | 206 | purple_value_get_subtype(const PurpleValue *value) |
| 6562 | 207 | { |
| 208 | g_return_val_if_fail(value != NULL, 0); | |
| 15884 | 209 | g_return_val_if_fail(purple_value_get_type(value) == PURPLE_TYPE_SUBTYPE, 0); |
| 6562 | 210 | |
| 211 | return value->u.subtype; | |
| 212 | } | |
| 213 | ||
| 214 | const char * | |
| 15884 | 215 | purple_value_get_specific_type(const PurpleValue *value) |
| 6562 | 216 | { |
| 217 | g_return_val_if_fail(value != NULL, NULL); | |
| 15884 | 218 | g_return_val_if_fail(purple_value_get_type(value) == PURPLE_TYPE_BOXED, NULL); |
| 6562 | 219 | |
| 220 | return value->u.specific_type; | |
| 221 | } | |
| 222 | ||
| 223 | gboolean | |
| 15884 | 224 | purple_value_is_outgoing(const PurpleValue *value) |
| 6562 | 225 | { |
| 226 | g_return_val_if_fail(value != NULL, FALSE); | |
| 227 | ||
| 228 | return (value->flags & OUTGOING_FLAG); | |
| 229 | } | |
| 230 | ||
| 231 | void | |
| 15884 | 232 | purple_value_set_char(PurpleValue *value, char data) |
| 6562 | 233 | { |
| 234 | g_return_if_fail(value != NULL); | |
| 235 | ||
| 236 | value->data.char_data = data; | |
| 237 | } | |
| 238 | ||
| 239 | void | |
| 15884 | 240 | purple_value_set_uchar(PurpleValue *value, unsigned char data) |
| 6562 | 241 | { |
| 242 | g_return_if_fail(value != NULL); | |
| 243 | ||
| 244 | value->data.uchar_data = data; | |
| 245 | } | |
| 246 | ||
| 247 | void | |
| 15884 | 248 | purple_value_set_boolean(PurpleValue *value, gboolean data) |
| 6562 | 249 | { |
| 250 | g_return_if_fail(value != NULL); | |
| 251 | ||
| 252 | value->data.boolean_data = data; | |
| 253 | } | |
| 254 | ||
| 255 | void | |
| 15884 | 256 | purple_value_set_short(PurpleValue *value, short data) |
| 6562 | 257 | { |
| 258 | g_return_if_fail(value != NULL); | |
| 259 | ||
| 260 | value->data.short_data = data; | |
| 261 | } | |
| 262 | ||
| 263 | void | |
| 15884 | 264 | purple_value_set_ushort(PurpleValue *value, unsigned short data) |
| 6562 | 265 | { |
| 266 | g_return_if_fail(value != NULL); | |
| 267 | ||
| 268 | value->data.ushort_data = data; | |
| 269 | } | |
| 270 | ||
| 271 | void | |
| 15884 | 272 | purple_value_set_int(PurpleValue *value, int data) |
| 6562 | 273 | { |
| 274 | g_return_if_fail(value != NULL); | |
| 275 | ||
| 276 | value->data.int_data = data; | |
| 277 | } | |
| 278 | ||
| 279 | void | |
| 15884 | 280 | purple_value_set_uint(PurpleValue *value, unsigned int data) |
| 6562 | 281 | { |
| 282 | g_return_if_fail(value != NULL); | |
| 283 | ||
| 284 | value->data.int_data = data; | |
| 285 | } | |
| 286 | ||
| 287 | void | |
| 15884 | 288 | purple_value_set_long(PurpleValue *value, long data) |
| 6562 | 289 | { |
| 290 | g_return_if_fail(value != NULL); | |
| 291 | ||
| 292 | value->data.long_data = data; | |
| 293 | } | |
| 294 | ||
| 295 | void | |
| 15884 | 296 | purple_value_set_ulong(PurpleValue *value, unsigned long data) |
| 6562 | 297 | { |
| 298 | g_return_if_fail(value != NULL); | |
| 299 | ||
| 300 | value->data.long_data = data; | |
| 301 | } | |
| 302 | ||
| 303 | void | |
| 15884 | 304 | purple_value_set_int64(PurpleValue *value, gint64 data) |
| 6562 | 305 | { |
| 306 | g_return_if_fail(value != NULL); | |
| 307 | ||
| 308 | value->data.int64_data = data; | |
| 309 | } | |
| 310 | ||
| 311 | void | |
| 15884 | 312 | purple_value_set_uint64(PurpleValue *value, guint64 data) |
| 6562 | 313 | { |
| 314 | g_return_if_fail(value != NULL); | |
| 315 | ||
| 316 | value->data.uint64_data = data; | |
| 317 | } | |
| 318 | ||
| 319 | void | |
| 15884 | 320 | purple_value_set_string(PurpleValue *value, const char *data) |
| 6562 | 321 | { |
| 322 | g_return_if_fail(value != NULL); | |
|
25323
2d57b3609619
validates that string PurpleValues are utf-8
Ka-Hing Cheung <khc@pidgin.im>
parents:
20147
diff
changeset
|
323 | g_return_if_fail(data == NULL || g_utf8_validate(data, -1, NULL)); |
| 6562 | 324 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
8809
diff
changeset
|
325 | g_free(value->data.string_data); |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
8809
diff
changeset
|
326 | value->data.string_data = g_strdup(data); |
| 6562 | 327 | } |
| 328 | ||
| 329 | void | |
| 15884 | 330 | purple_value_set_object(PurpleValue *value, void *data) |
| 6562 | 331 | { |
| 332 | g_return_if_fail(value != NULL); | |
| 333 | ||
| 334 | value->data.object_data = data; | |
| 335 | } | |
| 336 | ||
| 337 | void | |
| 15884 | 338 | purple_value_set_pointer(PurpleValue *value, void *data) |
| 6562 | 339 | { |
| 340 | g_return_if_fail(value != NULL); | |
| 341 | ||
| 342 | value->data.pointer_data = data; | |
| 343 | } | |
| 344 | ||
| 345 | void | |
| 15884 | 346 | purple_value_set_enum(PurpleValue *value, int data) |
| 6562 | 347 | { |
| 348 | g_return_if_fail(value != NULL); | |
| 349 | ||
| 350 | value->data.enum_data = data; | |
| 351 | } | |
| 352 | ||
| 353 | void | |
| 15884 | 354 | purple_value_set_boxed(PurpleValue *value, void *data) |
| 6562 | 355 | { |
| 356 | g_return_if_fail(value != NULL); | |
| 357 | ||
| 358 | value->data.boxed_data = data; | |
| 359 | } | |
| 360 | ||
| 361 | char | |
| 15884 | 362 | purple_value_get_char(const PurpleValue *value) |
| 6562 | 363 | { |
| 364 | g_return_val_if_fail(value != NULL, 0); | |
| 365 | ||
| 366 | return value->data.char_data; | |
| 367 | } | |
| 368 | ||
| 369 | unsigned char | |
| 15884 | 370 | purple_value_get_uchar(const PurpleValue *value) |
| 6562 | 371 | { |
| 372 | g_return_val_if_fail(value != NULL, 0); | |
| 373 | ||
| 374 | return value->data.uchar_data; | |
| 375 | } | |
| 376 | ||
| 377 | gboolean | |
| 15884 | 378 | purple_value_get_boolean(const PurpleValue *value) |
| 6562 | 379 | { |
| 380 | g_return_val_if_fail(value != NULL, FALSE); | |
| 381 | ||
| 382 | return value->data.boolean_data; | |
| 383 | } | |
| 384 | ||
| 385 | short | |
| 15884 | 386 | purple_value_get_short(const PurpleValue *value) |
| 6562 | 387 | { |
| 388 | g_return_val_if_fail(value != NULL, 0); | |
| 389 | ||
| 390 | return value->data.short_data; | |
| 391 | } | |
| 392 | ||
| 393 | unsigned short | |
| 15884 | 394 | purple_value_get_ushort(const PurpleValue *value) |
| 6562 | 395 | { |
| 396 | g_return_val_if_fail(value != NULL, 0); | |
| 397 | ||
| 398 | return value->data.ushort_data; | |
| 399 | } | |
| 400 | ||
| 401 | int | |
| 15884 | 402 | purple_value_get_int(const PurpleValue *value) |
| 6562 | 403 | { |
| 404 | g_return_val_if_fail(value != NULL, 0); | |
| 405 | ||
| 406 | return value->data.int_data; | |
| 407 | } | |
| 408 | ||
| 409 | unsigned int | |
| 15884 | 410 | purple_value_get_uint(const PurpleValue *value) |
| 6562 | 411 | { |
| 412 | g_return_val_if_fail(value != NULL, 0); | |
| 413 | ||
| 414 | return value->data.int_data; | |
| 415 | } | |
| 416 | ||
| 417 | long | |
| 15884 | 418 | purple_value_get_long(const PurpleValue *value) |
| 6562 | 419 | { |
| 420 | g_return_val_if_fail(value != NULL, 0); | |
| 421 | ||
| 422 | return value->data.long_data; | |
| 423 | } | |
| 424 | ||
| 425 | unsigned long | |
| 15884 | 426 | purple_value_get_ulong(const PurpleValue *value) |
| 6562 | 427 | { |
| 428 | g_return_val_if_fail(value != NULL, 0); | |
| 429 | ||
| 430 | return value->data.long_data; | |
| 431 | } | |
| 432 | ||
| 433 | gint64 | |
| 15884 | 434 | purple_value_get_int64(const PurpleValue *value) |
| 6562 | 435 | { |
| 436 | g_return_val_if_fail(value != NULL, 0); | |
| 437 | ||
| 438 | return value->data.int64_data; | |
| 439 | } | |
| 440 | ||
| 441 | guint64 | |
| 15884 | 442 | purple_value_get_uint64(const PurpleValue *value) |
| 6562 | 443 | { |
| 444 | g_return_val_if_fail(value != NULL, 0); | |
| 445 | ||
| 446 | return value->data.uint64_data; | |
| 447 | } | |
| 448 | ||
| 449 | const char * | |
| 15884 | 450 | purple_value_get_string(const PurpleValue *value) |
| 6562 | 451 | { |
| 452 | g_return_val_if_fail(value != NULL, NULL); | |
| 453 | ||
| 454 | return value->data.string_data; | |
| 455 | } | |
| 456 | ||
| 457 | void * | |
| 15884 | 458 | purple_value_get_object(const PurpleValue *value) |
| 6562 | 459 | { |
| 460 | g_return_val_if_fail(value != NULL, NULL); | |
| 461 | ||
| 462 | return value->data.object_data; | |
| 463 | } | |
| 464 | ||
| 465 | void * | |
| 15884 | 466 | purple_value_get_pointer(const PurpleValue *value) |
| 6562 | 467 | { |
| 468 | g_return_val_if_fail(value != NULL, NULL); | |
| 469 | ||
| 470 | return value->data.pointer_data; | |
| 471 | } | |
| 472 | ||
| 473 | int | |
| 15884 | 474 | purple_value_get_enum(const PurpleValue *value) |
| 6562 | 475 | { |
| 476 | g_return_val_if_fail(value != NULL, -1); | |
| 477 | ||
| 478 | return value->data.enum_data; | |
| 479 | } | |
| 480 | ||
| 481 | void * | |
| 15884 | 482 | purple_value_get_boxed(const PurpleValue *value) |
| 6562 | 483 | { |
| 484 | g_return_val_if_fail(value != NULL, NULL); | |
| 485 | ||
| 486 | return value->data.boxed_data; | |
| 487 | } | |
| 488 |