File Coverage

KontoCheck.xs
Criterion Covered Total %
statement 404 1049 38.5
branch 251 1152 21.7
condition n/a
subroutine n/a
pod n/a
total 655 2201 29.7


line stmt bran cond sub pod time code
1             #include "EXTERN.h"
2             #include "perl.h"
3             #include "XSUB.h"
4              
5             #include "ppport.h"
6             #include "konto_check.h"
7             // #include "konto_check-at.h"
8              
9             MODULE = Business::KontoCheck PACKAGE = Business::KontoCheck
10             PROTOTYPES: ENABLE
11              
12             # Aufrufe der konto_check Bibliothek
13             int
14             kto_check(pz_or_blz,kto,lut_name)
15             char *pz_or_blz;
16             char *kto;
17             char *lut_name;
18              
19             const char *
20             kto_check_str(pz_or_blz,kto,lut_name)
21             char *pz_or_blz;
22             char *kto;
23             char *lut_name;
24              
25             int
26             kto_check_blz(blz,kto)
27             char *blz;
28             char *kto;
29              
30             int
31             kto_check_regel(blz,kto)
32             char *blz;
33             char *kto;
34              
35             int
36             set_verbose_debug(mode)
37             int mode;
38              
39             int
40             set_default_compression(mode)
41             int mode;
42              
43             int
44             dump_lutfile(outputname,felder)
45             char *outputname;
46             int felder;
47             CODE:
48 0           RETVAL=dump_lutfile_p(outputname,felder);
49             OUTPUT:
50             RETVAL
51              
52             int
53             kto_check_pz(pz,kto...)
54             char *pz;
55             char *kto;
56             PREINIT:
57             char *blz;
58             CODE:
59 8142           switch(items){
60             case 2:
61 8142           blz=NULL;
62 8142           break;
63             case 3:
64 0 0         blz=(char *)SvPV_nolen(ST(2));
65 0           break;
66             default:
67 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::kto_check_pz(pz, kto[, blz])");
68             break;
69             }
70 8142           RETVAL = kto_check_pz(pz,kto,blz);
71             OUTPUT:
72             RETVAL
73              
74             int
75             kto_check_regel_dbg_i(blz,kto,blz2,kto2,bic,regel,methode,pz_methode,pz,pz_pos)
76             char *blz;
77             char *kto;
78             char *blz2;
79             char *kto2;
80             const char *bic;
81             int regel;
82             const char *methode;
83             int pz_methode;
84             int pz;
85             int pz_pos;
86             PREINIT:
87             char blz2a[10],kto2a[12];
88             RETVAL retvals;
89             CODE:
90 0 0         if(items<10)Perl_croak(aTHX_ "Usage: Business::KontoCheck::kto_check_regel_dbg_i(blz,kto,blz2,kto2,bic,regel,methode,pz_methode,pz,pz_pos)");
91 0           RETVAL=kto_check_regel_dbg(blz,kto,blz2a,kto2a,&bic,®el,&retvals);
92 0           sv_setpv((SV*)ST(2),blz2a);
93 0 0         SvSETMAGIC(ST(2));
94 0           sv_setpv((SV*)ST(3),kto2a);
95 0 0         SvSETMAGIC(ST(3));
96 0           sv_setpv((SV*)ST(4),bic);
97 0 0         SvSETMAGIC(ST(4));
98 0           sv_setiv(ST(5),(IV)regel);
99 0 0         SvSETMAGIC(ST(5));
100 0           sv_setpv((SV*)ST(6),methode);
101 0 0         SvSETMAGIC(ST(6));
102 0           sv_setiv(ST(7),(IV)pz_methode);
103 0 0         SvSETMAGIC(ST(7));
104 0           sv_setiv(ST(8),(IV)pz);
105 0 0         SvSETMAGIC(ST(8));
106 0           sv_setiv(ST(9),(IV)pz_pos);
107 0 0         SvSETMAGIC(ST(9));
108             OUTPUT:
109             RETVAL
110              
111             int
112             lut_valid()
113              
114             void
115             lut_cleanup()
116              
117             int
118             lut_init(...)
119             PREINIT:
120             char *lut_name;
121             unsigned int required;
122             unsigned int set;
123             CODE:
124 13           switch(items){
125             case 0:
126 0           lut_name=NULL;
127 0           required=DEFAULT_INIT_LEVEL;
128 0           set=0;
129 0           break;
130             case 1:
131 4 50         lut_name=(char *)SvPV_nolen(ST(0));
132 4           required=DEFAULT_INIT_LEVEL;
133 4           set=0;
134 4           break;
135             case 2:
136 8 50         lut_name=(char *)SvPV_nolen(ST(0));
137 8 50         required=(unsigned int)SvUV(ST(1));
138 8           set=0;
139 8           break;
140             case 3:
141 1 50         lut_name=(char *)SvPV_nolen(ST(0));
142 1 50         required=(unsigned int)SvUV(ST(1));
143 1 50         set=(unsigned int)SvUV(ST(2));
144 1           break;
145             default:
146 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_init(lut_name[,required[,set]])");
147             break;
148             }
149              
150 13           RETVAL=lut_init(lut_name,required,set);
151             OUTPUT:
152             RETVAL
153              
154             int
155             kto_check_init(lut_name...)
156             char *lut_name
157             PREINIT:
158             unsigned int required;
159             unsigned int set;
160             unsigned int incremental;
161             CODE:
162 0           switch(items){
163             case 1:
164 0           required=DEFAULT_INIT_LEVEL;
165 0           set=0;
166 0           incremental=0;
167 0           break;
168             case 2:
169 0 0         required=(unsigned int)SvUV(ST(1));
170 0           set=0;
171 0           incremental=0;
172 0           break;
173             case 3:
174 0 0         required=(unsigned int)SvUV(ST(1));
175 0 0         set=(unsigned int)SvUV(ST(2));
176 0           incremental=0;
177 0           break;
178             case 4:
179 0 0         required=(unsigned int)SvUV(ST(1));
180 0 0         set=(unsigned int)SvUV(ST(2));
181 0 0         incremental=(unsigned int)SvUV(ST(3));
182 0           break;
183             default:
184 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::kto_check_init(lut_name[,required[,set[,incremental]]])");
185             break;
186             }
187              
188 0           RETVAL=kto_check_init_p(lut_name,required,set,incremental);
189             OUTPUT:
190             RETVAL
191              
192             int
193             lut_keine_iban_berechnung(inputname,outputname...)
194             char *inputname;
195             char *outputname;
196             PREINIT:
197             unsigned int set;
198             CODE:
199 2           switch(items){
200             case 2:
201 1           set=0;
202 1           break;
203             case 3:
204 1 50         set=(unsigned int)SvUV(ST(2));
205 1           break;
206             default:
207 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_keine_iban_berechnung(inputname, outputname[, set])");
208             break;
209             }
210              
211 2           RETVAL=lut_keine_iban_berechnung(inputname,outputname,set);
212             OUTPUT:
213             RETVAL
214              
215             int
216             generate_lut2(inputname,outputname...)
217             char *inputname;
218             char *outputname;
219             PREINIT:
220             char *user_info;
221             char *gueltigkeit;
222             char *keine_iban_berechnung;
223             unsigned int felder;
224             unsigned int filialen;
225             unsigned int slots;
226             unsigned int lut_version;
227             unsigned int set;
228             CODE:
229 2           keine_iban_berechnung=NULL;
230 2           gueltigkeit=NULL;
231 2           felder=-1;
232 2           filialen=slots=lut_version=set=0;
233 2           switch(items){
234             case 2:
235 0           user_info=NULL;
236 0           break;
237             case 3:
238 0 0         user_info=(char *)SvPV_nolen(ST(2));
239 0           break;
240             case 4:
241 0 0         user_info=(char *)SvPV_nolen(ST(2));
242 0 0         gueltigkeit=(char *)SvPV_nolen(ST(3));
243 0           break;
244             case 5:
245 0 0         user_info=(char *)SvPV_nolen(ST(2));
246 0 0         gueltigkeit=(char *)SvPV_nolen(ST(3));
247 0 0         felder=(unsigned int)SvUV(ST(4));
248 0           break;
249             case 6:
250 1 50         user_info=(char *)SvPV_nolen(ST(2));
251 1 50         gueltigkeit=(char *)SvPV_nolen(ST(3));
252 1 50         felder=(unsigned int)SvUV(ST(4));
253 1 50         filialen=(unsigned int)SvUV(ST(5));
254 1           break;
255             case 7:
256 0 0         user_info=(char *)SvPV_nolen(ST(2));
257 0 0         gueltigkeit=(char *)SvPV_nolen(ST(3));
258 0 0         felder=(unsigned int)SvUV(ST(4));
259 0 0         filialen=(unsigned int)SvUV(ST(5));
260 0 0         slots=(unsigned int)SvUV(ST(6));
261 0           break;
262             case 8:
263 0 0         user_info=(char *)SvPV_nolen(ST(2));
264 0 0         gueltigkeit=(char *)SvPV_nolen(ST(3));
265 0 0         felder=(unsigned int)SvUV(ST(4));
266 0 0         filialen=(unsigned int)SvUV(ST(5));
267 0 0         slots=(unsigned int)SvUV(ST(6));
268 0 0         lut_version=(unsigned int)SvUV(ST(7));
269 0           break;
270             case 9:
271 1 50         user_info=(char *)SvPV_nolen(ST(2));
272 1 50         gueltigkeit=(char *)SvPV_nolen(ST(3));
273 1 50         felder=(unsigned int)SvUV(ST(4));
274 1 50         filialen=(unsigned int)SvUV(ST(5));
275 1 50         slots=(unsigned int)SvUV(ST(6));
276 1 50         lut_version=(unsigned int)SvUV(ST(7));
277 1 50         set=(unsigned int)SvUV(ST(8));
278 1           break;
279             case 10:
280 0 0         user_info=(char *)SvPV_nolen(ST(2));
281 0 0         gueltigkeit=(char *)SvPV_nolen(ST(3));
282 0 0         felder=(unsigned int)SvUV(ST(4));
283 0 0         filialen=(unsigned int)SvUV(ST(5));
284 0 0         slots=(unsigned int)SvUV(ST(6));
285 0 0         lut_version=(unsigned int)SvUV(ST(7));
286 0 0         set=(unsigned int)SvUV(ST(8));
287 0 0         keine_iban_berechnung=(char *)SvPV_nolen(ST(9));
288 0           break;
289             default:
290 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::generate_lut2(inputname, outputname[, user_info[, gueltigkeit[, felder[, filialen[, slots[, lut_version[, set[, keine_iban_cfg]]]]]]]])");
291             break;
292             }
293              
294 2           RETVAL=generate_lut2_p(inputname,outputname,user_info,gueltigkeit,felder,filialen,slots,lut_version,set);
295 2 50         if(keine_iban_berechnung)lut_keine_iban_berechnung(keine_iban_berechnung,outputname,set);
296             OUTPUT:
297             RETVAL
298              
299             int
300             lut_filialen_i(r,blz)
301             char *blz;
302             int r;
303             CODE:
304 0 0         if(items!=2)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_filialen(blz)");
305 0           RETVAL=lut_filialen(blz,&r);
306             OUTPUT:
307             r
308             RETVAL
309              
310             int lut_multiple_i(blz,filiale...)
311             char *blz;
312             int filiale;
313             PREINIT:
314             int cnt;
315             char **p_name;
316             char **p_name_kurz;
317             int *p_plz;
318             char **p_ort;
319             int *p_pan;
320             char **p_bic;
321             int p_pz;
322             int *p_nr;
323             char *p_aenderung;
324             char *p_loeschung;
325             int *p_nachfolge_blz;
326             CODE:
327 16 50         if(items!=14)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_multiple_i(blz, filiale, cnt, "
328             "name, name_kurz, plz, ort, pan, bic, pz, nr, aenderung, loeschung, nachfolge_blz)");
329 16           RETVAL=lut_multiple(blz,&cnt,NULL,&p_name,&p_name_kurz,&p_plz,&p_ort,&p_pan,&p_bic,&p_pz,&p_nr,
330             &p_aenderung,&p_loeschung,&p_nachfolge_blz,NULL,NULL,NULL);
331 16 50         if(RETVAL>0 || RETVAL==LUT2_PARTIAL_OK){
    0          
332 16           sv_setiv(ST(2), (IV)cnt);
333 16 50         SvSETMAGIC(ST(2));
334 16           sv_setpv((SV*)ST(3), p_name[filiale]);
335 16 50         SvSETMAGIC(ST(3));
336 16           sv_setpv((SV*)ST(4), p_name_kurz[filiale]);
337 16 50         SvSETMAGIC(ST(4));
338 16           sv_setiv(ST(5), (IV)p_plz[filiale]);
339 16 50         SvSETMAGIC(ST(5));
340 16           sv_setpv((SV*)ST(6), p_ort[filiale]);
341 16 50         SvSETMAGIC(ST(6));
342 16           sv_setiv(ST(7), (IV)p_pan[filiale]);
343 16 50         SvSETMAGIC(ST(7));
344 16           sv_setpv((SV*)ST(8), p_bic[filiale]);
345 16 50         SvSETMAGIC(ST(8));
346 16           sv_setiv(ST(9), (IV)p_pz);
347 16 50         SvSETMAGIC(ST(9));
348 16           sv_setiv(ST(10), (IV)p_nr[filiale]);
349 16 50         SvSETMAGIC(ST(10));
350 16           sv_setiv(ST(11), (IV)p_aenderung[filiale]);
351 16 50         SvSETMAGIC(ST(11));
352 16           sv_setiv(ST(12), (IV)p_loeschung[filiale]);
353 16 50         SvSETMAGIC(ST(12));
354 16           sv_setiv(ST(13), (IV)p_nachfolge_blz[filiale]);
355 16 50         SvSETMAGIC(ST(13));
356             }
357             else{
358 0           sv_setiv(ST(2), (IV)0);
359 0 0         SvSETMAGIC(ST(2));
360             }
361             OUTPUT:
362             RETVAL
363              
364             const char *
365             pz2str(pz...)
366             int pz;
367             CODE:
368             int ret;
369 0 0         if(items<1 || items>2)Perl_croak(aTHX_ "Usage: Business::KontoCheck::pz2str(pz[,retval])");
    0          
370              
371 0           RETVAL=pz2str(pz,&ret);
372 0 0         if(items==2){
373 0           sv_setiv(ST(1),(IV)ret);
374 0 0         SvSETMAGIC(ST(1));
375             }
376             OUTPUT:
377             RETVAL
378              
379             int
380             lut_blz_i(blz...)
381             char *blz;
382             PREINIT:
383             unsigned int offset;
384             CODE:
385 0 0         if(items==1)
386 0           offset=0;
387 0 0         else if(items==2 || items==3)
    0          
388 0 0         offset=(unsigned int)SvUV(ST(1));
389             else
390 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_blz(blz[,offset[,retval]])");
391              
392 0           RETVAL=lut_blz(blz,offset);
393 0 0         if(items==3){
394 0           sv_setiv(ST(2),(IV)RETVAL);
395 0 0         SvSETMAGIC(ST(2));
396             }
397             OUTPUT:
398             RETVAL
399              
400             int
401             bic_info_i(bic,mode,anzahl,start_idx)
402             char *bic;
403             int mode;
404             int anzahl;
405             int start_idx;
406             CODE:
407 0 0         if(items!=4)Perl_croak(aTHX_ "Usage: Business::KontoCheck::bic_info(bic,mode,anzahl,start_idx))");
408              
409 0           RETVAL=bic_info(bic,mode,&anzahl,&start_idx);
410 0           sv_setiv(ST(2),(IV)anzahl);
411 0 0         SvSETMAGIC(ST(2));
412 0           sv_setiv(ST(3),(IV)start_idx);
413 0 0         SvSETMAGIC(ST(3));
414             OUTPUT:
415             RETVAL
416              
417              
418             const char *
419             lut_name_i(r,blz...)
420             char *blz;
421             int r;
422             PREINIT:
423             unsigned int zweigstelle;
424             CODE:
425 376 100         if(items==2)
426 90           zweigstelle=0;
427 286 100         else if(items==3 || items==4)
    50          
428 286 50         zweigstelle=(unsigned int)SvUV(ST(2));
429             else
430 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_name(blz[,zweigstelle[,retval]])");
431              
432 376           RETVAL=lut_name(blz,zweigstelle,&r);
433 376 100         if(items==4){
434 8           sv_setiv(ST(3),(IV)r);
435 8 50         SvSETMAGIC(ST(3));
436             }
437             OUTPUT:
438             r
439             RETVAL
440              
441              
442             const char *
443             lut_name_kurz_i(r,blz...)
444             char *blz;
445             int r;
446             PREINIT:
447             unsigned int zweigstelle;
448             CODE:
449 0 0         if(items==2)
450 0           zweigstelle=0;
451 0 0         else if(items==3 || items==4)
    0          
452 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
453             else
454 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_name_kurz(blz[,zweigstelle[,retval]])");
455              
456 0           RETVAL=lut_name_kurz(blz,zweigstelle,&r);
457 0 0         if(items==4){
458 0           sv_setiv(ST(3),(IV)r);
459 0 0         SvSETMAGIC(ST(3));
460             }
461             OUTPUT:
462             r
463             RETVAL
464              
465              
466             int
467             lut_plz_i(r,blz...)
468             char *blz;
469             int r;
470             PREINIT:
471             unsigned int zweigstelle;
472             CODE:
473 138 50         if(items==2)
474 0           zweigstelle=0;
475 138 50         else if(items==3 || items==4)
    0          
476 138 50         zweigstelle=(unsigned int)SvUV(ST(2));
477             else
478 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_plz(blz[,zweigstelle[,retval]])");
479              
480 138           RETVAL=lut_plz(blz,zweigstelle,&r);
481 138 50         if(items==4){
482 0           sv_setiv(ST(3),(IV)r);
483 0 0         SvSETMAGIC(ST(3));
484             }
485             OUTPUT:
486             r
487             RETVAL
488              
489              
490             const char *
491             lut_ort_i(r,blz...)
492             char *blz;
493             int r;
494             PREINIT:
495             unsigned int zweigstelle;
496             CODE:
497 368 100         if(items==2)
498 90           zweigstelle=0;
499 278 50         else if(items==3 || items==4)
    0          
500 278 50         zweigstelle=(unsigned int)SvUV(ST(2));
501             else
502 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_ort(blz[,zweigstelle[,retval]])");
503              
504 368           RETVAL=lut_ort(blz,zweigstelle,&r);
505 368 50         if(items==4){
506 0           sv_setiv(ST(3),(IV)r);
507 0 0         SvSETMAGIC(ST(3));
508             }
509             OUTPUT:
510             r
511             RETVAL
512              
513              
514             int
515             lut_pan_i(r,blz...)
516             char *blz;
517             int r;
518             PREINIT:
519             unsigned int zweigstelle;
520             CODE:
521 0 0         if(items==2)
522 0           zweigstelle=0;
523 0 0         else if(items==3 || items==4)
    0          
524 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
525             else
526 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_pan(blz[,zweigstelle[,retval]])");
527              
528 0           RETVAL=lut_pan(blz,zweigstelle,&r);
529 0 0         if(items==4){
530 0           sv_setiv(ST(3),(IV)r);
531 0 0         SvSETMAGIC(ST(3));
532             }
533             OUTPUT:
534             r
535             RETVAL
536              
537              
538             const char *
539             lut_bic_i(r,blz...)
540             char *blz;
541             int r;
542             PREINIT:
543             unsigned int zweigstelle;
544             CODE:
545 0 0         if(items==2)
546 0           zweigstelle=0;
547 0 0         else if(items==3 || items==4)
    0          
548 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
549             else
550 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_bic(blz[,zweigstelle[,retval]])");
551              
552 0           RETVAL=lut_bic(blz,zweigstelle,&r);
553 0 0         if(items==4){
554 0           sv_setiv(ST(3),(IV)r);
555 0 0         SvSETMAGIC(ST(3));
556             }
557             OUTPUT:
558             r
559             RETVAL
560              
561              
562             int
563             lut_pz_i(r,blz...)
564             char *blz;
565             int r;
566             PREINIT:
567             unsigned int zweigstelle;
568             CODE:
569 0 0         if(items==2)
570 0           zweigstelle=0;
571 0 0         else if(items==3 || items==4)
    0          
572 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
573             else
574 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_pz(blz[,zweigstelle[,retval]])");
575              
576 0           RETVAL=lut_pz(blz,zweigstelle,&r);
577 0 0         if(items==4){
578 0           sv_setiv(ST(3),(IV)r);
579 0 0         SvSETMAGIC(ST(3));
580             }
581             OUTPUT:
582             r
583             RETVAL
584              
585              
586             int
587             lut_aenderung_i(r,blz...)
588             char *blz;
589             int r;
590             PREINIT:
591             unsigned int zweigstelle;
592             CODE:
593 0 0         if(items==2)
594 0           zweigstelle=0;
595 0 0         else if(items==3 || items==4)
    0          
596 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
597             else
598 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_aenderung(blz[,zweigstelle[,retval]])");
599              
600 0           RETVAL=lut_aenderung(blz,zweigstelle,&r);
601 0 0         if(items==4){
602 0           sv_setiv(ST(3),(IV)r);
603 0 0         SvSETMAGIC(ST(3));
604             }
605             OUTPUT:
606             r
607             RETVAL
608              
609              
610             int
611             lut_loeschung_i(r,blz...)
612             char *blz;
613             int r;
614             PREINIT:
615             unsigned int zweigstelle;
616             CODE:
617 0 0         if(items==2)
618 0           zweigstelle=0;
619 0 0         else if(items==3 || items==4)
    0          
620 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
621             else
622 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_loeschung(blz[,zweigstelle[,retval]])");
623              
624 0           RETVAL=lut_loeschung(blz,zweigstelle,&r);
625 0 0         if(items==4){
626 0           sv_setiv(ST(3),(IV)r);
627 0 0         SvSETMAGIC(ST(3));
628             }
629             OUTPUT:
630             r
631             RETVAL
632              
633              
634             int
635             lut_nachfolge_blz_i(r,blz...)
636             char *blz;
637             int r;
638             PREINIT:
639             unsigned int zweigstelle;
640             CODE:
641 0 0         if(items==2)
642 0           zweigstelle=0;
643 0 0         else if(items==3 || items==4)
    0          
644 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
645             else
646 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_nachfolge_blz(blz[,zweigstelle[,retval]])");
647              
648 0           RETVAL=lut_nachfolge_blz(blz,zweigstelle,&r);
649 0 0         if(items==4){
650 0           sv_setiv(ST(3),(IV)r);
651 0 0         SvSETMAGIC(ST(3));
652             }
653             OUTPUT:
654             r
655             RETVAL
656              
657              
658             int
659             lut_iban_regel_i(r,blz...)
660             char *blz;
661             int r;
662             PREINIT:
663             unsigned int zweigstelle;
664             CODE:
665 0 0         if(items==2)
666 0           zweigstelle=0;
667 0 0         else if(items==3 || items==4)
    0          
668 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
669             else
670 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_iban_regel(blz[,zweigstelle[,retval]])");
671              
672 0           RETVAL=lut_iban_regel(blz,zweigstelle,&r);
673 0 0         if(items==4){
674 0           sv_setiv(ST(3),(IV)r);
675 0 0         SvSETMAGIC(ST(3));
676             }
677             OUTPUT:
678             r
679             RETVAL
680              
681              
682              
683             const char *
684             bic_name_i(r,bic...)
685             char *bic;
686             int r;
687             PREINIT:
688             unsigned int zweigstelle,mode;
689             CODE:
690 0 0         if(items==2)
691 0           mode=zweigstelle=0;
692 0 0         else if(items==3){
693 0 0         mode=(unsigned int)SvUV(ST(2));
694 0           zweigstelle=0;
695             }
696 0 0         else if(items==4 || items==5){
    0          
697 0 0         mode=(unsigned int)SvUV(ST(2));
698 0 0         zweigstelle=(unsigned int)SvUV(ST(3));
699             }
700             else
701 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::bic_name(bic[,mode[,zweigstelle[,retval]]])");
702              
703 0           RETVAL=bic_name(bic,mode,zweigstelle,&r);
704 0 0         if(items==5){
705 0           sv_setiv(ST(4),(IV)r);
706 0 0         SvSETMAGIC(ST(4));
707             }
708             OUTPUT:
709             r
710             RETVAL
711              
712              
713             const char *
714             bic_name_kurz_i(r,bic...)
715             char *bic;
716             int r;
717             PREINIT:
718             unsigned int zweigstelle,mode;
719             CODE:
720 0 0         if(items==2)
721 0           mode=zweigstelle=0;
722 0 0         else if(items==3){
723 0 0         mode=(unsigned int)SvUV(ST(2));
724 0           zweigstelle=0;
725             }
726 0 0         else if(items==4 || items==5){
    0          
727 0 0         mode=(unsigned int)SvUV(ST(2));
728 0 0         zweigstelle=(unsigned int)SvUV(ST(3));
729             }
730             else
731 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::bic_name_kurz(bic[,mode[,zweigstelle[,retval]]])");
732              
733 0           RETVAL=bic_name_kurz(bic,mode,zweigstelle,&r);
734 0 0         if(items==5){
735 0           sv_setiv(ST(4),(IV)r);
736 0 0         SvSETMAGIC(ST(4));
737             }
738             OUTPUT:
739             r
740             RETVAL
741              
742              
743             int
744             bic_plz_i(r,bic...)
745             char *bic;
746             int r;
747             PREINIT:
748             unsigned int zweigstelle,mode;
749             CODE:
750 0 0         if(items==2)
751 0           mode=zweigstelle=0;
752 0 0         else if(items==3){
753 0 0         mode=(unsigned int)SvUV(ST(2));
754 0           zweigstelle=0;
755             }
756 0 0         else if(items==4 || items==5){
    0          
757 0 0         mode=(unsigned int)SvUV(ST(2));
758 0 0         zweigstelle=(unsigned int)SvUV(ST(3));
759             }
760             else
761 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::bic_plz(bic[,mode[,zweigstelle[,retval]]])");
762              
763 0           RETVAL=bic_plz(bic,mode,zweigstelle,&r);
764 0 0         if(items==5){
765 0           sv_setiv(ST(4),(IV)r);
766 0 0         SvSETMAGIC(ST(4));
767             }
768             OUTPUT:
769             r
770             RETVAL
771              
772              
773             const char *
774             bic_ort_i(r,bic...)
775             char *bic;
776             int r;
777             PREINIT:
778             unsigned int zweigstelle,mode;
779             CODE:
780 0 0         if(items==2)
781 0           mode=zweigstelle=0;
782 0 0         else if(items==3){
783 0 0         mode=(unsigned int)SvUV(ST(2));
784 0           zweigstelle=0;
785             }
786 0 0         else if(items==4 || items==5){
    0          
787 0 0         mode=(unsigned int)SvUV(ST(2));
788 0 0         zweigstelle=(unsigned int)SvUV(ST(3));
789             }
790             else
791 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::bic_ort(bic[,mode[,zweigstelle[,retval]]])");
792              
793 0           RETVAL=bic_ort(bic,mode,zweigstelle,&r);
794 0 0         if(items==5){
795 0           sv_setiv(ST(4),(IV)r);
796 0 0         SvSETMAGIC(ST(4));
797             }
798             OUTPUT:
799             r
800             RETVAL
801              
802              
803             int
804             bic_pan_i(r,bic...)
805             char *bic;
806             int r;
807             PREINIT:
808             unsigned int zweigstelle,mode;
809             CODE:
810 0 0         if(items==2)
811 0           mode=zweigstelle=0;
812 0 0         else if(items==3){
813 0 0         mode=(unsigned int)SvUV(ST(2));
814 0           zweigstelle=0;
815             }
816 0 0         else if(items==4 || items==5){
    0          
817 0 0         mode=(unsigned int)SvUV(ST(2));
818 0 0         zweigstelle=(unsigned int)SvUV(ST(3));
819             }
820             else
821 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::bic_pan(bic[,mode[,zweigstelle[,retval]]])");
822              
823 0           RETVAL=bic_pan(bic,mode,zweigstelle,&r);
824 0 0         if(items==5){
825 0           sv_setiv(ST(4),(IV)r);
826 0 0         SvSETMAGIC(ST(4));
827             }
828             OUTPUT:
829             r
830             RETVAL
831              
832              
833             const char *
834             bic_bic_i(r,bic...)
835             char *bic;
836             int r;
837             PREINIT:
838             unsigned int zweigstelle,mode;
839             CODE:
840 0 0         if(items==2)
841 0           mode=zweigstelle=0;
842 0 0         else if(items==3){
843 0 0         mode=(unsigned int)SvUV(ST(2));
844 0           zweigstelle=0;
845             }
846 0 0         else if(items==4 || items==5){
    0          
847 0 0         mode=(unsigned int)SvUV(ST(2));
848 0 0         zweigstelle=(unsigned int)SvUV(ST(3));
849             }
850             else
851 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::bic_bic(bic[,mode[,zweigstelle[,retval]]])");
852              
853 0           RETVAL=bic_bic(bic,mode,zweigstelle,&r);
854 0 0         if(items==5){
855 0           sv_setiv(ST(4),(IV)r);
856 0 0         SvSETMAGIC(ST(4));
857             }
858             OUTPUT:
859             r
860             RETVAL
861              
862              
863             int
864             bic_pz_i(r,bic...)
865             char *bic;
866             int r;
867             PREINIT:
868             unsigned int zweigstelle,mode;
869             CODE:
870 0 0         if(items==2)
871 0           mode=zweigstelle=0;
872 0 0         else if(items==3){
873 0 0         mode=(unsigned int)SvUV(ST(2));
874 0           zweigstelle=0;
875             }
876 0 0         else if(items==4 || items==5){
    0          
877 0 0         mode=(unsigned int)SvUV(ST(2));
878 0 0         zweigstelle=(unsigned int)SvUV(ST(3));
879             }
880             else
881 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::bic_pz(bic[,mode[,zweigstelle[,retval]]])");
882              
883 0           RETVAL=bic_pz(bic,mode,zweigstelle,&r);
884 0 0         if(items==5){
885 0           sv_setiv(ST(4),(IV)r);
886 0 0         SvSETMAGIC(ST(4));
887             }
888             OUTPUT:
889             r
890             RETVAL
891              
892              
893             int
894             bic_aenderung_i(r,bic...)
895             char *bic;
896             int r;
897             PREINIT:
898             unsigned int zweigstelle,mode;
899             CODE:
900 0 0         if(items==2)
901 0           mode=zweigstelle=0;
902 0 0         else if(items==3){
903 0 0         mode=(unsigned int)SvUV(ST(2));
904 0           zweigstelle=0;
905             }
906 0 0         else if(items==4 || items==5){
    0          
907 0 0         mode=(unsigned int)SvUV(ST(2));
908 0 0         zweigstelle=(unsigned int)SvUV(ST(3));
909             }
910             else
911 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::bic_aenderung(bic[,mode[,zweigstelle[,retval]]])");
912              
913 0           RETVAL=bic_aenderung(bic,mode,zweigstelle,&r);
914 0 0         if(items==5){
915 0           sv_setiv(ST(4),(IV)r);
916 0 0         SvSETMAGIC(ST(4));
917             }
918             OUTPUT:
919             r
920             RETVAL
921              
922              
923             int
924             bic_loeschung_i(r,bic...)
925             char *bic;
926             int r;
927             PREINIT:
928             unsigned int zweigstelle,mode;
929             CODE:
930 0 0         if(items==2)
931 0           mode=zweigstelle=0;
932 0 0         else if(items==3){
933 0 0         mode=(unsigned int)SvUV(ST(2));
934 0           zweigstelle=0;
935             }
936 0 0         else if(items==4 || items==5){
    0          
937 0 0         mode=(unsigned int)SvUV(ST(2));
938 0 0         zweigstelle=(unsigned int)SvUV(ST(3));
939             }
940             else
941 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::bic_loeschung(bic[,mode[,zweigstelle[,retval]]])");
942              
943 0           RETVAL=bic_loeschung(bic,mode,zweigstelle,&r);
944 0 0         if(items==5){
945 0           sv_setiv(ST(4),(IV)r);
946 0 0         SvSETMAGIC(ST(4));
947             }
948             OUTPUT:
949             r
950             RETVAL
951              
952              
953             int
954             bic_nachfolge_blz_i(r,bic...)
955             char *bic;
956             int r;
957             PREINIT:
958             unsigned int zweigstelle,mode;
959             CODE:
960 0 0         if(items==2)
961 0           mode=zweigstelle=0;
962 0 0         else if(items==3){
963 0 0         mode=(unsigned int)SvUV(ST(2));
964 0           zweigstelle=0;
965             }
966 0 0         else if(items==4 || items==5){
    0          
967 0 0         mode=(unsigned int)SvUV(ST(2));
968 0 0         zweigstelle=(unsigned int)SvUV(ST(3));
969             }
970             else
971 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::bic_nachfolge_blz(bic[,mode[,zweigstelle[,retval]]])");
972              
973 0           RETVAL=bic_nachfolge_blz(bic,mode,zweigstelle,&r);
974 0 0         if(items==5){
975 0           sv_setiv(ST(4),(IV)r);
976 0 0         SvSETMAGIC(ST(4));
977             }
978             OUTPUT:
979             r
980             RETVAL
981              
982              
983             int
984             bic_iban_regel_i(r,bic...)
985             char *bic;
986             int r;
987             PREINIT:
988             unsigned int zweigstelle,mode;
989             CODE:
990 0 0         if(items==2)
991 0           mode=zweigstelle=0;
992 0 0         else if(items==3){
993 0 0         mode=(unsigned int)SvUV(ST(2));
994 0           zweigstelle=0;
995             }
996 0 0         else if(items==4 || items==5){
    0          
997 0 0         mode=(unsigned int)SvUV(ST(2));
998 0 0         zweigstelle=(unsigned int)SvUV(ST(3));
999             }
1000             else
1001 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::bic_iban_regel(bic[,mode[,zweigstelle[,retval]]])");
1002              
1003 0           RETVAL=bic_iban_regel(bic,mode,zweigstelle,&r);
1004 0 0         if(items==5){
1005 0           sv_setiv(ST(4),(IV)r);
1006 0 0         SvSETMAGIC(ST(4));
1007             }
1008             OUTPUT:
1009             r
1010             RETVAL
1011              
1012              
1013              
1014             const char *
1015             biq_name_i(r,idx...)
1016             int r;
1017             int idx;
1018             CODE:
1019 0 0         if(items<2 || items>3)
    0          
1020 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::biq_name(idx[,retval]])");
1021              
1022 0           RETVAL=biq_name(idx,&r);
1023 0 0         if(items==3){
1024 0           sv_setiv(ST(2),(IV)r);
1025 0 0         SvSETMAGIC(ST(2));
1026             }
1027             OUTPUT:
1028             r
1029             RETVAL
1030              
1031              
1032             const char *
1033             biq_name_kurz_i(r,idx...)
1034             int r;
1035             int idx;
1036             CODE:
1037 0 0         if(items<2 || items>3)
    0          
1038 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::biq_name_kurz(idx[,retval]])");
1039              
1040 0           RETVAL=biq_name_kurz(idx,&r);
1041 0 0         if(items==3){
1042 0           sv_setiv(ST(2),(IV)r);
1043 0 0         SvSETMAGIC(ST(2));
1044             }
1045             OUTPUT:
1046             r
1047             RETVAL
1048              
1049              
1050             int
1051             biq_plz_i(r,idx...)
1052             int r;
1053             int idx;
1054             CODE:
1055 0 0         if(items<2 || items>3)
    0          
1056 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::biq_plz(idx[,retval]])");
1057              
1058 0           RETVAL=biq_plz(idx,&r);
1059 0 0         if(items==3){
1060 0           sv_setiv(ST(2),(IV)r);
1061 0 0         SvSETMAGIC(ST(2));
1062             }
1063             OUTPUT:
1064             r
1065             RETVAL
1066              
1067              
1068             const char *
1069             biq_ort_i(r,idx...)
1070             int r;
1071             int idx;
1072             CODE:
1073 0 0         if(items<2 || items>3)
    0          
1074 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::biq_ort(idx[,retval]])");
1075              
1076 0           RETVAL=biq_ort(idx,&r);
1077 0 0         if(items==3){
1078 0           sv_setiv(ST(2),(IV)r);
1079 0 0         SvSETMAGIC(ST(2));
1080             }
1081             OUTPUT:
1082             r
1083             RETVAL
1084              
1085              
1086             int
1087             biq_pan_i(r,idx...)
1088             int r;
1089             int idx;
1090             CODE:
1091 0 0         if(items<2 || items>3)
    0          
1092 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::biq_pan(idx[,retval]])");
1093              
1094 0           RETVAL=biq_pan(idx,&r);
1095 0 0         if(items==3){
1096 0           sv_setiv(ST(2),(IV)r);
1097 0 0         SvSETMAGIC(ST(2));
1098             }
1099             OUTPUT:
1100             r
1101             RETVAL
1102              
1103              
1104             const char *
1105             biq_bic_i(r,idx...)
1106             int r;
1107             int idx;
1108             CODE:
1109 0 0         if(items<2 || items>3)
    0          
1110 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::biq_bic(idx[,retval]])");
1111              
1112 0           RETVAL=biq_bic(idx,&r);
1113 0 0         if(items==3){
1114 0           sv_setiv(ST(2),(IV)r);
1115 0 0         SvSETMAGIC(ST(2));
1116             }
1117             OUTPUT:
1118             r
1119             RETVAL
1120              
1121              
1122             int
1123             biq_pz_i(r,idx...)
1124             int r;
1125             int idx;
1126             CODE:
1127 0 0         if(items<2 || items>3)
    0          
1128 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::biq_pz(idx[,retval]])");
1129              
1130 0           RETVAL=biq_pz(idx,&r);
1131 0 0         if(items==3){
1132 0           sv_setiv(ST(2),(IV)r);
1133 0 0         SvSETMAGIC(ST(2));
1134             }
1135             OUTPUT:
1136             r
1137             RETVAL
1138              
1139              
1140             int
1141             biq_aenderung_i(r,idx...)
1142             int r;
1143             int idx;
1144             CODE:
1145 0 0         if(items<2 || items>3)
    0          
1146 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::biq_aenderung(idx[,retval]])");
1147              
1148 0           RETVAL=biq_aenderung(idx,&r);
1149 0 0         if(items==3){
1150 0           sv_setiv(ST(2),(IV)r);
1151 0 0         SvSETMAGIC(ST(2));
1152             }
1153             OUTPUT:
1154             r
1155             RETVAL
1156              
1157              
1158             int
1159             biq_loeschung_i(r,idx...)
1160             int r;
1161             int idx;
1162             CODE:
1163 0 0         if(items<2 || items>3)
    0          
1164 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::biq_loeschung(idx[,retval]])");
1165              
1166 0           RETVAL=biq_loeschung(idx,&r);
1167 0 0         if(items==3){
1168 0           sv_setiv(ST(2),(IV)r);
1169 0 0         SvSETMAGIC(ST(2));
1170             }
1171             OUTPUT:
1172             r
1173             RETVAL
1174              
1175              
1176             int
1177             biq_nachfolge_blz_i(r,idx...)
1178             int r;
1179             int idx;
1180             CODE:
1181 0 0         if(items<2 || items>3)
    0          
1182 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::biq_nachfolge_blz(idx[,retval]])");
1183              
1184 0           RETVAL=biq_nachfolge_blz(idx,&r);
1185 0 0         if(items==3){
1186 0           sv_setiv(ST(2),(IV)r);
1187 0 0         SvSETMAGIC(ST(2));
1188             }
1189             OUTPUT:
1190             r
1191             RETVAL
1192              
1193              
1194             int
1195             biq_iban_regel_i(r,idx...)
1196             int r;
1197             int idx;
1198             CODE:
1199 0 0         if(items<2 || items>3)
    0          
1200 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::biq_iban_regel(idx[,retval]])");
1201              
1202 0           RETVAL=biq_iban_regel(idx,&r);
1203 0 0         if(items==3){
1204 0           sv_setiv(ST(2),(IV)r);
1205 0 0         SvSETMAGIC(ST(2));
1206             }
1207             OUTPUT:
1208             r
1209             RETVAL
1210              
1211              
1212              
1213             const char *
1214             iban_name_i(r,iban...)
1215             char *iban;
1216             int r;
1217             PREINIT:
1218             unsigned int zweigstelle;
1219             CODE:
1220 0 0         if(items==2)
1221 0           zweigstelle=0;
1222 0 0         else if(items==3 || items==4)
    0          
1223 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
1224             else
1225 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::iban_name(iban[,zweigstelle[,retval]])");
1226              
1227 0           RETVAL=iban_name(iban,zweigstelle,&r);
1228 0 0         if(items==4){
1229 0           sv_setiv(ST(3),(IV)r);
1230 0 0         SvSETMAGIC(ST(3));
1231             }
1232             OUTPUT:
1233             r
1234             RETVAL
1235              
1236              
1237             const char *
1238             iban_name_kurz_i(r,iban...)
1239             char *iban;
1240             int r;
1241             PREINIT:
1242             unsigned int zweigstelle;
1243             CODE:
1244 0 0         if(items==2)
1245 0           zweigstelle=0;
1246 0 0         else if(items==3 || items==4)
    0          
1247 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
1248             else
1249 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::iban_name_kurz(iban[,zweigstelle[,retval]])");
1250              
1251 0           RETVAL=iban_name_kurz(iban,zweigstelle,&r);
1252 0 0         if(items==4){
1253 0           sv_setiv(ST(3),(IV)r);
1254 0 0         SvSETMAGIC(ST(3));
1255             }
1256             OUTPUT:
1257             r
1258             RETVAL
1259              
1260              
1261             int
1262             iban_plz_i(r,iban...)
1263             char *iban;
1264             int r;
1265             PREINIT:
1266             unsigned int zweigstelle;
1267             CODE:
1268 0 0         if(items==2)
1269 0           zweigstelle=0;
1270 0 0         else if(items==3 || items==4)
    0          
1271 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
1272             else
1273 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::iban_plz(iban[,zweigstelle[,retval]])");
1274              
1275 0           RETVAL=iban_plz(iban,zweigstelle,&r);
1276 0 0         if(items==4){
1277 0           sv_setiv(ST(3),(IV)r);
1278 0 0         SvSETMAGIC(ST(3));
1279             }
1280             OUTPUT:
1281             r
1282             RETVAL
1283              
1284              
1285             const char *
1286             iban_ort_i(r,iban...)
1287             char *iban;
1288             int r;
1289             PREINIT:
1290             unsigned int zweigstelle;
1291             CODE:
1292 0 0         if(items==2)
1293 0           zweigstelle=0;
1294 0 0         else if(items==3 || items==4)
    0          
1295 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
1296             else
1297 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::iban_ort(iban[,zweigstelle[,retval]])");
1298              
1299 0           RETVAL=iban_ort(iban,zweigstelle,&r);
1300 0 0         if(items==4){
1301 0           sv_setiv(ST(3),(IV)r);
1302 0 0         SvSETMAGIC(ST(3));
1303             }
1304             OUTPUT:
1305             r
1306             RETVAL
1307              
1308              
1309             int
1310             iban_pan_i(r,iban...)
1311             char *iban;
1312             int r;
1313             PREINIT:
1314             unsigned int zweigstelle;
1315             CODE:
1316 0 0         if(items==2)
1317 0           zweigstelle=0;
1318 0 0         else if(items==3 || items==4)
    0          
1319 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
1320             else
1321 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::iban_pan(iban[,zweigstelle[,retval]])");
1322              
1323 0           RETVAL=iban_pan(iban,zweigstelle,&r);
1324 0 0         if(items==4){
1325 0           sv_setiv(ST(3),(IV)r);
1326 0 0         SvSETMAGIC(ST(3));
1327             }
1328             OUTPUT:
1329             r
1330             RETVAL
1331              
1332              
1333             const char *
1334             iban_bic_i(r,iban...)
1335             char *iban;
1336             int r;
1337             PREINIT:
1338             unsigned int zweigstelle;
1339             CODE:
1340 0 0         if(items==2)
1341 0           zweigstelle=0;
1342 0 0         else if(items==3 || items==4)
    0          
1343 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
1344             else
1345 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::iban_bic(iban[,zweigstelle[,retval]])");
1346              
1347 0           RETVAL=iban_bic(iban,zweigstelle,&r);
1348 0 0         if(items==4){
1349 0           sv_setiv(ST(3),(IV)r);
1350 0 0         SvSETMAGIC(ST(3));
1351             }
1352             OUTPUT:
1353             r
1354             RETVAL
1355              
1356              
1357             int
1358             iban_pz_i(r,iban...)
1359             char *iban;
1360             int r;
1361             PREINIT:
1362             unsigned int zweigstelle;
1363             CODE:
1364 0 0         if(items==2)
1365 0           zweigstelle=0;
1366 0 0         else if(items==3 || items==4)
    0          
1367 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
1368             else
1369 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::iban_pz(iban[,zweigstelle[,retval]])");
1370              
1371 0           RETVAL=iban_pz(iban,zweigstelle,&r);
1372 0 0         if(items==4){
1373 0           sv_setiv(ST(3),(IV)r);
1374 0 0         SvSETMAGIC(ST(3));
1375             }
1376             OUTPUT:
1377             r
1378             RETVAL
1379              
1380              
1381             int
1382             iban_aenderung_i(r,iban...)
1383             char *iban;
1384             int r;
1385             PREINIT:
1386             unsigned int zweigstelle;
1387             CODE:
1388 0 0         if(items==2)
1389 0           zweigstelle=0;
1390 0 0         else if(items==3 || items==4)
    0          
1391 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
1392             else
1393 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::iban_aenderung(iban[,zweigstelle[,retval]])");
1394              
1395 0           RETVAL=iban_aenderung(iban,zweigstelle,&r);
1396 0 0         if(items==4){
1397 0           sv_setiv(ST(3),(IV)r);
1398 0 0         SvSETMAGIC(ST(3));
1399             }
1400             OUTPUT:
1401             r
1402             RETVAL
1403              
1404              
1405             int
1406             iban_loeschung_i(r,iban...)
1407             char *iban;
1408             int r;
1409             PREINIT:
1410             unsigned int zweigstelle;
1411             CODE:
1412 0 0         if(items==2)
1413 0           zweigstelle=0;
1414 0 0         else if(items==3 || items==4)
    0          
1415 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
1416             else
1417 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::iban_loeschung(iban[,zweigstelle[,retval]])");
1418              
1419 0           RETVAL=iban_loeschung(iban,zweigstelle,&r);
1420 0 0         if(items==4){
1421 0           sv_setiv(ST(3),(IV)r);
1422 0 0         SvSETMAGIC(ST(3));
1423             }
1424             OUTPUT:
1425             r
1426             RETVAL
1427              
1428              
1429             int
1430             iban_nachfolge_blz_i(r,iban...)
1431             char *iban;
1432             int r;
1433             PREINIT:
1434             unsigned int zweigstelle;
1435             CODE:
1436 0 0         if(items==2)
1437 0           zweigstelle=0;
1438 0 0         else if(items==3 || items==4)
    0          
1439 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
1440             else
1441 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::iban_nachfolge_blz(iban[,zweigstelle[,retval]])");
1442              
1443 0           RETVAL=iban_nachfolge_blz(iban,zweigstelle,&r);
1444 0 0         if(items==4){
1445 0           sv_setiv(ST(3),(IV)r);
1446 0 0         SvSETMAGIC(ST(3));
1447             }
1448             OUTPUT:
1449             r
1450             RETVAL
1451              
1452              
1453             int
1454             iban_iban_regel_i(r,iban...)
1455             char *iban;
1456             int r;
1457             PREINIT:
1458             unsigned int zweigstelle;
1459             CODE:
1460 0 0         if(items==2)
1461 0           zweigstelle=0;
1462 0 0         else if(items==3 || items==4)
    0          
1463 0 0         zweigstelle=(unsigned int)SvUV(ST(2));
1464             else
1465 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::iban_iban_regel(iban[,zweigstelle[,retval]])");
1466              
1467 0           RETVAL=iban_iban_regel(iban,zweigstelle,&r);
1468 0 0         if(items==4){
1469 0           sv_setiv(ST(3),(IV)r);
1470 0 0         SvSETMAGIC(ST(3));
1471             }
1472             OUTPUT:
1473             r
1474             RETVAL
1475              
1476              
1477             const char *
1478             kto_check_retval2txt(ret)
1479             int ret;
1480             CODE:
1481 5 50         if(items!=1)Perl_croak(aTHX_ "Usage: Business::KontoCheck::retval2txt(ret)");
1482              
1483 5           RETVAL=kto_check_retval2txt(ret);
1484             OUTPUT:
1485             RETVAL
1486              
1487              
1488              
1489             const char *
1490             retval2txt(ret)
1491             int ret;
1492             CODE:
1493 0 0         if(items!=1)Perl_croak(aTHX_ "Usage: Business::KontoCheck::retval2txt(ret)");
1494              
1495 0           RETVAL=kto_check_retval2txt(ret);
1496             OUTPUT:
1497             RETVAL
1498              
1499             const char *
1500             kto_check_retval2iso(ret)
1501             int ret;
1502             CODE:
1503 0 0         if(items!=1)Perl_croak(aTHX_ "Usage: Business::KontoCheck::retval2iso(ret)");
1504              
1505 0           RETVAL=kto_check_retval2iso(ret);
1506             OUTPUT:
1507             RETVAL
1508              
1509              
1510              
1511             const char *
1512             retval2iso(ret)
1513             int ret;
1514             CODE:
1515 0 0         if(items!=1)Perl_croak(aTHX_ "Usage: Business::KontoCheck::retval2iso(ret)");
1516              
1517 0           RETVAL=kto_check_retval2iso(ret);
1518             OUTPUT:
1519             RETVAL
1520              
1521             const char *
1522             kto_check_retval2txt_short(ret)
1523             int ret;
1524             CODE:
1525 0 0         if(items!=1)Perl_croak(aTHX_ "Usage: Business::KontoCheck::retval2txt_short(ret)");
1526              
1527 0           RETVAL=kto_check_retval2txt_short(ret);
1528             OUTPUT:
1529             RETVAL
1530              
1531              
1532              
1533             const char *
1534             retval2txt_short(ret)
1535             int ret;
1536             CODE:
1537 42 50         if(items!=1)Perl_croak(aTHX_ "Usage: Business::KontoCheck::retval2txt_short(ret)");
1538              
1539 42           RETVAL=kto_check_retval2txt_short(ret);
1540             OUTPUT:
1541             RETVAL
1542              
1543             const char *
1544             kto_check_retval2html(ret)
1545             int ret;
1546             CODE:
1547 0 0         if(items!=1)Perl_croak(aTHX_ "Usage: Business::KontoCheck::retval2html(ret)");
1548              
1549 0           RETVAL=kto_check_retval2html(ret);
1550             OUTPUT:
1551             RETVAL
1552              
1553              
1554              
1555             const char *
1556             retval2html(ret)
1557             int ret;
1558             CODE:
1559 0 0         if(items!=1)Perl_croak(aTHX_ "Usage: Business::KontoCheck::retval2html(ret)");
1560              
1561 0           RETVAL=kto_check_retval2html(ret);
1562             OUTPUT:
1563             RETVAL
1564              
1565             const char *
1566             kto_check_retval2utf8(ret)
1567             int ret;
1568             CODE:
1569 0 0         if(items!=1)Perl_croak(aTHX_ "Usage: Business::KontoCheck::retval2utf8(ret)");
1570              
1571 0           RETVAL=kto_check_retval2utf8(ret);
1572             OUTPUT:
1573             RETVAL
1574              
1575              
1576              
1577             const char *
1578             retval2utf8(ret)
1579             int ret;
1580             CODE:
1581 0 0         if(items!=1)Perl_croak(aTHX_ "Usage: Business::KontoCheck::retval2utf8(ret)");
1582              
1583 0           RETVAL=kto_check_retval2utf8(ret);
1584             OUTPUT:
1585             RETVAL
1586              
1587             const char *
1588             kto_check_retval2dos(ret)
1589             int ret;
1590             CODE:
1591 0 0         if(items!=1)Perl_croak(aTHX_ "Usage: Business::KontoCheck::retval2dos(ret)");
1592              
1593 0           RETVAL=kto_check_retval2dos(ret);
1594             OUTPUT:
1595             RETVAL
1596              
1597              
1598              
1599             const char *
1600             retval2dos(ret)
1601             int ret;
1602             CODE:
1603 0 0         if(items!=1)Perl_croak(aTHX_ "Usage: Business::KontoCheck::retval2dos(ret)");
1604              
1605 0           RETVAL=kto_check_retval2dos(ret);
1606             OUTPUT:
1607             RETVAL
1608              
1609              
1610             const char *
1611             kto_check_encoding_str(mode)
1612             int mode
1613              
1614             int
1615             rebuild_blzfile(inputname,outputname,set)
1616             char *inputname
1617             char *outputname
1618             int set
1619              
1620             int
1621             pz_aenderungen_enable(set)
1622             int set
1623              
1624             int
1625             kto_check_encoding(mode)
1626             int mode
1627              
1628             int
1629             keep_raw_data(mode)
1630             int mode
1631              
1632             const char *
1633             current_lutfile_name_i(want_array...)
1634             int want_array;
1635             PREINIT:
1636             int set,level,ret;
1637             CODE:
1638 1 50         if(items!=4)Perl_croak(aTHX_ "Usage: Business::KontoCheck::current_lutfile_name_i(want_array,set,level,retval)");
1639 1 50         if(want_array)
1640 1           RETVAL=current_lutfile_name(&set,&level,&ret);
1641             else
1642 0           RETVAL=current_lutfile_name(NULL,NULL,&ret);
1643 1 50         if(ret<0)RETVAL="";
1644 1 50         if(want_array){
1645 1           sv_setiv(ST(1), (IV)set);
1646 1 50         SvSETMAGIC(ST(1));
1647 1           sv_setiv(ST(2), (IV)level);
1648 1 50         SvSETMAGIC(ST(2));
1649 1           sv_setiv(ST(3), (IV)ret);
1650 1 50         SvSETMAGIC(ST(3));
1651             }
1652             OUTPUT:
1653             RETVAL
1654              
1655              
1656             int
1657             lut_info_i(lut_name...)
1658             char *lut_name;
1659             PREINIT:
1660             char *info1,*info2,*dptr;
1661             int valid1,valid2,want_array,ret;
1662             CODE:
1663 3 50         want_array=(int)SvIV(ST(1));
1664 3 50         if(items!=7)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_info_i(lut_name,want_array,info1,valid1,info2,valid2,lut_dir)");
1665 3 50         if(want_array<0)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_info(lut_name)");
1666 3 50         if(want_array){
1667 3           ret=lut_info(lut_name,&info1,&info2,&valid1,&valid2);
1668 3           lut_dir_dump_str(lut_name,&dptr);
1669 3 50         if(!info1)info1="";
1670 3 100         if(!info2)info2="";
1671             }
1672             else{
1673 0           ret=lut_info(lut_name,NULL,NULL,&valid1,&valid2);
1674 0           dptr=info1=info2="";
1675             }
1676 3 50         if(ret
1677 0           RETVAL=ret;
1678 3 50         else if(valid1==LUT2_VALID || valid2==LUT2_VALID)
    50          
1679 0           RETVAL=LUT2_VALID;
1680 3 50         else if(valid1==LUT1_SET_LOADED)
1681 0           RETVAL=LUT1_SET_LOADED;
1682 3 100         else if(valid1==LUT2_NO_VALID_DATE || valid2==LUT2_NO_VALID_DATE)
    50          
1683 1           RETVAL=LUT2_NO_VALID_DATE;
1684             else
1685 2           RETVAL=LUT2_INVALID;
1686              
1687 3           sv_setpv((SV*)ST(2), info1);
1688 3 50         SvSETMAGIC(ST(2));
1689 3           sv_setiv(ST(3), (IV)valid1);
1690 3 50         SvSETMAGIC(ST(3));
1691 3           sv_setpv((SV*)ST(4), info2);
1692 3 50         SvSETMAGIC(ST(4));
1693 3           sv_setiv(ST(5), (IV)valid2);
1694 3 50         SvSETMAGIC(ST(5));
1695 3           sv_setpv((SV*)ST(6),dptr);
1696 3 50         SvSETMAGIC(ST(6));
1697              
1698 3 50         if(want_array){
1699             /* der Speicher von info1, info2 und dptr muß wieder freigegeben
1700             * werden. Dazu kann allerdings nicht einfach free() benutzt werden,
1701             * da das von strawberry perl auf die Perl-Version umdefiniert wird
1702             * und dann zu einem Absturz führt. kc_free() ist in konto_check.c
1703             * definiert und ruft dort einfach free() auf.
1704             */
1705 3 50         if(*info1)kc_free(info1);
1706 3 100         if(*info2)kc_free(info2);
1707 3 50         if(*dptr)kc_free(dptr);
1708             }
1709             OUTPUT:
1710             RETVAL
1711              
1712             int
1713             generate_lut(inputname,outputname,user_info,lut_version)
1714             char *inputname;
1715             char *outputname;
1716             char *user_info;
1717             unsigned int lut_version;
1718              
1719             int
1720             copy_lutfile(old_name,new_name,new_slots)
1721             char *old_name;
1722             char *new_name;
1723             int new_slots
1724              
1725             int
1726             ci_check(ci)
1727             char *ci;
1728             CODE:
1729 0 0         if(items!=1)Perl_croak(aTHX_ "Usage: Business::KontoCheck::ci_check(ci)");
1730 0           RETVAL=ci_check(ci);
1731             OUTPUT:
1732             RETVAL
1733              
1734             int
1735             iban_check(iban...)
1736             char *iban;
1737             PREINIT:
1738             int *ret,r;
1739             CODE:
1740 165           switch(items){
1741             case 1:
1742 0           ret=NULL;
1743 0           break;
1744             case 2:
1745 165           ret=&r;
1746 165           break;
1747             default:
1748 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::iban_check(iban[,ret_kc])");
1749             break;
1750             }
1751 165           RETVAL=iban_check(iban,ret);
1752 165 50         if(ret){
1753 165           sv_setiv(ST(1),(IV)r);
1754 165 50         SvSETMAGIC(ST(1));
1755             }
1756             OUTPUT:
1757             RETVAL
1758              
1759             int
1760             bic_check(bic...)
1761             char *bic;
1762             PREINIT:
1763             int cnt;
1764             CODE:
1765 336           switch(items){
1766             case 1:
1767 0           RETVAL=bic_check(bic,NULL);
1768 0           break;
1769             case 2:
1770 336           RETVAL=bic_check(bic,&cnt);
1771 336           sv_setiv(ST(1),(IV)cnt);
1772 336 50         SvSETMAGIC(ST(1));
1773 336           break;
1774             default:
1775 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::bic_check(bic[,cnt])");
1776             break;
1777             }
1778             OUTPUT:
1779             RETVAL
1780              
1781             int
1782             lut_blocks(...)
1783             PREINIT:
1784             int mode;
1785             char *lut_filename;
1786             char *lut_blocks_ok;
1787             char *lut_blocks_fehler;
1788             CODE:
1789 1 50         if(items>1)
1790 1 50         mode=(int)SvIV(ST(0));
1791             else
1792 0           mode=0; /* Dummy gegen Compiler-Warnungen */
1793 1           lut_filename=lut_blocks_ok=lut_blocks_fehler=NULL;
1794 1           switch(items){
1795             case 0:
1796             case 1:
1797 0           RETVAL=lut_blocks(0,NULL,NULL,NULL);
1798 0           break;
1799             case 2:
1800 0           RETVAL=lut_blocks(mode,&lut_filename,NULL,NULL);
1801 0           break;
1802             case 3:
1803 0           RETVAL=lut_blocks(mode,&lut_filename,&lut_blocks_ok,NULL);
1804 0           break;
1805             case 4:
1806 1           RETVAL=lut_blocks(mode,&lut_filename,&lut_blocks_ok,&lut_blocks_fehler);
1807 1           break;
1808             default:
1809 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_blocks([$mode[,$filename[,$blocks_ok[,$blocks_fehler]]])");
1810             break;
1811             }
1812 1 50         if(lut_filename){
1813 1           sv_setpv((SV*)ST(1),lut_filename);
1814 1 50         SvSETMAGIC(ST(1));
1815 1           kc_free(lut_filename);
1816             }
1817 1 50         if(lut_blocks_ok){
1818 1           sv_setpv((SV*)ST(2),lut_blocks_ok);
1819 1 50         SvSETMAGIC(ST(2));
1820 1           kc_free(lut_blocks_ok);
1821             }
1822 1 50         if(lut_blocks_fehler){
1823 1           sv_setpv((SV*)ST(3),lut_blocks_fehler);
1824 1 50         SvSETMAGIC(ST(3));
1825 1           kc_free(lut_blocks_fehler);
1826             }
1827             OUTPUT:
1828             RETVAL
1829              
1830             int
1831             iban_gen_i(blz,kto...)
1832             char *blz;
1833             char *kto;
1834             PREINIT:
1835             char *ptr,*dptr,*papier,iban[24],blz2[16],kto2[16];
1836             const char *bic;
1837             int regel,ret;
1838             #if DEBUG>0
1839             RETVAL rv;
1840             #endif
1841             CODE:
1842 2896 50         if(items!=9){
1843 0           Perl_croak(aTHX_ "Business::KontoCheck::iban_gen_i() requires 9 arguments, %d are given",(int)items);
1844             RETVAL=0;
1845             }
1846             else{
1847 2896           papier=iban_bic_gen(blz,kto,&bic,blz2,kto2,&ret);
1848 2896 100         if(papier){
1849 80556 100         for(ptr=papier,dptr=iban;*ptr;ptr++)if(*ptr!=' ')*dptr++=*ptr;
    100          
1850 2877           *dptr=0;
1851 2877           sv_setpv((SV*)ST(2),iban);
1852 2877 50         SvSETMAGIC(ST(2));
1853 2877           sv_setpv((SV*)ST(3),papier);
1854 2877 50         SvSETMAGIC(ST(3));
1855 2877           kc_free(papier);
1856             }
1857 2896 50         if(bic){
1858 2896           sv_setpv((SV*)ST(4),bic);
1859 2896 50         SvSETMAGIC(ST(4));
1860             }
1861 2896           regel=lut_iban_regel(blz,0,NULL);
1862 2896           sv_setiv(ST(5),regel);
1863 2896 50         SvSETMAGIC(ST(5));
1864             #if DEBUG>0
1865 2896           kto_check_blz_dbg(blz,kto,&rv);
1866 2896           sv_setpv((SV*)ST(6),rv.methode);
1867             #else
1868             sv_setpv((SV*)ST(6),"no debug version");
1869             #endif
1870 2896 50         SvSETMAGIC(ST(6));
1871 2896           sv_setpv((SV*)ST(7),blz2);
1872 2896 50         SvSETMAGIC(ST(7));
1873 2896           sv_setpv((SV*)ST(8),kto2);
1874 2896 50         SvSETMAGIC(ST(8));
1875 2896           RETVAL=ret;
1876             }
1877             OUTPUT:
1878             RETVAL
1879              
1880             const char*
1881             iban2bic_i(iban...)
1882             char *iban;
1883             PREINIT:
1884             char blz[16],kto[16];
1885             const char *bic;
1886             int ret;
1887             CODE:
1888 0 0         if(items!=4){
1889 0           Perl_croak(aTHX_ "Business::KontoCheck::iban2bic_i() requires 4 arguments, %d are given",(int)items);
1890             RETVAL=0;
1891             }
1892             else{
1893 0           bic=iban2bic(iban,&ret,blz,kto);
1894 0           sv_setiv(ST(1),ret);
1895 0 0         SvSETMAGIC(ST(1));
1896 0 0         if(ret>0){
1897 0           sv_setpv((SV*)ST(2),blz);
1898 0 0         SvSETMAGIC(ST(2));
1899 0           sv_setpv((SV*)ST(3),kto);
1900 0 0         SvSETMAGIC(ST(3));
1901             }
1902 0           RETVAL=bic;
1903             }
1904             OUTPUT:
1905             RETVAL
1906              
1907             int
1908             ipi_check(zweck)
1909             char *zweck;
1910              
1911             int
1912             ipi_gen_i(zweck...)
1913             char *zweck;
1914             PREINIT:
1915             char ipi_buffer[24],ipi_papier[32];
1916             CODE:
1917 80 50         if(items<1 || items>3)Perl_croak(aTHX_ "Usage: Business::KontoCheck::ipi_gen(zweck[,zweck_edv[,zweck_papier]])");
    50          
1918 80           RETVAL=ipi_gen(zweck,ipi_buffer,ipi_papier);
1919 80 50         if(items>=2){
1920 80           sv_setpv((SV*)ST(1),ipi_buffer);
1921 80 50         SvSETMAGIC(ST(1));
1922             }
1923 80 50         if(items==3){
1924 80           sv_setpv((SV*)ST(2),ipi_papier);
1925 80 50         SvSETMAGIC(ST(2));
1926             }
1927             OUTPUT:
1928             RETVAL
1929              
1930             void
1931             lut_suche_volltext_i(want_array,search...)
1932             int want_array;
1933             char *search;
1934             PREINIT:
1935             char **base_name;
1936             int i,ret,anzahl,anzahl_name,start_name_idx,*start_idx,*zw,*bb;
1937             int sort,uniq,anzahl2,*idx_o,*cnt_o;
1938             AV *zweigstelle,*blz_array,*vals,*cnt_array;
1939             SV *zweigstelle_p,*blz_array_p,*vals_p,*cnt_array_p;
1940             PPCODE:
1941 10 50         if(items<2 || items>5)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_suche_volltext(suchworte[,retval[,uniq[,sort]]])");
    50          
1942 10           ret=lut_suche_volltext(search,&anzahl_name,&start_name_idx,&base_name,&anzahl,&start_idx,&zw,&bb);
1943 10 50         if(items>=3){
1944 10           sv_setiv(ST(2),(IV)ret);
1945 10 50         SvSETMAGIC(ST(2));
1946             }
1947              
1948 10           sort=uniq=-1;
1949 10 100         if(items>=4)uniq=(int)SvIV(ST(3));
    50          
1950 10 100         if(items>=5)sort=(int)SvIV(ST(4));
    50          
1951 10 100         if(uniq>0)
1952 2           uniq=2;
1953 8 50         else if(uniq<=0 && sort>0)
    100          
1954 2           uniq=1;
1955 6 50         else if(uniq<0 && sort<0)
    50          
1956 6           uniq=UNIQ_DEFAULT_PERL;
1957 10 100         if(uniq) /* bei uniq>0 sortieren, uniq>1 sortieren + uniq */
1958 4           lut_suche_sort1(anzahl,bb,zw,start_idx,&anzahl2,&idx_o,&cnt_o,uniq>1);
1959             else{
1960 6           anzahl2=anzahl;
1961 6           idx_o=start_idx;
1962 6           cnt_o=NULL;
1963             }
1964              
1965 10           blz_array=newAV();
1966 10 50         if(anzahl2){
1967             /* das BLZ-Array und cnt-Array auch in ein neues Array kopieren und als Referenz zurückgeben */
1968 10           av_unshift(blz_array,anzahl2); /* Platz machen */
1969 543 100         for(i=0;i
1970             }
1971 10           blz_array_p=sv_2mortal((SV*)newRV(sv_2mortal((SV*)blz_array)));
1972              
1973 10 100         if(want_array){ /* die drei nächsten Arrays werden nur bei Bedarf gefüllt */
1974 8           zweigstelle=newAV();
1975 8           vals=newAV();
1976 8           cnt_array=newAV();
1977 8 50         if(anzahl2){
1978             /* die Zweigstellen und Werte in ein neues Array kopieren, dann als Referenz zurückgeben */
1979 8           av_unshift(vals,anzahl_name); /* Platz machen */
1980 8           av_unshift(zweigstelle,anzahl2);
1981 8 100         if(cnt_o)av_unshift(cnt_array,anzahl2);
1982 84 100         for(i=0;i
1983 421 100         for(i=0;i
1984 413           av_store(zweigstelle,i,newSViv(zw[idx_o[i]]));
1985 413 100         if(cnt_o)av_store(cnt_array,i,newSViv(cnt_o[i]));
1986             }
1987             }
1988 8 100         if(uniq){
1989 4           kc_free((char*)idx_o);
1990 4           kc_free((char*)cnt_o);
1991             }
1992 8           zweigstelle_p=sv_2mortal((SV*)newRV(sv_2mortal((SV*)zweigstelle)));
1993 8           vals_p=sv_2mortal((SV*)newRV(sv_2mortal((SV*)vals)));
1994 8           cnt_array_p=sv_2mortal((SV*)newRV(sv_2mortal((SV*)cnt_array)));
1995 8 50         XPUSHs(blz_array_p);
1996 8 50         XPUSHs(zweigstelle_p);
1997 8 50         XPUSHs(vals_p);
1998 8 50         XPUSHs(sv_2mortal(newSViv(ret)));
1999 8 50         XPUSHs(cnt_array_p);
2000 8           XSRETURN(5);
2001             }
2002             else{
2003 2 50         if(uniq){
2004 0           kc_free((char*)idx_o);
2005 0           kc_free((char*)cnt_o);
2006             }
2007 2 50         XPUSHs(blz_array_p);
2008 10           XSRETURN(1);
2009             }
2010              
2011             void
2012             lut_suche_multiple_i(want_array,search...)
2013             int want_array;
2014             char *search;
2015             PREINIT:
2016             char *such_cmd;
2017             int i,uniq,ret;
2018             UINT4 anzahl,*blz,*zweigstellen;
2019             AV *zweigstellen_array,*blz_array;
2020             SV *zweigstelle_p,*blz_array_p;
2021             PPCODE:
2022              
2023             /* Anzahl, BLZ, Zweigstellen: nur Rückgabeparameter */
2024 12           switch(items){
2025             case 2: /* keine zusätzlichen Parameter */
2026 0           uniq=UNIQ_DEFAULT_PERL;
2027 0           such_cmd=NULL;
2028 0           break;
2029             case 3: /* nur uniq */
2030 0 0         uniq=SvIV(ST(2));
2031 0           such_cmd=NULL;
2032 0           break;
2033             case 4:
2034             case 5:
2035 12 50         uniq=SvIV(ST(2));
2036 12 50         such_cmd=SvPV_nolen(ST(3));
2037 12           break;
2038             default:
2039 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_suche_multiple(search_words[,uniq[,search_cmd[,ret]]])");
2040             break;
2041             }
2042              
2043 12           ret=lut_suche_multiple(search,uniq,such_cmd,&anzahl,&zweigstellen,&blz);
2044 12 50         if(items>4){ /* retval zurückgeben */
2045 12           sv_setiv(ST(4),(IV)ret);
2046 12 50         SvSETMAGIC(ST(4));
2047             }
2048              
2049 12           blz_array=newAV();
2050 12 50         if(anzahl){
2051             /* das BLZ-Array auch in ein neues Array kopieren und als Referenz zurückgeben */
2052 12           av_unshift(blz_array,anzahl); /* Platz machen */
2053 290 100         for(i=0;i
2054             }
2055 12           blz_array_p=sv_2mortal((SV*)newRV(sv_2mortal((SV*)blz_array)));
2056              
2057 12 100         if(want_array){ /* das nächste Array wird nur bei Bedarf gefüllt */
2058 6           zweigstellen_array=newAV();
2059 6 50         if(anzahl){
2060             /* die Zweigstellen in ein neues Array kopieren, dann als Referenz zurückgeben */
2061 6           av_unshift(zweigstellen_array,anzahl);
2062 145 100         for(i=0;i
2063             }
2064 6           kc_free((char*)zweigstellen);
2065 6           kc_free((char*)blz);
2066 6           zweigstelle_p=sv_2mortal((SV*)newRV(sv_2mortal((SV*)zweigstellen_array)));
2067 6 50         XPUSHs(blz_array_p);
2068 6 50         XPUSHs(zweigstelle_p);
2069 6 50         XPUSHs(sv_2mortal(newSViv(ret)));
2070 6           XSRETURN(3);
2071             }
2072             else{
2073 6           kc_free((char*)zweigstellen);
2074 6           kc_free((char*)blz);
2075 6 50         XPUSHs(blz_array_p);
2076 12           XSRETURN(1);
2077             }
2078              
2079             void
2080             lut_suche_c(want_array,art...)
2081             int want_array;
2082             int art;
2083             PREINIT:
2084             char *search,**base_name,warn_buffer[128],*fkt;
2085             int i,ret,anzahl,*start_idx,*zw,*bb;
2086             int sort,uniq,anzahl2,*idx_o,*cnt_o;
2087             STRLEN len;
2088             AV *zweigstellen_array,*blz_array,*vals,*cnt_array;
2089             SV *zweigstelle_p,*blz_array_p,*vals_p,*cnt_array_p;
2090             PPCODE:
2091 35           switch(art){
2092             case 1:
2093 5           fkt="bic";
2094 5           break;
2095             case 2:
2096 10           fkt="namen";
2097 10           break;
2098             case 3:
2099 5           fkt="namen_kurz";
2100 5           break;
2101             case 4:
2102 15           fkt="ort";
2103 15           break;
2104             default:
2105 0           fkt=NULL;
2106 0           break;
2107             }
2108 35 50         if(items>2 && items<7)
    50          
2109 35 50         search=SvPV(ST(2),len);
2110             else{
2111 0 0         if(fkt)
2112 0           snprintf(warn_buffer,128,"Usage: Business::KontoCheck::lut_suche_%s(%s[,retval[,uniq[,sort]]])",fkt,fkt);
2113             else
2114 0           snprintf(warn_buffer,128,"unknown internal subfunction for lut_suche_c");
2115 0           Perl_croak(aTHX_ "%s",warn_buffer);
2116             }
2117 35           switch(art){ /* die entsprechenden Funktionen aufrufen */
2118             case 1:
2119 5           ret=lut_suche_bic(search,&anzahl,&start_idx,&zw,&base_name,&bb);
2120 5           break;
2121             case 2:
2122 10           ret=lut_suche_namen(search,&anzahl,&start_idx,&zw,&base_name,&bb);
2123 10           break;
2124             case 3:
2125 5           ret=lut_suche_namen_kurz(search,&anzahl,&start_idx,&zw,&base_name,&bb);
2126 5           break;
2127             case 4:
2128 15           ret=lut_suche_ort(search,&anzahl,&start_idx,&zw,&base_name,&bb);
2129 15           break;
2130             default:
2131 0           Perl_croak(aTHX_ "unknown internal subfunction for lut_suche_c");
2132             break;
2133             }
2134 35 50         if(items>3){
2135 35           sv_setiv(ST(3),(IV)ret);
2136 35 50         SvSETMAGIC(ST(3));
2137             }
2138 35           uniq=sort=-1;
2139 35 100         if(items>4)uniq=(int)SvIV(ST(4));
    50          
2140 35 100         if(items>5)sort=(int)SvIV(ST(5));
    50          
2141 35 100         if(uniq>0)
2142 7           uniq=2;
2143 28 50         else if(uniq<=0 && sort>0)
    100          
2144 7           uniq=1;
2145 21 50         else if(uniq<0 && sort<0)
    50          
2146 21           uniq=UNIQ_DEFAULT_PERL;
2147 35 100         if(uniq) /* bei uniq>0 sortieren, uniq>1 sortieren + uniq */
2148 14           lut_suche_sort1(anzahl,bb,zw,start_idx,&anzahl2,&idx_o,&cnt_o,uniq>1);
2149             else{
2150 21           anzahl2=anzahl;
2151 21           idx_o=start_idx;
2152 21           cnt_o=NULL;
2153             }
2154 35           blz_array=newAV();
2155 35 50         if(anzahl2){
2156             /* das BLZ-Array auch in ein neues Array kopieren und als Referenz zurückgeben */
2157 35           av_unshift(blz_array,anzahl2); /* Platz machen */
2158 908 100         for(i=0;i
2159             }
2160 35           blz_array_p=sv_2mortal((SV*)newRV(sv_2mortal((SV*)blz_array)));
2161              
2162 35 100         if(want_array){ /* die drei nächsten Arrays werden nur bei Bedarf gefüllt */
2163 28           zweigstellen_array=newAV();
2164 28           vals=newAV();
2165 28           cnt_array=newAV();
2166 28 50         if(anzahl2){
2167             /* die Zweigstellen und Werte in ein neues Array kopieren, dann als Referenz zurückgeben */
2168 28           av_unshift(zweigstellen_array,anzahl2);
2169 28           av_unshift(vals,anzahl2);
2170 28 100         if(cnt_o)av_unshift(cnt_array,anzahl2);
2171 716 100         for(i=0;i
2172 688           av_store(zweigstellen_array,i,newSViv(zw[idx_o[i]]));
2173 688           av_store(vals,i,newSVpvf("%s",base_name[idx_o[i]]));
2174 688 100         if(cnt_o)av_store(cnt_array,i,newSViv(cnt_o[i]));
2175             }
2176             }
2177 28 100         if(uniq){
2178 14           kc_free((char*)idx_o);
2179 14           kc_free((char*)cnt_o);
2180             }
2181 28           zweigstelle_p=sv_2mortal((SV*)newRV(sv_2mortal((SV*)zweigstellen_array)));
2182 28           vals_p=sv_2mortal((SV*)newRV(sv_2mortal((SV*)vals)));
2183 28           cnt_array_p=sv_2mortal((SV*)newRV(sv_2mortal((SV*)cnt_array)));
2184 28 50         XPUSHs(blz_array_p);
2185 28 50         XPUSHs(zweigstelle_p);
2186 28 50         XPUSHs(vals_p);
2187 28 50         XPUSHs(sv_2mortal(newSViv(ret)));
2188 28 50         XPUSHs(cnt_array_p);
2189 28           XSRETURN(5);
2190             }
2191             else{
2192 7 50         if(uniq){
2193 0           kc_free((char*)idx_o);
2194 0           kc_free((char*)cnt_o);
2195             }
2196 7 50         XPUSHs(blz_array_p);
2197 35           XSRETURN(1);
2198             }
2199              
2200             void
2201             lut_suche_i(want_array,art...)
2202             int want_array;
2203             int art;
2204             PREINIT:
2205             int search1;
2206             int search2;
2207             int i,ret,anzahl,*start_idx,*base_name,*zw,*bb;
2208             int sort,uniq,anzahl2,*idx_o,*cnt_o;
2209             AV *zweigstellen_array,*blz_array,*vals,*cnt_array;
2210             SV *zweigstelle_p,*blz_array_p,*vals_p,*cnt_array_p;
2211             PPCODE:
2212 15           sort=uniq=-1;
2213 15           switch(items){
2214             case 3:
2215 0 0         search1=search2=(int)SvIV(ST(2));
2216 0           break;
2217             case 7: /* alle Parameter mit uniq und sort angegeben */
2218 3 50         sort=(int)SvIV(ST(6));
2219             case 6: /* nur uniq angegeben, kein sort */
2220 6 50         uniq=(int)SvIV(ST(5));
2221             case 4: /* Angabe von search1 und search2; ret, uniq und sort weggelassen */
2222             case 5: /* search1, search2 und ret angegeben */
2223 15 50         search1=(int)SvIV(ST(2));
2224 15 50         search2=(int)SvIV(ST(3));
2225 15           break;
2226             default:
2227 0           switch(art){
2228             case 1:
2229 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_suche_blz(blz1[,blz2[,retval[,uniq[,sort]]]])");
2230             break;
2231             case 2:
2232 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_suche_pz(pz1[,pz2[,retval[,uniq[,sort]]]])");
2233             break;
2234             case 3:
2235 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_suche_plz(plz1[,plz2[,retval[,uniq[,sort]]]])");
2236             break;
2237             case 4:
2238 0           Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_suche_regel(regel1[,regel2[,retval[,uniq[,sort]]]])");
2239             break;
2240             default:
2241 0           Perl_croak(aTHX_ "unknown internal subfunction for lut_suche_i");
2242             break;
2243             }
2244             break;
2245             }
2246 15           switch(art){ /* die entsprechenden Funktionen aufrufen */
2247             case 1:
2248 5           ret=lut_suche_blz(search1,search2,&anzahl,&start_idx,&zw,&base_name,&bb);
2249 5           break;
2250             case 2:
2251 5           ret=lut_suche_pz(search1,search2,&anzahl,&start_idx,&zw,&base_name,&bb);
2252 5           break;
2253             case 3:
2254 5           ret=lut_suche_plz(search1,search2,&anzahl,&start_idx,&zw,&base_name,&bb);
2255 5           break;
2256             case 4:
2257 0           ret=lut_suche_regel(search1,search2,&anzahl,&start_idx,&zw,&base_name,&bb);
2258 0           break;
2259             default:
2260 0           Perl_croak(aTHX_ "unknown internal subfunction for lut_suche_i");
2261             break;
2262             }
2263              
2264 15 100         if(uniq>0)
2265 3           uniq=2;
2266 12 50         else if(uniq<=0 && sort>0)
    100          
2267 3           uniq=1;
2268 9 50         else if(uniq<0 && sort<0)
    50          
2269 9           uniq=UNIQ_DEFAULT_PERL;
2270 15 100         if(uniq) /* bei uniq>0 sortieren, uniq>1 sortieren + uniq */
2271 6           lut_suche_sort1(anzahl,bb,zw,start_idx,&anzahl2,&idx_o,&cnt_o,uniq>1);
2272             else{
2273 9           anzahl2=anzahl;
2274 9           idx_o=start_idx;
2275 9           cnt_o=NULL;
2276             }
2277 15 50         if(items>=5){
2278 15           sv_setiv(ST(4),(IV)ret);
2279 15 50         SvSETMAGIC(ST(4));
2280             }
2281              
2282 15           blz_array=newAV();
2283 15 50         if(anzahl2){
2284             /* das BLZ-Array auch in ein neues Array kopieren und als Referenz zurückgeben */
2285 15           av_unshift(blz_array,anzahl2); /* Platz machen */
2286 2161 100         for(i=0;i
2287             }
2288 15           blz_array_p=sv_2mortal((SV*)newRV(sv_2mortal((SV*)blz_array)));
2289              
2290 15 100         if(want_array){ /* die drei nächsten Arrays werden nur bei Bedarf gefüllt */
2291 12           zweigstellen_array=newAV();
2292 12           vals=newAV();
2293 12           cnt_array=newAV();
2294 12 50         if(anzahl2){
2295             /* die Zweigstellen und Werte in ein neues Array kopieren, dann als Referenz zurückgeben */
2296 12           av_unshift(zweigstellen_array,anzahl2);
2297 12           av_unshift(vals,anzahl2);
2298 12 100         if(cnt_o)av_unshift(cnt_array,anzahl2);
2299 1670 100         for(i=0;i
2300 1658           av_store(zweigstellen_array,i,newSViv(zw[idx_o[i]]));
2301 1658           av_store(vals,i,newSViv(base_name[idx_o[i]]));
2302 1658 100         if(cnt_o)av_store(cnt_array,i,newSViv(cnt_o[i]));
2303             }
2304             }
2305 12 100         if(uniq){
2306 6           kc_free((char*)idx_o);
2307 6           kc_free((char*)cnt_o);
2308             }
2309 12           zweigstelle_p=sv_2mortal((SV*)newRV(sv_2mortal((SV*)zweigstellen_array)));
2310 12           vals_p=sv_2mortal((SV*)newRV(sv_2mortal((SV*)vals)));
2311 12           cnt_array_p=sv_2mortal((SV*)newRV(sv_2mortal((SV*)cnt_array)));
2312              
2313 12 50         XPUSHs(blz_array_p);
2314 12 50         XPUSHs(zweigstelle_p);
2315 12 50         XPUSHs(vals_p);
2316 12 50         XPUSHs(sv_2mortal(newSViv(ret)));
2317 12 50         XPUSHs(cnt_array_p);
2318 12           XSRETURN(5);
2319             }
2320             else{
2321 3 50         if(uniq){
2322 0           kc_free((char*)idx_o);
2323 0           kc_free((char*)cnt_o);
2324             }
2325 3 50         XPUSHs(blz_array_p);
2326 15           XSRETURN(1);
2327             }
2328              
2329             int
2330             lut_scl_init(lut_name)
2331             char *lut_name
2332             CODE:
2333 0           RETVAL=lut_scl_init(lut_name);
2334             OUTPUT:
2335             RETVAL
2336              
2337             #################################
2338             int
2339             lut_scl_multi_i(scl_flags,used_bic,scl_name,bic)
2340             char *bic;
2341             const char *scl_flags;
2342             const char *used_bic;
2343             const char *scl_name;
2344             CODE:
2345 0 0         if(items!=4)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_scl_multi(bic)");
2346              
2347 0           RETVAL=lut_scl_multi(bic,&scl_flags,&used_bic,&scl_name);
2348 0           sv_setpv((SV*)ST(0),scl_flags);
2349 0 0         SvSETMAGIC(ST(0));
2350 0           sv_setpv((SV*)ST(1),used_bic);
2351 0 0         SvSETMAGIC(ST(1));
2352 0           sv_setpv((SV*)ST(2),scl_name);
2353 0 0         SvSETMAGIC(ST(2));
2354             OUTPUT:
2355             RETVAL
2356              
2357             int
2358             lut_scl_multi_blz_i(scl_flags,used_bic,scl_name,blz)
2359             char *blz;
2360             const char *scl_flags;
2361             const char *used_bic;
2362             const char *scl_name;
2363             CODE:
2364 0 0         if(items!=4)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_scl_multi_blz(blz)");
2365              
2366 0           RETVAL=lut_scl_multi_blz(blz,&scl_flags,&used_bic,&scl_name);
2367 0           sv_setpv((SV*)ST(0),scl_flags);
2368 0 0         SvSETMAGIC(ST(0));
2369 0           sv_setpv((SV*)ST(1),used_bic);
2370 0 0         SvSETMAGIC(ST(1));
2371 0           sv_setpv((SV*)ST(2),scl_name);
2372 0 0         SvSETMAGIC(ST(2));
2373             OUTPUT:
2374             RETVAL
2375             ##############################################
2376              
2377              
2378             int
2379             lut_scl_sct_i(r,bic)
2380             char *bic;
2381             int r;
2382             CODE:
2383 0 0         if(items!=2)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_scl_sct(bic)");
2384              
2385 0           RETVAL=lut_scl_sct(bic,&r);
2386 0           sv_setiv(ST(0),(IV)r);
2387 0 0         SvSETMAGIC(ST(0));
2388             OUTPUT:
2389             r
2390             RETVAL
2391              
2392             int
2393             lut_scl_sct_blz_i(r,used_bic,blz)
2394             char *blz;
2395             const char *used_bic;
2396             int r;
2397             CODE:
2398 0 0         if(items!=3)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_scl_sct_blz(blz)");
2399              
2400 0           RETVAL=lut_scl_sct_blz(blz,&r,&used_bic);
2401 0           sv_setiv(ST(0),(IV)r);
2402 0 0         SvSETMAGIC(ST(0));
2403 0           sv_setpv((SV*)ST(1),used_bic);
2404 0 0         SvSETMAGIC(ST(1));
2405             OUTPUT:
2406             r
2407             RETVAL
2408              
2409              
2410             int
2411             lut_scl_sdd_i(r,bic)
2412             char *bic;
2413             int r;
2414             CODE:
2415 0 0         if(items!=2)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_scl_sdd(bic)");
2416              
2417 0           RETVAL=lut_scl_sdd(bic,&r);
2418 0           sv_setiv(ST(0),(IV)r);
2419 0 0         SvSETMAGIC(ST(0));
2420             OUTPUT:
2421             r
2422             RETVAL
2423              
2424             int
2425             lut_scl_sdd_blz_i(r,used_bic,blz)
2426             char *blz;
2427             const char *used_bic;
2428             int r;
2429             CODE:
2430 0 0         if(items!=3)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_scl_sdd_blz(blz)");
2431              
2432 0           RETVAL=lut_scl_sdd_blz(blz,&r,&used_bic);
2433 0           sv_setiv(ST(0),(IV)r);
2434 0 0         SvSETMAGIC(ST(0));
2435 0           sv_setpv((SV*)ST(1),used_bic);
2436 0 0         SvSETMAGIC(ST(1));
2437             OUTPUT:
2438             r
2439             RETVAL
2440              
2441              
2442             int
2443             lut_scl_cor1_i(r,bic)
2444             char *bic;
2445             int r;
2446             CODE:
2447 0 0         if(items!=2)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_scl_cor1(bic)");
2448              
2449 0           RETVAL=lut_scl_cor1(bic,&r);
2450 0           sv_setiv(ST(0),(IV)r);
2451 0 0         SvSETMAGIC(ST(0));
2452             OUTPUT:
2453             r
2454             RETVAL
2455              
2456             int
2457             lut_scl_cor1_blz_i(r,used_bic,blz)
2458             char *blz;
2459             const char *used_bic;
2460             int r;
2461             CODE:
2462 0 0         if(items!=3)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_scl_cor1_blz(blz)");
2463              
2464 0           RETVAL=lut_scl_cor1_blz(blz,&r,&used_bic);
2465 0           sv_setiv(ST(0),(IV)r);
2466 0 0         SvSETMAGIC(ST(0));
2467 0           sv_setpv((SV*)ST(1),used_bic);
2468 0 0         SvSETMAGIC(ST(1));
2469             OUTPUT:
2470             r
2471             RETVAL
2472              
2473              
2474             int
2475             lut_scl_b2b_i(r,bic)
2476             char *bic;
2477             int r;
2478             CODE:
2479 0 0         if(items!=2)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_scl_b2b(bic)");
2480              
2481 0           RETVAL=lut_scl_b2b(bic,&r);
2482 0           sv_setiv(ST(0),(IV)r);
2483 0 0         SvSETMAGIC(ST(0));
2484             OUTPUT:
2485             r
2486             RETVAL
2487              
2488             int
2489             lut_scl_b2b_blz_i(r,used_bic,blz)
2490             char *blz;
2491             const char *used_bic;
2492             int r;
2493             CODE:
2494 0 0         if(items!=3)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_scl_b2b_blz(blz)");
2495              
2496 0           RETVAL=lut_scl_b2b_blz(blz,&r,&used_bic);
2497 0           sv_setiv(ST(0),(IV)r);
2498 0 0         SvSETMAGIC(ST(0));
2499 0           sv_setpv((SV*)ST(1),used_bic);
2500 0 0         SvSETMAGIC(ST(1));
2501             OUTPUT:
2502             r
2503             RETVAL
2504              
2505              
2506             int
2507             lut_scl_scc_i(r,bic)
2508             char *bic;
2509             int r;
2510             CODE:
2511 0 0         if(items!=2)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_scl_scc(bic)");
2512              
2513 0           RETVAL=lut_scl_scc(bic,&r);
2514 0           sv_setiv(ST(0),(IV)r);
2515 0 0         SvSETMAGIC(ST(0));
2516             OUTPUT:
2517             r
2518             RETVAL
2519              
2520             int
2521             lut_scl_scc_blz_i(r,used_bic,blz)
2522             char *blz;
2523             const char *used_bic;
2524             int r;
2525             CODE:
2526 0 0         if(items!=3)Perl_croak(aTHX_ "Usage: Business::KontoCheck::lut_scl_scc_blz(blz)");
2527              
2528 0           RETVAL=lut_scl_scc_blz(blz,&r,&used_bic);
2529 0           sv_setiv(ST(0),(IV)r);
2530 0 0         SvSETMAGIC(ST(0));
2531 0           sv_setpv((SV*)ST(1),used_bic);
2532 0 0         SvSETMAGIC(ST(1));
2533             OUTPUT:
2534             r
2535             RETVAL
2536              
2537