Imported Upstream version 3.3.0
[debian/amanda] / perl / Amanda / Logfile.c
1 /* ----------------------------------------------------------------------------
2  * This file was automatically generated by SWIG (http://www.swig.org).
3  * Version 1.3.39
4  * 
5  * This file is not intended to be easily readable and contains a number of 
6  * coding conventions designed to improve portability and efficiency. Do not make
7  * changes to this file unless you know what you are doing--modify the SWIG 
8  * interface file instead. 
9  * ----------------------------------------------------------------------------- */
10
11 #include "../config/config.h"
12
13
14 #define SWIGPERL
15 #define SWIG_CASTRANK_MODE
16
17 /* -----------------------------------------------------------------------------
18  *  This section contains generic SWIG labels for method/variable
19  *  declarations/attributes, and other compiler dependent labels.
20  * ----------------------------------------------------------------------------- */
21
22 /* template workaround for compilers that cannot correctly implement the C++ standard */
23 #ifndef SWIGTEMPLATEDISAMBIGUATOR
24 # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
25 #  define SWIGTEMPLATEDISAMBIGUATOR template
26 # elif defined(__HP_aCC)
27 /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
28 /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
29 #  define SWIGTEMPLATEDISAMBIGUATOR template
30 # else
31 #  define SWIGTEMPLATEDISAMBIGUATOR
32 # endif
33 #endif
34
35 /* inline attribute */
36 #ifndef SWIGINLINE
37 # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
38 #   define SWIGINLINE inline
39 # else
40 #   define SWIGINLINE
41 # endif
42 #endif
43
44 /* attribute recognised by some compilers to avoid 'unused' warnings */
45 #ifndef SWIGUNUSED
46 # if defined(__GNUC__)
47 #   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
48 #     define SWIGUNUSED __attribute__ ((__unused__)) 
49 #   else
50 #     define SWIGUNUSED
51 #   endif
52 # elif defined(__ICC)
53 #   define SWIGUNUSED __attribute__ ((__unused__)) 
54 # else
55 #   define SWIGUNUSED 
56 # endif
57 #endif
58
59 #ifndef SWIG_MSC_UNSUPPRESS_4505
60 # if defined(_MSC_VER)
61 #   pragma warning(disable : 4505) /* unreferenced local function has been removed */
62 # endif 
63 #endif
64
65 #ifndef SWIGUNUSEDPARM
66 # ifdef __cplusplus
67 #   define SWIGUNUSEDPARM(p)
68 # else
69 #   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
70 # endif
71 #endif
72
73 /* internal SWIG method */
74 #ifndef SWIGINTERN
75 # define SWIGINTERN static SWIGUNUSED
76 #endif
77
78 /* internal inline SWIG method */
79 #ifndef SWIGINTERNINLINE
80 # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
81 #endif
82
83 /* exporting methods */
84 #if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
85 #  ifndef GCC_HASCLASSVISIBILITY
86 #    define GCC_HASCLASSVISIBILITY
87 #  endif
88 #endif
89
90 #ifndef SWIGEXPORT
91 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
92 #   if defined(STATIC_LINKED)
93 #     define SWIGEXPORT
94 #   else
95 #     define SWIGEXPORT __declspec(dllexport)
96 #   endif
97 # else
98 #   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
99 #     define SWIGEXPORT __attribute__ ((visibility("default")))
100 #   else
101 #     define SWIGEXPORT
102 #   endif
103 # endif
104 #endif
105
106 /* calling conventions for Windows */
107 #ifndef SWIGSTDCALL
108 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
109 #   define SWIGSTDCALL __stdcall
110 # else
111 #   define SWIGSTDCALL
112 # endif 
113 #endif
114
115 /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
116 #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
117 # define _CRT_SECURE_NO_DEPRECATE
118 #endif
119
120 /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
121 #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
122 # define _SCL_SECURE_NO_DEPRECATE
123 #endif
124
125
126 /* -----------------------------------------------------------------------------
127  * swigrun.swg
128  *
129  * This file contains generic C API SWIG runtime support for pointer
130  * type checking.
131  * ----------------------------------------------------------------------------- */
132
133 /* This should only be incremented when either the layout of swig_type_info changes,
134    or for whatever reason, the runtime changes incompatibly */
135 #define SWIG_RUNTIME_VERSION "4"
136
137 /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
138 #ifdef SWIG_TYPE_TABLE
139 # define SWIG_QUOTE_STRING(x) #x
140 # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
141 # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
142 #else
143 # define SWIG_TYPE_TABLE_NAME
144 #endif
145
146 /*
147   You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
148   creating a static or dynamic library from the SWIG runtime code.
149   In 99.9% of the cases, SWIG just needs to declare them as 'static'.
150   
151   But only do this if strictly necessary, ie, if you have problems
152   with your compiler or suchlike.
153 */
154
155 #ifndef SWIGRUNTIME
156 # define SWIGRUNTIME SWIGINTERN
157 #endif
158
159 #ifndef SWIGRUNTIMEINLINE
160 # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
161 #endif
162
163 /*  Generic buffer size */
164 #ifndef SWIG_BUFFER_SIZE
165 # define SWIG_BUFFER_SIZE 1024
166 #endif
167
168 /* Flags for pointer conversions */
169 #define SWIG_POINTER_DISOWN        0x1
170 #define SWIG_CAST_NEW_MEMORY       0x2
171
172 /* Flags for new pointer objects */
173 #define SWIG_POINTER_OWN           0x1
174
175
176 /* 
177    Flags/methods for returning states.
178    
179    The SWIG conversion methods, as ConvertPtr, return and integer 
180    that tells if the conversion was successful or not. And if not,
181    an error code can be returned (see swigerrors.swg for the codes).
182    
183    Use the following macros/flags to set or process the returning
184    states.
185    
186    In old versions of SWIG, code such as the following was usually written:
187
188      if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
189        // success code
190      } else {
191        //fail code
192      }
193
194    Now you can be more explicit:
195
196     int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
197     if (SWIG_IsOK(res)) {
198       // success code
199     } else {
200       // fail code
201     }
202
203    which is the same really, but now you can also do
204
205     Type *ptr;
206     int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
207     if (SWIG_IsOK(res)) {
208       // success code
209       if (SWIG_IsNewObj(res) {
210         ...
211         delete *ptr;
212       } else {
213         ...
214       }
215     } else {
216       // fail code
217     }
218     
219    I.e., now SWIG_ConvertPtr can return new objects and you can
220    identify the case and take care of the deallocation. Of course that
221    also requires SWIG_ConvertPtr to return new result values, such as
222
223       int SWIG_ConvertPtr(obj, ptr,...) {         
224         if (<obj is ok>) {                             
225           if (<need new object>) {                     
226             *ptr = <ptr to new allocated object>; 
227             return SWIG_NEWOBJ;                
228           } else {                                     
229             *ptr = <ptr to old object>;        
230             return SWIG_OLDOBJ;                
231           }                                    
232         } else {                                       
233           return SWIG_BADOBJ;                  
234         }                                              
235       }
236
237    Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
238    more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
239    SWIG errors code.
240
241    Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
242    allows to return the 'cast rank', for example, if you have this
243
244        int food(double)
245        int fooi(int);
246
247    and you call
248  
249       food(1)   // cast rank '1'  (1 -> 1.0)
250       fooi(1)   // cast rank '0'
251
252    just use the SWIG_AddCast()/SWIG_CheckState()
253 */
254
255 #define SWIG_OK                    (0) 
256 #define SWIG_ERROR                 (-1)
257 #define SWIG_IsOK(r)               (r >= 0)
258 #define SWIG_ArgError(r)           ((r != SWIG_ERROR) ? r : SWIG_TypeError)  
259
260 /* The CastRankLimit says how many bits are used for the cast rank */
261 #define SWIG_CASTRANKLIMIT         (1 << 8)
262 /* The NewMask denotes the object was created (using new/malloc) */
263 #define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
264 /* The TmpMask is for in/out typemaps that use temporal objects */
265 #define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
266 /* Simple returning values */
267 #define SWIG_BADOBJ                (SWIG_ERROR)
268 #define SWIG_OLDOBJ                (SWIG_OK)
269 #define SWIG_NEWOBJ                (SWIG_OK | SWIG_NEWOBJMASK)
270 #define SWIG_TMPOBJ                (SWIG_OK | SWIG_TMPOBJMASK)
271 /* Check, add and del mask methods */
272 #define SWIG_AddNewMask(r)         (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
273 #define SWIG_DelNewMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
274 #define SWIG_IsNewObj(r)           (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
275 #define SWIG_AddTmpMask(r)         (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
276 #define SWIG_DelTmpMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
277 #define SWIG_IsTmpObj(r)           (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
278
279 /* Cast-Rank Mode */
280 #if defined(SWIG_CASTRANK_MODE)
281 #  ifndef SWIG_TypeRank
282 #    define SWIG_TypeRank             unsigned long
283 #  endif
284 #  ifndef SWIG_MAXCASTRANK            /* Default cast allowed */
285 #    define SWIG_MAXCASTRANK          (2)
286 #  endif
287 #  define SWIG_CASTRANKMASK          ((SWIG_CASTRANKLIMIT) -1)
288 #  define SWIG_CastRank(r)           (r & SWIG_CASTRANKMASK)
289 SWIGINTERNINLINE int SWIG_AddCast(int r) { 
290   return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
291 }
292 SWIGINTERNINLINE int SWIG_CheckState(int r) { 
293   return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; 
294 }
295 #else /* no cast-rank mode */
296 #  define SWIG_AddCast
297 #  define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
298 #endif
299
300
301 #include <string.h>
302
303 #ifdef __cplusplus
304 extern "C" {
305 #endif
306
307 typedef void *(*swig_converter_func)(void *, int *);
308 typedef struct swig_type_info *(*swig_dycast_func)(void **);
309
310 /* Structure to store information on one type */
311 typedef struct swig_type_info {
312   const char             *name;                 /* mangled name of this type */
313   const char             *str;                  /* human readable name of this type */
314   swig_dycast_func        dcast;                /* dynamic cast function down a hierarchy */
315   struct swig_cast_info  *cast;                 /* linked list of types that can cast into this type */
316   void                   *clientdata;           /* language specific type data */
317   int                    owndata;               /* flag if the structure owns the clientdata */
318 } swig_type_info;
319
320 /* Structure to store a type and conversion function used for casting */
321 typedef struct swig_cast_info {
322   swig_type_info         *type;                 /* pointer to type that is equivalent to this type */
323   swig_converter_func     converter;            /* function to cast the void pointers */
324   struct swig_cast_info  *next;                 /* pointer to next cast in linked list */
325   struct swig_cast_info  *prev;                 /* pointer to the previous cast */
326 } swig_cast_info;
327
328 /* Structure used to store module information
329  * Each module generates one structure like this, and the runtime collects
330  * all of these structures and stores them in a circularly linked list.*/
331 typedef struct swig_module_info {
332   swig_type_info         **types;               /* Array of pointers to swig_type_info structures that are in this module */
333   size_t                 size;                  /* Number of types in this module */
334   struct swig_module_info *next;                /* Pointer to next element in circularly linked list */
335   swig_type_info         **type_initial;        /* Array of initially generated type structures */
336   swig_cast_info         **cast_initial;        /* Array of initially generated casting structures */
337   void                    *clientdata;          /* Language specific module data */
338 } swig_module_info;
339
340 /* 
341   Compare two type names skipping the space characters, therefore
342   "char*" == "char *" and "Class<int>" == "Class<int >", etc.
343
344   Return 0 when the two name types are equivalent, as in
345   strncmp, but skipping ' '.
346 */
347 SWIGRUNTIME int
348 SWIG_TypeNameComp(const char *f1, const char *l1,
349                   const char *f2, const char *l2) {
350   for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
351     while ((*f1 == ' ') && (f1 != l1)) ++f1;
352     while ((*f2 == ' ') && (f2 != l2)) ++f2;
353     if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
354   }
355   return (int)((l1 - f1) - (l2 - f2));
356 }
357
358 /*
359   Check type equivalence in a name list like <name1>|<name2>|...
360   Return 0 if not equal, 1 if equal
361 */
362 SWIGRUNTIME int
363 SWIG_TypeEquiv(const char *nb, const char *tb) {
364   int equiv = 0;
365   const char* te = tb + strlen(tb);
366   const char* ne = nb;
367   while (!equiv && *ne) {
368     for (nb = ne; *ne; ++ne) {
369       if (*ne == '|') break;
370     }
371     equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
372     if (*ne) ++ne;
373   }
374   return equiv;
375 }
376
377 /*
378   Check type equivalence in a name list like <name1>|<name2>|...
379   Return 0 if equal, -1 if nb < tb, 1 if nb > tb
380 */
381 SWIGRUNTIME int
382 SWIG_TypeCompare(const char *nb, const char *tb) {
383   int equiv = 0;
384   const char* te = tb + strlen(tb);
385   const char* ne = nb;
386   while (!equiv && *ne) {
387     for (nb = ne; *ne; ++ne) {
388       if (*ne == '|') break;
389     }
390     equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
391     if (*ne) ++ne;
392   }
393   return equiv;
394 }
395
396
397 /*
398   Check the typename
399 */
400 SWIGRUNTIME swig_cast_info *
401 SWIG_TypeCheck(const char *c, swig_type_info *ty) {
402   if (ty) {
403     swig_cast_info *iter = ty->cast;
404     while (iter) {
405       if (strcmp(iter->type->name, c) == 0) {
406         if (iter == ty->cast)
407           return iter;
408         /* Move iter to the top of the linked list */
409         iter->prev->next = iter->next;
410         if (iter->next)
411           iter->next->prev = iter->prev;
412         iter->next = ty->cast;
413         iter->prev = 0;
414         if (ty->cast) ty->cast->prev = iter;
415         ty->cast = iter;
416         return iter;
417       }
418       iter = iter->next;
419     }
420   }
421   return 0;
422 }
423
424 /* 
425   Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
426 */
427 SWIGRUNTIME swig_cast_info *
428 SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
429   if (ty) {
430     swig_cast_info *iter = ty->cast;
431     while (iter) {
432       if (iter->type == from) {
433         if (iter == ty->cast)
434           return iter;
435         /* Move iter to the top of the linked list */
436         iter->prev->next = iter->next;
437         if (iter->next)
438           iter->next->prev = iter->prev;
439         iter->next = ty->cast;
440         iter->prev = 0;
441         if (ty->cast) ty->cast->prev = iter;
442         ty->cast = iter;
443         return iter;
444       }
445       iter = iter->next;
446     }
447   }
448   return 0;
449 }
450
451 /*
452   Cast a pointer up an inheritance hierarchy
453 */
454 SWIGRUNTIMEINLINE void *
455 SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
456   return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
457 }
458
459 /* 
460    Dynamic pointer casting. Down an inheritance hierarchy
461 */
462 SWIGRUNTIME swig_type_info *
463 SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
464   swig_type_info *lastty = ty;
465   if (!ty || !ty->dcast) return ty;
466   while (ty && (ty->dcast)) {
467     ty = (*ty->dcast)(ptr);
468     if (ty) lastty = ty;
469   }
470   return lastty;
471 }
472
473 /*
474   Return the name associated with this type
475 */
476 SWIGRUNTIMEINLINE const char *
477 SWIG_TypeName(const swig_type_info *ty) {
478   return ty->name;
479 }
480
481 /*
482   Return the pretty name associated with this type,
483   that is an unmangled type name in a form presentable to the user.
484 */
485 SWIGRUNTIME const char *
486 SWIG_TypePrettyName(const swig_type_info *type) {
487   /* The "str" field contains the equivalent pretty names of the
488      type, separated by vertical-bar characters.  We choose
489      to print the last name, as it is often (?) the most
490      specific. */
491   if (!type) return NULL;
492   if (type->str != NULL) {
493     const char *last_name = type->str;
494     const char *s;
495     for (s = type->str; *s; s++)
496       if (*s == '|') last_name = s+1;
497     return last_name;
498   }
499   else
500     return type->name;
501 }
502
503 /* 
504    Set the clientdata field for a type
505 */
506 SWIGRUNTIME void
507 SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
508   swig_cast_info *cast = ti->cast;
509   /* if (ti->clientdata == clientdata) return; */
510   ti->clientdata = clientdata;
511   
512   while (cast) {
513     if (!cast->converter) {
514       swig_type_info *tc = cast->type;
515       if (!tc->clientdata) {
516         SWIG_TypeClientData(tc, clientdata);
517       }
518     }    
519     cast = cast->next;
520   }
521 }
522 SWIGRUNTIME void
523 SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
524   SWIG_TypeClientData(ti, clientdata);
525   ti->owndata = 1;
526 }
527   
528 /*
529   Search for a swig_type_info structure only by mangled name
530   Search is a O(log #types)
531   
532   We start searching at module start, and finish searching when start == end.  
533   Note: if start == end at the beginning of the function, we go all the way around
534   the circular list.
535 */
536 SWIGRUNTIME swig_type_info *
537 SWIG_MangledTypeQueryModule(swig_module_info *start, 
538                             swig_module_info *end, 
539                             const char *name) {
540   swig_module_info *iter = start;
541   do {
542     if (iter->size) {
543       register size_t l = 0;
544       register size_t r = iter->size - 1;
545       do {
546         /* since l+r >= 0, we can (>> 1) instead (/ 2) */
547         register size_t i = (l + r) >> 1; 
548         const char *iname = iter->types[i]->name;
549         if (iname) {
550           register int compare = strcmp(name, iname);
551           if (compare == 0) {       
552             return iter->types[i];
553           } else if (compare < 0) {
554             if (i) {
555               r = i - 1;
556             } else {
557               break;
558             }
559           } else if (compare > 0) {
560             l = i + 1;
561           }
562         } else {
563           break; /* should never happen */
564         }
565       } while (l <= r);
566     }
567     iter = iter->next;
568   } while (iter != end);
569   return 0;
570 }
571
572 /*
573   Search for a swig_type_info structure for either a mangled name or a human readable name.
574   It first searches the mangled names of the types, which is a O(log #types)
575   If a type is not found it then searches the human readable names, which is O(#types).
576   
577   We start searching at module start, and finish searching when start == end.  
578   Note: if start == end at the beginning of the function, we go all the way around
579   the circular list.
580 */
581 SWIGRUNTIME swig_type_info *
582 SWIG_TypeQueryModule(swig_module_info *start, 
583                      swig_module_info *end, 
584                      const char *name) {
585   /* STEP 1: Search the name field using binary search */
586   swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
587   if (ret) {
588     return ret;
589   } else {
590     /* STEP 2: If the type hasn't been found, do a complete search
591        of the str field (the human readable name) */
592     swig_module_info *iter = start;
593     do {
594       register size_t i = 0;
595       for (; i < iter->size; ++i) {
596         if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
597           return iter->types[i];
598       }
599       iter = iter->next;
600     } while (iter != end);
601   }
602   
603   /* neither found a match */
604   return 0;
605 }
606
607 /* 
608    Pack binary data into a string
609 */
610 SWIGRUNTIME char *
611 SWIG_PackData(char *c, void *ptr, size_t sz) {
612   static const char hex[17] = "0123456789abcdef";
613   register const unsigned char *u = (unsigned char *) ptr;
614   register const unsigned char *eu =  u + sz;
615   for (; u != eu; ++u) {
616     register unsigned char uu = *u;
617     *(c++) = hex[(uu & 0xf0) >> 4];
618     *(c++) = hex[uu & 0xf];
619   }
620   return c;
621 }
622
623 /* 
624    Unpack binary data from a string
625 */
626 SWIGRUNTIME const char *
627 SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
628   register unsigned char *u = (unsigned char *) ptr;
629   register const unsigned char *eu = u + sz;
630   for (; u != eu; ++u) {
631     register char d = *(c++);
632     register unsigned char uu;
633     if ((d >= '0') && (d <= '9'))
634       uu = ((d - '0') << 4);
635     else if ((d >= 'a') && (d <= 'f'))
636       uu = ((d - ('a'-10)) << 4);
637     else 
638       return (char *) 0;
639     d = *(c++);
640     if ((d >= '0') && (d <= '9'))
641       uu |= (d - '0');
642     else if ((d >= 'a') && (d <= 'f'))
643       uu |= (d - ('a'-10));
644     else 
645       return (char *) 0;
646     *u = uu;
647   }
648   return c;
649 }
650
651 /* 
652    Pack 'void *' into a string buffer.
653 */
654 SWIGRUNTIME char *
655 SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
656   char *r = buff;
657   if ((2*sizeof(void *) + 2) > bsz) return 0;
658   *(r++) = '_';
659   r = SWIG_PackData(r,&ptr,sizeof(void *));
660   if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
661   strcpy(r,name);
662   return buff;
663 }
664
665 SWIGRUNTIME const char *
666 SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
667   if (*c != '_') {
668     if (strcmp(c,"NULL") == 0) {
669       *ptr = (void *) 0;
670       return name;
671     } else {
672       return 0;
673     }
674   }
675   return SWIG_UnpackData(++c,ptr,sizeof(void *));
676 }
677
678 SWIGRUNTIME char *
679 SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
680   char *r = buff;
681   size_t lname = (name ? strlen(name) : 0);
682   if ((2*sz + 2 + lname) > bsz) return 0;
683   *(r++) = '_';
684   r = SWIG_PackData(r,ptr,sz);
685   if (lname) {
686     strncpy(r,name,lname+1);
687   } else {
688     *r = 0;
689   }
690   return buff;
691 }
692
693 SWIGRUNTIME const char *
694 SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
695   if (*c != '_') {
696     if (strcmp(c,"NULL") == 0) {
697       memset(ptr,0,sz);
698       return name;
699     } else {
700       return 0;
701     }
702   }
703   return SWIG_UnpackData(++c,ptr,sz);
704 }
705
706 #ifdef __cplusplus
707 }
708 #endif
709
710 /*  Errors in SWIG */
711 #define  SWIG_UnknownError         -1 
712 #define  SWIG_IOError              -2 
713 #define  SWIG_RuntimeError         -3 
714 #define  SWIG_IndexError           -4 
715 #define  SWIG_TypeError            -5 
716 #define  SWIG_DivisionByZero       -6 
717 #define  SWIG_OverflowError        -7 
718 #define  SWIG_SyntaxError          -8 
719 #define  SWIG_ValueError           -9 
720 #define  SWIG_SystemError          -10
721 #define  SWIG_AttributeError       -11
722 #define  SWIG_MemoryError          -12 
723 #define  SWIG_NullReferenceError   -13
724
725
726
727 #ifdef __cplusplus
728 /* Needed on some windows machines---since MS plays funny games with the header files under C++ */
729 #include <math.h>
730 #include <stdlib.h>
731 extern "C" {
732 #endif
733 #include "EXTERN.h"
734 #include "perl.h"
735 #include "XSUB.h"
736
737 /* Add in functionality missing in older versions of Perl. Much of this is based on Devel-PPPort on cpan. */
738
739 /* Add PERL_REVISION, PERL_VERSION, PERL_SUBVERSION if missing */
740 #ifndef PERL_REVISION
741 #  if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION))
742 #    define PERL_PATCHLEVEL_H_IMPLICIT
743 #    include <patchlevel.h>
744 #  endif
745 #  if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL)))
746 #    include <could_not_find_Perl_patchlevel.h>
747 #  endif
748 #  ifndef PERL_REVISION
749 #    define PERL_REVISION       (5)
750 #    define PERL_VERSION        PATCHLEVEL
751 #    define PERL_SUBVERSION     SUBVERSION
752 #  endif
753 #endif
754
755 #if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE)
756 #define PerlIO_exportFILE(fh,fl) (FILE*)(fh)
757 #endif
758
759 #ifndef SvIOK_UV
760 # define SvIOK_UV(sv)       (SvIOK(sv) && (SvUVX(sv) == SvIVX(sv)))
761 #endif
762
763 #ifndef SvUOK
764 # define SvUOK(sv)           SvIOK_UV(sv)
765 #endif
766
767 #if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 5)))
768 #  define PL_sv_undef               sv_undef
769 #  define PL_na                     na
770 #  define PL_errgv                  errgv
771 #  define PL_sv_no                  sv_no
772 #  define PL_sv_yes                 sv_yes
773 #  define PL_markstack_ptr          markstack_ptr
774 #endif
775
776 #ifndef IVSIZE
777 #  ifdef LONGSIZE
778 #    define IVSIZE LONGSIZE
779 #  else
780 #    define IVSIZE 4 /* A bold guess, but the best we can make. */
781 #  endif
782 #endif
783
784 #ifndef INT2PTR
785 #  if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE)
786 #    define PTRV                  UV
787 #    define INT2PTR(any,d)        (any)(d)
788 #  else
789 #    if PTRSIZE == LONGSIZE
790 #      define PTRV                unsigned long
791 #    else
792 #      define PTRV                unsigned
793 #    endif
794 #    define INT2PTR(any,d)        (any)(PTRV)(d)
795 #  endif
796
797 #  define NUM2PTR(any,d)  (any)(PTRV)(d)
798 #  define PTR2IV(p)       INT2PTR(IV,p)
799 #  define PTR2UV(p)       INT2PTR(UV,p)
800 #  define PTR2NV(p)       NUM2PTR(NV,p)
801
802 #  if PTRSIZE == LONGSIZE
803 #    define PTR2ul(p)     (unsigned long)(p)
804 #  else
805 #    define PTR2ul(p)     INT2PTR(unsigned long,p)
806 #  endif
807 #endif /* !INT2PTR */
808
809 #ifndef SvPV_nolen
810 # define SvPV_nolen(x) SvPV(x,PL_na)
811 #endif
812
813 #ifndef get_sv
814 #  define get_sv perl_get_sv
815 #endif
816
817 #ifndef ERRSV
818 #  define ERRSV get_sv("@",FALSE)
819 #endif
820
821 #ifndef pTHX_
822 #define pTHX_
823 #endif   
824
825 #include <string.h>
826 #ifdef __cplusplus
827 }
828 #endif
829
830 /* -----------------------------------------------------------------------------
831  * error manipulation
832  * ----------------------------------------------------------------------------- */
833
834 SWIGINTERN const char*
835 SWIG_Perl_ErrorType(int code) {
836   const char* type = 0;
837   switch(code) {
838   case SWIG_MemoryError:
839     type = "MemoryError";
840     break;
841   case SWIG_IOError:
842     type = "IOError";
843     break;
844   case SWIG_RuntimeError:
845     type = "RuntimeError";
846     break;
847   case SWIG_IndexError:
848     type = "IndexError";
849     break;
850   case SWIG_TypeError:
851     type = "TypeError";
852     break;
853   case SWIG_DivisionByZero:
854     type = "ZeroDivisionError";
855     break;
856   case SWIG_OverflowError:
857     type = "OverflowError";
858     break;
859   case SWIG_SyntaxError:
860     type = "SyntaxError";
861     break;
862   case SWIG_ValueError:
863     type = "ValueError";
864     break;
865   case SWIG_SystemError:
866     type = "SystemError";
867     break;
868   case SWIG_AttributeError:
869     type = "AttributeError";
870     break;
871   default:
872     type = "RuntimeError";
873   }
874   return type;
875 }
876
877
878
879
880 /* -----------------------------------------------------------------------------
881  * perlrun.swg
882  *
883  * This file contains the runtime support for Perl modules
884  * and includes code for managing global variables and pointer
885  * type checking.
886  * ----------------------------------------------------------------------------- */
887
888 #ifdef PERL_OBJECT
889 #define SWIG_PERL_OBJECT_DECL CPerlObj *SWIGUNUSEDPARM(pPerl),
890 #define SWIG_PERL_OBJECT_CALL pPerl,
891 #else
892 #define SWIG_PERL_OBJECT_DECL
893 #define SWIG_PERL_OBJECT_CALL
894 #endif
895
896 /* Common SWIG API */
897
898 /* for raw pointers */
899 #define SWIG_ConvertPtr(obj, pp, type, flags)           SWIG_Perl_ConvertPtr(SWIG_PERL_OBJECT_CALL obj, pp, type, flags)
900 #define SWIG_NewPointerObj(p, type, flags)              SWIG_Perl_NewPointerObj(SWIG_PERL_OBJECT_CALL p, type, flags)
901
902 /* for raw packed data */
903 #define SWIG_ConvertPacked(obj, p, s, type)             SWIG_Perl_ConvertPacked(SWIG_PERL_OBJECT_CALL obj, p, s, type)
904 #define SWIG_NewPackedObj(p, s, type)                   SWIG_Perl_NewPackedObj(SWIG_PERL_OBJECT_CALL p, s, type)
905
906 /* for class or struct pointers */
907 #define SWIG_ConvertInstance(obj, pptr, type, flags)    SWIG_ConvertPtr(obj, pptr, type, flags)
908 #define SWIG_NewInstanceObj(ptr, type, flags)           SWIG_NewPointerObj(ptr, type, flags)
909
910 /* for C or C++ function pointers */
911 #define SWIG_ConvertFunctionPtr(obj, pptr, type)        SWIG_ConvertPtr(obj, pptr, type, 0)
912 #define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_NewPointerObj(ptr, type, 0)
913
914 /* for C++ member pointers, ie, member methods */
915 #define SWIG_ConvertMember(obj, ptr, sz, ty)            SWIG_ConvertPacked(obj, ptr, sz, ty)
916 #define SWIG_NewMemberObj(ptr, sz, type)                SWIG_NewPackedObj(ptr, sz, type)
917
918
919 /* Runtime API */
920
921 #define SWIG_GetModule(clientdata)                      SWIG_Perl_GetModule()
922 #define SWIG_SetModule(clientdata, pointer)             SWIG_Perl_SetModule(pointer)
923
924
925 /* Error manipulation */
926
927 #define SWIG_ErrorType(code)                            SWIG_Perl_ErrorType(code)               
928 #define SWIG_Error(code, msg)                           sv_setpvf(GvSV(PL_errgv),"%s %s\n", SWIG_ErrorType(code), msg)
929 #define SWIG_fail                                       goto fail                                                   
930
931 /* Perl-specific SWIG API */
932
933 #define SWIG_MakePtr(sv, ptr, type, flags)              SWIG_Perl_MakePtr(SWIG_PERL_OBJECT_CALL sv, ptr, type, flags)
934 #define SWIG_MakePackedObj(sv, p, s, type)              SWIG_Perl_MakePackedObj(SWIG_PERL_OBJECT_CALL sv, p, s, type)
935 #define SWIG_SetError(str)                              SWIG_Error(SWIG_RuntimeError, str)
936
937
938 #define SWIG_PERL_DECL_ARGS_1(arg1)                     (SWIG_PERL_OBJECT_DECL arg1)
939 #define SWIG_PERL_CALL_ARGS_1(arg1)                     (SWIG_PERL_OBJECT_CALL arg1)
940 #define SWIG_PERL_DECL_ARGS_2(arg1, arg2)               (SWIG_PERL_OBJECT_DECL arg1, arg2)
941 #define SWIG_PERL_CALL_ARGS_2(arg1, arg2)               (SWIG_PERL_OBJECT_CALL arg1, arg2)
942
943 /* -----------------------------------------------------------------------------
944  * pointers/data manipulation
945  * ----------------------------------------------------------------------------- */
946
947 /* For backward compatibility only */
948 #define SWIG_POINTER_EXCEPTION  0
949
950 #ifdef __cplusplus
951 extern "C" {
952 #endif
953
954 #define SWIG_OWNER   SWIG_POINTER_OWN
955 #define SWIG_SHADOW  SWIG_OWNER << 1
956
957 #define SWIG_MAYBE_PERL_OBJECT SWIG_PERL_OBJECT_DECL
958
959 /* SWIG Perl macros */
960
961 /* Macro to declare an XS function */
962 #ifndef XSPROTO
963 #   define XSPROTO(name) void name(pTHX_ CV* cv)
964 #endif
965
966 /* Macro to call an XS function */
967 #ifdef PERL_OBJECT 
968 #  define SWIG_CALLXS(_name) _name(cv,pPerl) 
969 #else 
970 #  ifndef MULTIPLICITY 
971 #    define SWIG_CALLXS(_name) _name(cv) 
972 #  else 
973 #    define SWIG_CALLXS(_name) _name(PERL_GET_THX, cv) 
974 #  endif 
975 #endif 
976
977 #ifdef PERL_OBJECT
978 #define MAGIC_PPERL  CPerlObj *pPerl = (CPerlObj *) this;
979
980 #ifdef __cplusplus
981 extern "C" {
982 #endif
983 typedef int (CPerlObj::*SwigMagicFunc)(SV *, MAGIC *);
984 #ifdef __cplusplus
985 }
986 #endif
987
988 #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
989 #define SWIGCLASS_STATIC
990
991 #else /* PERL_OBJECT */
992
993 #define MAGIC_PPERL
994 #define SWIGCLASS_STATIC static SWIGUNUSED
995
996 #ifndef MULTIPLICITY
997 #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
998
999 #ifdef __cplusplus
1000 extern "C" {
1001 #endif
1002 typedef int (*SwigMagicFunc)(SV *, MAGIC *);
1003 #ifdef __cplusplus
1004 }
1005 #endif
1006
1007 #else /* MULTIPLICITY */
1008
1009 #define SWIG_MAGIC(a,b) (struct interpreter *interp, SV *a, MAGIC *b)
1010
1011 #ifdef __cplusplus
1012 extern "C" {
1013 #endif
1014 typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *);
1015 #ifdef __cplusplus
1016 }
1017 #endif
1018
1019 #endif /* MULTIPLICITY */
1020 #endif /* PERL_OBJECT */
1021
1022 /* Workaround for bug in perl 5.6.x croak and earlier */
1023 #if (PERL_VERSION < 8)
1024 #  ifdef PERL_OBJECT
1025 #    define SWIG_croak_null() SWIG_Perl_croak_null(pPerl)
1026 static void SWIG_Perl_croak_null(CPerlObj *pPerl)
1027 #  else
1028 static void SWIG_croak_null()
1029 #  endif
1030 {
1031   SV *err=ERRSV;
1032 #  if (PERL_VERSION < 6)
1033   croak("%_", err);
1034 #  else
1035   if (SvOK(err) && !SvROK(err)) croak("%_", err);
1036   croak(Nullch);
1037 #  endif
1038 }
1039 #else
1040 #  define SWIG_croak_null() croak(Nullch)
1041 #endif
1042
1043
1044 /* 
1045    Define how strict is the cast between strings and integers/doubles
1046    when overloading between these types occurs.
1047    
1048    The default is making it as strict as possible by using SWIG_AddCast
1049    when needed.
1050    
1051    You can use -DSWIG_PERL_NO_STRICT_STR2NUM at compilation time to
1052    disable the SWIG_AddCast, making the casting between string and
1053    numbers less strict.
1054
1055    In the end, we try to solve the overloading between strings and
1056    numerical types in the more natural way, but if you can avoid it,
1057    well, avoid it using %rename, for example.
1058 */
1059 #ifndef SWIG_PERL_NO_STRICT_STR2NUM
1060 # ifndef SWIG_PERL_STRICT_STR2NUM
1061 #  define SWIG_PERL_STRICT_STR2NUM
1062 # endif
1063 #endif
1064 #ifdef SWIG_PERL_STRICT_STR2NUM
1065 /* string takes precedence */
1066 #define SWIG_Str2NumCast(x) SWIG_AddCast(x)  
1067 #else
1068 /* number takes precedence */
1069 #define SWIG_Str2NumCast(x) x
1070 #endif
1071
1072
1073
1074 #include <stdlib.h>
1075
1076 SWIGRUNTIME const char *
1077 SWIG_Perl_TypeProxyName(const swig_type_info *type) {
1078   if (!type) return NULL;
1079   if (type->clientdata != NULL) {
1080     return (const char*) type->clientdata;
1081   } 
1082   else {
1083     return type->name;
1084   }
1085 }
1086
1087 /* Identical to SWIG_TypeCheck, except for strcmp comparison */
1088 SWIGRUNTIME swig_cast_info *
1089 SWIG_TypeProxyCheck(const char *c, swig_type_info *ty) {
1090   if (ty) {
1091     swig_cast_info *iter = ty->cast;
1092     while (iter) {
1093       if ( (!iter->type->clientdata && (strcmp(iter->type->name, c) == 0)) ||
1094             (iter->type->clientdata && (strcmp((char*)iter->type->clientdata, c) == 0)) ) {
1095         if (iter == ty->cast)
1096           return iter;
1097         /* Move iter to the top of the linked list */
1098         iter->prev->next = iter->next;
1099         if (iter->next)
1100           iter->next->prev = iter->prev;
1101         iter->next = ty->cast;
1102         iter->prev = 0;
1103         if (ty->cast) ty->cast->prev = iter;
1104         ty->cast = iter;
1105         return iter;
1106       }
1107       iter = iter->next;
1108     }
1109   }
1110   return 0;
1111 }
1112
1113 /* Function for getting a pointer value */
1114
1115 SWIGRUNTIME int
1116 SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags) {
1117   swig_cast_info *tc;
1118   void *voidptr = (void *)0;
1119   SV *tsv = 0;
1120   /* If magical, apply more magic */
1121   if (SvGMAGICAL(sv))
1122     mg_get(sv);
1123
1124   /* Check to see if this is an object */
1125   if (sv_isobject(sv)) {
1126     IV tmp = 0;
1127     tsv = (SV*) SvRV(sv);
1128     if ((SvTYPE(tsv) == SVt_PVHV)) {
1129       MAGIC *mg;
1130       if (SvMAGICAL(tsv)) {
1131         mg = mg_find(tsv,'P');
1132         if (mg) {
1133           sv = mg->mg_obj;
1134           if (sv_isobject(sv)) {
1135             tsv = (SV*)SvRV(sv);
1136             tmp = SvIV(tsv);
1137           }
1138         }
1139       } else {
1140         return SWIG_ERROR;
1141       }
1142     } else {
1143       tmp = SvIV(tsv);
1144     }
1145     voidptr = INT2PTR(void *,tmp);
1146   } else if (! SvOK(sv)) {            /* Check for undef */
1147     *(ptr) = (void *) 0;
1148     return SWIG_OK;
1149   } else if (SvTYPE(sv) == SVt_RV) {  /* Check for NULL pointer */
1150     if (!SvROK(sv)) {
1151       *(ptr) = (void *) 0;
1152       return SWIG_OK;
1153     } else {
1154       return SWIG_ERROR;
1155     }
1156   } else {                            /* Don't know what it is */
1157     return SWIG_ERROR;
1158   }
1159   if (_t) {
1160     /* Now see if the types match */
1161     char *_c = HvNAME(SvSTASH(SvRV(sv)));
1162     tc = SWIG_TypeProxyCheck(_c,_t);
1163     if (!tc) {
1164       return SWIG_ERROR;
1165     }
1166     {
1167       int newmemory = 0;
1168       *ptr = SWIG_TypeCast(tc,voidptr,&newmemory);
1169       assert(!newmemory); /* newmemory handling not yet implemented */
1170     }
1171   } else {
1172     *ptr = voidptr;
1173   }
1174
1175   /* 
1176    *  DISOWN implementation: we need a perl guru to check this one.
1177    */
1178   if (tsv && (flags & SWIG_POINTER_DISOWN)) {
1179     /* 
1180      *  almost copy paste code from below SWIG_POINTER_OWN setting
1181      */
1182     SV *obj = sv;
1183     HV *stash = SvSTASH(SvRV(obj));
1184     GV *gv = *(GV**) hv_fetch(stash, "OWNER", 5, TRUE);
1185     if (isGV(gv)) {
1186       HV *hv = GvHVn(gv);
1187       /*
1188        * To set ownership (see below), a newSViv(1) entry is added. 
1189        * Hence, to remove ownership, we delete the entry.
1190        */
1191       if (hv_exists_ent(hv, obj, 0)) {
1192         hv_delete_ent(hv, obj, 0, 0);
1193       }
1194     }
1195   }
1196   return SWIG_OK;
1197 }
1198
1199 SWIGRUNTIME void
1200 SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, int flags) {
1201   if (ptr && (flags & SWIG_SHADOW)) {
1202     SV *self;
1203     SV *obj=newSV(0);
1204     HV *hash=newHV();
1205     HV *stash;
1206     sv_setref_pv(obj, (char *) SWIG_Perl_TypeProxyName(t), ptr);
1207     stash=SvSTASH(SvRV(obj));
1208     if (flags & SWIG_POINTER_OWN) {
1209       HV *hv;
1210       GV *gv=*(GV**)hv_fetch(stash, "OWNER", 5, TRUE);
1211       if (!isGV(gv))
1212         gv_init(gv, stash, "OWNER", 5, FALSE);
1213       hv=GvHVn(gv);
1214       hv_store_ent(hv, obj, newSViv(1), 0);
1215     }
1216     sv_magic((SV *)hash, (SV *)obj, 'P', Nullch, 0);
1217     SvREFCNT_dec(obj);
1218     self=newRV_noinc((SV *)hash);
1219     sv_setsv(sv, self);
1220     SvREFCNT_dec((SV *)self);
1221     sv_bless(sv, stash);
1222   }
1223   else {
1224     sv_setref_pv(sv, (char *) SWIG_Perl_TypeProxyName(t), ptr);
1225   }
1226 }
1227
1228 SWIGRUNTIMEINLINE SV *
1229 SWIG_Perl_NewPointerObj(SWIG_MAYBE_PERL_OBJECT void *ptr, swig_type_info *t, int flags) {
1230   SV *result = sv_newmortal();
1231   SWIG_MakePtr(result, ptr, t, flags);
1232   return result;
1233 }
1234
1235 SWIGRUNTIME void
1236 SWIG_Perl_MakePackedObj(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, int sz, swig_type_info *type) {
1237   char result[1024];
1238   char *r = result;
1239   if ((2*sz + 1 + strlen(SWIG_Perl_TypeProxyName(type))) > 1000) return;
1240   *(r++) = '_';
1241   r = SWIG_PackData(r,ptr,sz);
1242   strcpy(r,SWIG_Perl_TypeProxyName(type));
1243   sv_setpv(sv, result);
1244 }
1245
1246 SWIGRUNTIME SV *
1247 SWIG_Perl_NewPackedObj(SWIG_MAYBE_PERL_OBJECT void *ptr, int sz, swig_type_info *type) {
1248   SV *result = sv_newmortal();
1249   SWIG_Perl_MakePackedObj(result, ptr, sz, type);
1250   return result;
1251 }
1252
1253 /* Convert a packed value value */
1254 SWIGRUNTIME int
1255 SWIG_Perl_ConvertPacked(SWIG_MAYBE_PERL_OBJECT SV *obj, void *ptr, int sz, swig_type_info *ty) {
1256   swig_cast_info *tc;
1257   const char  *c = 0;
1258
1259   if ((!obj) || (!SvOK(obj))) return SWIG_ERROR;
1260   c = SvPV_nolen(obj);
1261   /* Pointer values must start with leading underscore */
1262   if (*c != '_') return SWIG_ERROR;
1263   c++;
1264   c = SWIG_UnpackData(c,ptr,sz);
1265   if (ty) {
1266     tc = SWIG_TypeCheck(c,ty);
1267     if (!tc) return SWIG_ERROR;
1268   }
1269   return SWIG_OK;
1270 }
1271
1272
1273 /* Macros for low-level exception handling */
1274 #define SWIG_croak(x)    { SWIG_Error(SWIG_RuntimeError, x); SWIG_fail; }
1275
1276
1277 typedef XSPROTO(SwigPerlWrapper);
1278 typedef SwigPerlWrapper *SwigPerlWrapperPtr;
1279
1280 /* Structure for command table */
1281 typedef struct {
1282   const char         *name;
1283   SwigPerlWrapperPtr  wrapper;
1284 } swig_command_info;
1285
1286 /* Information for constant table */
1287
1288 #define SWIG_INT     1
1289 #define SWIG_FLOAT   2
1290 #define SWIG_STRING  3
1291 #define SWIG_POINTER 4
1292 #define SWIG_BINARY  5
1293
1294 /* Constant information structure */
1295 typedef struct swig_constant_info {
1296     int              type;
1297     const char      *name;
1298     long             lvalue;
1299     double           dvalue;
1300     void            *pvalue;
1301     swig_type_info **ptype;
1302 } swig_constant_info;
1303
1304
1305 /* Structure for variable table */
1306 typedef struct {
1307   const char   *name;
1308   SwigMagicFunc   set;
1309   SwigMagicFunc   get;
1310   swig_type_info  **type;
1311 } swig_variable_info;
1312
1313 /* Magic variable code */
1314 #ifndef PERL_OBJECT
1315 #define swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c)
1316   #ifndef MULTIPLICITY
1317      SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *)) 
1318   #else
1319      SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *)) 
1320   #endif
1321 #else
1322 #  define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c)
1323 SWIGRUNTIME void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *)) 
1324 #endif
1325 {
1326   MAGIC *mg;
1327   sv_magic(sv,sv,'U',(char *) name,strlen(name));
1328   mg = mg_find(sv,'U');
1329   mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));
1330   mg->mg_virtual->svt_get = (SwigMagicFunc) get;
1331   mg->mg_virtual->svt_set = (SwigMagicFunc) set;
1332   mg->mg_virtual->svt_len = 0;
1333   mg->mg_virtual->svt_clear = 0;
1334   mg->mg_virtual->svt_free = 0;
1335 }
1336
1337
1338 SWIGRUNTIME swig_module_info *
1339 SWIG_Perl_GetModule(void) {
1340   static void *type_pointer = (void *)0;
1341   SV *pointer;
1342
1343   /* first check if pointer already created */
1344   if (!type_pointer) {
1345     pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, FALSE | GV_ADDMULTI);
1346     if (pointer && SvOK(pointer)) {
1347       type_pointer = INT2PTR(swig_type_info **, SvIV(pointer));
1348     }
1349   }
1350
1351   return (swig_module_info *) type_pointer;
1352 }
1353
1354 SWIGRUNTIME void
1355 SWIG_Perl_SetModule(swig_module_info *module) {
1356   SV *pointer;
1357
1358   /* create a new pointer */
1359   pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, TRUE | GV_ADDMULTI);
1360   sv_setiv(pointer, PTR2IV(module));
1361 }
1362
1363 #ifdef __cplusplus
1364 }
1365 #endif
1366
1367 /* Workaround perl5 global namespace pollution. Note that undefining library
1368  * functions like fopen will not solve the problem on all platforms as fopen
1369  * might be a macro on Windows but not necessarily on other operating systems. */
1370 #ifdef do_open
1371   #undef do_open
1372 #endif
1373 #ifdef do_close
1374   #undef do_close
1375 #endif
1376 #ifdef scalar
1377   #undef scalar
1378 #endif
1379 #ifdef list
1380   #undef list
1381 #endif
1382 #ifdef apply
1383   #undef apply
1384 #endif
1385 #ifdef convert
1386   #undef convert
1387 #endif
1388 #ifdef Error
1389   #undef Error
1390 #endif
1391 #ifdef form
1392   #undef form
1393 #endif
1394 #ifdef vform
1395   #undef vform
1396 #endif
1397 #ifdef LABEL
1398   #undef LABEL
1399 #endif
1400 #ifdef METHOD
1401   #undef METHOD
1402 #endif
1403 #ifdef Move
1404   #undef Move
1405 #endif
1406 #ifdef yylex
1407   #undef yylex
1408 #endif
1409 #ifdef yyparse
1410   #undef yyparse
1411 #endif
1412 #ifdef yyerror
1413   #undef yyerror
1414 #endif
1415 #ifdef invert
1416   #undef invert
1417 #endif
1418 #ifdef ref
1419   #undef ref
1420 #endif
1421 #ifdef read
1422   #undef read
1423 #endif
1424 #ifdef write
1425   #undef write
1426 #endif
1427 #ifdef eof
1428   #undef eof
1429 #endif
1430 #ifdef bool
1431   #undef bool
1432 #endif
1433 #ifdef close
1434   #undef close
1435 #endif
1436 #ifdef rewind
1437   #undef rewind
1438 #endif
1439 #ifdef free
1440   #undef free
1441 #endif
1442 #ifdef malloc
1443   #undef malloc
1444 #endif
1445 #ifdef calloc
1446   #undef calloc
1447 #endif
1448 #ifdef Stat
1449   #undef Stat
1450 #endif
1451 #ifdef check
1452   #undef check
1453 #endif
1454 #ifdef seekdir
1455   #undef seekdir
1456 #endif
1457 #ifdef open
1458   #undef open
1459 #endif
1460 #ifdef readdir
1461   #undef readdir
1462 #endif
1463 #ifdef bind
1464   #undef bind
1465 #endif
1466
1467
1468
1469 #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) 
1470
1471 #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else 
1472
1473
1474
1475   #define SWIG_exception(code, msg) do { SWIG_Error(code, msg); SWIG_fail;; } while(0) 
1476
1477
1478 /* -------- TYPES TABLE (BEGIN) -------- */
1479
1480 #define SWIGTYPE_p_FILE swig_types[0]
1481 #define SWIGTYPE_p_GSList swig_types[1]
1482 #define SWIGTYPE_p_amanda_log_handler_t swig_types[2]
1483 #define SWIGTYPE_p_char swig_types[3]
1484 #define SWIGTYPE_p_double swig_types[4]
1485 #define SWIGTYPE_p_dumpspec_t swig_types[5]
1486 #define SWIGTYPE_p_find_result_t swig_types[6]
1487 #define SWIGTYPE_p_float swig_types[7]
1488 #define SWIGTYPE_p_int swig_types[8]
1489 #define SWIGTYPE_p_unsigned_char swig_types[9]
1490 static swig_type_info *swig_types[11];
1491 static swig_module_info swig_module = {swig_types, 10, 0, 0, 0, 0};
1492 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
1493 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
1494
1495 /* -------- TYPES TABLE (END) -------- */
1496
1497 #define SWIG_init    boot_Amanda__Logfile
1498
1499 #define SWIG_name   "Amanda::Logfilec::boot_Amanda__Logfile"
1500 #define SWIG_prefix "Amanda::Logfilec::"
1501
1502 #define SWIGVERSION 0x010339 
1503 #define SWIG_VERSION SWIGVERSION
1504
1505
1506 #define SWIG_as_voidptr(a) (void *)((const void *)(a)) 
1507 #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) 
1508
1509
1510 #ifdef __cplusplus
1511 extern "C"
1512 #endif
1513 #ifndef PERL_OBJECT
1514 #ifndef MULTIPLICITY
1515 SWIGEXPORT void SWIG_init (CV* cv);
1516 #else
1517 SWIGEXPORT void SWIG_init (pTHXo_ CV* cv);
1518 #endif
1519 #else
1520 SWIGEXPORT void SWIG_init (CV *cv, CPerlObj *);
1521 #endif
1522
1523
1524 #include "amglue.h"
1525
1526
1527 #include "amglue.h"
1528
1529
1530 #include "amglue.h"
1531
1532
1533 #include "cmdline.h"
1534
1535
1536 typedef GSList amglue_dumpspec_list;
1537
1538
1539 #include <glib.h>
1540 #include "logfile.h"
1541 #include "find.h"
1542 #include "diskfile.h" /* for the gross hack, below */
1543
1544
1545 SWIGINTERNINLINE SV *
1546 SWIG_From_long  SWIG_PERL_DECL_ARGS_1(long value)
1547 {    
1548   SV *obj = sv_newmortal();
1549   sv_setiv(obj, (IV) value);
1550   return obj;
1551 }
1552
1553
1554 SWIGINTERNINLINE SV *
1555 SWIG_From_int  SWIG_PERL_DECL_ARGS_1(int value)
1556 {    
1557   return SWIG_From_long  SWIG_PERL_CALL_ARGS_1(value);
1558 }
1559
1560
1561 /* open_ and close_logfile are both simple wrappers around fopen/fclose. */
1562 typedef FILE loghandle;
1563
1564 static loghandle *open_logfile(char *filename) {
1565     return fopen(filename, "r");
1566 }
1567
1568
1569 SWIGINTERN swig_type_info*
1570 SWIG_pchar_descriptor(void)
1571 {
1572   static int init = 0;
1573   static swig_type_info* info = 0;
1574   if (!init) {
1575     info = SWIG_TypeQuery("_p_char");
1576     init = 1;
1577   }
1578   return info;
1579 }
1580
1581
1582 SWIGINTERN int
1583 SWIG_AsCharPtrAndSize(SV *obj, char** cptr, size_t* psize, int *alloc)
1584 {
1585   if (SvMAGICAL(obj)) {
1586      SV *tmp = sv_newmortal();
1587      SvSetSV(tmp, obj);
1588      obj = tmp;
1589   }
1590   if (SvPOK(obj)) {
1591     STRLEN len = 0;
1592     char *cstr = SvPV(obj, len); 
1593     size_t size = len + 1;
1594     if (cptr)  {
1595       if (alloc) {
1596         if (*alloc == SWIG_NEWOBJ) {
1597           *cptr = (char *)memcpy((char *)malloc((size)*sizeof(char)), cstr, sizeof(char)*(size));
1598         } else {
1599           *cptr = cstr;
1600           *alloc = SWIG_OLDOBJ;
1601         }
1602       }
1603     }
1604     if (psize) *psize = size;
1605     return SWIG_OK;
1606   } else {
1607     swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
1608     if (pchar_descriptor) {
1609       char* vptr = 0; 
1610       if (SWIG_ConvertPtr(obj, (void**)&vptr, pchar_descriptor, 0) == SWIG_OK) {
1611         if (cptr) *cptr = vptr;
1612         if (psize) *psize = vptr ? (strlen(vptr) + 1) : 0;
1613         if (alloc) *alloc = SWIG_OLDOBJ;
1614         return SWIG_OK;
1615       }
1616     }
1617   }
1618   return SWIG_TypeError;
1619 }
1620
1621
1622
1623
1624
1625 static void close_logfile(loghandle *logfile) {
1626     if (logfile) fclose(logfile);
1627 }
1628
1629
1630 typedef int LOGLINE_RETURN;
1631
1632
1633 static void log_add_(logtype_t typ, char *message)
1634 {
1635     log_add(typ, "%s", message);
1636 }
1637 static void log_add_full_(logtype_t typ, char *pname, char *message)
1638 {
1639     log_add_full(typ, pname, "%s", message);
1640 }
1641
1642
1643 #include <limits.h>
1644 #if !defined(SWIG_NO_LLONG_MAX)
1645 # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
1646 #   define LLONG_MAX __LONG_LONG_MAX__
1647 #   define LLONG_MIN (-LLONG_MAX - 1LL)
1648 #   define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
1649 # endif
1650 #endif
1651
1652
1653 SWIGINTERN int
1654 SWIG_AsVal_double SWIG_PERL_DECL_ARGS_2(SV *obj, double *val)
1655 {
1656   if (SvNIOK(obj)) {
1657     if (val) *val = SvNV(obj);
1658     return SWIG_OK;
1659   } else if (SvIOK(obj)) {
1660     if (val) *val = (double) SvIV(obj);
1661     return SWIG_AddCast(SWIG_OK);
1662   } else {
1663     const char *nptr = SvPV_nolen(obj);
1664     if (nptr) {
1665       char *endptr;
1666       double v = strtod(nptr, &endptr);
1667       if (errno == ERANGE) {
1668         errno = 0;
1669         return SWIG_OverflowError;
1670       } else {
1671         if (*endptr == '\0') {
1672           if (val) *val = v;
1673           return SWIG_Str2NumCast(SWIG_OK);
1674         }
1675       }
1676     }
1677   }
1678   return SWIG_TypeError;
1679 }
1680
1681
1682 #include <float.h>
1683
1684
1685 #include <math.h>
1686
1687
1688 SWIGINTERNINLINE int
1689 SWIG_CanCastAsInteger(double *d, double min, double max) {
1690   double x = *d;
1691   if ((min <= x && x <= max)) {
1692    double fx = floor(x);
1693    double cx = ceil(x);
1694    double rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */
1695    if ((errno == EDOM) || (errno == ERANGE)) {
1696      errno = 0;
1697    } else {
1698      double summ, reps, diff;
1699      if (rd < x) {
1700        diff = x - rd;
1701      } else if (rd > x) {
1702        diff = rd - x;
1703      } else {
1704        return 1;
1705      }
1706      summ = rd + x;
1707      reps = diff/summ;
1708      if (reps < 8*DBL_EPSILON) {
1709        *d = rd;
1710        return 1;
1711      }
1712    }
1713   }
1714   return 0;
1715 }
1716
1717
1718 SWIGINTERN int
1719 SWIG_AsVal_long SWIG_PERL_DECL_ARGS_2(SV *obj, long* val)
1720 {
1721   if (SvIOK(obj)) {
1722     if (val) *val = SvIV(obj);
1723     return SWIG_OK;
1724   } else {
1725     int dispatch = 0;
1726     const char *nptr = SvPV_nolen(obj);
1727     if (nptr) {
1728       char *endptr;
1729       long v;
1730       errno = 0;
1731       v = strtol(nptr, &endptr,0);
1732       if (errno == ERANGE) {
1733         errno = 0;
1734         return SWIG_OverflowError;
1735       } else {
1736         if (*endptr == '\0') {
1737           if (val) *val = v;
1738           return SWIG_Str2NumCast(SWIG_OK);
1739         }
1740       }
1741     }
1742     if (!dispatch) {
1743       double d;
1744       int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d));
1745       if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
1746         if (val) *val = (long)(d);
1747         return res;
1748       }
1749     }
1750   }
1751   return SWIG_TypeError;
1752 }
1753
1754
1755 SWIGINTERN int
1756 SWIG_AsVal_int SWIG_PERL_DECL_ARGS_2(SV * obj, int *val)
1757 {
1758   long v;
1759   int res = SWIG_AsVal_long SWIG_PERL_CALL_ARGS_2(obj, &v);
1760   if (SWIG_IsOK(res)) {
1761     if ((v < INT_MIN || v > INT_MAX)) {
1762       return SWIG_OverflowError;
1763     } else {
1764       if (val) *val = (int)(v);
1765     }
1766   }  
1767   return res;
1768 }
1769
1770 SWIGINTERN void delete_find_result_t(find_result_t *self){
1771             find_result_t *selfp = self;
1772             free_find_result(&selfp);
1773         }
1774
1775 SWIGINTERNINLINE SV *
1776 SWIG_FromCharPtrAndSize(const char* carray, size_t size)
1777 {
1778   SV *obj = sv_newmortal();
1779   if (carray) {
1780     sv_setpvn(obj, carray, size);
1781   } else {
1782     sv_setsv(obj, &PL_sv_undef);
1783   }
1784   return obj;
1785 }
1786
1787
1788 SWIGINTERNINLINE SV * 
1789 SWIG_FromCharPtr(const char *cptr)
1790
1791   return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
1792 }
1793
1794
1795 SWIGINTERNINLINE SV *
1796 SWIG_From_double  SWIG_PERL_DECL_ARGS_1(double value)
1797 {    
1798   SV *obj = sv_newmortal();
1799   sv_setnv(obj, value);
1800   return obj;
1801 }
1802
1803
1804 static find_result_t *search_logfile_wrap(char *label, char *datestamp,
1805                                    char *logfile, int add_missing_disks) {
1806     find_result_t *rv = NULL;
1807
1808     /* We use a static variable to collect any unrecognized disks */
1809     static disklist_t unrecognized_disks = { NULL, NULL };
1810
1811     search_logfile(&rv, label, datestamp, logfile, 
1812         add_missing_disks? &unrecognized_disks : NULL);
1813
1814     return rv;
1815 }
1816
1817
1818 static find_result_t *search_holding_disk_wrap(void) {
1819     find_result_t *rv = NULL;
1820     static disklist_t unrecognized_disks = { NULL, NULL };
1821     search_holding_disk(&rv, &unrecognized_disks);
1822     return rv;
1823 }
1824
1825 #ifdef __cplusplus
1826 extern "C" {
1827 #endif
1828
1829 #ifdef PERL_OBJECT
1830 #define MAGIC_CLASS _wrap_Amanda__Logfile_var::
1831 class _wrap_Amanda__Logfile_var : public CPerlObj {
1832 public:
1833 #else
1834 #define MAGIC_CLASS
1835 #endif
1836 SWIGCLASS_STATIC int swig_magic_readonly(pTHX_ SV *SWIGUNUSEDPARM(sv), MAGIC *SWIGUNUSEDPARM(mg)) {
1837     MAGIC_PPERL
1838     croak("Value is read-only.");
1839     return 0;
1840 }
1841 SWIGCLASS_STATIC int _wrap_amanda_log_trace_log_get(pTHX_ SV *sv, MAGIC *SWIGUNUSEDPARM(mg)) {
1842   MAGIC_PPERL
1843   sv_setiv(SvRV(sv),PTR2IV(amanda_log_trace_log));
1844   return 1;
1845 }
1846
1847
1848
1849
1850 #ifdef PERL_OBJECT
1851 };
1852 #endif
1853
1854 #ifdef __cplusplus
1855 }
1856 #endif
1857
1858 #ifdef __cplusplus
1859 extern "C" {
1860 #endif
1861 XS(_wrap_open_logfile) {
1862   {
1863     char *arg1 = (char *) 0 ;
1864     int res1 ;
1865     char *buf1 = 0 ;
1866     int alloc1 = 0 ;
1867     int argvi = 0;
1868     loghandle *result = 0 ;
1869     dXSARGS;
1870     
1871     if ((items < 1) || (items > 1)) {
1872       SWIG_croak("Usage: open_logfile(filename);");
1873     }
1874     res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
1875     if (!SWIG_IsOK(res1)) {
1876       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "open_logfile" "', argument " "1"" of type '" "char *""'");
1877     }
1878     arg1 = (char *)(buf1);
1879     result = (loghandle *)open_logfile(arg1);
1880     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FILE, 0 | 0); argvi++ ;
1881     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
1882     XSRETURN(argvi);
1883   fail:
1884     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
1885     SWIG_croak_null();
1886   }
1887 }
1888
1889
1890 XS(_wrap_close_logfile) {
1891   {
1892     loghandle *arg1 = (loghandle *) 0 ;
1893     void *argp1 = 0 ;
1894     int res1 = 0 ;
1895     int argvi = 0;
1896     dXSARGS;
1897     
1898     if ((items < 1) || (items > 1)) {
1899       SWIG_croak("Usage: close_logfile(logfile);");
1900     }
1901     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_FILE, 0 |  0 );
1902     if (!SWIG_IsOK(res1)) {
1903       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "close_logfile" "', argument " "1"" of type '" "loghandle *""'"); 
1904     }
1905     arg1 = (loghandle *)(argp1);
1906     close_logfile(arg1);
1907     ST(argvi) = sv_newmortal();
1908     
1909     XSRETURN(argvi);
1910   fail:
1911     
1912     SWIG_croak_null();
1913   }
1914 }
1915
1916
1917 XS(_wrap_get_logline) {
1918   {
1919     FILE *arg1 = (FILE *) 0 ;
1920     void *argp1 = 0 ;
1921     int res1 = 0 ;
1922     int argvi = 0;
1923     LOGLINE_RETURN result;
1924     dXSARGS;
1925     
1926     if ((items < 1) || (items > 1)) {
1927       SWIG_croak("Usage: get_logline(logfile);");
1928     }
1929     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_FILE, 0 |  0 );
1930     if (!SWIG_IsOK(res1)) {
1931       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_logline" "', argument " "1"" of type '" "FILE *""'"); 
1932     }
1933     arg1 = (FILE *)(argp1);
1934     result = get_logline(arg1);
1935     {
1936       if (result != 0) {
1937         EXTEND(SP, 3);
1938         ST(argvi) = sv_2mortal(newSViv(curlog));
1939         argvi++;
1940         ST(argvi) = sv_2mortal(newSViv(curprog));
1941         argvi++;
1942         ST(argvi) = sv_2mortal(newSVpv(curstr, 0));
1943         argvi++;
1944       }
1945       /* otherwise (end of logfile) return an empty list */
1946     }
1947     
1948     XSRETURN(argvi);
1949   fail:
1950     
1951     SWIG_croak_null();
1952   }
1953 }
1954
1955
1956 XS(_wrap_log_add) {
1957   {
1958     logtype_t arg1 ;
1959     char *arg2 = (char *) 0 ;
1960     int res2 ;
1961     char *buf2 = 0 ;
1962     int alloc2 = 0 ;
1963     int argvi = 0;
1964     dXSARGS;
1965     
1966     if ((items < 2) || (items > 2)) {
1967       SWIG_croak("Usage: log_add(typ,message);");
1968     }
1969     {
1970       if (sizeof(signed int) == 1) {
1971         arg1 = amglue_SvI8(ST(0));
1972       } else if (sizeof(signed int) == 2) {
1973         arg1 = amglue_SvI16(ST(0));
1974       } else if (sizeof(signed int) == 4) {
1975         arg1 = amglue_SvI32(ST(0));
1976       } else if (sizeof(signed int) == 8) {
1977         arg1 = amglue_SvI64(ST(0));
1978       } else {
1979         g_critical("Unexpected signed int >64 bits?"); /* should be optimized out unless sizeof(signed int) > 8 */
1980       }
1981     }
1982     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
1983     if (!SWIG_IsOK(res2)) {
1984       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "log_add" "', argument " "2"" of type '" "char *""'");
1985     }
1986     arg2 = (char *)(buf2);
1987     log_add_(arg1,arg2);
1988     ST(argvi) = sv_newmortal();
1989     
1990     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
1991     XSRETURN(argvi);
1992   fail:
1993     
1994     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
1995     SWIG_croak_null();
1996   }
1997 }
1998
1999
2000 XS(_wrap_log_add_full) {
2001   {
2002     logtype_t arg1 ;
2003     char *arg2 = (char *) 0 ;
2004     char *arg3 = (char *) 0 ;
2005     int res2 ;
2006     char *buf2 = 0 ;
2007     int alloc2 = 0 ;
2008     int res3 ;
2009     char *buf3 = 0 ;
2010     int alloc3 = 0 ;
2011     int argvi = 0;
2012     dXSARGS;
2013     
2014     if ((items < 3) || (items > 3)) {
2015       SWIG_croak("Usage: log_add_full(typ,pname,message);");
2016     }
2017     {
2018       if (sizeof(signed int) == 1) {
2019         arg1 = amglue_SvI8(ST(0));
2020       } else if (sizeof(signed int) == 2) {
2021         arg1 = amglue_SvI16(ST(0));
2022       } else if (sizeof(signed int) == 4) {
2023         arg1 = amglue_SvI32(ST(0));
2024       } else if (sizeof(signed int) == 8) {
2025         arg1 = amglue_SvI64(ST(0));
2026       } else {
2027         g_critical("Unexpected signed int >64 bits?"); /* should be optimized out unless sizeof(signed int) > 8 */
2028       }
2029     }
2030     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
2031     if (!SWIG_IsOK(res2)) {
2032       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "log_add_full" "', argument " "2"" of type '" "char *""'");
2033     }
2034     arg2 = (char *)(buf2);
2035     res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3);
2036     if (!SWIG_IsOK(res3)) {
2037       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "log_add_full" "', argument " "3"" of type '" "char *""'");
2038     }
2039     arg3 = (char *)(buf3);
2040     log_add_full_(arg1,arg2,arg3);
2041     ST(argvi) = sv_newmortal();
2042     
2043     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2044     if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
2045     XSRETURN(argvi);
2046   fail:
2047     
2048     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2049     if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
2050     SWIG_croak_null();
2051   }
2052 }
2053
2054
2055 XS(_wrap_log_rename) {
2056   {
2057     char *arg1 = (char *) 0 ;
2058     int res1 ;
2059     char *buf1 = 0 ;
2060     int alloc1 = 0 ;
2061     int argvi = 0;
2062     dXSARGS;
2063     
2064     if ((items < 1) || (items > 1)) {
2065       SWIG_croak("Usage: log_rename(datestamp);");
2066     }
2067     res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
2068     if (!SWIG_IsOK(res1)) {
2069       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "log_rename" "', argument " "1"" of type '" "char *""'");
2070     }
2071     arg1 = (char *)(buf1);
2072     log_rename(arg1);
2073     ST(argvi) = sv_newmortal();
2074     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
2075     XSRETURN(argvi);
2076   fail:
2077     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
2078     SWIG_croak_null();
2079   }
2080 }
2081
2082
2083 XS(_wrap_delete_find_result_t) {
2084   {
2085     find_result_t *arg1 = (find_result_t *) 0 ;
2086     void *argp1 = 0 ;
2087     int res1 = 0 ;
2088     int argvi = 0;
2089     dXSARGS;
2090     
2091     if ((items < 1) || (items > 1)) {
2092       SWIG_croak("Usage: delete_find_result_t(self);");
2093     }
2094     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, SWIG_POINTER_DISOWN |  0 );
2095     if (!SWIG_IsOK(res1)) {
2096       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_find_result_t" "', argument " "1"" of type '" "find_result_t *""'"); 
2097     }
2098     arg1 = (find_result_t *)(argp1);
2099     delete_find_result_t(arg1);
2100     ST(argvi) = sv_newmortal();
2101     
2102     XSRETURN(argvi);
2103   fail:
2104     
2105     SWIG_croak_null();
2106   }
2107 }
2108
2109
2110 XS(_wrap_find_result_t_timestamp_get) {
2111   {
2112     find_result_t *arg1 = (find_result_t *) 0 ;
2113     void *argp1 = 0 ;
2114     int res1 = 0 ;
2115     int argvi = 0;
2116     char *result = 0 ;
2117     dXSARGS;
2118     
2119     if ((items < 1) || (items > 1)) {
2120       SWIG_croak("Usage: find_result_t_timestamp_get(self);");
2121     }
2122     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2123     if (!SWIG_IsOK(res1)) {
2124       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_timestamp_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2125     }
2126     arg1 = (find_result_t *)(argp1);
2127     result = (char *) ((arg1)->timestamp);
2128     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2129     
2130     XSRETURN(argvi);
2131   fail:
2132     
2133     SWIG_croak_null();
2134   }
2135 }
2136
2137
2138 XS(_wrap_find_result_t_write_timestamp_get) {
2139   {
2140     find_result_t *arg1 = (find_result_t *) 0 ;
2141     void *argp1 = 0 ;
2142     int res1 = 0 ;
2143     int argvi = 0;
2144     char *result = 0 ;
2145     dXSARGS;
2146     
2147     if ((items < 1) || (items > 1)) {
2148       SWIG_croak("Usage: find_result_t_write_timestamp_get(self);");
2149     }
2150     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2151     if (!SWIG_IsOK(res1)) {
2152       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_write_timestamp_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2153     }
2154     arg1 = (find_result_t *)(argp1);
2155     result = (char *) ((arg1)->write_timestamp);
2156     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2157     
2158     XSRETURN(argvi);
2159   fail:
2160     
2161     SWIG_croak_null();
2162   }
2163 }
2164
2165
2166 XS(_wrap_find_result_t_hostname_get) {
2167   {
2168     find_result_t *arg1 = (find_result_t *) 0 ;
2169     void *argp1 = 0 ;
2170     int res1 = 0 ;
2171     int argvi = 0;
2172     char *result = 0 ;
2173     dXSARGS;
2174     
2175     if ((items < 1) || (items > 1)) {
2176       SWIG_croak("Usage: find_result_t_hostname_get(self);");
2177     }
2178     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2179     if (!SWIG_IsOK(res1)) {
2180       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_hostname_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2181     }
2182     arg1 = (find_result_t *)(argp1);
2183     result = (char *) ((arg1)->hostname);
2184     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2185     
2186     XSRETURN(argvi);
2187   fail:
2188     
2189     SWIG_croak_null();
2190   }
2191 }
2192
2193
2194 XS(_wrap_find_result_t_diskname_get) {
2195   {
2196     find_result_t *arg1 = (find_result_t *) 0 ;
2197     void *argp1 = 0 ;
2198     int res1 = 0 ;
2199     int argvi = 0;
2200     char *result = 0 ;
2201     dXSARGS;
2202     
2203     if ((items < 1) || (items > 1)) {
2204       SWIG_croak("Usage: find_result_t_diskname_get(self);");
2205     }
2206     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2207     if (!SWIG_IsOK(res1)) {
2208       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_diskname_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2209     }
2210     arg1 = (find_result_t *)(argp1);
2211     result = (char *) ((arg1)->diskname);
2212     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2213     
2214     XSRETURN(argvi);
2215   fail:
2216     
2217     SWIG_croak_null();
2218   }
2219 }
2220
2221
2222 XS(_wrap_find_result_t_level_get) {
2223   {
2224     find_result_t *arg1 = (find_result_t *) 0 ;
2225     void *argp1 = 0 ;
2226     int res1 = 0 ;
2227     int argvi = 0;
2228     int result;
2229     dXSARGS;
2230     
2231     if ((items < 1) || (items > 1)) {
2232       SWIG_croak("Usage: find_result_t_level_get(self);");
2233     }
2234     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2235     if (!SWIG_IsOK(res1)) {
2236       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_level_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2237     }
2238     arg1 = (find_result_t *)(argp1);
2239     result = (int) ((arg1)->level);
2240     {
2241       SV *for_stack;
2242       SP += argvi; PUTBACK;
2243       for_stack = sv_2mortal(amglue_newSVi64(result));
2244       SPAGAIN; SP -= argvi;
2245       ST(argvi) = for_stack;
2246       argvi++;
2247     }
2248     
2249     XSRETURN(argvi);
2250   fail:
2251     
2252     SWIG_croak_null();
2253   }
2254 }
2255
2256
2257 XS(_wrap_find_result_t_label_get) {
2258   {
2259     find_result_t *arg1 = (find_result_t *) 0 ;
2260     void *argp1 = 0 ;
2261     int res1 = 0 ;
2262     int argvi = 0;
2263     char *result = 0 ;
2264     dXSARGS;
2265     
2266     if ((items < 1) || (items > 1)) {
2267       SWIG_croak("Usage: find_result_t_label_get(self);");
2268     }
2269     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2270     if (!SWIG_IsOK(res1)) {
2271       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_label_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2272     }
2273     arg1 = (find_result_t *)(argp1);
2274     result = (char *) ((arg1)->label);
2275     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2276     
2277     XSRETURN(argvi);
2278   fail:
2279     
2280     SWIG_croak_null();
2281   }
2282 }
2283
2284
2285 XS(_wrap_find_result_t_filenum_get) {
2286   {
2287     find_result_t *arg1 = (find_result_t *) 0 ;
2288     void *argp1 = 0 ;
2289     int res1 = 0 ;
2290     int argvi = 0;
2291     off_t result;
2292     dXSARGS;
2293     
2294     if ((items < 1) || (items > 1)) {
2295       SWIG_croak("Usage: find_result_t_filenum_get(self);");
2296     }
2297     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2298     if (!SWIG_IsOK(res1)) {
2299       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_filenum_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2300     }
2301     arg1 = (find_result_t *)(argp1);
2302     result =  ((arg1)->filenum);
2303     {
2304       SV *for_stack;
2305       SP += argvi; PUTBACK;
2306       for_stack = sv_2mortal(amglue_newSVu64(result));
2307       SPAGAIN; SP -= argvi;
2308       ST(argvi) = for_stack;
2309       argvi++;
2310     }
2311     
2312     XSRETURN(argvi);
2313   fail:
2314     
2315     SWIG_croak_null();
2316   }
2317 }
2318
2319
2320 XS(_wrap_find_result_t_status_get) {
2321   {
2322     find_result_t *arg1 = (find_result_t *) 0 ;
2323     void *argp1 = 0 ;
2324     int res1 = 0 ;
2325     int argvi = 0;
2326     char *result = 0 ;
2327     dXSARGS;
2328     
2329     if ((items < 1) || (items > 1)) {
2330       SWIG_croak("Usage: find_result_t_status_get(self);");
2331     }
2332     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2333     if (!SWIG_IsOK(res1)) {
2334       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_status_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2335     }
2336     arg1 = (find_result_t *)(argp1);
2337     result = (char *) ((arg1)->status);
2338     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2339     
2340     XSRETURN(argvi);
2341   fail:
2342     
2343     SWIG_croak_null();
2344   }
2345 }
2346
2347
2348 XS(_wrap_find_result_t_dump_status_get) {
2349   {
2350     find_result_t *arg1 = (find_result_t *) 0 ;
2351     void *argp1 = 0 ;
2352     int res1 = 0 ;
2353     int argvi = 0;
2354     char *result = 0 ;
2355     dXSARGS;
2356     
2357     if ((items < 1) || (items > 1)) {
2358       SWIG_croak("Usage: find_result_t_dump_status_get(self);");
2359     }
2360     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2361     if (!SWIG_IsOK(res1)) {
2362       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_dump_status_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2363     }
2364     arg1 = (find_result_t *)(argp1);
2365     result = (char *) ((arg1)->dump_status);
2366     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2367     
2368     XSRETURN(argvi);
2369   fail:
2370     
2371     SWIG_croak_null();
2372   }
2373 }
2374
2375
2376 XS(_wrap_find_result_t_message_get) {
2377   {
2378     find_result_t *arg1 = (find_result_t *) 0 ;
2379     void *argp1 = 0 ;
2380     int res1 = 0 ;
2381     int argvi = 0;
2382     char *result = 0 ;
2383     dXSARGS;
2384     
2385     if ((items < 1) || (items > 1)) {
2386       SWIG_croak("Usage: find_result_t_message_get(self);");
2387     }
2388     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2389     if (!SWIG_IsOK(res1)) {
2390       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_message_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2391     }
2392     arg1 = (find_result_t *)(argp1);
2393     result = (char *) ((arg1)->message);
2394     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2395     
2396     XSRETURN(argvi);
2397   fail:
2398     
2399     SWIG_croak_null();
2400   }
2401 }
2402
2403
2404 XS(_wrap_find_result_t_partnum_get) {
2405   {
2406     find_result_t *arg1 = (find_result_t *) 0 ;
2407     void *argp1 = 0 ;
2408     int res1 = 0 ;
2409     int argvi = 0;
2410     int result;
2411     dXSARGS;
2412     
2413     if ((items < 1) || (items > 1)) {
2414       SWIG_croak("Usage: find_result_t_partnum_get(self);");
2415     }
2416     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2417     if (!SWIG_IsOK(res1)) {
2418       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_partnum_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2419     }
2420     arg1 = (find_result_t *)(argp1);
2421     result = (int) ((arg1)->partnum);
2422     {
2423       SV *for_stack;
2424       SP += argvi; PUTBACK;
2425       for_stack = sv_2mortal(amglue_newSVi64(result));
2426       SPAGAIN; SP -= argvi;
2427       ST(argvi) = for_stack;
2428       argvi++;
2429     }
2430     
2431     XSRETURN(argvi);
2432   fail:
2433     
2434     SWIG_croak_null();
2435   }
2436 }
2437
2438
2439 XS(_wrap_find_result_t_totalparts_get) {
2440   {
2441     find_result_t *arg1 = (find_result_t *) 0 ;
2442     void *argp1 = 0 ;
2443     int res1 = 0 ;
2444     int argvi = 0;
2445     int result;
2446     dXSARGS;
2447     
2448     if ((items < 1) || (items > 1)) {
2449       SWIG_croak("Usage: find_result_t_totalparts_get(self);");
2450     }
2451     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2452     if (!SWIG_IsOK(res1)) {
2453       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_totalparts_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2454     }
2455     arg1 = (find_result_t *)(argp1);
2456     result = (int) ((arg1)->totalparts);
2457     {
2458       SV *for_stack;
2459       SP += argvi; PUTBACK;
2460       for_stack = sv_2mortal(amglue_newSVi64(result));
2461       SPAGAIN; SP -= argvi;
2462       ST(argvi) = for_stack;
2463       argvi++;
2464     }
2465     
2466     XSRETURN(argvi);
2467   fail:
2468     
2469     SWIG_croak_null();
2470   }
2471 }
2472
2473
2474 XS(_wrap_find_result_t_sec_get) {
2475   {
2476     find_result_t *arg1 = (find_result_t *) 0 ;
2477     void *argp1 = 0 ;
2478     int res1 = 0 ;
2479     int argvi = 0;
2480     double result;
2481     dXSARGS;
2482     
2483     if ((items < 1) || (items > 1)) {
2484       SWIG_croak("Usage: find_result_t_sec_get(self);");
2485     }
2486     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2487     if (!SWIG_IsOK(res1)) {
2488       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_sec_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2489     }
2490     arg1 = (find_result_t *)(argp1);
2491     result = (double) ((arg1)->sec);
2492     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
2493     
2494     XSRETURN(argvi);
2495   fail:
2496     
2497     SWIG_croak_null();
2498   }
2499 }
2500
2501
2502 XS(_wrap_find_result_t_bytes_get) {
2503   {
2504     find_result_t *arg1 = (find_result_t *) 0 ;
2505     void *argp1 = 0 ;
2506     int res1 = 0 ;
2507     int argvi = 0;
2508     off_t result;
2509     dXSARGS;
2510     
2511     if ((items < 1) || (items > 1)) {
2512       SWIG_croak("Usage: find_result_t_bytes_get(self);");
2513     }
2514     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2515     if (!SWIG_IsOK(res1)) {
2516       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_bytes_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2517     }
2518     arg1 = (find_result_t *)(argp1);
2519     result =  ((arg1)->bytes);
2520     {
2521       SV *for_stack;
2522       SP += argvi; PUTBACK;
2523       for_stack = sv_2mortal(amglue_newSVu64(result));
2524       SPAGAIN; SP -= argvi;
2525       ST(argvi) = for_stack;
2526       argvi++;
2527     }
2528     
2529     XSRETURN(argvi);
2530   fail:
2531     
2532     SWIG_croak_null();
2533   }
2534 }
2535
2536
2537 XS(_wrap_find_result_t_kb_get) {
2538   {
2539     find_result_t *arg1 = (find_result_t *) 0 ;
2540     void *argp1 = 0 ;
2541     int res1 = 0 ;
2542     int argvi = 0;
2543     off_t result;
2544     dXSARGS;
2545     
2546     if ((items < 1) || (items > 1)) {
2547       SWIG_croak("Usage: find_result_t_kb_get(self);");
2548     }
2549     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2550     if (!SWIG_IsOK(res1)) {
2551       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_kb_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2552     }
2553     arg1 = (find_result_t *)(argp1);
2554     result =  ((arg1)->kb);
2555     {
2556       SV *for_stack;
2557       SP += argvi; PUTBACK;
2558       for_stack = sv_2mortal(amglue_newSVu64(result));
2559       SPAGAIN; SP -= argvi;
2560       ST(argvi) = for_stack;
2561       argvi++;
2562     }
2563     
2564     XSRETURN(argvi);
2565   fail:
2566     
2567     SWIG_croak_null();
2568   }
2569 }
2570
2571
2572 XS(_wrap_find_result_t_orig_kb_get) {
2573   {
2574     find_result_t *arg1 = (find_result_t *) 0 ;
2575     void *argp1 = 0 ;
2576     int res1 = 0 ;
2577     int argvi = 0;
2578     off_t result;
2579     dXSARGS;
2580     
2581     if ((items < 1) || (items > 1)) {
2582       SWIG_croak("Usage: find_result_t_orig_kb_get(self);");
2583     }
2584     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2585     if (!SWIG_IsOK(res1)) {
2586       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_orig_kb_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2587     }
2588     arg1 = (find_result_t *)(argp1);
2589     result =  ((arg1)->orig_kb);
2590     {
2591       SV *for_stack;
2592       SP += argvi; PUTBACK;
2593       for_stack = sv_2mortal(amglue_newSVu64(result));
2594       SPAGAIN; SP -= argvi;
2595       ST(argvi) = for_stack;
2596       argvi++;
2597     }
2598     
2599     XSRETURN(argvi);
2600   fail:
2601     
2602     SWIG_croak_null();
2603   }
2604 }
2605
2606
2607 XS(_wrap_new_find_result_t) {
2608   {
2609     int argvi = 0;
2610     find_result_t *result = 0 ;
2611     dXSARGS;
2612     
2613     if ((items < 0) || (items > 0)) {
2614       SWIG_croak("Usage: new_find_result_t();");
2615     }
2616     result = (find_result_t *)calloc(1, sizeof(find_result_t));
2617     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_find_result_t, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
2618     XSRETURN(argvi);
2619   fail:
2620     SWIG_croak_null();
2621   }
2622 }
2623
2624
2625 XS(_wrap_find_log) {
2626   {
2627     int argvi = 0;
2628     char **result = 0 ;
2629     dXSARGS;
2630     
2631     if ((items < 0) || (items > 0)) {
2632       SWIG_croak("Usage: find_log();");
2633     }
2634     result = (char **)find_log();
2635     {
2636       char **iter;
2637       int len, i;
2638       
2639       /* measure the length of the array and make sure perl has enough room */
2640       for (len=0, iter=result; *iter; iter++) len++;
2641       EXTEND(SP, len);
2642       
2643       /* now copy it to the perl stack */
2644       for (i=0, iter=result; *iter; iter++, i++) {
2645         ST(argvi) = sv_2mortal(newSVpv(*iter, 0));
2646         argvi++;
2647       }
2648     }
2649     XSRETURN(argvi);
2650   fail:
2651     SWIG_croak_null();
2652   }
2653 }
2654
2655
2656 XS(_wrap_search_logfile) {
2657   {
2658     char *arg1 = (char *) 0 ;
2659     char *arg2 = (char *) 0 ;
2660     char *arg3 = (char *) 0 ;
2661     int arg4 ;
2662     int res1 ;
2663     char *buf1 = 0 ;
2664     int alloc1 = 0 ;
2665     int res2 ;
2666     char *buf2 = 0 ;
2667     int alloc2 = 0 ;
2668     int res3 ;
2669     char *buf3 = 0 ;
2670     int alloc3 = 0 ;
2671     int argvi = 0;
2672     find_result_t *result = 0 ;
2673     dXSARGS;
2674     
2675     if ((items < 4) || (items > 4)) {
2676       SWIG_croak("Usage: search_logfile(label,datestamp,logfile,add_missing_disks);");
2677     }
2678     res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
2679     if (!SWIG_IsOK(res1)) {
2680       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "search_logfile" "', argument " "1"" of type '" "char *""'");
2681     }
2682     arg1 = (char *)(buf1);
2683     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
2684     if (!SWIG_IsOK(res2)) {
2685       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "search_logfile" "', argument " "2"" of type '" "char *""'");
2686     }
2687     arg2 = (char *)(buf2);
2688     res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3);
2689     if (!SWIG_IsOK(res3)) {
2690       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "search_logfile" "', argument " "3"" of type '" "char *""'");
2691     }
2692     arg3 = (char *)(buf3);
2693     {
2694       if (sizeof(signed int) == 1) {
2695         arg4 = amglue_SvI8(ST(3));
2696       } else if (sizeof(signed int) == 2) {
2697         arg4 = amglue_SvI16(ST(3));
2698       } else if (sizeof(signed int) == 4) {
2699         arg4 = amglue_SvI32(ST(3));
2700       } else if (sizeof(signed int) == 8) {
2701         arg4 = amglue_SvI64(ST(3));
2702       } else {
2703         g_critical("Unexpected signed int >64 bits?"); /* should be optimized out unless sizeof(signed int) > 8 */
2704       }
2705     }
2706     result = (find_result_t *)search_logfile_wrap(arg1,arg2,arg3,arg4);
2707     {
2708       find_result_t *iter;
2709       int len;
2710       
2711       /* measure the list and make room on the perl stack */
2712       for (len=0, iter=result; iter; iter=iter->next) len++;
2713       EXTEND(SP, len);
2714       
2715       iter = result;
2716       while (iter) {
2717         find_result_t *next;
2718         /* Let SWIG take ownership of the object */
2719         ST(argvi) = SWIG_NewPointerObj(iter, SWIGTYPE_p_find_result_t, SWIG_OWNER | SWIG_SHADOW);
2720         argvi++;
2721         
2722         /* null out the 'next' field */
2723         next = iter->next;
2724         iter->next = NULL;
2725         iter = next;
2726       }
2727     }
2728     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
2729     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2730     if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
2731     
2732     XSRETURN(argvi);
2733   fail:
2734     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
2735     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2736     if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
2737     
2738     SWIG_croak_null();
2739   }
2740 }
2741
2742
2743 XS(_wrap_search_holding_disk) {
2744   {
2745     int argvi = 0;
2746     find_result_t *result = 0 ;
2747     dXSARGS;
2748     
2749     if ((items < 0) || (items > 0)) {
2750       SWIG_croak("Usage: search_holding_disk();");
2751     }
2752     result = (find_result_t *)search_holding_disk_wrap();
2753     {
2754       find_result_t *iter;
2755       int len;
2756       
2757       /* measure the list and make room on the perl stack */
2758       for (len=0, iter=result; iter; iter=iter->next) len++;
2759       EXTEND(SP, len);
2760       
2761       iter = result;
2762       while (iter) {
2763         find_result_t *next;
2764         /* Let SWIG take ownership of the object */
2765         ST(argvi) = SWIG_NewPointerObj(iter, SWIGTYPE_p_find_result_t, SWIG_OWNER | SWIG_SHADOW);
2766         argvi++;
2767         
2768         /* null out the 'next' field */
2769         next = iter->next;
2770         iter->next = NULL;
2771         iter = next;
2772       }
2773     }
2774     XSRETURN(argvi);
2775   fail:
2776     SWIG_croak_null();
2777   }
2778 }
2779
2780
2781 XS(_wrap_dumps_match) {
2782   {
2783     find_result_t *arg1 = (find_result_t *) 0 ;
2784     char *arg2 = (char *) 0 ;
2785     char *arg3 = (char *) 0 ;
2786     char *arg4 = (char *) 0 ;
2787     char *arg5 = (char *) 0 ;
2788     int arg6 ;
2789     int res2 ;
2790     char *buf2 = 0 ;
2791     int alloc2 = 0 ;
2792     int res3 ;
2793     char *buf3 = 0 ;
2794     int alloc3 = 0 ;
2795     int res4 ;
2796     char *buf4 = 0 ;
2797     int alloc4 = 0 ;
2798     int res5 ;
2799     char *buf5 = 0 ;
2800     int alloc5 = 0 ;
2801     int argvi = 0;
2802     find_result_t *result = 0 ;
2803     dXSARGS;
2804     
2805     if ((items < 6) || (items > 6)) {
2806       SWIG_croak("Usage: dumps_match(output_find,hostname,diskname,datestamp,level,ok);");
2807     }
2808     {
2809       AV *av;
2810       I32 len, i;
2811       find_result_t *head = NULL, *tail = NULL;
2812       
2813       if (!SvROK(ST(0)) || SvTYPE(SvRV(ST(0))) != SVt_PVAV) {
2814         SWIG_exception(SWIG_TypeError, "expected an arrayref of find_result_t's");
2815       }
2816       
2817       av = (AV *)SvRV(ST(0));
2818       len = av_len(av) + 1;
2819       
2820       for (i = 0; i < len; i++) {
2821         SV **val = av_fetch(av, i, 0);
2822         find_result_t *r;
2823         
2824         if (!val || SWIG_ConvertPtr(*val, (void **)&r, SWIGTYPE_p_find_result_t, 0) == -1) {
2825           SWIG_exception(SWIG_TypeError, "array member is not a find_result_t");
2826         }
2827         
2828         if (!head) {
2829           head = tail = r;
2830         } else {
2831           tail->next = r;
2832           tail = r;
2833         }
2834         
2835         tail->next = NULL;
2836       }
2837       
2838       /* point to the head of that list */
2839       arg1 = head;
2840     }
2841     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
2842     if (!SWIG_IsOK(res2)) {
2843       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "dumps_match" "', argument " "2"" of type '" "char *""'");
2844     }
2845     arg2 = (char *)(buf2);
2846     res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3);
2847     if (!SWIG_IsOK(res3)) {
2848       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "dumps_match" "', argument " "3"" of type '" "char *""'");
2849     }
2850     arg3 = (char *)(buf3);
2851     res4 = SWIG_AsCharPtrAndSize(ST(3), &buf4, NULL, &alloc4);
2852     if (!SWIG_IsOK(res4)) {
2853       SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "dumps_match" "', argument " "4"" of type '" "char *""'");
2854     }
2855     arg4 = (char *)(buf4);
2856     res5 = SWIG_AsCharPtrAndSize(ST(4), &buf5, NULL, &alloc5);
2857     if (!SWIG_IsOK(res5)) {
2858       SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "dumps_match" "', argument " "5"" of type '" "char *""'");
2859     }
2860     arg5 = (char *)(buf5);
2861     {
2862       if (sizeof(signed int) == 1) {
2863         arg6 = amglue_SvI8(ST(5));
2864       } else if (sizeof(signed int) == 2) {
2865         arg6 = amglue_SvI16(ST(5));
2866       } else if (sizeof(signed int) == 4) {
2867         arg6 = amglue_SvI32(ST(5));
2868       } else if (sizeof(signed int) == 8) {
2869         arg6 = amglue_SvI64(ST(5));
2870       } else {
2871         g_critical("Unexpected signed int >64 bits?"); /* should be optimized out unless sizeof(signed int) > 8 */
2872       }
2873     }
2874     result = (find_result_t *)dumps_match(arg1,arg2,arg3,arg4,arg5,arg6);
2875     {
2876       find_result_t *iter;
2877       int len;
2878       
2879       /* measure the list and make room on the perl stack */
2880       for (len=0, iter=result; iter; iter=iter->next) len++;
2881       EXTEND(SP, len);
2882       
2883       iter = result;
2884       while (iter) {
2885         find_result_t *next;
2886         /* Let SWIG take ownership of the object */
2887         ST(argvi) = SWIG_NewPointerObj(iter, SWIGTYPE_p_find_result_t, SWIG_OWNER | SWIG_SHADOW);
2888         argvi++;
2889         
2890         /* null out the 'next' field */
2891         next = iter->next;
2892         iter->next = NULL;
2893         iter = next;
2894       }
2895     }
2896     {
2897       find_result_t *iter = arg1, *next;
2898       
2899       /* undo all the links we added earlier */
2900       while (iter) {
2901         next = iter->next;
2902         iter->next = NULL;
2903         iter = next;
2904       }
2905     }
2906     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2907     if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
2908     if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
2909     if (alloc5 == SWIG_NEWOBJ) free((char*)buf5);
2910     
2911     XSRETURN(argvi);
2912   fail:
2913     {
2914       find_result_t *iter = arg1, *next;
2915       
2916       /* undo all the links we added earlier */
2917       while (iter) {
2918         next = iter->next;
2919         iter->next = NULL;
2920         iter = next;
2921       }
2922     }
2923     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2924     if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
2925     if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
2926     if (alloc5 == SWIG_NEWOBJ) free((char*)buf5);
2927     
2928     SWIG_croak_null();
2929   }
2930 }
2931
2932
2933 XS(_wrap_dumps_match_dumpspecs) {
2934   {
2935     find_result_t *arg1 = (find_result_t *) 0 ;
2936     amglue_dumpspec_list *arg2 = (amglue_dumpspec_list *) 0 ;
2937     gboolean arg3 ;
2938     int argvi = 0;
2939     find_result_t *result = 0 ;
2940     dXSARGS;
2941     
2942     if ((items < 3) || (items > 3)) {
2943       SWIG_croak("Usage: dumps_match_dumpspecs(output_find,dumpspecs,ok);");
2944     }
2945     {
2946       AV *av;
2947       I32 len, i;
2948       find_result_t *head = NULL, *tail = NULL;
2949       
2950       if (!SvROK(ST(0)) || SvTYPE(SvRV(ST(0))) != SVt_PVAV) {
2951         SWIG_exception(SWIG_TypeError, "expected an arrayref of find_result_t's");
2952       }
2953       
2954       av = (AV *)SvRV(ST(0));
2955       len = av_len(av) + 1;
2956       
2957       for (i = 0; i < len; i++) {
2958         SV **val = av_fetch(av, i, 0);
2959         find_result_t *r;
2960         
2961         if (!val || SWIG_ConvertPtr(*val, (void **)&r, SWIGTYPE_p_find_result_t, 0) == -1) {
2962           SWIG_exception(SWIG_TypeError, "array member is not a find_result_t");
2963         }
2964         
2965         if (!head) {
2966           head = tail = r;
2967         } else {
2968           tail->next = r;
2969           tail = r;
2970         }
2971         
2972         tail->next = NULL;
2973       }
2974       
2975       /* point to the head of that list */
2976       arg1 = head;
2977     }
2978     {
2979       AV *av;
2980       int len;
2981       int i;
2982       
2983       if (!SvROK(ST(1)) || SvTYPE(SvRV(ST(1))) != SVt_PVAV) {
2984         SWIG_exception_fail(SWIG_TypeError, "Expected an arrayref of dumpspecs");
2985       }
2986       av = (AV *)SvRV(ST(1));
2987       
2988       len = av_len(av)+1;
2989       arg2 = NULL;
2990       for (i = 0; i < len; i++) {
2991         dumpspec_t *ds = NULL;
2992         SV **elt = av_fetch(av, i, 0);
2993         if (elt)
2994         SWIG_ConvertPtr(*elt, (void **)&ds, SWIGTYPE_p_dumpspec_t, 0);
2995         if (!ds)
2996         SWIG_exception_fail(SWIG_TypeError, "Expected an arrayref of dumpspecs");
2997         arg2 = g_slist_append(arg2, ds);
2998       }
2999     }
3000     {
3001       arg3 = SvTRUE(ST(2));
3002     }
3003     result = (find_result_t *)dumps_match_dumpspecs(arg1,arg2,arg3);
3004     {
3005       find_result_t *iter;
3006       int len;
3007       
3008       /* measure the list and make room on the perl stack */
3009       for (len=0, iter=result; iter; iter=iter->next) len++;
3010       EXTEND(SP, len);
3011       
3012       iter = result;
3013       while (iter) {
3014         find_result_t *next;
3015         /* Let SWIG take ownership of the object */
3016         ST(argvi) = SWIG_NewPointerObj(iter, SWIGTYPE_p_find_result_t, SWIG_OWNER | SWIG_SHADOW);
3017         argvi++;
3018         
3019         /* null out the 'next' field */
3020         next = iter->next;
3021         iter->next = NULL;
3022         iter = next;
3023       }
3024     }
3025     {
3026       find_result_t *iter = arg1, *next;
3027       
3028       /* undo all the links we added earlier */
3029       while (iter) {
3030         next = iter->next;
3031         iter->next = NULL;
3032         iter = next;
3033       }
3034     }
3035     {
3036       /* Free the GSList, but not its contents (which are still owned by SWIG) */
3037       g_slist_free(arg2);
3038     }
3039     
3040     XSRETURN(argvi);
3041   fail:
3042     {
3043       find_result_t *iter = arg1, *next;
3044       
3045       /* undo all the links we added earlier */
3046       while (iter) {
3047         next = iter->next;
3048         iter->next = NULL;
3049         iter = next;
3050       }
3051     }
3052     {
3053       /* Free the GSList, but not its contents (which are still owned by SWIG) */
3054       g_slist_free(arg2);
3055     }
3056     
3057     SWIG_croak_null();
3058   }
3059 }
3060
3061
3062 XS(_wrap_match_host) {
3063   {
3064     char *arg1 = (char *) 0 ;
3065     char *arg2 = (char *) 0 ;
3066     int res1 ;
3067     char *buf1 = 0 ;
3068     int alloc1 = 0 ;
3069     int res2 ;
3070     char *buf2 = 0 ;
3071     int alloc2 = 0 ;
3072     int argvi = 0;
3073     gboolean result;
3074     dXSARGS;
3075     
3076     if ((items < 2) || (items > 2)) {
3077       SWIG_croak("Usage: match_host(pat,value);");
3078     }
3079     res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
3080     if (!SWIG_IsOK(res1)) {
3081       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "match_host" "', argument " "1"" of type '" "char *""'");
3082     }
3083     arg1 = (char *)(buf1);
3084     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
3085     if (!SWIG_IsOK(res2)) {
3086       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "match_host" "', argument " "2"" of type '" "char *""'");
3087     }
3088     arg2 = (char *)(buf2);
3089     result = (gboolean)match_host(arg1,arg2);
3090     {
3091       if (result)
3092       ST(argvi) = &PL_sv_yes;
3093       else
3094       ST(argvi) = &PL_sv_no;
3095       argvi++;
3096     }
3097     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3098     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3099     XSRETURN(argvi);
3100   fail:
3101     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3102     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3103     SWIG_croak_null();
3104   }
3105 }
3106
3107
3108 XS(_wrap_match_disk) {
3109   {
3110     char *arg1 = (char *) 0 ;
3111     char *arg2 = (char *) 0 ;
3112     int res1 ;
3113     char *buf1 = 0 ;
3114     int alloc1 = 0 ;
3115     int res2 ;
3116     char *buf2 = 0 ;
3117     int alloc2 = 0 ;
3118     int argvi = 0;
3119     gboolean result;
3120     dXSARGS;
3121     
3122     if ((items < 2) || (items > 2)) {
3123       SWIG_croak("Usage: match_disk(pat,value);");
3124     }
3125     res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
3126     if (!SWIG_IsOK(res1)) {
3127       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "match_disk" "', argument " "1"" of type '" "char *""'");
3128     }
3129     arg1 = (char *)(buf1);
3130     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
3131     if (!SWIG_IsOK(res2)) {
3132       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "match_disk" "', argument " "2"" of type '" "char *""'");
3133     }
3134     arg2 = (char *)(buf2);
3135     result = (gboolean)match_disk(arg1,arg2);
3136     {
3137       if (result)
3138       ST(argvi) = &PL_sv_yes;
3139       else
3140       ST(argvi) = &PL_sv_no;
3141       argvi++;
3142     }
3143     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3144     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3145     XSRETURN(argvi);
3146   fail:
3147     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3148     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3149     SWIG_croak_null();
3150   }
3151 }
3152
3153
3154 XS(_wrap_match_datestamp) {
3155   {
3156     char *arg1 = (char *) 0 ;
3157     char *arg2 = (char *) 0 ;
3158     int res1 ;
3159     char *buf1 = 0 ;
3160     int alloc1 = 0 ;
3161     int res2 ;
3162     char *buf2 = 0 ;
3163     int alloc2 = 0 ;
3164     int argvi = 0;
3165     gboolean result;
3166     dXSARGS;
3167     
3168     if ((items < 2) || (items > 2)) {
3169       SWIG_croak("Usage: match_datestamp(pat,value);");
3170     }
3171     res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
3172     if (!SWIG_IsOK(res1)) {
3173       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "match_datestamp" "', argument " "1"" of type '" "char *""'");
3174     }
3175     arg1 = (char *)(buf1);
3176     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
3177     if (!SWIG_IsOK(res2)) {
3178       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "match_datestamp" "', argument " "2"" of type '" "char *""'");
3179     }
3180     arg2 = (char *)(buf2);
3181     result = (gboolean)match_datestamp(arg1,arg2);
3182     {
3183       if (result)
3184       ST(argvi) = &PL_sv_yes;
3185       else
3186       ST(argvi) = &PL_sv_no;
3187       argvi++;
3188     }
3189     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3190     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3191     XSRETURN(argvi);
3192   fail:
3193     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3194     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3195     SWIG_croak_null();
3196   }
3197 }
3198
3199
3200 XS(_wrap_match_level) {
3201   {
3202     char *arg1 = (char *) 0 ;
3203     char *arg2 = (char *) 0 ;
3204     int res1 ;
3205     char *buf1 = 0 ;
3206     int alloc1 = 0 ;
3207     int res2 ;
3208     char *buf2 = 0 ;
3209     int alloc2 = 0 ;
3210     int argvi = 0;
3211     gboolean result;
3212     dXSARGS;
3213     
3214     if ((items < 2) || (items > 2)) {
3215       SWIG_croak("Usage: match_level(pat,value);");
3216     }
3217     res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
3218     if (!SWIG_IsOK(res1)) {
3219       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "match_level" "', argument " "1"" of type '" "char *""'");
3220     }
3221     arg1 = (char *)(buf1);
3222     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
3223     if (!SWIG_IsOK(res2)) {
3224       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "match_level" "', argument " "2"" of type '" "char *""'");
3225     }
3226     arg2 = (char *)(buf2);
3227     result = (gboolean)match_level(arg1,arg2);
3228     {
3229       if (result)
3230       ST(argvi) = &PL_sv_yes;
3231       else
3232       ST(argvi) = &PL_sv_no;
3233       argvi++;
3234     }
3235     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3236     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3237     XSRETURN(argvi);
3238   fail:
3239     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
3240     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3241     SWIG_croak_null();
3242   }
3243 }
3244
3245
3246
3247 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
3248
3249 static swig_type_info _swigt__p_FILE = {"_p_FILE", "FILE *|loghandle *", 0, 0, (void*)0, 0};
3250 static swig_type_info _swigt__p_GSList = {"_p_GSList", "amglue_dumpspec_list *|GSList *", 0, 0, (void*)0, 0};
3251 static swig_type_info _swigt__p_amanda_log_handler_t = {"_p_amanda_log_handler_t", "amanda_log_handler_t *", 0, 0, (void*)0, 0};
3252 static swig_type_info _swigt__p_char = {"_p_char", "gchar *|char *", 0, 0, (void*)0, 0};
3253 static swig_type_info _swigt__p_double = {"_p_double", "double *|gdouble *", 0, 0, (void*)0, 0};
3254 static swig_type_info _swigt__p_dumpspec_t = {"_p_dumpspec_t", "struct dumpspec_t *|dumpspec_t *", 0, 0, (void*)"Amanda::Cmdline::dumpspec_t", 0};
3255 static swig_type_info _swigt__p_find_result_t = {"_p_find_result_t", "find_result_t *", 0, 0, (void*)"Amanda::Logfile::find_result_t", 0};
3256 static swig_type_info _swigt__p_float = {"_p_float", "float *|gfloat *", 0, 0, (void*)0, 0};
3257 static swig_type_info _swigt__p_int = {"_p_int", "int *|logtype_t *|program_t *|gboolean *|cmdline_parse_dumpspecs_flags *", 0, 0, (void*)0, 0};
3258 static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "guchar *|unsigned char *", 0, 0, (void*)0, 0};
3259
3260 static swig_type_info *swig_type_initial[] = {
3261   &_swigt__p_FILE,
3262   &_swigt__p_GSList,
3263   &_swigt__p_amanda_log_handler_t,
3264   &_swigt__p_char,
3265   &_swigt__p_double,
3266   &_swigt__p_dumpspec_t,
3267   &_swigt__p_find_result_t,
3268   &_swigt__p_float,
3269   &_swigt__p_int,
3270   &_swigt__p_unsigned_char,
3271 };
3272
3273 static swig_cast_info _swigc__p_FILE[] = {  {&_swigt__p_FILE, 0, 0, 0},{0, 0, 0, 0}};
3274 static swig_cast_info _swigc__p_GSList[] = {  {&_swigt__p_GSList, 0, 0, 0},{0, 0, 0, 0}};
3275 static swig_cast_info _swigc__p_amanda_log_handler_t[] = {  {&_swigt__p_amanda_log_handler_t, 0, 0, 0},{0, 0, 0, 0}};
3276 static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
3277 static swig_cast_info _swigc__p_double[] = {  {&_swigt__p_double, 0, 0, 0},{0, 0, 0, 0}};
3278 static swig_cast_info _swigc__p_dumpspec_t[] = {  {&_swigt__p_dumpspec_t, 0, 0, 0},{0, 0, 0, 0}};
3279 static swig_cast_info _swigc__p_find_result_t[] = {  {&_swigt__p_find_result_t, 0, 0, 0},{0, 0, 0, 0}};
3280 static swig_cast_info _swigc__p_float[] = {  {&_swigt__p_float, 0, 0, 0},{0, 0, 0, 0}};
3281 static swig_cast_info _swigc__p_int[] = {  {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
3282 static swig_cast_info _swigc__p_unsigned_char[] = {  {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}};
3283
3284 static swig_cast_info *swig_cast_initial[] = {
3285   _swigc__p_FILE,
3286   _swigc__p_GSList,
3287   _swigc__p_amanda_log_handler_t,
3288   _swigc__p_char,
3289   _swigc__p_double,
3290   _swigc__p_dumpspec_t,
3291   _swigc__p_find_result_t,
3292   _swigc__p_float,
3293   _swigc__p_int,
3294   _swigc__p_unsigned_char,
3295 };
3296
3297
3298 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
3299
3300 static swig_constant_info swig_constants[] = {
3301 {0,0,0,0,0,0}
3302 };
3303 #ifdef __cplusplus
3304 }
3305 #endif
3306 static swig_variable_info swig_variables[] = {
3307     { "Amanda::Logfilec::amanda_log_trace_log", MAGIC_CLASS swig_magic_readonly, MAGIC_CLASS _wrap_amanda_log_trace_log_get,&SWIGTYPE_p_amanda_log_handler_t },
3308 {0,0,0,0}
3309 };
3310 static swig_command_info swig_commands[] = {
3311 {"Amanda::Logfilec::open_logfile", _wrap_open_logfile},
3312 {"Amanda::Logfilec::close_logfile", _wrap_close_logfile},
3313 {"Amanda::Logfilec::get_logline", _wrap_get_logline},
3314 {"Amanda::Logfilec::log_add", _wrap_log_add},
3315 {"Amanda::Logfilec::log_add_full", _wrap_log_add_full},
3316 {"Amanda::Logfilec::log_rename", _wrap_log_rename},
3317 {"Amanda::Logfilec::delete_find_result_t", _wrap_delete_find_result_t},
3318 {"Amanda::Logfilec::find_result_t_timestamp_get", _wrap_find_result_t_timestamp_get},
3319 {"Amanda::Logfilec::find_result_t_write_timestamp_get", _wrap_find_result_t_write_timestamp_get},
3320 {"Amanda::Logfilec::find_result_t_hostname_get", _wrap_find_result_t_hostname_get},
3321 {"Amanda::Logfilec::find_result_t_diskname_get", _wrap_find_result_t_diskname_get},
3322 {"Amanda::Logfilec::find_result_t_level_get", _wrap_find_result_t_level_get},
3323 {"Amanda::Logfilec::find_result_t_label_get", _wrap_find_result_t_label_get},
3324 {"Amanda::Logfilec::find_result_t_filenum_get", _wrap_find_result_t_filenum_get},
3325 {"Amanda::Logfilec::find_result_t_status_get", _wrap_find_result_t_status_get},
3326 {"Amanda::Logfilec::find_result_t_dump_status_get", _wrap_find_result_t_dump_status_get},
3327 {"Amanda::Logfilec::find_result_t_message_get", _wrap_find_result_t_message_get},
3328 {"Amanda::Logfilec::find_result_t_partnum_get", _wrap_find_result_t_partnum_get},
3329 {"Amanda::Logfilec::find_result_t_totalparts_get", _wrap_find_result_t_totalparts_get},
3330 {"Amanda::Logfilec::find_result_t_sec_get", _wrap_find_result_t_sec_get},
3331 {"Amanda::Logfilec::find_result_t_bytes_get", _wrap_find_result_t_bytes_get},
3332 {"Amanda::Logfilec::find_result_t_kb_get", _wrap_find_result_t_kb_get},
3333 {"Amanda::Logfilec::find_result_t_orig_kb_get", _wrap_find_result_t_orig_kb_get},
3334 {"Amanda::Logfilec::new_find_result_t", _wrap_new_find_result_t},
3335 {"Amanda::Logfilec::find_log", _wrap_find_log},
3336 {"Amanda::Logfilec::search_logfile", _wrap_search_logfile},
3337 {"Amanda::Logfilec::search_holding_disk", _wrap_search_holding_disk},
3338 {"Amanda::Logfilec::dumps_match", _wrap_dumps_match},
3339 {"Amanda::Logfilec::dumps_match_dumpspecs", _wrap_dumps_match_dumpspecs},
3340 {"Amanda::Logfilec::match_host", _wrap_match_host},
3341 {"Amanda::Logfilec::match_disk", _wrap_match_disk},
3342 {"Amanda::Logfilec::match_datestamp", _wrap_match_datestamp},
3343 {"Amanda::Logfilec::match_level", _wrap_match_level},
3344 {0,0}
3345 };
3346 /* -----------------------------------------------------------------------------
3347  * Type initialization:
3348  * This problem is tough by the requirement that no dynamic 
3349  * memory is used. Also, since swig_type_info structures store pointers to 
3350  * swig_cast_info structures and swig_cast_info structures store pointers back
3351  * to swig_type_info structures, we need some lookup code at initialization. 
3352  * The idea is that swig generates all the structures that are needed. 
3353  * The runtime then collects these partially filled structures. 
3354  * The SWIG_InitializeModule function takes these initial arrays out of 
3355  * swig_module, and does all the lookup, filling in the swig_module.types
3356  * array with the correct data and linking the correct swig_cast_info
3357  * structures together.
3358  *
3359  * The generated swig_type_info structures are assigned staticly to an initial 
3360  * array. We just loop through that array, and handle each type individually.
3361  * First we lookup if this type has been already loaded, and if so, use the
3362  * loaded structure instead of the generated one. Then we have to fill in the
3363  * cast linked list. The cast data is initially stored in something like a
3364  * two-dimensional array. Each row corresponds to a type (there are the same
3365  * number of rows as there are in the swig_type_initial array). Each entry in
3366  * a column is one of the swig_cast_info structures for that type.
3367  * The cast_initial array is actually an array of arrays, because each row has
3368  * a variable number of columns. So to actually build the cast linked list,
3369  * we find the array of casts associated with the type, and loop through it 
3370  * adding the casts to the list. The one last trick we need to do is making
3371  * sure the type pointer in the swig_cast_info struct is correct.
3372  *
3373  * First off, we lookup the cast->type name to see if it is already loaded. 
3374  * There are three cases to handle:
3375  *  1) If the cast->type has already been loaded AND the type we are adding
3376  *     casting info to has not been loaded (it is in this module), THEN we
3377  *     replace the cast->type pointer with the type pointer that has already
3378  *     been loaded.
3379  *  2) If BOTH types (the one we are adding casting info to, and the 
3380  *     cast->type) are loaded, THEN the cast info has already been loaded by
3381  *     the previous module so we just ignore it.
3382  *  3) Finally, if cast->type has not already been loaded, then we add that
3383  *     swig_cast_info to the linked list (because the cast->type) pointer will
3384  *     be correct.
3385  * ----------------------------------------------------------------------------- */
3386
3387 #ifdef __cplusplus
3388 extern "C" {
3389 #if 0
3390 } /* c-mode */
3391 #endif
3392 #endif
3393
3394 #if 0
3395 #define SWIGRUNTIME_DEBUG
3396 #endif
3397
3398
3399 SWIGRUNTIME void
3400 SWIG_InitializeModule(void *clientdata) {
3401   size_t i;
3402   swig_module_info *module_head, *iter;
3403   int found, init;
3404   
3405   clientdata = clientdata;
3406   
3407   /* check to see if the circular list has been setup, if not, set it up */
3408   if (swig_module.next==0) {
3409     /* Initialize the swig_module */
3410     swig_module.type_initial = swig_type_initial;
3411     swig_module.cast_initial = swig_cast_initial;
3412     swig_module.next = &swig_module;
3413     init = 1;
3414   } else {
3415     init = 0;
3416   }
3417   
3418   /* Try and load any already created modules */
3419   module_head = SWIG_GetModule(clientdata);
3420   if (!module_head) {
3421     /* This is the first module loaded for this interpreter */
3422     /* so set the swig module into the interpreter */
3423     SWIG_SetModule(clientdata, &swig_module);
3424     module_head = &swig_module;
3425   } else {
3426     /* the interpreter has loaded a SWIG module, but has it loaded this one? */
3427     found=0;
3428     iter=module_head;
3429     do {
3430       if (iter==&swig_module) {
3431         found=1;
3432         break;
3433       }
3434       iter=iter->next;
3435     } while (iter!= module_head);
3436     
3437     /* if the is found in the list, then all is done and we may leave */
3438     if (found) return;
3439     /* otherwise we must add out module into the list */
3440     swig_module.next = module_head->next;
3441     module_head->next = &swig_module;
3442   }
3443   
3444   /* When multiple interpeters are used, a module could have already been initialized in
3445        a different interpreter, but not yet have a pointer in this interpreter.
3446        In this case, we do not want to continue adding types... everything should be
3447        set up already */
3448   if (init == 0) return;
3449   
3450   /* Now work on filling in swig_module.types */
3451 #ifdef SWIGRUNTIME_DEBUG
3452   printf("SWIG_InitializeModule: size %d\n", swig_module.size);
3453 #endif
3454   for (i = 0; i < swig_module.size; ++i) {
3455     swig_type_info *type = 0;
3456     swig_type_info *ret;
3457     swig_cast_info *cast;
3458     
3459 #ifdef SWIGRUNTIME_DEBUG
3460     printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
3461 #endif
3462     
3463     /* if there is another module already loaded */
3464     if (swig_module.next != &swig_module) {
3465       type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name);
3466     }
3467     if (type) {
3468       /* Overwrite clientdata field */
3469 #ifdef SWIGRUNTIME_DEBUG
3470       printf("SWIG_InitializeModule: found type %s\n", type->name);
3471 #endif
3472       if (swig_module.type_initial[i]->clientdata) {
3473         type->clientdata = swig_module.type_initial[i]->clientdata;
3474 #ifdef SWIGRUNTIME_DEBUG
3475         printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name);
3476 #endif
3477       }
3478     } else {
3479       type = swig_module.type_initial[i];
3480     }
3481     
3482     /* Insert casting types */
3483     cast = swig_module.cast_initial[i];
3484     while (cast->type) {
3485       /* Don't need to add information already in the list */
3486       ret = 0;
3487 #ifdef SWIGRUNTIME_DEBUG
3488       printf("SWIG_InitializeModule: look cast %s\n", cast->type->name);
3489 #endif
3490       if (swig_module.next != &swig_module) {
3491         ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name);
3492 #ifdef SWIGRUNTIME_DEBUG
3493         if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name);
3494 #endif
3495       }
3496       if (ret) {
3497         if (type == swig_module.type_initial[i]) {
3498 #ifdef SWIGRUNTIME_DEBUG
3499           printf("SWIG_InitializeModule: skip old type %s\n", ret->name);
3500 #endif
3501           cast->type = ret;
3502           ret = 0;
3503         } else {
3504           /* Check for casting already in the list */
3505           swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type);
3506 #ifdef SWIGRUNTIME_DEBUG
3507           if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name);
3508 #endif
3509           if (!ocast) ret = 0;
3510         }
3511       }
3512       
3513       if (!ret) {
3514 #ifdef SWIGRUNTIME_DEBUG
3515         printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name);
3516 #endif
3517         if (type->cast) {
3518           type->cast->prev = cast;
3519           cast->next = type->cast;
3520         }
3521         type->cast = cast;
3522       }
3523       cast++;
3524     }
3525     /* Set entry in modules->types array equal to the type */
3526     swig_module.types[i] = type;
3527   }
3528   swig_module.types[i] = 0;
3529   
3530 #ifdef SWIGRUNTIME_DEBUG
3531   printf("**** SWIG_InitializeModule: Cast List ******\n");
3532   for (i = 0; i < swig_module.size; ++i) {
3533     int j = 0;
3534     swig_cast_info *cast = swig_module.cast_initial[i];
3535     printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
3536     while (cast->type) {
3537       printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
3538       cast++;
3539       ++j;
3540     }
3541     printf("---- Total casts: %d\n",j);
3542   }
3543   printf("**** SWIG_InitializeModule: Cast List ******\n");
3544 #endif
3545 }
3546
3547 /* This function will propagate the clientdata field of type to
3548 * any new swig_type_info structures that have been added into the list
3549 * of equivalent types.  It is like calling
3550 * SWIG_TypeClientData(type, clientdata) a second time.
3551 */
3552 SWIGRUNTIME void
3553 SWIG_PropagateClientData(void) {
3554   size_t i;
3555   swig_cast_info *equiv;
3556   static int init_run = 0;
3557   
3558   if (init_run) return;
3559   init_run = 1;
3560   
3561   for (i = 0; i < swig_module.size; i++) {
3562     if (swig_module.types[i]->clientdata) {
3563       equiv = swig_module.types[i]->cast;
3564       while (equiv) {
3565         if (!equiv->converter) {
3566           if (equiv->type && !equiv->type->clientdata)
3567           SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata);
3568         }
3569         equiv = equiv->next;
3570       }
3571     }
3572   }
3573 }
3574
3575 #ifdef __cplusplus
3576 #if 0
3577 {
3578   /* c-mode */
3579 #endif
3580 }
3581 #endif
3582
3583
3584
3585 #ifdef __cplusplus
3586 extern "C"
3587 #endif
3588
3589 XS(SWIG_init) {
3590   dXSARGS;
3591   int i;
3592   
3593   SWIG_InitializeModule(0);
3594   
3595   /* Install commands */
3596   for (i = 0; swig_commands[i].name; i++) {
3597     newXS((char*) swig_commands[i].name,swig_commands[i].wrapper, (char*)__FILE__);
3598   }
3599   
3600   /* Install variables */
3601   for (i = 0; swig_variables[i].name; i++) {
3602     SV *sv;
3603     sv = get_sv((char*) swig_variables[i].name, TRUE | 0x2 | GV_ADDMULTI);
3604     if (swig_variables[i].type) {
3605       SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0);
3606     } else {
3607       sv_setiv(sv,(IV) 0);
3608     }
3609     swig_create_magic(sv, (char *) swig_variables[i].name, swig_variables[i].set, swig_variables[i].get); 
3610   }
3611   
3612   /* Install constant */
3613   for (i = 0; swig_constants[i].type; i++) {
3614     SV *sv;
3615     sv = get_sv((char*)swig_constants[i].name, TRUE | 0x2 | GV_ADDMULTI);
3616     switch(swig_constants[i].type) {
3617     case SWIG_INT:
3618       sv_setiv(sv, (IV) swig_constants[i].lvalue);
3619       break;
3620     case SWIG_FLOAT:
3621       sv_setnv(sv, (double) swig_constants[i].dvalue);
3622       break;
3623     case SWIG_STRING:
3624       sv_setpv(sv, (char *) swig_constants[i].pvalue);
3625       break;
3626     case SWIG_POINTER:
3627       SWIG_MakePtr(sv, swig_constants[i].pvalue, *(swig_constants[i].ptype),0);
3628       break;
3629     case SWIG_BINARY:
3630       SWIG_MakePackedObj(sv, swig_constants[i].pvalue, swig_constants[i].lvalue, *(swig_constants[i].ptype));
3631       break;
3632     default:
3633       break;
3634     }
3635     SvREADONLY_on(sv);
3636   }
3637   
3638   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3639     SV *sv = get_sv((char*) SWIG_prefix "L_BOGUS", TRUE | 0x2 | GV_ADDMULTI);
3640     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_BOGUS)));
3641     SvREADONLY_on(sv);
3642   } while(0) /*@SWIG@*/;
3643   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3644     SV *sv = get_sv((char*) SWIG_prefix "L_FATAL", TRUE | 0x2 | GV_ADDMULTI);
3645     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_FATAL)));
3646     SvREADONLY_on(sv);
3647   } while(0) /*@SWIG@*/;
3648   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3649     SV *sv = get_sv((char*) SWIG_prefix "L_ERROR", TRUE | 0x2 | GV_ADDMULTI);
3650     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_ERROR)));
3651     SvREADONLY_on(sv);
3652   } while(0) /*@SWIG@*/;
3653   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3654     SV *sv = get_sv((char*) SWIG_prefix "L_WARNING", TRUE | 0x2 | GV_ADDMULTI);
3655     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_WARNING)));
3656     SvREADONLY_on(sv);
3657   } while(0) /*@SWIG@*/;
3658   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3659     SV *sv = get_sv((char*) SWIG_prefix "L_INFO", TRUE | 0x2 | GV_ADDMULTI);
3660     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_INFO)));
3661     SvREADONLY_on(sv);
3662   } while(0) /*@SWIG@*/;
3663   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3664     SV *sv = get_sv((char*) SWIG_prefix "L_SUMMARY", TRUE | 0x2 | GV_ADDMULTI);
3665     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_SUMMARY)));
3666     SvREADONLY_on(sv);
3667   } while(0) /*@SWIG@*/;
3668   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3669     SV *sv = get_sv((char*) SWIG_prefix "L_START", TRUE | 0x2 | GV_ADDMULTI);
3670     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_START)));
3671     SvREADONLY_on(sv);
3672   } while(0) /*@SWIG@*/;
3673   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3674     SV *sv = get_sv((char*) SWIG_prefix "L_FINISH", TRUE | 0x2 | GV_ADDMULTI);
3675     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_FINISH)));
3676     SvREADONLY_on(sv);
3677   } while(0) /*@SWIG@*/;
3678   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3679     SV *sv = get_sv((char*) SWIG_prefix "L_DISK", TRUE | 0x2 | GV_ADDMULTI);
3680     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_DISK)));
3681     SvREADONLY_on(sv);
3682   } while(0) /*@SWIG@*/;
3683   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3684     SV *sv = get_sv((char*) SWIG_prefix "L_DONE", TRUE | 0x2 | GV_ADDMULTI);
3685     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_DONE)));
3686     SvREADONLY_on(sv);
3687   } while(0) /*@SWIG@*/;
3688   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3689     SV *sv = get_sv((char*) SWIG_prefix "L_PART", TRUE | 0x2 | GV_ADDMULTI);
3690     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_PART)));
3691     SvREADONLY_on(sv);
3692   } while(0) /*@SWIG@*/;
3693   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3694     SV *sv = get_sv((char*) SWIG_prefix "L_PARTPARTIAL", TRUE | 0x2 | GV_ADDMULTI);
3695     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_PARTPARTIAL)));
3696     SvREADONLY_on(sv);
3697   } while(0) /*@SWIG@*/;
3698   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3699     SV *sv = get_sv((char*) SWIG_prefix "L_SUCCESS", TRUE | 0x2 | GV_ADDMULTI);
3700     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_SUCCESS)));
3701     SvREADONLY_on(sv);
3702   } while(0) /*@SWIG@*/;
3703   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3704     SV *sv = get_sv((char*) SWIG_prefix "L_PARTIAL", TRUE | 0x2 | GV_ADDMULTI);
3705     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_PARTIAL)));
3706     SvREADONLY_on(sv);
3707   } while(0) /*@SWIG@*/;
3708   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3709     SV *sv = get_sv((char*) SWIG_prefix "L_FAIL", TRUE | 0x2 | GV_ADDMULTI);
3710     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_FAIL)));
3711     SvREADONLY_on(sv);
3712   } while(0) /*@SWIG@*/;
3713   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3714     SV *sv = get_sv((char*) SWIG_prefix "L_STRANGE", TRUE | 0x2 | GV_ADDMULTI);
3715     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_STRANGE)));
3716     SvREADONLY_on(sv);
3717   } while(0) /*@SWIG@*/;
3718   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3719     SV *sv = get_sv((char*) SWIG_prefix "L_CHUNK", TRUE | 0x2 | GV_ADDMULTI);
3720     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_CHUNK)));
3721     SvREADONLY_on(sv);
3722   } while(0) /*@SWIG@*/;
3723   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3724     SV *sv = get_sv((char*) SWIG_prefix "L_CHUNKSUCCESS", TRUE | 0x2 | GV_ADDMULTI);
3725     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_CHUNKSUCCESS)));
3726     SvREADONLY_on(sv);
3727   } while(0) /*@SWIG@*/;
3728   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3729     SV *sv = get_sv((char*) SWIG_prefix "L_STATS", TRUE | 0x2 | GV_ADDMULTI);
3730     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_STATS)));
3731     SvREADONLY_on(sv);
3732   } while(0) /*@SWIG@*/;
3733   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3734     SV *sv = get_sv((char*) SWIG_prefix "L_MARKER", TRUE | 0x2 | GV_ADDMULTI);
3735     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_MARKER)));
3736     SvREADONLY_on(sv);
3737   } while(0) /*@SWIG@*/;
3738   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3739     SV *sv = get_sv((char*) SWIG_prefix "L_CONT", TRUE | 0x2 | GV_ADDMULTI);
3740     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_CONT)));
3741     SvREADONLY_on(sv);
3742   } while(0) /*@SWIG@*/;
3743   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3744     SV *sv = get_sv((char*) SWIG_prefix "P_UNKNOWN", TRUE | 0x2 | GV_ADDMULTI);
3745     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_UNKNOWN)));
3746     SvREADONLY_on(sv);
3747   } while(0) /*@SWIG@*/;
3748   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3749     SV *sv = get_sv((char*) SWIG_prefix "P_PLANNER", TRUE | 0x2 | GV_ADDMULTI);
3750     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_PLANNER)));
3751     SvREADONLY_on(sv);
3752   } while(0) /*@SWIG@*/;
3753   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3754     SV *sv = get_sv((char*) SWIG_prefix "P_DRIVER", TRUE | 0x2 | GV_ADDMULTI);
3755     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_DRIVER)));
3756     SvREADONLY_on(sv);
3757   } while(0) /*@SWIG@*/;
3758   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3759     SV *sv = get_sv((char*) SWIG_prefix "P_REPORTER", TRUE | 0x2 | GV_ADDMULTI);
3760     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_REPORTER)));
3761     SvREADONLY_on(sv);
3762   } while(0) /*@SWIG@*/;
3763   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3764     SV *sv = get_sv((char*) SWIG_prefix "P_DUMPER", TRUE | 0x2 | GV_ADDMULTI);
3765     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_DUMPER)));
3766     SvREADONLY_on(sv);
3767   } while(0) /*@SWIG@*/;
3768   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3769     SV *sv = get_sv((char*) SWIG_prefix "P_CHUNKER", TRUE | 0x2 | GV_ADDMULTI);
3770     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_CHUNKER)));
3771     SvREADONLY_on(sv);
3772   } while(0) /*@SWIG@*/;
3773   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3774     SV *sv = get_sv((char*) SWIG_prefix "P_TAPER", TRUE | 0x2 | GV_ADDMULTI);
3775     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_TAPER)));
3776     SvREADONLY_on(sv);
3777   } while(0) /*@SWIG@*/;
3778   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3779     SV *sv = get_sv((char*) SWIG_prefix "P_AMFLUSH", TRUE | 0x2 | GV_ADDMULTI);
3780     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_AMFLUSH)));
3781     SvREADONLY_on(sv);
3782   } while(0) /*@SWIG@*/;
3783   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3784     SV *sv = get_sv((char*) SWIG_prefix "P_AMDUMP", TRUE | 0x2 | GV_ADDMULTI);
3785     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_AMDUMP)));
3786     SvREADONLY_on(sv);
3787   } while(0) /*@SWIG@*/;
3788   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3789     SV *sv = get_sv((char*) SWIG_prefix "P_AMIDXTAPED", TRUE | 0x2 | GV_ADDMULTI);
3790     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_AMIDXTAPED)));
3791     SvREADONLY_on(sv);
3792   } while(0) /*@SWIG@*/;
3793   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3794     SV *sv = get_sv((char*) SWIG_prefix "P_AMFETCHDUMP", TRUE | 0x2 | GV_ADDMULTI);
3795     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_AMFETCHDUMP)));
3796     SvREADONLY_on(sv);
3797   } while(0) /*@SWIG@*/;
3798   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3799     SV *sv = get_sv((char*) SWIG_prefix "P_AMCHECKDUMP", TRUE | 0x2 | GV_ADDMULTI);
3800     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_AMCHECKDUMP)));
3801     SvREADONLY_on(sv);
3802   } while(0) /*@SWIG@*/;
3803   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3804     SV *sv = get_sv((char*) SWIG_prefix "P_AMVAULT", TRUE | 0x2 | GV_ADDMULTI);
3805     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_AMVAULT)));
3806     SvREADONLY_on(sv);
3807   } while(0) /*@SWIG@*/;
3808   SWIG_TypeClientData(SWIGTYPE_p_find_result_t, (void*) "Amanda::Logfile::find_result_t");
3809   ST(0) = &PL_sv_yes;
3810   XSRETURN(1);
3811 }
3812