konto_check 5.2.1 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
  }