File Coverage

KontoCheck.xs
Criterion Covered Total %
statement 430 1115 38.5
branch 219 912 24.0
condition n/a
subroutine n/a
pod n/a
total 649 2027 32.0


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