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