konto_check 5.2.1 → 5.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,7 +10,7 @@
10
10
  * # Verwendung in anderen Programmen bzw. Programmiersprachen benutzt #
11
11
  * # werden. #
12
12
  * # #
13
- * # Copyright (C) 2002-2011 Michael Plugge <m.plugge@hs-mannheim.de> #
13
+ * # Copyright (C) 2002-2014 Michael Plugge <m.plugge@hs-mannheim.de> #
14
14
  * # #
15
15
  * # Dieses Programm ist freie Software; Sie d�rfen es unter den #
16
16
  * # Bedingungen der GNU Lesser General Public License, wie von der Free #
@@ -47,67 +47,30 @@
47
47
  #ifndef KONTO_CHECK_H_INCLUDED
48
48
  #define KONTO_CHECK_H_INCLUDED
49
49
 
50
- /*
51
- * ##########################################################################
52
- * # Hier eine Info der Flessabank zur IBAN-Berechnung (abgerufen 13.6.12 #
53
- * # von http://www.flessabank.de/aktuell.php?akt=149) #
54
- * # #
55
- * # Aktuelles Bankleitzahl/BIC #
56
- * # #
57
- * # Im Rahmen eines umfassenden Konsolidierungsprojekts der Deutschen #
58
- * # Bundesbank und der Europ�ischen Zentralbank werden immer mehr Filialen #
59
- * # der Deutschen Bundesbank geschlossen. Dabei wird auch die aktuelle #
60
- * # Bankleitzahlenlogik f�r die Deutsche Bundesbank �berarbeitet. #
61
- * # #
62
- * # Um als FLESSABANK dieser ver�nderten Situation gerecht zu werden, #
63
- * # haben wir uns entschlossen, unsere Bankleitzahlenstruktur zu #
64
- * # vereinfachen und auf die zentrale Bankleitzahl 793 301 11 umzustellen. #
65
- * # Ihre Kontonummern bleiben dabei unver�ndert g�ltig! #
66
- * # #
67
- * # Betroffen sind hiervon folgende Bankleitzahlen: #
68
- * # 700 301 11 (Niederlassung M�nchen) #
69
- * # 763 301 11 (Niederlassung Erlangen) #
70
- * # 770 301 11 (Niederlassung Bamberg) #
71
- * # 783 301 11 (Niederlassung Coburg) #
72
- * # 840 301 11 (Niederlassung Meiningen) #
73
- * # #
74
- * # F�r die Bereiche Internet-Banking und girocard ist bereits heute nur #
75
- * # die Bankleitzahl 793 301 11 g�ltig. Auch Ihre IBAN (International Bank #
76
- * # Account Number = Internationale Kontonummer) wird ausschlie�lich mit #
77
- * # der Bankleitzahl 793 301 11 erstellt. Wir teilen Ihnen diese zusammen #
78
- * # mit unserem BIC (Bank Identifier Code = Bankkennung) auf jedem #
79
- * # Kontoauszug mit. #
80
- * # #
81
- * # Update zur Flessa-Bank (abgerufen 28.10.13): Die obigen Bankleitzahlen #
82
- * # haben in der aktuellen BLZ-Datei das L�schflag gesetzt und als #
83
- * # Nachfolge-BLZ die 79330111 eingetragen. Damit er�brigt sich die #
84
- * # Korrektur f�r die Flessa-Bank. #
85
- * ##########################################################################
86
- */
87
-
88
- #define FLESSA_KORREKTUR 0
89
-
90
50
  /* IBAN-Regeln benutzen (g�ltig ab 3.6.2013) */
91
51
  #define USE_IBAN_RULES 1
92
52
 
93
53
  /* �nderungen der Pr�fziffermethoden zum 9. September 2013 erzwingen
94
- * (bei 0 werden sie abh�ngig vom Datum aktiviert).
54
+ * (bei 0 werden sie abh�ngig vom Datum aktiviert; aktuell nicht benutzt).
95
55
  */
96
56
  #define FORCE_AENDERUNGEN_2013_09 0
97
57
 
98
- /* die neue Version der Regel 20 wird zum 9. Dezember in den offiziellen IBAN-Regeln ver�ffentlicht;
99
- * die Bundesbank hat jedoch schon die Regelversion am 28. August ver�ffentlicht, mit der Bitte, sie
100
- * m�glichst schon zum 9. September einzusetzen. Durch die neue Regelversion werden die F�lle mit dem
101
- * R�ckgabewert IBAN_AMBIGUOUS_KTO komplett eliminiert.
58
+ /* Falls EXTRA_BLZ_REGEL auf 1 gesetzt wird, wird beim IBAN-Test
59
+ * unterschieden ob eine Regel ignoriert wurde, die nur eine BLZ ersetzt,
60
+ * oder eine andere Regel. Die Variante wenn nur eine BLZ ersetzt wird, wird
61
+ * von cKonto als richtig angesehen.
62
+ *
63
+ * Bei einer Nachfrage bei den 17 in Frage kommenden Banken bekam ich von
64
+ * zehn Banken Antworten. Von diesen sagte nur eine, da� (aktuell) die
65
+ * "alten" IBANs noch akzeptiert w�rden, die neun anderen sehen eine solche
66
+ * IBAN jedoch als fehlerhaft an. In konto_check wird daher das alte
67
+ * Verhalten beibehalten, solche IBANs als Fehler zu deklarieren. Wenn das
68
+ * folgende Makro auf 1 gesetzt wird, gibt es verschiedene R�ckgabewerte f�r
69
+ * Regelverst��e mit nur BLZ-Ersetzung und andere Regeln. Auf diese Weise
70
+ * kann das Verhalten von cKonto in Benutzerprogrammen nachgebildet werden.
102
71
  */
103
72
 
104
- #define DB_NEUE_VERSION 1 /* bei 1: neue Version der DB-Regel benutzen */
105
-
106
- /* Debug-Version f�r iban_gen in Perl aktivieren (zur Ausgabe der benutzten
107
- * Pr�fziffermethode in iban_gen()). Dies ist nur m�glich, falls das Makro
108
- * DEBUG auf 1 gesetzt ist.
109
- */
110
- #define PERL_IBAN_DBG 1
73
+ #define EXTRA_BLZ_REGEL 1
111
74
 
112
75
  /* Das Makro DEFAULT_ENCODING legt die Ausgabe-Kodierung f�r die Funktion
113
76
  * kto_check_retval2txt() und die Blocks Name, Kurzname und Ort aus der
@@ -208,7 +171,7 @@
208
171
  * ######################################################################
209
172
  */
210
173
 
211
- #ifdef _WIN32
174
+ #if _WIN32>0 || _WIN64>0
212
175
  # if USE_CDECL
213
176
  # if BUILD_DLL /* DLL kompilieren */
214
177
  # define DLL_EXPORT __declspec (dllexport)
@@ -259,7 +222,7 @@
259
222
 
260
223
  #define DEFAULT_LUT_NAME "blz.lut","blz.lut2f","blz.lut2"
261
224
 
262
- #if _WIN32>0
225
+ #if _WIN32>0 || _WIN64>0
263
226
  #define DEFAULT_LUT_PATH ".","C:","C:\\Programme\\konto_check"
264
227
  #else
265
228
  #define DEFAULT_LUT_PATH ".","/usr/local/etc","/etc","/usr/local/bin","/opt/konto_check"
@@ -328,6 +291,7 @@
328
291
  #define LUT2_VOLLTEXT_IDX 24
329
292
  #define LUT2_IBAN_REGEL 25
330
293
  #define LUT2_IBAN_REGEL_SORT 26
294
+ #define LUT2_BIC_H_SORT 27
331
295
 
332
296
  #define LUT2_2_BLZ 101
333
297
  #define LUT2_2_FILIALEN 102
@@ -355,6 +319,7 @@
355
319
  #define LUT2_2_VOLLTEXT_IDX 124
356
320
  #define LUT2_2_IBAN_REGEL 125
357
321
  #define LUT2_2_IBAN_REGEL_SORT 126
322
+ #define LUT2_2_BIC_H_SORT 127
358
323
 
359
324
  #define LUT2_DEFAULT 501
360
325
 
@@ -371,6 +336,8 @@ extern const char *lut2_feld_namen[256];
371
336
  */
372
337
 
373
338
  #undef FALSE
339
+ #define IBAN_ONLY_GERMAN -147
340
+ #define INVALID_PARAMETER_TYPE -146
374
341
  #define BIC_ONLY_GERMAN -145
375
342
  #define INVALID_BIC_LENGTH -144
376
343
  #define IBAN_CHKSUM_OK_RULE_IGNORED_BLZ -143
@@ -542,7 +509,8 @@ extern const char *lut2_feld_namen[256];
542
509
  #define OK_HYPO_REQUIRES_KTO 23
543
510
  #define OK_KTO_REPLACED_NO_PZ 24
544
511
  #define OK_UNTERKONTO_ATTACHED 25
545
- #line 321 "konto_check_h.lx"
512
+ #define OK_SHORT_BIC_USED 26
513
+ #line 284 "konto_check_h.lx"
546
514
 
547
515
  #define MAX_BLZ_CNT 30000 /* maximale Anzahl BLZ's in generate_lut() */
548
516
 
@@ -931,6 +899,7 @@ DLL_EXPORT int lut_multiple_i(int b,int *cnt,int **p_blz,char ***p_name,char ***
931
899
 
932
900
  /* Funktionen, um einzelne Felder zu bestimmen (R�ckgabe direkt) */
933
901
  DLL_EXPORT int lut_blz(char *b,int zweigstelle);
902
+ DLL_EXPORT int lut_blz_i(int b,int zweigstelle);
934
903
  DLL_EXPORT int lut_filialen(char *b,int *retval);
935
904
  DLL_EXPORT int lut_filialen_i(int b,int *retval);
936
905
  DLL_EXPORT const char *lut_name(char *b,int zweigstelle,int *retval);
@@ -945,6 +914,8 @@ DLL_EXPORT int lut_pan(char *b,int zweigstelle,int *retval);
945
914
  DLL_EXPORT int lut_pan_i(int b,int zweigstelle,int *retval);
946
915
  DLL_EXPORT const char *lut_bic(char *b,int zweigstelle,int *retval);
947
916
  DLL_EXPORT const char *lut_bic_i(int b,int zweigstelle,int *retval);
917
+ DLL_EXPORT const char *lut_bic_h(char *b,int zweigstelle,int *retval);
918
+ DLL_EXPORT const char *lut_bic_hi(int b,int zweigstelle,int *retval);
948
919
  DLL_EXPORT int lut_nr(char *b,int zweigstelle,int *retval);
949
920
  DLL_EXPORT int lut_nr_i(int b,int zweigstelle,int *retval);
950
921
  DLL_EXPORT int lut_pz(char *b,int zweigstelle,int *retval);
@@ -959,6 +930,48 @@ DLL_EXPORT int lut_keine_iban_berechnung(char *iban_blacklist,char *lutfile,int
959
930
  DLL_EXPORT int lut_iban_regel(char *b,int zweigstelle,int *retval);
960
931
  DLL_EXPORT int lut_iban_regel_i(int b,int zweigstelle,int *retval);
961
932
 
933
+ DLL_EXPORT int bic_aenderung(char *bic_name,int mode,int filiale,int*retval);
934
+ DLL_EXPORT int bic_loeschung(char *bic_name,int mode,int filiale,int*retval);
935
+ DLL_EXPORT int bic_iban_regel(char *bic_name,int mode,int filiale,int*retval);
936
+ DLL_EXPORT int bic_nachfolge_blz(char *bic_name,int mode,int filiale,int*retval);
937
+ DLL_EXPORT int bic_nr(char *bic_name,int mode,int filiale,int*retval);
938
+ DLL_EXPORT int bic_pan(char *bic_name,int mode,int filiale,int*retval);
939
+ DLL_EXPORT int bic_plz(char *bic_name,int mode,int filiale,int*retval);
940
+ DLL_EXPORT int bic_pz(char *bic_name,int mode,int filiale,int*retval);
941
+ DLL_EXPORT const char *bic_bic(char *bic_name,int mode,int filiale,int*retval);
942
+ DLL_EXPORT const char *bic_bic_h(char *bic_name,int mode,int filiale,int*retval);
943
+ DLL_EXPORT const char *bic_name(char *bic_name,int mode,int filiale,int*retval);
944
+ DLL_EXPORT const char *bic_name_kurz(char *bic_name,int mode,int filiale,int*retval);
945
+ DLL_EXPORT const char *bic_ort(char *bic_name,int mode,int filiale,int*retval);
946
+
947
+ DLL_EXPORT int biq_aenderung(int idx,int*retval);
948
+ DLL_EXPORT int biq_loeschung(int idx,int*retval);
949
+ DLL_EXPORT int biq_iban_regel(int idx,int*retval);
950
+ DLL_EXPORT int biq_nachfolge_blz(int idx,int*retval);
951
+ DLL_EXPORT int biq_nr(int idx,int*retval);
952
+ DLL_EXPORT int biq_pan(int idx,int*retval);
953
+ DLL_EXPORT int biq_plz(int idx,int*retval);
954
+ DLL_EXPORT int biq_pz(int idx,int*retval);
955
+ DLL_EXPORT const char *biq_bic(int idx,int*retval);
956
+ DLL_EXPORT const char *biq_bic_h(int idx,int*retval);
957
+ DLL_EXPORT const char *biq_name(int idx,int*retval);
958
+ DLL_EXPORT const char *biq_name_kurz(int idx,int*retval);
959
+ DLL_EXPORT const char *biq_ort(int idx,int*retval);
960
+
961
+ DLL_EXPORT int iban_aenderung(char *iban,int filiale,int*retval);
962
+ DLL_EXPORT int iban_loeschung(char *iban,int filiale,int*retval);
963
+ DLL_EXPORT int iban_iban_regel(char *iban,int filiale,int*retval);
964
+ DLL_EXPORT int iban_nachfolge_blz(char *iban,int filiale,int*retval);
965
+ DLL_EXPORT int iban_nr(char *iban,int filiale,int*retval);
966
+ DLL_EXPORT int iban_pan(char *iban,int filiale,int*retval);
967
+ DLL_EXPORT int iban_plz(char *iban,int filiale,int*retval);
968
+ DLL_EXPORT int iban_pz(char *iban,int filiale,int*retval);
969
+ DLL_EXPORT const char *iban_bic(char *iban,int filiale,int*retval);
970
+ DLL_EXPORT const char *iban_bic_h(char *iban,int filiale,int*retval);
971
+ DLL_EXPORT const char *iban_name(char *iban,int filiale,int*retval);
972
+ DLL_EXPORT const char *iban_name_kurz(char *iban,int filiale,int*retval);
973
+ DLL_EXPORT const char *iban_ort(char *iban,int filiale,int*retval);
974
+
962
975
  /*
963
976
  * ######################################################################
964
977
  * # Suche von Banken nach verschiedenen Kriterien #
@@ -974,6 +987,7 @@ DLL_EXPORT int lut_iban_regel_i(int b,int zweigstelle,int *retval);
974
987
  #define LUT_SUCHE_PLZ 7
975
988
  #define LUT_SUCHE_PZ 8
976
989
  #define LUT_SUCHE_REGEL 9
990
+ #define LUT_SUCHE_BIC_H 10
977
991
 
978
992
  /* Defaultwert f�r sort/uniq bei Suchfunktionen (=> nur eine Zweigstelle
979
993
  * zur�ckgeben) (betrifft nur PHP, Perl und Ruby, bei denen der Parameter
@@ -990,6 +1004,7 @@ DLL_EXPORT int lut_iban_regel_i(int b,int zweigstelle,int *retval);
990
1004
  DLL_EXPORT int kto_check_idx2blz(int idx,int *zweigstelle,int *retval);
991
1005
  DLL_EXPORT int konto_check_idx2blz(int idx,int *zweigstelle,int *retval);
992
1006
  DLL_EXPORT int lut_suche_bic(char *such_name,int *anzahl,int **start_idx,int **zweigstellen_base,char ***base_name,int **blz_base);
1007
+ DLL_EXPORT int lut_suche_bic_h(char *such_name,int *anzahl,int **start_idx,int **zweigstellen_base,char ***base_name,int **blz_base);
993
1008
  DLL_EXPORT int lut_suche_namen(char *such_name,int *anzahl,int **start_idx,int **zweigstellen_base,char ***base_name,int **blz_base);
994
1009
  DLL_EXPORT int lut_suche_namen_kurz(char *such_name,int *anzahl,int **start_idx,int **zweigstellen_base,char ***base_name,int **blz_base);
995
1010
  DLL_EXPORT int lut_suche_ort(char *such_name,int *anzahl,int **start_idx,int **zweigstellen_base,char ***base_name,int **blz_base);
@@ -1022,6 +1037,7 @@ DLL_EXPORT int lut_cleanup(void);
1022
1037
 
1023
1038
  /* IBAN-Sachen */
1024
1039
  DLL_EXPORT int ci_check(char *ci);
1040
+ DLL_EXPORT int bic_check(char *search_bic,int *cnt);
1025
1041
  DLL_EXPORT int iban_check(char *iban,int *retval);
1026
1042
  DLL_EXPORT const char *iban2bic(char *iban,int *retval,char *blz,char *kto);
1027
1043
  DLL_EXPORT char *iban_gen(char *kto,char *blz,int *retval);
@@ -1030,6 +1046,9 @@ DLL_EXPORT char *iban_bic_gen1(char *blz,char *kto,const char **bicp,int *retval
1030
1046
  DLL_EXPORT int ipi_gen(char *zweck,char *dst,char *papier);
1031
1047
  DLL_EXPORT int ipi_check(char *zweck);
1032
1048
 
1049
+ /* BIC-Funktionen */
1050
+ DLL_EXPORT int bic_info(char *bic_name,int mode,int *anzahl,int *start_idx);
1051
+
1033
1052
  /* R�ckgabewerte in Klartext umwandeln */
1034
1053
  DLL_EXPORT int kto_check_encoding(int mode);
1035
1054
  DLL_EXPORT int keep_raw_data(int mode);
@@ -65,7 +65,7 @@ vim: ft=c:set si:set fileencoding=utf-8
65
65
 
66
66
  #define RUNTIME_ERROR(error) do{ \
67
67
  snprintf(error_msg,511,"KontoCheck::%s, %s",kto_check_retval2txt_short(error),kto_check_retval2txt(error)); \
68
- rb_raise(rb_eRuntimeError,error_msg); \
68
+ rb_raise(rb_eRuntimeError,"%s",error_msg); \
69
69
  }while(0)
70
70
 
71
71
  // Defining a space for information and references about the module to be stored internally
@@ -137,7 +137,7 @@ static void get_params_file(int argc,VALUE* argv,char *arg1s,int *arg1i,int *arg
137
137
  break;
138
138
  }
139
139
  /* es muß genau ein Integer und ein String vorkommen: die Summe ist dann 3 */
140
- if(typ1+typ2!=3)rb_raise(rb_eTypeError,"wrong type for filename or init level");
140
+ if(typ1+typ2!=3)rb_raise(rb_eTypeError,"%s","wrong type for filename or init level");
141
141
 
142
142
  if(typ1==1){ /* Argumente: Level, Dateiname; Level setzen und die Argumente tauschen */
143
143
  *arg1i=NUM2INT(v1_rb);
@@ -177,7 +177,7 @@ static void get_params_file(int argc,VALUE* argv,char *arg1s,int *arg1i,int *arg
177
177
  *(arg1s+len)=0;
178
178
  }
179
179
  else
180
- rb_raise(rb_eTypeError,"wrong type for filename");
180
+ rb_raise(rb_eTypeError,"%s","wrong type for filename");
181
181
  }
182
182
 
183
183
  /**
@@ -335,11 +335,6 @@ static void get_params(int argc,VALUE* argv,char *arg1s,char *arg2s,char *arg3s,
335
335
  rb_scan_args(argc,argv,"13",&arg1_rb,&arg2_rb,&arg3_rb,&arg4_rb);
336
336
  maxlen=128;
337
337
  break;
338
- case 8: /* ein notwendiger Parameter (für bic_check) */
339
- rb_scan_args(argc,argv,"10",&arg1_rb);
340
- maxlen=11;
341
- break;
342
-
343
338
 
344
339
  default:
345
340
  break;
@@ -366,9 +361,9 @@ static void get_params(int argc,VALUE* argv,char *arg1s,char *arg2s,char *arg3s,
366
361
  break;
367
362
  default:
368
363
  if(!arg_mode)
369
- rb_raise(rb_eTypeError,"Unable to convert given blz.");
364
+ rb_raise(rb_eTypeError,"%s","Unable to convert given blz.");
370
365
  else
371
- rb_raise(rb_eTypeError,"Unable to convert given value.");
366
+ rb_raise(rb_eTypeError,"%s","Unable to convert given value.");
372
367
  break;
373
368
  }
374
369
  if(arg_mode==2 || arg_mode==5)switch(TYPE(arg2_rb)){ /* für konto_check() und iban_gen(): kto holen */
@@ -383,7 +378,7 @@ static void get_params(int argc,VALUE* argv,char *arg1s,char *arg2s,char *arg3s,
383
378
  snprintf(arg2s,16,"%010.0f",NUM2DBL(arg2_rb));
384
379
  break;
385
380
  default:
386
- rb_raise(rb_eTypeError,"Unable to convert given kto.");
381
+ rb_raise(rb_eTypeError,"%s","Unable to convert given kto.");
387
382
  break;
388
383
  }
389
384
  if(arg_mode==5){ /* für konto_check_pz(): BLZ (optional) holen */
@@ -402,7 +397,7 @@ static void get_params(int argc,VALUE* argv,char *arg1s,char *arg2s,char *arg3s,
402
397
  snprintf(arg3s,16,"%5.0f",NUM2DBL(arg3_rb));
403
398
  break;
404
399
  default:
405
- rb_raise(rb_eTypeError,"Unable to convert given blz.");
400
+ rb_raise(rb_eTypeError,"%s","Unable to convert given blz.");
406
401
  break;
407
402
  }
408
403
  }
@@ -424,7 +419,7 @@ static void get_params(int argc,VALUE* argv,char *arg1s,char *arg2s,char *arg3s,
424
419
  if(tmp>=0)uniq=tmp;
425
420
  break;
426
421
  default:
427
- rb_raise(rb_eTypeError,"Unable to convert given variable to integer or string");
422
+ rb_raise(rb_eTypeError,"%s","Unable to convert given variable to integer or string");
428
423
  break;
429
424
  }
430
425
 
@@ -448,7 +443,7 @@ static void get_params(int argc,VALUE* argv,char *arg1s,char *arg2s,char *arg3s,
448
443
  }
449
444
  break;
450
445
  default:
451
- rb_raise(rb_eTypeError,"Unable to convert given variable to integer or string");
446
+ rb_raise(rb_eTypeError,"%s","Unable to convert given variable to integer or string");
452
447
  break;
453
448
  }
454
449
 
@@ -467,7 +462,7 @@ static void get_params(int argc,VALUE* argv,char *arg1s,char *arg2s,char *arg3s,
467
462
  }
468
463
  break;
469
464
  default:
470
- rb_raise(rb_eTypeError,"Unable to convert given variable to integer or string");
465
+ rb_raise(rb_eTypeError,"%s","Unable to convert given variable to integer or string");
471
466
  break;
472
467
  }
473
468
  if(uniq>0)
@@ -565,7 +560,7 @@ static VALUE konto_check(int argc,VALUE* argv,VALUE self)
565
560
 
566
561
  get_params(argc,argv,blz,kto,NULL,NULL,2);
567
562
  if((*blz=='0' || strlen(blz)!=8) && lut_blz(kto+2,0)==OK) /* BLZ/Kto vertauscht, altes Interface */
568
- rb_raise(rb_eRuntimeError, "It seems that you use the old interface of konto_check?\n"
563
+ rb_raise(rb_eRuntimeError,"%s","It seems that you use the old interface of konto_check?\n"
569
564
  "Please check the order of function arguments for konto_test(); should be (blz,kto)");
570
565
  if((retval=kto_check_blz(blz,kto))==LUT2_NOT_INITIALIZED || retval==MISSING_PARAMETER)RUNTIME_ERROR(retval);
571
566
  return INT2FIX(retval);
@@ -599,7 +594,7 @@ static VALUE konto_check(int argc,VALUE* argv,VALUE self)
599
594
  * * -127 IBAN_AMBIGUOUS_KTO "Die Kontonummer ist nicht eindeutig (es gibt mehrere Möglichkeiten)"
600
595
  * * -125 IBAN_RULE_UNKNOWN "Die IBAN-Regel ist nicht bekannt"
601
596
  * * -124 NO_IBAN_CALCULATION "Für die Bankverbindung ist keine IBAN-Berechnung erlaubt"
602
- * * -112 KTO_CHECK_UNSUPPORTED_COMPRESSION "die notwendige Kompressions-Bibliothek wurden beim Kompilieren nicht eingebunden"
597
+ * * -112 KTO_CHECK_UNSUPPORTED_COMPRESSION "die notwendige Kompressions-Bibliothek wurde beim Kompilieren nicht eingebunden"
603
598
  * * -77 BAV_FALSE "BAV denkt, das Konto ist falsch (konto_check hält es für richtig)"
604
599
  * * -69 MISSING_PARAMETER "Für die aufgerufene Funktion fehlt ein notwendiger Parameter"
605
600
  * * -64 INIT_FATAL_ERROR "Initialisierung fehlgeschlagen (init_wait geblockt)"
@@ -682,7 +677,7 @@ static VALUE konto_check_regel(int argc,VALUE* argv,VALUE self)
682
677
  * * -127 IBAN_AMBIGUOUS_KTO "Die Kontonummer ist nicht eindeutig (es gibt mehrere Möglichkeiten)"
683
678
  * * -125 IBAN_RULE_UNKNOWN "Die IBAN-Regel ist nicht bekannt"
684
679
  * * -124 NO_IBAN_CALCULATION "Für die Bankverbindung ist keine IBAN-Berechnung erlaubt"
685
- * * -112 KTO_CHECK_UNSUPPORTED_COMPRESSION "die notwendige Kompressions-Bibliothek wurden beim Kompilieren nicht eingebunden"
680
+ * * -112 KTO_CHECK_UNSUPPORTED_COMPRESSION "die notwendige Kompressions-Bibliothek wurde beim Kompilieren nicht eingebunden"
686
681
  * * -77 BAV_FALSE "BAV denkt, das Konto ist falsch (konto_check hält es für richtig)"
687
682
  * * -69 MISSING_PARAMETER "Für die aufgerufene Funktion fehlt ein notwendiger Parameter"
688
683
  * * -64 INIT_FATAL_ERROR "Initialisierung fehlgeschlagen (init_wait geblockt)"
@@ -776,7 +771,7 @@ static VALUE lut_blocks_rb(int argc,VALUE* argv,VALUE self)
776
771
  break;
777
772
  default:
778
773
  mode=1;
779
- rb_raise(rb_eTypeError,"lut_blocks() requires an int parameter");
774
+ rb_raise(rb_eTypeError,"%s","lut_blocks() requires an int parameter");
780
775
  break;
781
776
  }
782
777
  }
@@ -881,7 +876,7 @@ static VALUE lut_blocks1_rb(int argc,VALUE* argv,VALUE self)
881
876
  * aufgetretene Fehler gibt.
882
877
  *
883
878
  * ====Mögliche Statuscodes:
884
- * * -112 (KTO_CHECK_UNSUPPORTED_COMPRESSION) "die notwendige Kompressions-Bibliothek wurden beim Kompilieren nicht eingebunden"
879
+ * * -112 (KTO_CHECK_UNSUPPORTED_COMPRESSION) "die notwendige Kompressions-Bibliothek wurde beim Kompilieren nicht eingebunden"
885
880
  * * -64 (INIT_FATAL_ERROR) "Initialisierung fehlgeschlagen (init_wait geblockt)"
886
881
  * * -63 (INCREMENTAL_INIT_NEEDS_INFO) "Ein inkrementelles Initialisieren benötigt einen Info-Block in der LUT-Datei"
887
882
  * * -62 (INCREMENTAL_INIT_FROM_DIFFERENT_FILE) "Ein inkrementelles Initialisieren mit einer anderen LUT-Datei ist nicht möglich"
@@ -1000,13 +995,13 @@ static VALUE free_rb(VALUE self)
1000
995
  * 9. BLZ,PZ,NAME_NAME_KURZ,PLZ,ORT,BIC,NACHFOLGE_BLZ,
1001
996
  * AENDERUNG,LOESCHUNG,PAN,NR
1002
997
  * * filialen: (0 oder 1) Flag, ob nur die Daten der Hauptstellen (0) oder auch die der Filialen aufgenommen werden sollen
1003
- * * set (0, 1 oder 2): Datensatz-Nummer. Jede LUT-Datei kann zwei Datensätze enthalten. Falls bei der Initialisierung nicht ein bestimmter Datensatz ausgewählt wird, wird derjenige genommen, der (laut Gültigkeitsstring) aktuell gültig ist.
1004
- * * iban_file: Datei der Banken, die einer Selbstberechnung des IBAN nicht zugestimmt haben. Näheres dazu (inklusive Weblink) findet sich bei der Funktion KontoCheckRaw::iban_gen(blz,kto).
998
+ * * set (0, 1 oder 2): Datensatz-Nummer. Jede LUT-Datei kann zwei Datensätze enthalten. Falls bei der Initialisierung nicht ein bestimmter Datensatz ausgewählt wird, wird derjenige genommen, der (laut Gültigkeitsstring) aktuell gültig ist. Bei 0 wird eine neue LUT-Datei generiert, bei 1 oder 2 wird der entsprechende Datensatz angehängt.
999
+ * * iban_blacklist: Datei der Banken, die einer Selbstberechnung des IBAN nicht zugestimmt haben, bzw. von der IBAN-Berechnung ausgeschlossen werden sollen
1005
1000
  *
1006
1001
  * ====Rückgabe:
1007
1002
  *
1008
1003
  * ====Mögliche Statuscodes:
1009
- * * -112 (KTO_CHECK_UNSUPPORTED_COMPRESSION) "die notwendige Kompressions-Bibliothek wurden beim Kompilieren nicht eingebunden"
1004
+ * * -112 (KTO_CHECK_UNSUPPORTED_COMPRESSION) "die notwendige Kompressions-Bibliothek wurde beim Kompilieren nicht eingebunden"
1010
1005
  * * -57 (LUT2_GUELTIGKEIT_SWAPPED) "Im Gültigkeitsdatum sind Anfangs- und Enddatum vertauscht"
1011
1006
  * * -56 (LUT2_INVALID_GUELTIGKEIT) "Das angegebene Gültigkeitsdatum ist ungültig (Soll: JJJJMMTT-JJJJMMTT)"
1012
1007
  * * -32 (LUT2_COMPRESS_ERROR) "Fehler beim Komprimieren eines LUT-Blocks"
@@ -1022,14 +1017,14 @@ static VALUE free_rb(VALUE self)
1022
1017
  */
1023
1018
  static VALUE generate_lutfile_rb(int argc,VALUE* argv,VALUE self)
1024
1019
  {
1025
- char input_name[FILENAME_MAX+1],output_name[FILENAME_MAX+1],iban_file[FILENAME_MAX+1];
1020
+ char input_name[FILENAME_MAX+1],output_name[FILENAME_MAX+1],iban_blacklist[FILENAME_MAX+1];
1026
1021
  char user_info[256],gueltigkeit[20],buffer[16],error_msg[512];
1027
1022
  int retval,felder,filialen,set,len;
1028
1023
  VALUE input_name_rb,output_name_rb,user_info_rb,
1029
- gueltigkeit_rb,felder_rb,filialen_rb,set_rb,iban_file_rb;
1024
+ gueltigkeit_rb,felder_rb,filialen_rb,set_rb,iban_blacklist_rb;
1030
1025
 
1031
1026
  rb_scan_args(argc,argv,"26",&input_name_rb,&output_name_rb,
1032
- &user_info_rb,&gueltigkeit_rb,&felder_rb,&filialen_rb,&set_rb,&iban_file_rb);
1027
+ &user_info_rb,&gueltigkeit_rb,&felder_rb,&filialen_rb,&set_rb,&iban_blacklist_rb);
1033
1028
 
1034
1029
  if(TYPE(input_name_rb)==RUBY_T_STRING){
1035
1030
  if((len=RSTRING_LEN(input_name_rb))>FILENAME_MAX)len=FILENAME_MAX;
@@ -1037,7 +1032,7 @@ static VALUE generate_lutfile_rb(int argc,VALUE* argv,VALUE self)
1037
1032
  *(input_name+len)=0;
1038
1033
  }
1039
1034
  else
1040
- rb_raise(rb_eTypeError,"Unable to convert given input filename.");
1035
+ rb_raise(rb_eTypeError,"%s","Unable to convert given input filename.");
1041
1036
 
1042
1037
  if(TYPE(output_name_rb)==RUBY_T_STRING){
1043
1038
  if((len=RSTRING_LEN(output_name_rb))>FILENAME_MAX)len=FILENAME_MAX;
@@ -1045,7 +1040,7 @@ static VALUE generate_lutfile_rb(int argc,VALUE* argv,VALUE self)
1045
1040
  *(output_name+len)=0;
1046
1041
  }
1047
1042
  else
1048
- rb_raise(rb_eTypeError,"Unable to convert given output filename.");
1043
+ rb_raise(rb_eTypeError,"%s","Unable to convert given output filename.");
1049
1044
 
1050
1045
  if(NIL_P(user_info_rb)){
1051
1046
  *user_info=0;
@@ -1056,7 +1051,7 @@ static VALUE generate_lutfile_rb(int argc,VALUE* argv,VALUE self)
1056
1051
  *(user_info+len)=0;
1057
1052
  }
1058
1053
  else
1059
- rb_raise(rb_eTypeError,"Unable to convert given user_info string.");
1054
+ rb_raise(rb_eTypeError,"%s","Unable to convert given user_info string.");
1060
1055
 
1061
1056
  if(NIL_P(gueltigkeit_rb)){
1062
1057
  *gueltigkeit=0;
@@ -1067,7 +1062,7 @@ static VALUE generate_lutfile_rb(int argc,VALUE* argv,VALUE self)
1067
1062
  *(gueltigkeit+len)=0;
1068
1063
  }
1069
1064
  else
1070
- rb_raise(rb_eTypeError,"Unable to convert given gueltigkeit string.");
1065
+ rb_raise(rb_eTypeError,"%s","Unable to convert given gueltigkeit string.");
1071
1066
 
1072
1067
  if(NIL_P(felder_rb))
1073
1068
  felder=DEFAULT_LUT_FIELDS_NUM;
@@ -1102,20 +1097,20 @@ static VALUE generate_lutfile_rb(int argc,VALUE* argv,VALUE self)
1102
1097
  else
1103
1098
  set=NUM2INT(set_rb);
1104
1099
 
1105
- if(NIL_P(iban_file_rb)){
1106
- *iban_file=0;
1100
+ if(NIL_P(iban_blacklist_rb)){
1101
+ *iban_blacklist=0;
1107
1102
  }
1108
- else if(TYPE(iban_file_rb)==RUBY_T_STRING){
1109
- if((len=RSTRING_LEN(iban_file_rb))>FILENAME_MAX)len=FILENAME_MAX;
1110
- strncpy(iban_file,RSTRING_PTR(iban_file_rb),len);
1111
- *(iban_file+len)=0;
1103
+ else if(TYPE(iban_blacklist_rb)==RUBY_T_STRING){
1104
+ if((len=RSTRING_LEN(iban_blacklist_rb))>FILENAME_MAX)len=FILENAME_MAX;
1105
+ strncpy(iban_blacklist,RSTRING_PTR(iban_blacklist_rb),len);
1106
+ *(iban_blacklist+len)=0;
1112
1107
  }
1113
1108
  else
1114
- rb_raise(rb_eTypeError,"Unable to convert given iban file name to string.");
1109
+ rb_raise(rb_eTypeError,"%s","Unable to convert given iban file name to string.");
1115
1110
 
1116
1111
  retval=generate_lut2_p(input_name,output_name,user_info,gueltigkeit,felder,filialen,0,0,set);
1117
1112
  if(retval<0)RUNTIME_ERROR(retval);
1118
- if(*iban_file)lut_keine_iban_berechnung(iban_file,output_name,0);
1113
+ if(*iban_blacklist)lut_keine_iban_berechnung(iban_blacklist,output_name,0);
1119
1114
  return INT2FIX(retval);
1120
1115
  }
1121
1116
 
@@ -1152,7 +1147,7 @@ static int enc_mode(int argc,VALUE *argv)
1152
1147
  return NUM2INT(mode_rb);
1153
1148
  break;
1154
1149
  default:
1155
- rb_raise(rb_eTypeError,"Unable to convert given value to int");
1150
+ rb_raise(rb_eTypeError,"%s","Unable to convert given value to int");
1156
1151
  break;
1157
1152
  }
1158
1153
  }
@@ -1337,7 +1332,7 @@ static VALUE keep_raw_data_rb(VALUE self, VALUE mode_rb)
1337
1332
  */
1338
1333
  static VALUE retval2txt_rb(VALUE self, VALUE retval)
1339
1334
  {
1340
- return rb_str_new2(kto_check_retval2txt(FIX2INT(retval)));
1335
+ return rb_str_new2(kto_check_retval2txt(FIX2INT(retval)));
1341
1336
  }
1342
1337
 
1343
1338
  /**
@@ -1358,7 +1353,7 @@ static VALUE retval2txt_rb(VALUE self, VALUE retval)
1358
1353
  */
1359
1354
  static VALUE retval2iso_rb(VALUE self, VALUE retval)
1360
1355
  {
1361
- return rb_str_new2(kto_check_retval2iso(FIX2INT(retval)));
1356
+ return rb_str_new2(kto_check_retval2iso(FIX2INT(retval)));
1362
1357
  }
1363
1358
 
1364
1359
  /**
@@ -1379,7 +1374,7 @@ static VALUE retval2iso_rb(VALUE self, VALUE retval)
1379
1374
  */
1380
1375
  static VALUE retval2txt_short_rb(VALUE self, VALUE retval)
1381
1376
  {
1382
- return rb_str_new2(kto_check_retval2txt_short(FIX2INT(retval)));
1377
+ return rb_str_new2(kto_check_retval2txt_short(FIX2INT(retval)));
1383
1378
  }
1384
1379
 
1385
1380
  /**
@@ -1400,7 +1395,7 @@ static VALUE retval2txt_short_rb(VALUE self, VALUE retval)
1400
1395
  */
1401
1396
  static VALUE retval2dos_rb(VALUE self, VALUE retval)
1402
1397
  {
1403
- return rb_str_new2(kto_check_retval2dos(FIX2INT(retval)));
1398
+ return rb_str_new2(kto_check_retval2dos(FIX2INT(retval)));
1404
1399
  }
1405
1400
 
1406
1401
  /**
@@ -1421,7 +1416,7 @@ static VALUE retval2dos_rb(VALUE self, VALUE retval)
1421
1416
  */
1422
1417
  static VALUE retval2html_rb(VALUE self, VALUE retval)
1423
1418
  {
1424
- return rb_str_new2(kto_check_retval2html(FIX2INT(retval)));
1419
+ return rb_str_new2(kto_check_retval2html(FIX2INT(retval)));
1425
1420
  }
1426
1421
 
1427
1422
  /**
@@ -1442,7 +1437,7 @@ static VALUE retval2html_rb(VALUE self, VALUE retval)
1442
1437
  */
1443
1438
  static VALUE retval2utf8_rb(VALUE self, VALUE retval)
1444
1439
  {
1445
- return rb_str_new2(kto_check_retval2utf8(FIX2INT(retval)));
1440
+ return rb_str_new2(kto_check_retval2utf8(FIX2INT(retval)));
1446
1441
  }
1447
1442
 
1448
1443
  /**
@@ -1464,7 +1459,7 @@ static VALUE retval2utf8_rb(VALUE self, VALUE retval)
1464
1459
  * Infostring nil zurückgegeben.
1465
1460
  *
1466
1461
  * ====Mögliche Statuscodes:
1467
- * * -112 (KTO_CHECK_UNSUPPORTED_COMPRESSION) "die notwendige Kompressions-Bibliothek wurden beim Kompilieren nicht eingebunden"
1462
+ * * -112 (KTO_CHECK_UNSUPPORTED_COMPRESSION) "die notwendige Kompressions-Bibliothek wurde beim Kompilieren nicht eingebunden"
1468
1463
  * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
1469
1464
  * * -36 (LUT2_Z_MEM_ERROR) "Memory error in den ZLIB-Routinen"
1470
1465
  * * -35 (LUT2_Z_DATA_ERROR) "Datenfehler im komprimierten LUT-Block"
@@ -1526,7 +1521,7 @@ static VALUE dump_lutfile_rb(int argc,VALUE* argv,VALUE self)
1526
1521
  * * 5 (LUT2_NO_VALID_DATE) "Der Datenblock enthält kein Gültigkeitsdatum"
1527
1522
  *
1528
1523
  * ====Mögliche Werte für den Statuscode retval:
1529
- * * -112 (KTO_CHECK_UNSUPPORTED_COMPRESSION) "die notwendige Kompressions-Bibliothek wurden beim Kompilieren nicht eingebunden"
1524
+ * * -112 (KTO_CHECK_UNSUPPORTED_COMPRESSION) "die notwendige Kompressions-Bibliothek wurde beim Kompilieren nicht eingebunden"
1530
1525
  * * -10 (FILE_READ_ERROR) "kann Datei nicht lesen"
1531
1526
  * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
1532
1527
  * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
@@ -1602,7 +1597,7 @@ static VALUE lut_info_rb(int argc,VALUE* argv,VALUE self)
1602
1597
 
1603
1598
  static VALUE load_bank_data(VALUE self, VALUE path_rb)
1604
1599
  {
1605
- rb_raise(rb_eRuntimeError, "Perhaps you used the old interface of konto_check.\n"
1600
+ rb_raise(rb_eRuntimeError,"%s","Perhaps you used the old interface of konto_check.\n"
1606
1601
  "Use KontoCheck::init() to initialize the library\n"
1607
1602
  "and check the order of function arguments for konto_test(blz,kto)");
1608
1603
  }
@@ -1639,15 +1634,15 @@ static VALUE load_bank_data(VALUE self, VALUE path_rb)
1639
1634
  */
1640
1635
  static VALUE iban2bic_rb(int argc,VALUE* argv,VALUE self)
1641
1636
  {
1642
- char iban[128],error_msg[512],blz[10],kto[16];
1637
+ char iban[128],blz[10],kto[16];
1638
+ // char error_msg[512];
1643
1639
  const char *bic;
1644
1640
  int retval;
1645
1641
 
1646
1642
  get_params(argc,argv,iban,NULL,NULL,NULL,3);
1647
1643
  bic=iban2bic(iban,&retval,blz,kto);
1648
- if(retval<0 && retval!=INVALID_BLZ)RUNTIME_ERROR(retval);
1649
- return rb_ary_new3(4,retval<=0?Qnil:rb_str_new2(bic),INT2FIX(retval),
1650
- retval<=0?Qnil:rb_str_new2(blz),retval<=0?Qnil:rb_str_new2(kto));
1644
+ return rb_ary_new3(4,!*bic?Qnil:rb_str_new2(bic),INT2FIX(retval),
1645
+ !*blz?Qnil:rb_str_new2(blz),!*kto?Qnil:rb_str_new2(kto));
1651
1646
  }
1652
1647
 
1653
1648
  /**
@@ -1721,6 +1716,7 @@ static VALUE iban2bic_rb(int argc,VALUE* argv,VALUE self)
1721
1716
  * * 22 (OK_INVALID_FOR_IBAN) "ok; für IBAN ist (durch eine Regel) allerdings ein anderer BIC definiert"
1722
1717
  * * 24 (OK_KTO_REPLACED_NO_PZ) "ok; die Kontonummer wurde ersetzt, die neue Kontonummer hat keine Prüfziffer"
1723
1718
  * * 25 (OK_UNTERKONTO_ATTACHED) "ok; es wurde ein (weggelassenes) Unterkonto angefügt"
1719
+ *
1724
1720
  */
1725
1721
  static VALUE iban_gen_rb(int argc,VALUE* argv,VALUE self)
1726
1722
  {
@@ -1760,25 +1756,31 @@ static VALUE iban_gen_rb(int argc,VALUE* argv,VALUE self)
1760
1756
  * * ci: der CI, der getestet werden soll
1761
1757
  *
1762
1758
  * ====Mögliche Rückgabewerte für den Test:
1759
+ * * -146 (INVALID_PARAMETER_TYPE) "Falscher Parametertyp für die Funktion"
1763
1760
  * * 0 (FALSE) "falsch"
1764
1761
  * * 1 (OK) "ok"
1765
1762
  *
1766
1763
  */
1767
- static VALUE ci_check_rb(int argc,VALUE* argv,VALUE self)
1764
+ static VALUE ci_check_rb(VALUE self,VALUE ci_v)
1768
1765
  {
1769
- char ci[128];
1766
+ char ci[36];
1770
1767
 
1771
- get_params(argc,argv,ci,NULL,NULL,NULL,3);
1768
+ if(TYPE(ci_v)!=RUBY_T_STRING)return INT2FIX(INVALID_PARAMETER_TYPE);
1769
+ strncpy(ci,RSTRING_PTR(ci_v),35);
1772
1770
  return INT2FIX(ci_check(ci));
1773
1771
  }
1774
1772
 
1775
1773
  /**
1776
1774
  * ===KontoCheckRaw::bic_check( bic)
1777
1775
  * =====KontoCheck::bic_check( bic)
1778
- * Diese Funktion testet einen BIC (nur für deutsche Bankverbindungen). Die
1779
- * Rückgabe ist ein Array mit zwei Elementen: im ersten (retval) wird das
1780
- * Testergebnis für die zurückgegeben, im zweiten die Änzahl Banken, die diesen
1781
- * BIC benutzen (interessant bei 8stelligen BICs)
1776
+ * Diese Funktion testet die Existenz eines (deutschen) BIC. Die Rückgabe ist
1777
+ * ein Array mit zwei Elementen: im ersten (retval) wird das Testergebnis für
1778
+ * die zurückgegeben, im zweiten die Änzahl Banken, die diesen BIC benutzen.
1779
+ * Der BIC muß mit genau 8 oder 11 Stellen angegeben werden. Intern wird dabei
1780
+ * die Funktion lut_suche_bic() verwendet.
1781
+ *
1782
+ * Die Funktion arbeitet nur für deutsche Banken, da für andere keine Infos
1783
+ * vorliegen.
1782
1784
  *
1783
1785
  * ====Aufruf:
1784
1786
  * ret=KontoCheckRaw::bic_check( bic)
@@ -1792,17 +1794,21 @@ static VALUE ci_check_rb(int argc,VALUE* argv,VALUE self)
1792
1794
  * * das zweite Element enthält die Anzahl Banken, die diesen BIC benutzen
1793
1795
  *
1794
1796
  * ====Mögliche Rückgabewerte:
1795
- * * -145 (BIC_ONLY_GERMAN) "Es werden nur deutsche BICs unterstützt";
1797
+ * * -146 (INVALID_PARAMETER_TYPE) "Falscher Parametertyp für die Funktion"
1798
+ * * -145 (BIC_ONLY_GERMAN) "Es werden nur deutsche BICs unterstützt"
1796
1799
  * * -144 (INVALID_BIC_LENGTH) "Die Länge des BIC muß genau 8 oder 11 Zeichen sein"
1800
+ * * -74 (NO_GERMAN_BIC) "Ein Konto kann kann nur für deutsche Banken geprüft werden"
1797
1801
  * * 0 (FALSE) "falsch"
1798
1802
  * * 1 (OK) "ok"
1803
+ *
1799
1804
  */
1800
- static VALUE bic_check_rb(int argc,VALUE* argv,VALUE self)
1805
+ static VALUE bic_check_rb(VALUE self,VALUE bic_v)
1801
1806
  {
1802
1807
  char bic[12];
1803
1808
  int retval,cnt;
1804
1809
 
1805
- get_params(argc,argv,bic,NULL,NULL,NULL,8);
1810
+ if(TYPE(bic_v)!=RUBY_T_STRING)return INT2FIX(INVALID_PARAMETER_TYPE);
1811
+ strncpy(bic,RSTRING_PTR(bic_v),11);
1806
1812
  retval=bic_check(bic,&cnt);
1807
1813
  return rb_ary_new3(2,INT2FIX(retval),INT2FIX(cnt));
1808
1814
  }
@@ -1947,11 +1953,11 @@ static VALUE ipi_check_rb(int argc,VALUE* argv,VALUE self)
1947
1953
  *
1948
1954
  * Mögliche Rückgabewerte sind:
1949
1955
  *
1950
- * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
1951
- * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
1952
- * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
1953
- * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
1954
- * 1 (OK) "ok"
1956
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
1957
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
1958
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
1959
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
1960
+ * * 1 (OK) "ok"
1955
1961
  */
1956
1962
  static VALUE bank_valid(int argc,VALUE* argv,VALUE self)
1957
1963
  {
@@ -1975,12 +1981,13 @@ static VALUE bank_valid(int argc,VALUE* argv,VALUE self)
1975
1981
  *
1976
1982
  * Mögliche Statuswerte sind:
1977
1983
  *
1978
- * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
1979
- * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
1980
- * -52 (LUT2_FILIALEN_NOT_INITIALIZED) "Das Feld Filialen wurde nicht initialisiert"
1981
- * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
1982
- * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
1983
- * 1 (OK) "ok"
1984
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
1985
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
1986
+ * * -52 (LUT2_FILIALEN_NOT_INITIALIZED) "Das Feld Filialen wurde nicht initialisiert"
1987
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
1988
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
1989
+ * * 1 (OK) "ok"
1990
+ *
1984
1991
  */
1985
1992
 
1986
1993
  static VALUE bank_filialen(int argc,VALUE* argv,VALUE self)
@@ -2000,28 +2007,28 @@ static VALUE bank_filialen(int argc,VALUE* argv,VALUE self)
2000
2007
  *
2001
2008
  * Dies ist eine Mammutfunktion, die alle vorhandenen Informationen über eine
2002
2009
  * Bank zurückliefert. Das Ergebnis ist ein Array mit den folgenden Komponenten:
2003
- * 0: Statuscode
2004
- * 1: Anzahl Filialen
2005
- * 2: Name
2006
- * 3: Kurzname
2007
- * 4: PLZ
2008
- * 5: Ort
2009
- * 6: PAN
2010
- * 7: BIC
2011
- * 8: Prüfziffer
2012
- * 9: Laufende Nr.
2013
- * 10: Änderungs-Flag
2014
- * 11: Löeschung-Flag
2015
- * 12: Nachfolge-BLZ
2010
+ * * 0: Statuscode
2011
+ * * 1: Anzahl Filialen
2012
+ * * 2: Name
2013
+ * * 3: Kurzname
2014
+ * * 4: PLZ
2015
+ * * 5: Ort
2016
+ * * 6: PAN
2017
+ * * 7: BIC
2018
+ * * 8: Prüfziffer
2019
+ * * 9: Laufende Nr.
2020
+ * * 10: Änderungs-Flag
2021
+ * * 11: Löeschung-Flag
2022
+ * * 12: Nachfolge-BLZ
2016
2023
  *
2017
2024
  * Der Statuscode (Element 0) kann folgende Werte annehmen:
2018
2025
  *
2019
- * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2020
- * -38 (LUT2_PARTIAL_OK) "es wurden nicht alle Blocks geladen"
2021
- * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2022
- * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2023
- * 1 (OK) "ok"
2024
- *
2026
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2027
+ * * -38 (LUT2_PARTIAL_OK) "es wurden nicht alle Blocks geladen"
2028
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2029
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2030
+ * * 1 (OK) "ok"
2031
+ * *
2025
2032
  * Anmerkung: Falls der Statuscode LUT2_PARTIAL_OK ist, wurden bei der
2026
2033
  * Initialisierung nicht alle Blocks geladen (oder es sind nicht alle verfügbar);
2027
2034
  * die entsprechenden Elemente haben dann den Wert nil.
@@ -2076,12 +2083,12 @@ static VALUE bank_alles(int argc,VALUE* argv,VALUE self)
2076
2083
  *
2077
2084
  * Mögliche Statuscodes:
2078
2085
  *
2079
- * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2080
- * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2081
- * -51 (LUT2_NAME_NOT_INITIALIZED) "Das Feld Bankname wurde nicht initialisiert"
2082
- * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2083
- * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2084
- * 1 (OK) "ok"
2086
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2087
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2088
+ * * -51 (LUT2_NAME_NOT_INITIALIZED) "Das Feld Bankname wurde nicht initialisiert"
2089
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2090
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2091
+ * * 1 (OK) "ok"
2085
2092
  */
2086
2093
  static VALUE bank_name(int argc,VALUE* argv,VALUE self)
2087
2094
  {
@@ -2105,12 +2112,12 @@ static VALUE bank_name(int argc,VALUE* argv,VALUE self)
2105
2112
  *
2106
2113
  * Mögliche Statuscodes:
2107
2114
  *
2108
- * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2109
- * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2110
- * -48 (LUT2_NAME_KURZ_NOT_INITIALIZED) "Das Feld Kurzname wurde nicht initialisiert"
2111
- * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2112
- * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2113
- * 1 (OK) "ok"
2115
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2116
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2117
+ * * -48 (LUT2_NAME_KURZ_NOT_INITIALIZED) "Das Feld Kurzname wurde nicht initialisiert"
2118
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2119
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2120
+ * * 1 (OK) "ok"
2114
2121
  */
2115
2122
  static VALUE bank_name_kurz(int argc,VALUE* argv,VALUE self)
2116
2123
  {
@@ -2136,12 +2143,12 @@ static VALUE bank_name_kurz(int argc,VALUE* argv,VALUE self)
2136
2143
  *
2137
2144
  * Mögliche Statuscodes:
2138
2145
  *
2139
- * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2140
- * -49 (LUT2_ORT_NOT_INITIALIZED) "Das Feld Ort wurde nicht initialisiert"
2141
- * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2142
- * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2143
- * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2144
- * 1 (OK) "ok"
2146
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2147
+ * * -49 (LUT2_ORT_NOT_INITIALIZED) "Das Feld Ort wurde nicht initialisiert"
2148
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2149
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2150
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2151
+ * * 1 (OK) "ok"
2145
2152
  */
2146
2153
  static VALUE bank_ort(int argc,VALUE* argv,VALUE self)
2147
2154
  {
@@ -2166,12 +2173,12 @@ static VALUE bank_ort(int argc,VALUE* argv,VALUE self)
2166
2173
  *
2167
2174
  * Mögliche Statuscodes:
2168
2175
  *
2169
- * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2170
- * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2171
- * -50 (LUT2_PLZ_NOT_INITIALIZED) "Das Feld PLZ wurde nicht initialisiert"
2172
- * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2173
- * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2174
- * 1 (OK) "ok"
2176
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2177
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2178
+ * * -50 (LUT2_PLZ_NOT_INITIALIZED) "Das Feld PLZ wurde nicht initialisiert"
2179
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2180
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2181
+ * * 1 (OK) "ok"
2175
2182
  */
2176
2183
  static VALUE bank_plz(int argc,VALUE* argv,VALUE self)
2177
2184
  {
@@ -2196,12 +2203,12 @@ static VALUE bank_plz(int argc,VALUE* argv,VALUE self)
2196
2203
  *
2197
2204
  * Mögliche Statuscodes:
2198
2205
  *
2199
- * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2200
- * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2201
- * -45 (LUT2_PZ_NOT_INITIALIZED) "Das Feld Prüfziffer wurde nicht initialisiert"
2202
- * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2203
- * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2204
- * 1 (OK) "ok"
2206
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2207
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2208
+ * * -45 (LUT2_PZ_NOT_INITIALIZED) "Das Feld Prüfziffer wurde nicht initialisiert"
2209
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2210
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2211
+ * * 1 (OK) "ok"
2205
2212
  */
2206
2213
  static VALUE bank_pz(int argc,VALUE* argv,VALUE self)
2207
2214
  {
@@ -2225,12 +2232,12 @@ static VALUE bank_pz(int argc,VALUE* argv,VALUE self)
2225
2232
  *
2226
2233
  * Mögliche Statuscodes:
2227
2234
  *
2228
- * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2229
- * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2230
- * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2231
- * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2232
- * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2233
- * 1 (OK) "ok"
2235
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2236
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2237
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2238
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2239
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2240
+ * * 1 (OK) "ok"
2234
2241
  */
2235
2242
  static VALUE bank_bic(int argc,VALUE* argv,VALUE self)
2236
2243
  {
@@ -2256,12 +2263,12 @@ static VALUE bank_bic(int argc,VALUE* argv,VALUE self)
2256
2263
  *
2257
2264
  * Mögliche Statuscodes:
2258
2265
  *
2259
- * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2260
- * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2261
- * -43 (LUT2_AENDERUNG_NOT_INITIALIZED) "Das Feld Änderung wurde nicht initialisiert"
2262
- * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2263
- * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2264
- * 1 (OK) "ok"
2266
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2267
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2268
+ * * -43 (LUT2_AENDERUNG_NOT_INITIALIZED) "Das Feld Änderung wurde nicht initialisiert"
2269
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2270
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2271
+ * * 1 (OK) "ok"
2265
2272
  */
2266
2273
  static VALUE bank_aenderung(int argc,VALUE* argv,VALUE self)
2267
2274
  {
@@ -2286,12 +2293,12 @@ static VALUE bank_aenderung(int argc,VALUE* argv,VALUE self)
2286
2293
  *
2287
2294
  * Mögliche Statuscodes:
2288
2295
  *
2289
- * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2290
- * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2291
- * -42 (LUT2_LOESCHUNG_NOT_INITIALIZED) "Das Feld Löschung wurde nicht initialisiert"
2292
- * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2293
- * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2294
- * 1 (OK) "ok"
2296
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2297
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2298
+ * * -42 (LUT2_LOESCHUNG_NOT_INITIALIZED) "Das Feld Löschung wurde nicht initialisiert"
2299
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2300
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2301
+ * * 1 (OK) "ok"
2295
2302
  */
2296
2303
  static VALUE bank_loeschung(int argc,VALUE* argv,VALUE self)
2297
2304
  {
@@ -2315,12 +2322,12 @@ static VALUE bank_loeschung(int argc,VALUE* argv,VALUE self)
2315
2322
  *
2316
2323
  * Mögliche Statuscodes:
2317
2324
  *
2318
- * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2319
- * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2320
- * -41 (LUT2_NACHFOLGE_BLZ_NOT_INITIALIZED) "Das Feld Nachfolge-BLZ wurde nicht initialisiert"
2321
- * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2322
- * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2323
- * 1 (OK) "ok"
2325
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2326
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2327
+ * * -41 (LUT2_NACHFOLGE_BLZ_NOT_INITIALIZED) "Das Feld Nachfolge-BLZ wurde nicht initialisiert"
2328
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2329
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2330
+ * * 1 (OK) "ok"
2324
2331
  */
2325
2332
  static VALUE bank_nachfolge_blz(int argc,VALUE* argv,VALUE self)
2326
2333
  {
@@ -2343,12 +2350,12 @@ static VALUE bank_nachfolge_blz(int argc,VALUE* argv,VALUE self)
2343
2350
  *
2344
2351
  * Mögliche Statuscodes:
2345
2352
  *
2346
- * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2347
- * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2348
- * -47 (LUT2_PAN_NOT_INITIALIZED) "Das Feld PAN wurde nicht initialisiert"
2349
- * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2350
- * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2351
- * 1 (OK) "ok"
2353
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2354
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2355
+ * * -47 (LUT2_PAN_NOT_INITIALIZED) "Das Feld PAN wurde nicht initialisiert"
2356
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2357
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2358
+ * * 1 (OK) "ok"
2352
2359
  */
2353
2360
  static VALUE bank_pan(int argc,VALUE* argv,VALUE self)
2354
2361
  {
@@ -2375,12 +2382,12 @@ static VALUE bank_pan(int argc,VALUE* argv,VALUE self)
2375
2382
  *
2376
2383
  * Possible return values (and short description):
2377
2384
  *
2378
- * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2379
- * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2380
- * -44 (LUT2_NR_NOT_INITIALIZED) "Das Feld NR wurde nicht initialisiert"
2381
- * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2382
- * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2383
- * 1 (OK) "ok"
2385
+ * * -55 (LUT2_INDEX_OUT_OF_RANGE) "Der Index für die Filiale ist ungültig"
2386
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2387
+ * * -44 (LUT2_NR_NOT_INITIALIZED) "Das Feld NR wurde nicht initialisiert"
2388
+ * * -5 (INVALID_BLZ_LENGTH) "die Bankleitzahl ist nicht achtstellig"
2389
+ * * -4 (INVALID_BLZ) "die Bankleitzahl ist ungültig"
2390
+ * * 1 (OK) "ok"
2384
2391
  */
2385
2392
  static VALUE bank_nr(int argc,VALUE* argv,VALUE self)
2386
2393
  {
@@ -2550,12 +2557,12 @@ static VALUE bank_suche_int(int argc,VALUE* argv,VALUE self,int (*suchfkt_s)(cha
2550
2557
  *
2551
2558
  * Mögliche Statuscodes:
2552
2559
  *
2553
- * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2554
- * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2555
- * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2556
- * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2557
- * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2558
- * 1 (OK) "ok"
2560
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2561
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2562
+ * * -46 (LUT2_BIC_NOT_INITIALIZED) "Das Feld BIC wurde nicht initialisiert"
2563
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2564
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2565
+ * * 1 (OK) "ok"
2559
2566
  */
2560
2567
  static VALUE bank_suche_bic(int argc,VALUE* argv,VALUE self)
2561
2568
  {
@@ -2577,12 +2584,12 @@ static VALUE bank_suche_bic(int argc,VALUE* argv,VALUE self)
2577
2584
  *
2578
2585
  * Mögliche Statuscodes:
2579
2586
  *
2580
- * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2581
- * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2582
- * -51 (LUT2_NAME_NOT_INITIALIZED) "Das Feld Bankname wurde nicht initialisiert"
2583
- * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2584
- * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2585
- * 1 (OK) "ok"
2587
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2588
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2589
+ * * -51 (LUT2_NAME_NOT_INITIALIZED) "Das Feld Bankname wurde nicht initialisiert"
2590
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2591
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2592
+ * * 1 (OK) "ok"
2586
2593
  */
2587
2594
  static VALUE bank_suche_namen(int argc,VALUE* argv,VALUE self)
2588
2595
  {
@@ -2604,12 +2611,12 @@ static VALUE bank_suche_namen(int argc,VALUE* argv,VALUE self)
2604
2611
  *
2605
2612
  * Mögliche Statuscodes:
2606
2613
  *
2607
- * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2608
- * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2609
- * -48 (LUT2_NAME_KURZ_NOT_INITIALIZED) "Das Feld Kurzname wurde nicht initialisiert"
2610
- * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2611
- * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2612
- * 1 (OK) "ok"
2614
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2615
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2616
+ * * -48 (LUT2_NAME_KURZ_NOT_INITIALIZED) "Das Feld Kurzname wurde nicht initialisiert"
2617
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2618
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2619
+ * * 1 (OK) "ok"
2613
2620
  */
2614
2621
  static VALUE bank_suche_namen_kurz(int argc,VALUE* argv,VALUE self)
2615
2622
  {
@@ -2632,12 +2639,12 @@ static VALUE bank_suche_namen_kurz(int argc,VALUE* argv,VALUE self)
2632
2639
  *
2633
2640
  * Mögliche Statuscodes:
2634
2641
  *
2635
- * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2636
- * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2637
- * -50 (LUT2_PLZ_NOT_INITIALIZED) "Das Feld PLZ wurde nicht initialisiert"
2638
- * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2639
- * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2640
- * 1 (OK) "ok"
2642
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2643
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2644
+ * * -50 (LUT2_PLZ_NOT_INITIALIZED) "Das Feld PLZ wurde nicht initialisiert"
2645
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2646
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2647
+ * * 1 (OK) "ok"
2641
2648
  */
2642
2649
  static VALUE bank_suche_plz(int argc,VALUE* argv,VALUE self)
2643
2650
  {
@@ -2660,12 +2667,12 @@ static VALUE bank_suche_plz(int argc,VALUE* argv,VALUE self)
2660
2667
  *
2661
2668
  * Mögliche Statuscodes:
2662
2669
  *
2663
- * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2664
- * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2665
- * -45 (LUT2_PZ_NOT_INITIALIZED) "Das Feld Prüfziffer wurde nicht initialisiert"
2666
- * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2667
- * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2668
- * 1 (OK) "ok"
2670
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2671
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2672
+ * * -45 (LUT2_PZ_NOT_INITIALIZED) "Das Feld Prüfziffer wurde nicht initialisiert"
2673
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2674
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2675
+ * * 1 (OK) "ok"
2669
2676
  */
2670
2677
  static VALUE bank_suche_pz(int argc,VALUE* argv,VALUE self)
2671
2678
  {
@@ -2688,12 +2695,12 @@ static VALUE bank_suche_pz(int argc,VALUE* argv,VALUE self)
2688
2695
  *
2689
2696
  * Mögliche Statuscodes:
2690
2697
  *
2691
- * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2692
- * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2693
- * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2694
- * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2695
- * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2696
- * 1 (OK) "ok"
2698
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2699
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2700
+ * * -53 (LUT2_BLZ_NOT_INITIALIZED) "Das Feld BLZ wurde nicht initialisiert"
2701
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2702
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2703
+ * * 1 (OK) "ok"
2697
2704
  */
2698
2705
  static VALUE bank_suche_blz(int argc,VALUE* argv,VALUE self)
2699
2706
  {
@@ -2715,12 +2722,12 @@ static VALUE bank_suche_blz(int argc,VALUE* argv,VALUE self)
2715
2722
  *
2716
2723
  * Mögliche Statuscodes:
2717
2724
  *
2718
- * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2719
- * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2720
- * -49 (LUT2_ORT_NOT_INITIALIZED) "Das Feld Ort wurde nicht initialisiert"
2721
- * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2722
- * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2723
- * 1 (OK) "ok"
2725
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2726
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2727
+ * * -49 (LUT2_ORT_NOT_INITIALIZED) "Das Feld Ort wurde nicht initialisiert"
2728
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2729
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2730
+ * * 1 (OK) "ok"
2724
2731
  */
2725
2732
  static VALUE bank_suche_ort(int argc,VALUE* argv,VALUE self)
2726
2733
  {
@@ -2743,12 +2750,12 @@ static VALUE bank_suche_ort(int argc,VALUE* argv,VALUE self)
2743
2750
  *
2744
2751
  * Mögliche Statuscodes:
2745
2752
  *
2746
- * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2747
- * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2748
- * -45 (LUT2_PZ_NOT_INITIALIZED) "Das Feld Prüfziffer wurde nicht initialisiert"
2749
- * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2750
- * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2751
- * 1 (OK) "ok"
2753
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2754
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2755
+ * * -45 (LUT2_PZ_NOT_INITIALIZED) "Das Feld Prüfziffer wurde nicht initialisiert"
2756
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2757
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2758
+ * * 1 (OK) "ok"
2752
2759
  */
2753
2760
  static VALUE bank_suche_regel(int argc,VALUE* argv,VALUE self)
2754
2761
  {
@@ -2765,21 +2772,21 @@ static VALUE bank_suche_regel(int argc,VALUE* argv,VALUE self)
2765
2772
  * LUT2_VOLLTEXT_SINGLE_WORD_ONLY zurückgegeben. Die Rückgabe ist ein Array mit
2766
2773
  * fünf Elementen:
2767
2774
  *
2768
- * 0. Das erste Element ist ein Array mit den gefundenen Suchworten
2769
- * 1. Das zweite Element ist ein Array mit den Bankleitzahlen, die auf das Suchmuster passen
2770
- * 2. Das dritte Element ist ein Array mit den Zweigstellen-Indizes der gefundenen Bankleitzahlen
2771
- * 3. das vierte Element ist der Statuscode (s.u.)
2772
- * 4. das fünfte Element gibt die Anzahl der gefundenen Banken zurück.
2775
+ * * Das erste Element ist ein Array mit den gefundenen Suchworten
2776
+ * * Das zweite Element ist ein Array mit den Bankleitzahlen, die auf das Suchmuster passen
2777
+ * * Das dritte Element ist ein Array mit den Zweigstellen-Indizes der gefundenen Bankleitzahlen
2778
+ * * das vierte Element ist der Statuscode (s.u.)
2779
+ * * das fünfte Element gibt die Anzahl der gefundenen Banken zurück.
2773
2780
  *
2774
2781
  * Mögliche Statuscodes:
2775
2782
  *
2776
- * -118 (LUT2_VOLLTEXT_SINGLE_WORD_ONLY) "Die Volltextsuche sucht jeweils nur ein einzelnes Wort; benutzen Sie bank_suche_multiple() zur Suche nach mehreren Worten"
2777
- * -114 (LUT2_VOLLTEXT_NOT_INITIALIZED) "Das Feld Volltext wurde nicht initialisiert"
2778
- * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2779
- * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2780
- * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2781
- * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2782
- * 1 (OK) "ok"
2783
+ * * -118 (LUT2_VOLLTEXT_SINGLE_WORD_ONLY) "Die Volltextsuche sucht jeweils nur ein einzelnes Wort; benutzen Sie bank_suche_multiple() zur Suche nach mehreren Worten"
2784
+ * * -114 (LUT2_VOLLTEXT_NOT_INITIALIZED) "Das Feld Volltext wurde nicht initialisiert"
2785
+ * * -78 (KEY_NOT_FOUND) "Die Suche lieferte kein Ergebnis"
2786
+ * * -70 (LUT1_FILE_USED) "Es wurde eine LUT-Datei im Format 1.0/1.1 geladen"
2787
+ * * -40 (LUT2_NOT_INITIALIZED) "die Programmbibliothek wurde noch nicht initialisiert"
2788
+ * * -9 (ERROR_MALLOC) "kann keinen Speicher allokieren"
2789
+ * * 1 (OK) "ok"
2783
2790
  */
2784
2791
  static VALUE bank_suche_volltext(int argc,VALUE* argv,VALUE self)
2785
2792
  {
@@ -2982,11 +2989,11 @@ void Init_konto_check_raw()
2982
2989
  /*
2983
2990
  * This is a C/Ruby library to check the validity of German Bank Account
2984
2991
  * Numbers. All currently defined test methods by Deutsche Bundesbank
2985
- * (March 2013: 00 to E0) are implemented.
2992
+ * (00 to E1) are implemented.
2986
2993
  *
2987
2994
  * <b>ATTENTION:</b> There are a few important changes in the API between
2988
2995
  * version 0.0.2 (version by Peter Horn/Provideal), version 0.0.6 (jeanmartin)
2989
- * and this version:
2996
+ * and this version (V. 5.3 from 2014-03-03):
2990
2997
  *
2991
2998
  * * The function KontoCheck::load_bank_data() is no longer used; it is
2992
2999
  * replaced by KontoCheck::init() and KontoCheck::generate_lutfile().
@@ -3107,6 +3114,7 @@ void Init_konto_check_raw()
3107
3114
  rb_define_module_function(KontoCheck,"retval2utf8",retval2utf8_rb,1);
3108
3115
  rb_define_module_function(KontoCheck,"generate_lutfile",generate_lutfile_rb,-1);
3109
3116
  rb_define_module_function(KontoCheck,"ci_check",ci_check_rb,1);
3117
+ rb_define_module_function(KontoCheck,"bic_check",bic_check_rb,1);
3110
3118
  rb_define_module_function(KontoCheck,"iban_check",iban_check_rb,-1);
3111
3119
  rb_define_module_function(KontoCheck,"iban2bic",iban2bic_rb,-1);
3112
3120
  rb_define_module_function(KontoCheck,"iban_gen",iban_gen_rb,-1);
@@ -3126,11 +3134,15 @@ void Init_konto_check_raw()
3126
3134
  rb_define_module_function(KontoCheck,"load_bank_data",load_bank_data,1);
3127
3135
 
3128
3136
  /* Rückgabewerte der konto_check Bibliothek */
3137
+ /* (-147) Es werden nur deutsche IBANs unterstützt */
3138
+ rb_define_const(KontoCheck,"IBAN_ONLY_GERMAN",INT2FIX(IBAN_ONLY_GERMAN));
3139
+ /* (-146) Falscher Parametertyp für die Funktion */
3140
+ rb_define_const(KontoCheck,"INVALID_PARAMETER_TYPE",INT2FIX(INVALID_PARAMETER_TYPE));
3129
3141
  /* (-145) Es werden nur deutsche BICs unterstützt */
3130
3142
  rb_define_const(KontoCheck,"BIC_ONLY_GERMAN",INT2FIX(BIC_ONLY_GERMAN));
3131
3143
  /* (-144) Die Länge des BIC muß genau 8 oder 11 Zeichen sein */
3132
3144
  rb_define_const(KontoCheck,"INVALID_BIC_LENGTH",INT2FIX(INVALID_BIC_LENGTH));
3133
- /* (-143) Die IBAN-Prüfsumme stimmt, es wurde allerdings eine IBAN-Regel nicht beachtet (BLZ nicht ersetzt, wahrscheinlich falsch) */
3145
+ /* (-143) Die IBAN-Prüfsumme stimmt, die BLZ sollte aber durch eine zentrale BLZ ersetzt werden. Die Richtigkeit der IBAN kann nur mit einer Anfrage bei der Bank ermittelt werden */
3134
3146
  rb_define_const(KontoCheck,"IBAN_CHKSUM_OK_RULE_IGNORED_BLZ",INT2FIX(IBAN_CHKSUM_OK_RULE_IGNORED_BLZ));
3135
3147
  /* (-142) Die IBAN-Prüfsumme stimmt, konto_check wurde jedoch noch nicht initialisiert (Kontoprüfung nicht möglich) */
3136
3148
  rb_define_const(KontoCheck,"IBAN_CHKSUM_OK_KC_NOT_INITIALIZED",INT2FIX(IBAN_CHKSUM_OK_KC_NOT_INITIALIZED));
@@ -3154,7 +3166,7 @@ void Init_konto_check_raw()
3154
3166
  rb_define_const(KontoCheck,"BLZ_MARKED_AS_DELETED",INT2FIX(BLZ_MARKED_AS_DELETED));
3155
3167
  /* (-132) Die IBAN-Prüfsumme stimmt, es gibt allerdings einen Fehler in der eigenen IBAN-Bestimmung (wahrscheinlich falsch) */
3156
3168
  rb_define_const(KontoCheck,"IBAN_CHKSUM_OK_SOMETHING_WRONG",INT2FIX(IBAN_CHKSUM_OK_SOMETHING_WRONG));
3157
- /* (-131) Die IBAN-Prüfsumme stimmt, eine IBAN-Berechnung ist allerdings nicht erlaubt (wahrscheinlich falsch) */
3169
+ /* (-131) Die IBAN-Prüfsumme stimmt. Die Bank gibt IBANs nach nicht veröffentlichten Regeln heraus, die Richtigkeit der IBAN kann nur mit einer Anfrage bei der Bank ermittelt werden */
3158
3170
  rb_define_const(KontoCheck,"IBAN_CHKSUM_OK_NO_IBAN_CALCULATION",INT2FIX(IBAN_CHKSUM_OK_NO_IBAN_CALCULATION));
3159
3171
  /* (-130) Die IBAN-Prüfsumme stimmt, es wurde allerdings eine IBAN-Regel nicht beachtet (wahrscheinlich falsch) */
3160
3172
  rb_define_const(KontoCheck,"IBAN_CHKSUM_OK_RULE_IGNORED",INT2FIX(IBAN_CHKSUM_OK_RULE_IGNORED));
@@ -3184,15 +3196,15 @@ void Init_konto_check_raw()
3184
3196
  rb_define_const(KontoCheck,"LUT2_VOLLTEXT_SINGLE_WORD_ONLY",INT2FIX(LUT2_VOLLTEXT_SINGLE_WORD_ONLY));
3185
3197
  /* (-117) die angegebene Suchresource ist ungültig */
3186
3198
  rb_define_const(KontoCheck,"LUT_SUCHE_INVALID_RSC",INT2FIX(LUT_SUCHE_INVALID_RSC));
3187
- /* (-116) Suche: im Verknüpfungsstring sind nur die Zeichen a-z sowie + und - erlaubt */
3199
+ /* (-116) bei der Suche sind im Verknüpfungsstring nur die Zeichen a-z sowie + und - erlaubt */
3188
3200
  rb_define_const(KontoCheck,"LUT_SUCHE_INVALID_CMD",INT2FIX(LUT_SUCHE_INVALID_CMD));
3189
- /* (-115) Suche: es müssen zwischen 1 und 26 Suchmuster angegeben werden */
3201
+ /* (-115) bei der Suche müssen zwischen 1 und 26 Suchmuster angegeben werden */
3190
3202
  rb_define_const(KontoCheck,"LUT_SUCHE_INVALID_CNT",INT2FIX(LUT_SUCHE_INVALID_CNT));
3191
3203
  /* (-114) Das Feld Volltext wurde nicht initialisiert */
3192
3204
  rb_define_const(KontoCheck,"LUT2_VOLLTEXT_NOT_INITIALIZED",INT2FIX(LUT2_VOLLTEXT_NOT_INITIALIZED));
3193
3205
  /* (-113) das Institut erlaubt keine eigene IBAN-Berechnung */
3194
3206
  rb_define_const(KontoCheck,"NO_OWN_IBAN_CALCULATION",INT2FIX(NO_OWN_IBAN_CALCULATION));
3195
- /* (-112) die notwendige Kompressions-Bibliothek wurden beim Kompilieren nicht eingebunden */
3207
+ /* (-112) die notwendige Kompressions-Bibliothek wurde beim Kompilieren nicht eingebunden */
3196
3208
  rb_define_const(KontoCheck,"KTO_CHECK_UNSUPPORTED_COMPRESSION",INT2FIX(KTO_CHECK_UNSUPPORTED_COMPRESSION));
3197
3209
  /* (-111) der angegebene Wert für die Default-Kompression ist ungültig */
3198
3210
  rb_define_const(KontoCheck,"KTO_CHECK_INVALID_COMPRESSION_LIB",INT2FIX(KTO_CHECK_INVALID_COMPRESSION_LIB));
@@ -3304,7 +3316,7 @@ void Init_konto_check_raw()
3304
3316
  rb_define_const(KontoCheck,"LUT2_NO_LONGER_VALID",INT2FIX(LUT2_NO_LONGER_VALID));
3305
3317
  /* (-57) Im Gültigkeitsdatum sind Anfangs- und Enddatum vertauscht */
3306
3318
  rb_define_const(KontoCheck,"LUT2_GUELTIGKEIT_SWAPPED",INT2FIX(LUT2_GUELTIGKEIT_SWAPPED));
3307
- /* (-56) Das angegebene Gültigkeitsdatum ist ungültig (Soll: JJJJMMTT-JJJJMMTT) */
3319
+ /* (-56) Das angegebene Gültigkeitsdatum ist ungültig (Sollformat ist JJJJMMTT-JJJJMMTT) */
3308
3320
  rb_define_const(KontoCheck,"LUT2_INVALID_GUELTIGKEIT",INT2FIX(LUT2_INVALID_GUELTIGKEIT));
3309
3321
  /* (-55) Der Index für die Filiale ist ungültig */
3310
3322
  rb_define_const(KontoCheck,"LUT2_INDEX_OUT_OF_RANGE",INT2FIX(LUT2_INDEX_OUT_OF_RANGE));
@@ -3456,11 +3468,11 @@ void Init_konto_check_raw()
3456
3468
  rb_define_const(KontoCheck,"OK_KTO_REPLACED",INT2FIX(OK_KTO_REPLACED));
3457
3469
  /* (19) ok, die Bankleitzahl wurde allerdings ersetzt */
3458
3470
  rb_define_const(KontoCheck,"OK_BLZ_REPLACED",INT2FIX(OK_BLZ_REPLACED));
3459
- /* (20) ok, die Bankleitzahl und Kontonummer wurde allerdings ersetzt */
3471
+ /* (20) ok, die Bankleitzahl und Kontonummer wurden allerdings ersetzt */
3460
3472
  rb_define_const(KontoCheck,"OK_BLZ_KTO_REPLACED",INT2FIX(OK_BLZ_KTO_REPLACED));
3461
3473
  /* (21) ok, die Bankverbindung ist (ohne Test) als richtig anzusehen */
3462
3474
  rb_define_const(KontoCheck,"OK_IBAN_WITHOUT_KC_TEST",INT2FIX(OK_IBAN_WITHOUT_KC_TEST));
3463
- /* (22) ok, für IBAN ist (durch eine Regel) allerdings ein anderer BIC definiert */
3475
+ /* (22) ok, für die die IBAN ist (durch eine Regel) allerdings ein anderer BIC definiert */
3464
3476
  rb_define_const(KontoCheck,"OK_INVALID_FOR_IBAN",INT2FIX(OK_INVALID_FOR_IBAN));
3465
3477
  /* (23) ok, für die BIC-Bestimmung der ehemaligen Hypo-Bank für IBAN wird i.A. zusätzlich die Kontonummer benötigt */
3466
3478
  rb_define_const(KontoCheck,"OK_HYPO_REQUIRES_KTO",INT2FIX(OK_HYPO_REQUIRES_KTO));
@@ -3468,4 +3480,6 @@ void Init_konto_check_raw()
3468
3480
  rb_define_const(KontoCheck,"OK_KTO_REPLACED_NO_PZ",INT2FIX(OK_KTO_REPLACED_NO_PZ));
3469
3481
  /* (25) ok, es wurde ein (weggelassenes) Unterkonto angefügt */
3470
3482
  rb_define_const(KontoCheck,"OK_UNTERKONTO_ATTACHED",INT2FIX(OK_UNTERKONTO_ATTACHED));
3483
+ /* (26) ok, für den BIC wurde die Zweigstellennummer allerdings durch XXX ersetzt */
3484
+ rb_define_const(KontoCheck,"OK_SHORT_BIC_USED",INT2FIX(OK_SHORT_BIC_USED));
3471
3485
  }