The data contained in this repository can be downloaded to your computer using one of several clients.
Please see the documentation of your version control software client for more information.

Please select the desired protocol below to get the URL.

This URL has Read-Only access.

Statistics
| Branch: | Revision:

main_repo / libpurple / plugins / perl / common / XMLNode.c @ a274da4f

History | View | Annotate | Download (16 KB)

1
/*
2
 * This file was generated automatically by ExtUtils::ParseXS version 3.18 from the
3
 * contents of XMLNode.xs. Do not edit this file, edit XMLNode.xs instead.
4
 *
5
 *    ANY CHANGES MADE HERE WILL BE LOST!
6
 *
7
 */
8

    
9
#line 1 "XMLNode.xs"
10
#include "module.h"
11

    
12
#line 13 "XMLNode.c"
13
#ifndef PERL_UNUSED_VAR
14
#  define PERL_UNUSED_VAR(var) if (0) var = var
15
#endif
16

    
17
#ifndef dVAR
18
#  define dVAR                dNOOP
19
#endif
20

    
21

    
22
/* This stuff is not part of the API! You have been warned. */
23
#ifndef PERL_VERSION_DECIMAL
24
#  define PERL_VERSION_DECIMAL(r,v,s) (r*1000000 + v*1000 + s)
25
#endif
26
#ifndef PERL_DECIMAL_VERSION
27
#  define PERL_DECIMAL_VERSION \
28
          PERL_VERSION_DECIMAL(PERL_REVISION,PERL_VERSION,PERL_SUBVERSION)
29
#endif
30
#ifndef PERL_VERSION_GE
31
#  define PERL_VERSION_GE(r,v,s) \
32
          (PERL_DECIMAL_VERSION >= PERL_VERSION_DECIMAL(r,v,s))
33
#endif
34
#ifndef PERL_VERSION_LE
35
#  define PERL_VERSION_LE(r,v,s) \
36
          (PERL_DECIMAL_VERSION <= PERL_VERSION_DECIMAL(r,v,s))
37
#endif
38

    
39
/* XS_INTERNAL is the explicit static-linkage variant of the default
40
 * XS macro.
41
 *
42
 * XS_EXTERNAL is the same as XS_INTERNAL except it does not include
43
 * "STATIC", ie. it exports XSUB symbols. You probably don't want that
44
 * for anything but the BOOT XSUB.
45
 *
46
 * See XSUB.h in core!
47
 */
48

    
49

    
50
/* TODO: This might be compatible further back than 5.10.0. */
51
#if PERL_VERSION_GE(5, 10, 0) && PERL_VERSION_LE(5, 15, 1)
52
#  undef XS_EXTERNAL
53
#  undef XS_INTERNAL
54
#  if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING)
55
#    define XS_EXTERNAL(name) __declspec(dllexport) XSPROTO(name)
56
#    define XS_INTERNAL(name) STATIC XSPROTO(name)
57
#  endif
58
#  if defined(__SYMBIAN32__)
59
#    define XS_EXTERNAL(name) EXPORT_C XSPROTO(name)
60
#    define XS_INTERNAL(name) EXPORT_C STATIC XSPROTO(name)
61
#  endif
62
#  ifndef XS_EXTERNAL
63
#    if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus)
64
#      define XS_EXTERNAL(name) void name(pTHX_ CV* cv __attribute__unused__)
65
#      define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__)
66
#    else
67
#      ifdef __cplusplus
68
#        define XS_EXTERNAL(name) extern "C" XSPROTO(name)
69
#        define XS_INTERNAL(name) static XSPROTO(name)
70
#      else
71
#        define XS_EXTERNAL(name) XSPROTO(name)
72
#        define XS_INTERNAL(name) STATIC XSPROTO(name)
73
#      endif
74
#    endif
75
#  endif
76
#endif
77

    
78
/* perl >= 5.10.0 && perl <= 5.15.1 */
79

    
80

    
81
/* The XS_EXTERNAL macro is used for functions that must not be static
82
 * like the boot XSUB of a module. If perl didn't have an XS_EXTERNAL
83
 * macro defined, the best we can do is assume XS is the same.
84
 * Dito for XS_INTERNAL.
85
 */
86
#ifndef XS_EXTERNAL
87
#  define XS_EXTERNAL(name) XS(name)
88
#endif
89
#ifndef XS_INTERNAL
90
#  define XS_INTERNAL(name) XS(name)
91
#endif
92

    
93
/* Now, finally, after all this mess, we want an ExtUtils::ParseXS
94
 * internal macro that we're free to redefine for varying linkage due
95
 * to the EXPORT_XSUB_SYMBOLS XS keyword. This is internal, use
96
 * XS_EXTERNAL(name) or XS_INTERNAL(name) in your code if you need to!
97
 */
98

    
99
#undef XS_EUPXS
100
#if defined(PERL_EUPXS_ALWAYS_EXPORT)
101
#  define XS_EUPXS(name) XS_EXTERNAL(name)
102
#else
103
   /* default to internal */
104
#  define XS_EUPXS(name) XS_INTERNAL(name)
105
#endif
106

    
107
#ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE
108
#define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params)
109

    
110
/* prototype to pass -Wmissing-prototypes */
111
STATIC void
112
S_croak_xs_usage(pTHX_ const CV *const cv, const char *const params);
113

    
114
STATIC void
115
S_croak_xs_usage(pTHX_ const CV *const cv, const char *const params)
116
{
117
    const GV *const gv = CvGV(cv);
118

    
119
    PERL_ARGS_ASSERT_CROAK_XS_USAGE;
120

    
121
    if (gv) {
122
        const char *const gvname = GvNAME(gv);
123
        const HV *const stash = GvSTASH(gv);
124
        const char *const hvname = stash ? HvNAME(stash) : NULL;
125

    
126
        if (hvname)
127
            Perl_croak(aTHX_ "Usage: %s::%s(%s)", hvname, gvname, params);
128
        else
129
            Perl_croak(aTHX_ "Usage: %s(%s)", gvname, params);
130
    } else {
131
        /* Pants. I don't think that it should be possible to get here. */
132
        Perl_croak(aTHX_ "Usage: CODE(0x%"UVxf")(%s)", PTR2UV(cv), params);
133
    }
134
}
135
#undef  PERL_ARGS_ASSERT_CROAK_XS_USAGE
136

    
137
#ifdef PERL_IMPLICIT_CONTEXT
138
#define croak_xs_usage(a,b)    S_croak_xs_usage(aTHX_ a,b)
139
#else
140
#define croak_xs_usage        S_croak_xs_usage
141
#endif
142

    
143
#endif
144

    
145
/* NOTE: the prototype of newXSproto() is different in versions of perls,
146
 * so we define a portable version of newXSproto()
147
 */
148
#ifdef newXS_flags
149
#define newXSproto_portable(name, c_impl, file, proto) newXS_flags(name, c_impl, file, proto, 0)
150
#else
151
#define newXSproto_portable(name, c_impl, file, proto) (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv)
152
#endif /* !defined(newXS_flags) */
153

    
154
#line 155 "XMLNode.c"
155

    
156
XS_EUPXS(XS_Purple__XMLNode_copy); /* prototype to pass -Wmissing-prototypes */
157
XS_EUPXS(XS_Purple__XMLNode_copy)
158
{
159
    dVAR; dXSARGS;
160
    if (items != 1)
161
       croak_xs_usage(cv,  "src");
162
    {
163
        Purple__XMLNode        src = purple_perl_ref_object(ST(0))
164
;
165
        Purple__XMLNode        RETVAL;
166

    
167
        RETVAL = xmlnode_copy(src);
168
        ST(0) = purple_perl_bless_object(RETVAL, "Purple::XMLNode");
169
        sv_2mortal(ST(0));
170
    }
171
    XSRETURN(1);
172
}
173

    
174

    
175
XS_EUPXS(XS_Purple__XMLNode_free); /* prototype to pass -Wmissing-prototypes */
176
XS_EUPXS(XS_Purple__XMLNode_free)
177
{
178
    dVAR; dXSARGS;
179
    if (items != 1)
180
       croak_xs_usage(cv,  "node");
181
    {
182
        Purple__XMLNode        node = purple_perl_ref_object(ST(0))
183
;
184

    
185
        xmlnode_free(node);
186
    }
187
    XSRETURN_EMPTY;
188
}
189

    
190

    
191
XS_EUPXS(XS_Purple__XMLNode_from_str); /* prototype to pass -Wmissing-prototypes */
192
XS_EUPXS(XS_Purple__XMLNode_from_str)
193
{
194
    dVAR; dXSARGS;
195
    if (items != 1)
196
       croak_xs_usage(cv,  "str");
197
    {
198
        Purple__XMLNode        RETVAL;
199
        STRLEN        STRLEN_length_of_str;
200
        gssize        XSauto_length_of_str;
201
        const char *        str = (const char *)SvPV(ST(0), STRLEN_length_of_str);
202

    
203
        XSauto_length_of_str = STRLEN_length_of_str;
204

    
205
        RETVAL = xmlnode_from_str(str, XSauto_length_of_str);
206
        ST(0) = purple_perl_bless_object(RETVAL, "Purple::XMLNode");
207
        sv_2mortal(ST(0));
208
    }
209
    XSRETURN(1);
210
}
211

    
212

    
213
XS_EUPXS(XS_Purple__XMLNode_get_name); /* prototype to pass -Wmissing-prototypes */
214
XS_EUPXS(XS_Purple__XMLNode_get_name)
215
{
216
    dVAR; dXSARGS;
217
    if (items != 1)
218
       croak_xs_usage(cv,  "node");
219
    {
220
        Purple__XMLNode        node = purple_perl_ref_object(ST(0))
221
;
222
        const char *        RETVAL;
223
        dXSTARG;
224
#line 22 "XMLNode.xs"
225
        RETVAL = node->name;
226
#line 227 "XMLNode.c"
227
        sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG;
228
    }
229
    XSRETURN(1);
230
}
231

    
232

    
233
XS_EUPXS(XS_Purple__XMLNode_get_attrib); /* prototype to pass -Wmissing-prototypes */
234
XS_EUPXS(XS_Purple__XMLNode_get_attrib)
235
{
236
    dVAR; dXSARGS;
237
    if (items != 2)
238
       croak_xs_usage(cv,  "node, attr");
239
    {
240
        Purple__XMLNode        node = purple_perl_ref_object(ST(0))
241
;
242
        const char *        attr = (const char *)SvPV_nolen(ST(1))
243
;
244
        const char *        RETVAL;
245
        dXSTARG;
246

    
247
        RETVAL = xmlnode_get_attrib(node, attr);
248
        sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG;
249
    }
250
    XSRETURN(1);
251
}
252

    
253

    
254
XS_EUPXS(XS_Purple__XMLNode_get_child); /* prototype to pass -Wmissing-prototypes */
255
XS_EUPXS(XS_Purple__XMLNode_get_child)
256
{
257
    dVAR; dXSARGS;
258
    if (items != 2)
259
       croak_xs_usage(cv,  "parent, name");
260
    {
261
        Purple__XMLNode        parent = purple_perl_ref_object(ST(0))
262
;
263
        const char *        name = (const char *)SvPV_nolen(ST(1))
264
;
265
#line 36 "XMLNode.xs"
266
        xmlnode *tmp;
267
#line 268 "XMLNode.c"
268
        Purple__XMLNode        RETVAL;
269
#line 38 "XMLNode.xs"
270
        if (!name || *name == '\0') {
271
                tmp = parent->child;
272
                while (tmp && tmp->type != XMLNODE_TYPE_TAG)
273
                        tmp = tmp->next;
274
                RETVAL = tmp;
275
        } else
276
                RETVAL = xmlnode_get_child(parent, name);
277
#line 278 "XMLNode.c"
278
        ST(0) = purple_perl_bless_object(RETVAL, "Purple::XMLNode");
279
        sv_2mortal(ST(0));
280
    }
281
    XSRETURN(1);
282
}
283

    
284

    
285
XS_EUPXS(XS_Purple__XMLNode_get_child_with_namespace); /* prototype to pass -Wmissing-prototypes */
286
XS_EUPXS(XS_Purple__XMLNode_get_child_with_namespace)
287
{
288
    dVAR; dXSARGS;
289
    if (items != 3)
290
       croak_xs_usage(cv,  "parent, name, xmlns");
291
    {
292
        Purple__XMLNode        parent = purple_perl_ref_object(ST(0))
293
;
294
        const char *        name = (const char *)SvPV_nolen(ST(1))
295
;
296
        const char *        xmlns = (const char *)SvPV_nolen(ST(2))
297
;
298
        Purple__XMLNode        RETVAL;
299

    
300
        RETVAL = xmlnode_get_child_with_namespace(parent, name, xmlns);
301
        ST(0) = purple_perl_bless_object(RETVAL, "Purple::XMLNode");
302
        sv_2mortal(ST(0));
303
    }
304
    XSRETURN(1);
305
}
306

    
307

    
308
XS_EUPXS(XS_Purple__XMLNode_get_data); /* prototype to pass -Wmissing-prototypes */
309
XS_EUPXS(XS_Purple__XMLNode_get_data)
310
{
311
    dVAR; dXSARGS;
312
    if (items != 1)
313
       croak_xs_usage(cv,  "node");
314
    {
315
        Purple__XMLNode        node = purple_perl_ref_object(ST(0))
316
;
317
        gchar_own *        RETVAL;
318

    
319
        RETVAL = xmlnode_get_data(node);
320
        ST(0) = sv_newmortal();
321
        /* used when we can directly own the returned string. */
322
        /* we have to copy in the case when perl's malloc != gtk's malloc,
323
         * so best copy all the time. */
324
        sv_setpv ((SV*)ST(0), RETVAL);
325
        SvUTF8_on (ST(0));
326
        g_free (RETVAL);
327
    }
328
    XSRETURN(1);
329
}
330

    
331

    
332
XS_EUPXS(XS_Purple__XMLNode_get_next); /* prototype to pass -Wmissing-prototypes */
333
XS_EUPXS(XS_Purple__XMLNode_get_next)
334
{
335
    dVAR; dXSARGS;
336
    if (items != 1)
337
       croak_xs_usage(cv,  "node");
338
    {
339
        Purple__XMLNode        node = purple_perl_ref_object(ST(0))
340
;
341
#line 62 "XMLNode.xs"
342
        xmlnode *tmp;
343
#line 344 "XMLNode.c"
344
        Purple__XMLNode        RETVAL;
345
#line 64 "XMLNode.xs"
346
        tmp = node->next;
347
        while (tmp && tmp->type != XMLNODE_TYPE_TAG)
348
                tmp = tmp->next;
349
        RETVAL = tmp;
350
#line 351 "XMLNode.c"
351
        ST(0) = purple_perl_bless_object(RETVAL, "Purple::XMLNode");
352
        sv_2mortal(ST(0));
353
    }
354
    XSRETURN(1);
355
}
356

    
357

    
358
XS_EUPXS(XS_Purple__XMLNode_get_next_twin); /* prototype to pass -Wmissing-prototypes */
359
XS_EUPXS(XS_Purple__XMLNode_get_next_twin)
360
{
361
    dVAR; dXSARGS;
362
    if (items != 1)
363
       croak_xs_usage(cv,  "node");
364
    {
365
        Purple__XMLNode        node = purple_perl_ref_object(ST(0))
366
;
367
        Purple__XMLNode        RETVAL;
368

    
369
        RETVAL = xmlnode_get_next_twin(node);
370
        ST(0) = purple_perl_bless_object(RETVAL, "Purple::XMLNode");
371
        sv_2mortal(ST(0));
372
    }
373
    XSRETURN(1);
374
}
375

    
376

    
377
XS_EUPXS(XS_Purple__XMLNode_insert_child); /* prototype to pass -Wmissing-prototypes */
378
XS_EUPXS(XS_Purple__XMLNode_insert_child)
379
{
380
    dVAR; dXSARGS;
381
    if (items != 2)
382
       croak_xs_usage(cv,  "parent, child");
383
    {
384
        Purple__XMLNode        parent = purple_perl_ref_object(ST(0))
385
;
386
        Purple__XMLNode        child = purple_perl_ref_object(ST(1))
387
;
388

    
389
        xmlnode_insert_child(parent, child);
390
    }
391
    XSRETURN_EMPTY;
392
}
393

    
394

    
395
XS_EUPXS(XS_Purple__XMLNode_insert_data); /* prototype to pass -Wmissing-prototypes */
396
XS_EUPXS(XS_Purple__XMLNode_insert_data)
397
{
398
    dVAR; dXSARGS;
399
    if (items != 3)
400
       croak_xs_usage(cv,  "node, data, size");
401
    {
402
        Purple__XMLNode        node = purple_perl_ref_object(ST(0))
403
;
404
        const char *        data = (const char *)SvPV_nolen(ST(1))
405
;
406
        gssize        size = (gssize)SvIV(ST(2))
407
;
408

    
409
        xmlnode_insert_data(node, data, size);
410
    }
411
    XSRETURN_EMPTY;
412
}
413

    
414

    
415
XS_EUPXS(XS_Purple__XMLNode_new); /* prototype to pass -Wmissing-prototypes */
416
XS_EUPXS(XS_Purple__XMLNode_new)
417
{
418
    dVAR; dXSARGS;
419
    if (items != 2)
420
       croak_xs_usage(cv,  "class, name");
421
    {
422
        const char *        name = (const char *)SvPV_nolen(ST(1))
423
;
424
        Purple__XMLNode        RETVAL;
425

    
426
        RETVAL = xmlnode_new(name);
427
        ST(0) = purple_perl_bless_object(RETVAL, "Purple::XMLNode");
428
        sv_2mortal(ST(0));
429
    }
430
    XSRETURN(1);
431
}
432

    
433

    
434
XS_EUPXS(XS_Purple__XMLNode_new_child); /* prototype to pass -Wmissing-prototypes */
435
XS_EUPXS(XS_Purple__XMLNode_new_child)
436
{
437
    dVAR; dXSARGS;
438
    if (items != 2)
439
       croak_xs_usage(cv,  "parent, name");
440
    {
441
        Purple__XMLNode        parent = purple_perl_ref_object(ST(0))
442
;
443
        const char *        name = (const char *)SvPV_nolen(ST(1))
444
;
445
        Purple__XMLNode        RETVAL;
446

    
447
        RETVAL = xmlnode_new_child(parent, name);
448
        ST(0) = purple_perl_bless_object(RETVAL, "Purple::XMLNode");
449
        sv_2mortal(ST(0));
450
    }
451
    XSRETURN(1);
452
}
453

    
454

    
455
XS_EUPXS(XS_Purple__XMLNode_remove_attrib); /* prototype to pass -Wmissing-prototypes */
456
XS_EUPXS(XS_Purple__XMLNode_remove_attrib)
457
{
458
    dVAR; dXSARGS;
459
    if (items != 2)
460
       croak_xs_usage(cv,  "node, attr");
461
    {
462
        Purple__XMLNode        node = purple_perl_ref_object(ST(0))
463
;
464
        const char *        attr = (const char *)SvPV_nolen(ST(1))
465
;
466

    
467
        xmlnode_remove_attrib(node, attr);
468
    }
469
    XSRETURN_EMPTY;
470
}
471

    
472

    
473
XS_EUPXS(XS_Purple__XMLNode_set_attrib); /* prototype to pass -Wmissing-prototypes */
474
XS_EUPXS(XS_Purple__XMLNode_set_attrib)
475
{
476
    dVAR; dXSARGS;
477
    if (items != 3)
478
       croak_xs_usage(cv,  "node, attr, value");
479
    {
480
        Purple__XMLNode        node = purple_perl_ref_object(ST(0))
481
;
482
        const char *        attr = (const char *)SvPV_nolen(ST(1))
483
;
484
        const char *        value = (const char *)SvPV_nolen(ST(2))
485
;
486

    
487
        xmlnode_set_attrib(node, attr, value);
488
    }
489
    XSRETURN_EMPTY;
490
}
491

    
492

    
493
XS_EUPXS(XS_Purple__XMLNode_to_formatted_str); /* prototype to pass -Wmissing-prototypes */
494
XS_EUPXS(XS_Purple__XMLNode_to_formatted_str)
495
{
496
    dVAR; dXSARGS;
497
    if (items != 1)
498
       croak_xs_usage(cv,  "node");
499
    {
500
        Purple__XMLNode        node = purple_perl_ref_object(ST(0))
501
;
502
        gchar_own *        RETVAL;
503
#line 112 "XMLNode.xs"
504
        RETVAL = xmlnode_to_formatted_str(node, NULL);
505
#line 506 "XMLNode.c"
506
        ST(0) = sv_newmortal();
507
        /* used when we can directly own the returned string. */
508
        /* we have to copy in the case when perl's malloc != gtk's malloc,
509
         * so best copy all the time. */
510
        sv_setpv ((SV*)ST(0), RETVAL);
511
        SvUTF8_on (ST(0));
512
        g_free (RETVAL);
513
    }
514
    XSRETURN(1);
515
}
516

    
517

    
518
XS_EUPXS(XS_Purple__XMLNode_to_str); /* prototype to pass -Wmissing-prototypes */
519
XS_EUPXS(XS_Purple__XMLNode_to_str)
520
{
521
    dVAR; dXSARGS;
522
    if (items != 1)
523
       croak_xs_usage(cv,  "node");
524
    {
525
        Purple__XMLNode        node = purple_perl_ref_object(ST(0))
526
;
527
        gchar_own *        RETVAL;
528
#line 120 "XMLNode.xs"
529
        RETVAL = xmlnode_to_str(node, NULL);
530
#line 531 "XMLNode.c"
531
        ST(0) = sv_newmortal();
532
        /* used when we can directly own the returned string. */
533
        /* we have to copy in the case when perl's malloc != gtk's malloc,
534
         * so best copy all the time. */
535
        sv_setpv ((SV*)ST(0), RETVAL);
536
        SvUTF8_on (ST(0));
537
        g_free (RETVAL);
538
    }
539
    XSRETURN(1);
540
}
541

    
542
#ifdef __cplusplus
543
extern "C"
544
#endif
545
XS_EXTERNAL(boot_Purple__XMLNode); /* prototype to pass -Wmissing-prototypes */
546
XS_EXTERNAL(boot_Purple__XMLNode)
547
{
548
    dVAR; dXSARGS;
549
#if (PERL_REVISION == 5 && PERL_VERSION < 9)
550
    char* file = __FILE__;
551
#else
552
    const char* file = __FILE__;
553
#endif
554

    
555
    PERL_UNUSED_VAR(cv); /* -W */
556
    PERL_UNUSED_VAR(items); /* -W */
557
#ifdef XS_APIVERSION_BOOTCHECK
558
    XS_APIVERSION_BOOTCHECK;
559
#endif
560
    XS_VERSION_BOOTCHECK;
561

    
562
        (void)newXSproto_portable("Purple::XMLNode::copy", XS_Purple__XMLNode_copy, file, "$");
563
        (void)newXSproto_portable("Purple::XMLNode::free", XS_Purple__XMLNode_free, file, "$");
564
        (void)newXSproto_portable("Purple::XMLNode::from_str", XS_Purple__XMLNode_from_str, file, "$");
565
        (void)newXSproto_portable("Purple::XMLNode::get_name", XS_Purple__XMLNode_get_name, file, "$");
566
        (void)newXSproto_portable("Purple::XMLNode::get_attrib", XS_Purple__XMLNode_get_attrib, file, "$$");
567
        (void)newXSproto_portable("Purple::XMLNode::get_child", XS_Purple__XMLNode_get_child, file, "$$");
568
        (void)newXSproto_portable("Purple::XMLNode::get_child_with_namespace", XS_Purple__XMLNode_get_child_with_namespace, file, "$$$");
569
        (void)newXSproto_portable("Purple::XMLNode::get_data", XS_Purple__XMLNode_get_data, file, "$");
570
        (void)newXSproto_portable("Purple::XMLNode::get_next", XS_Purple__XMLNode_get_next, file, "$");
571
        (void)newXSproto_portable("Purple::XMLNode::get_next_twin", XS_Purple__XMLNode_get_next_twin, file, "$");
572
        (void)newXSproto_portable("Purple::XMLNode::insert_child", XS_Purple__XMLNode_insert_child, file, "$$");
573
        (void)newXSproto_portable("Purple::XMLNode::insert_data", XS_Purple__XMLNode_insert_data, file, "$$$");
574
        (void)newXSproto_portable("Purple::XMLNode::new", XS_Purple__XMLNode_new, file, "$$");
575
        (void)newXSproto_portable("Purple::XMLNode::new_child", XS_Purple__XMLNode_new_child, file, "$$");
576
        (void)newXSproto_portable("Purple::XMLNode::remove_attrib", XS_Purple__XMLNode_remove_attrib, file, "$$");
577
        (void)newXSproto_portable("Purple::XMLNode::set_attrib", XS_Purple__XMLNode_set_attrib, file, "$$$");
578
        (void)newXSproto_portable("Purple::XMLNode::to_formatted_str", XS_Purple__XMLNode_to_formatted_str, file, "$");
579
        (void)newXSproto_portable("Purple::XMLNode::to_str", XS_Purple__XMLNode_to_str, file, "$");
580
#if (PERL_REVISION == 5 && PERL_VERSION >= 9)
581
  if (PL_unitcheckav)
582
       call_list(PL_scopestack_ix, PL_unitcheckav);
583
#endif
584
    XSRETURN_YES;
585
}
586