konto_check 6.13.0 → 6.15.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.
@@ -13,7 +13,7 @@
13
13
  * # wurden aus der aktuellen BLZ-Datei der Deutschen Bundesbank #
14
14
  * # �bernommen. #
15
15
  * # #
16
- * # Copyright (C) 2002-2020 Michael Plugge <m.plugge@hs-mannheim.de> #
16
+ * # Copyright (C) 2002-2023 Michael Plugge <konto_check@yahoo.com> #
17
17
  * # #
18
18
  * # Dieses Programm ist freie Software; Sie d�rfen es unter den #
19
19
  * # Bedingungen der GNU Lesser General Public License, wie von der Free #
@@ -48,11 +48,11 @@
48
48
 
49
49
  /* Definitionen und Includes */
50
50
  #ifndef VERSION
51
- #define VERSION "6.13 (final)"
51
+ #define VERSION "6.15 (final)"
52
52
  #define VERSION_MAJOR 6
53
- #define VERSION_MINOR 13
53
+ #define VERSION_MINOR 15
54
54
  #endif
55
- #define VERSION_DATE "2020-12-16"
55
+ #define VERSION_DATE "2023-04-13"
56
56
 
57
57
  #ifndef INCLUDE_KONTO_CHECK_DE
58
58
  #define INCLUDE_KONTO_CHECK_DE 1
@@ -92,6 +92,7 @@ static lzo_align_t __LZO_MMODEL wrkmem[LZO1X_1_MEM_COMPRESS];
92
92
  #include <fcntl.h>
93
93
  #include <sys/types.h>
94
94
  #include <sys/stat.h>
95
+ #include <unistd.h>
95
96
  #if COMPRESS>0
96
97
  #include <zlib.h>
97
98
  #endif
@@ -206,8 +207,8 @@ static char **sortc_buf;
206
207
  static int *sorti_buf;
207
208
 
208
209
  /* Variablen f�r das SCL-Verzeichnis */
209
- static char *scl_info_block,*scl_bic_block,*scl_name_block,*scl_flags_block,
210
- **scl_bic_array,**scl_name_array,**scl_flags_array,
210
+ static char *scl_info_block,*scl_bic_block,*scl_name_block,*scl_flags_block,*scl_flags_block_orig,
211
+ **scl_bic_array,**scl_name_array,**scl_flags_array,**scl_flags_array_o,
211
212
  scl_gueltigkeit[16],scl_gueltigkeit_iso[16];
212
213
  static int scl_cnt;
213
214
  long scl_ts;
@@ -216,6 +217,7 @@ long scl_ts;
216
217
  DLL_EXPORT const char *(*retval_enc)(int)=NULL;
217
218
 
218
219
  static int convert_encoding(char **data,UINT4 *len);
220
+ static int scl_idx(const char *bic,int *retval,int *raw);
219
221
 
220
222
 
221
223
  /* das Makro RETURN(r) gibt Debug-Meldungen zu Fehler-R�ckgabewerten (zur Fehlersuche) */
@@ -808,7 +810,7 @@ static UINT4 adler32a(UINT4 adler,const char *buf,unsigned int len)
808
810
  * # was einen Sortierlauf vor der Generierung der Tabelle bedingt. #
809
811
  * # Die Funktion wird von qsort() (aus der libc) aufgerufen. #
810
812
  * # #
811
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
813
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
812
814
  * ###########################################################################
813
815
  */
814
816
 
@@ -835,7 +837,7 @@ static int sort_cmp(const void *ap,const void *bp)
835
837
  * # Diese Funktion dient als Vergleichsfunktion f�r zwei Integerwerte f�r #
836
838
  * # die Quicksort-Bibliotheksfunktion. #
837
839
  * # #
838
- * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
840
+ * # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
839
841
  * ###########################################################################
840
842
  */
841
843
 
@@ -888,7 +890,7 @@ DLL_EXPORT int set_default_compression(int mode)
888
890
  * # Funktion create_lutfile_int() (ohne den FILE-Pointer). Die generierte #
889
891
  * # Datei wird nach dem Aufruf geschlossen. #
890
892
  * # #
891
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
893
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
892
894
  * ###########################################################################
893
895
  */
894
896
 
@@ -909,7 +911,7 @@ DLL_EXPORT int create_lutfile(char *filename, char *prolog, int slots)
909
911
  * # des Inhaltsverzeichnisses mit 0-Bytes. Diese Datei kann dann mit der #
910
912
  * # Funktion write_lut_block() (bzw. write_lut_block_int()) gef�llt werden. #
911
913
  * # #
912
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
914
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
913
915
  * ###########################################################################
914
916
  */
915
917
 
@@ -946,7 +948,7 @@ static int create_lutfile_int(char *name, char *prolog, int slots,FILE **lut)
946
948
  * # einige grundlegende Tests gemacht, um sicherzustellen, da� es sich auch #
947
949
  * # um eine LUT2-Datei handelt (hier und sp�ter in write_block_int()). #
948
950
  * # #
949
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
951
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
950
952
  * ###########################################################################
951
953
  */
952
954
 
@@ -983,7 +985,7 @@ DLL_EXPORT int write_lut_block(char *lutname,UINT4 typ,UINT4 len,char *data)
983
985
  * # meldung LUT2_NO_SLOT_FREE zur�ckgegeben, aber nichts geschrieben. #
984
986
  * # Vor dem Schreiben wird der Block mittels der ZLIB komprimiert. #
985
987
  * # #
986
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
988
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
987
989
  * #############################################################################
988
990
  */
989
991
 
@@ -1118,7 +1120,7 @@ static int write_lut_block_int(FILE *lut,UINT4 typ,UINT4 len,char *data)
1118
1120
  * # mehrere Blocks des angegebenen Typs enthalten sind, wird der letze #
1119
1121
  * # zur�ckgeliefert. #
1120
1122
  * # #
1121
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
1123
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
1122
1124
  * ###########################################################################
1123
1125
  */
1124
1126
 
@@ -1140,7 +1142,7 @@ DLL_EXPORT int read_lut_block(char *lutname, UINT4 typ,UINT4 *blocklen,char **da
1140
1142
  * # Blocks eines bestimmeten Typs enthalten sind, auch alte Blocks gelesen #
1141
1143
  * # werden. #
1142
1144
  * # #
1143
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
1145
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
1144
1146
  * ###########################################################################
1145
1147
  */
1146
1148
 
@@ -1161,7 +1163,7 @@ DLL_EXPORT int read_lut_slot(char *lutname,int slot,UINT4 *blocklen,char **data)
1161
1163
  * # lesen; sie wird von vielen internen Funktionen benutzt. Die LUT-Datei #
1162
1164
  * # wird als FILE-Pointer �bergeben und nicht geschlossen. #
1163
1165
  * # #
1164
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
1166
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
1165
1167
  * ###########################################################################
1166
1168
  */
1167
1169
 
@@ -1418,7 +1420,7 @@ static int read_lut_block_int(FILE *lut,int slot,int typ,UINT4 *blocklen,char **
1418
1420
  * # gegeben. Falls eine Variable nicht ben�tigt wird, kann f�r sie auch #
1419
1421
  * # NULL �bergeben werden; die entsprechende Variable wird dann ignoriert. #
1420
1422
  * # #
1421
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
1423
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
1422
1424
  * #############################################################################
1423
1425
  */
1424
1426
 
@@ -1587,7 +1589,7 @@ static int lut_dir(FILE *lut,int id,UINT4 *slot_cnt,UINT4 *typ,UINT4 *len,
1587
1589
  * # dieser Buffer wird dann mittels der Funktion write_lut_block_int() #
1588
1590
  * # komprimiert und in die LUT-Datei geschrieben. #
1589
1591
  * # #
1590
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
1592
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
1591
1593
  * ###########################################################################
1592
1594
  */
1593
1595
 
@@ -2159,7 +2161,7 @@ static int write_lutfile_entry_de(UINT4 typ,int auch_filialen,int bank_cnt,char
2159
2161
  * # generate_lut2(), aber die Funktionalit�t reicht in der Praxis normaler- #
2160
2162
  * # weise gut aus. #
2161
2163
  * # #
2162
- * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
2164
+ * # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
2163
2165
  * ###########################################################################
2164
2166
  */
2165
2167
 
@@ -2211,7 +2213,7 @@ DLL_EXPORT int generate_lut2_p(char *inputname,char *outputname,char *user_info,
2211
2213
  * # f�r einige Pr�fziffermethoden (52, 53, B6) ben�tigt werden (sie sind in #
2212
2214
  * # den Beispielen enthalten, haben aber keine reale Entsprechung). #
2213
2215
  * # #
2214
- * # Copyright (C) 2007, 2013 Michael Plugge <m.plugge@hs-mannheim.de> #
2216
+ * # Copyright (C) 2007, 2013 Michael Plugge <konto_check@yahoo.com> #
2215
2217
  * ###########################################################################
2216
2218
  */
2217
2219
 
@@ -2591,7 +2593,7 @@ fini:
2591
2593
  * # Die Funktion lut_dir_dump_str() allokiert f�r die Ausgabe Speicher; #
2592
2594
  * # dieser mu� von dre aufrufenden Funktion wieder freigegeben werden. #
2593
2595
  * # #
2594
- * # Copyright (C) 2007-2010 Michael Plugge <m.plugge@hs-mannheim.de> #
2596
+ * # Copyright (C) 2007-2010 Michael Plugge <konto_check@yahoo.com> #
2595
2597
  * ###########################################################################
2596
2598
  */
2597
2599
 
@@ -2701,7 +2703,7 @@ DLL_EXPORT int lut_dir_dump_str(char *lutname,char **dptr)
2701
2703
  * # LUT2_NO_VALID_DATE: Der Datenblock enth�lt kein G�ltigkeitsdatum #
2702
2704
  * # LUT2_NOT_INITIALIZED: die library wurde noch nicht initialisiert #
2703
2705
  * # #
2704
- * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
2706
+ * # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
2705
2707
  * ###########################################################################
2706
2708
  */
2707
2709
  DLL_EXPORT int lut_valid(void)
@@ -2773,7 +2775,7 @@ DLL_EXPORT int lut_valid_date(char *lut_name,int *v11,int *v12,int *v21,int *v22
2773
2775
  * # und info2; danach wird der Speicher der von lut_info() allokiert wurde, #
2774
2776
  * # wieder freigegeben. #
2775
2777
  * # #
2776
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
2778
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
2777
2779
  * ###########################################################################
2778
2780
  */
2779
2781
 
@@ -2806,7 +2808,7 @@ DLL_EXPORT int lut_info_b(char *lut_name,char **info1,char **info2,int *valid1,i
2806
2808
  * # mittels der Funktion kc_id2ptr() in einen String umgewandelt, sowie mit #
2807
2809
  * # der Funktion kc_id_free() wieder freigegeben werden kann. #
2808
2810
  * # #
2809
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
2811
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
2810
2812
  * ###########################################################################
2811
2813
  */
2812
2814
 
@@ -2874,7 +2876,7 @@ DLL_EXPORT int lut_info_id(char *lut_name,int *info1,int *info2,int *valid1,int
2874
2876
  * # LUT2_NO_VALID_DATE: Der Datenblock enth�lt kein G�ltigkeitsdatum #
2875
2877
  * # LUT2_BLOCK_NOT_IN_FILE: Die LUT-Datei enth�lt den Infoblock nicht #
2876
2878
  * # #
2877
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
2879
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
2878
2880
  * ###########################################################################
2879
2881
  */
2880
2882
 
@@ -3089,7 +3091,7 @@ DLL_EXPORT int lut_info(char *lut_name,char **info1,char **info2,int *valid1,int
3089
3091
  * # info_p: Variablenpointer f�r R�ckgabe des Info-Strings #
3090
3092
  * # user_info_p: Variablenpointer f�r R�ckgabe des User-Info-Strings #
3091
3093
  * # #
3092
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
3094
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
3093
3095
  * ###########################################################################
3094
3096
  */
3095
3097
 
@@ -3200,7 +3202,7 @@ DLL_EXPORT int get_lut_info2(char *lut_name,int *version_p,char **prolog_p,char
3200
3202
  * # Au�erdem kann die Anzahl Slots ver�ndert (vergr��ert oder verkleinert) #
3201
3203
  * # werden. #
3202
3204
  * # #
3203
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
3205
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
3204
3206
  * ###########################################################################
3205
3207
  */
3206
3208
 
@@ -3247,7 +3249,7 @@ DLL_EXPORT int copy_lutfile(char *old_name,char *new_name,int new_slots)
3247
3249
  * # Sets geladen. Der R�ckgabewert ist daher oft -38 (nicht alle Blocks #
3248
3250
  * # geladen), da die LUT-Datei nicht unbedingt alle Blocks enth�lt :-). #
3249
3251
  * # #
3250
- * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
3252
+ * # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
3251
3253
  * ###########################################################################
3252
3254
  */
3253
3255
 
@@ -3265,7 +3267,7 @@ DLL_EXPORT int kto_check_init2(char *lut_name)
3265
3267
  * # unterschiedlichen Blocks definiert (lut_set_0 ... lut_set_9), die �ber #
3266
3268
  * # einen skalaren Parameter ausgew�hlt werden k�nnen. #
3267
3269
  * # #
3268
- * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
3270
+ * # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
3269
3271
  * ###########################################################################
3270
3272
  */
3271
3273
 
@@ -3305,7 +3307,7 @@ DLL_EXPORT int kto_check_init_p(char *lut_name,int required,int set,int incremen
3305
3307
  * # testen, ob ein bestimmter Block initialisiert wurde, und welcher #
3306
3308
  * # R�ckgabewert dabei auftrat. #
3307
3309
  * # #
3308
- * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
3310
+ * # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
3309
3311
  * ###########################################################################
3310
3312
  */
3311
3313
 
@@ -3327,7 +3329,7 @@ DLL_EXPORT int *lut2_status(void)
3327
3329
  * # Der Parameter id sollte auf einen Speicherbereich von mindestens 33 Byte#
3328
3330
  * # zeigen. Die Datei-ID wird in diesen Speicher geschrieben. #
3329
3331
  * # #
3330
- * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
3332
+ * # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
3331
3333
  * ###########################################################################
3332
3334
  */
3333
3335
 
@@ -3425,7 +3427,7 @@ DLL_EXPORT int get_lut_id(char *lut_name,int set,char *id)
3425
3427
  * # inkrementelle Initialisierung, um noch ben�tigte Blocks nachzuladen. #
3426
3428
  * # Falls schon alle gew�nschten Blocks geladen sind, wird nichts gemacht. #
3427
3429
  * # #
3428
- * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
3430
+ * # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
3429
3431
  * ###########################################################################
3430
3432
  */
3431
3433
 
@@ -3456,7 +3458,7 @@ DLL_EXPORT int lut_init(char *lut_name,int required,int set)
3456
3458
  * # Probleme; daher gibt es noch einige andere Initialisierungsfunktionen #
3457
3459
  * # mit einfacherem Aufrufinterface, wie lut_init() oder kto_check_init_p().#
3458
3460
  * # #
3459
- * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
3461
+ * # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
3460
3462
  * ###########################################################################
3461
3463
  */
3462
3464
  DLL_EXPORT int kto_check_init(char *lut_name,int *required,int **status,int set,int incremental)
@@ -4269,7 +4271,7 @@ DLL_EXPORT int kto_check_init(char *lut_name,int *required,int **status,int set,
4269
4271
  * # LUT2_BLOCKS_MISSING bei einigen Blocks traten Fehler auf #
4270
4272
  * # OK alle Blocks erfolgreich geladen #
4271
4273
  * # #
4272
- * # Copyright (C) 2013 Michael Plugge <m.plugge@hs-mannheim.de> #
4274
+ * # Copyright (C) 2013 Michael Plugge <konto_check@yahoo.com> #
4273
4275
  * ############################################################################
4274
4276
  */
4275
4277
  DLL_EXPORT int lut_blocks(int mode,char **lut_filename,char **lut_blocks_ok,char **lut_blocks_fehler)
@@ -4343,7 +4345,7 @@ DLL_EXPORT int lut_blocks(int mode,char **lut_filename,char **lut_blocks_ok,char
4343
4345
  * # Variablen lut_filename, lut_blocks_ok und lut_blocks_fehler m�ssen immer #
4344
4346
  * # angegeben werden; eine �bergabe von NULL f�hrt zu einer access violation.#
4345
4347
  * # #
4346
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
4348
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
4347
4349
  * ############################################################################
4348
4350
  */
4349
4351
  DLL_EXPORT int lut_blocks_id(int mode,int *lut_filename,int *lut_blocks_ok,int *lut_blocks_fehler)
@@ -4374,7 +4376,7 @@ DLL_EXPORT int lut_blocks_id(int mode,int *lut_filename,int *lut_blocks_ok,int *
4374
4376
  * # benutzt, ist aber auch als Info interessant, falls f�r die LUT-Datei #
4375
4377
  * # die Default-Werte benutzt wurden (Pfad und Dateiname). #
4376
4378
  * # #
4377
- * # Copyright (C) 2011 Michael Plugge <m.plugge@hs-mannheim.de> #
4379
+ * # Copyright (C) 2011 Michael Plugge <konto_check@yahoo.com> #
4378
4380
  * ###########################################################################
4379
4381
  */
4380
4382
 
@@ -4396,7 +4398,7 @@ DLL_EXPORT const char *current_lutfile_name(int *set,int *level,int *retval)
4396
4398
  /* ###########################################################################
4397
4399
  * # lut_index(): Index einer BLZ in den internen Arrays bestimmen #
4398
4400
  * # #
4399
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
4401
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
4400
4402
  * ###########################################################################
4401
4403
  */
4402
4404
 
@@ -4445,7 +4447,7 @@ static int lut_index(char *b)
4445
4447
  * # Diese Funktion ist nicht so optimiert wie lut_index(), #
4446
4448
  * # da sie nicht in zeitkritischen Routinen benutzt wird. #
4447
4449
  * # #
4448
- * # Copyright (C) 2009 Michael Plugge <m.plugge@hs-mannheim.de> #
4450
+ * # Copyright (C) 2009 Michael Plugge <konto_check@yahoo.com> #
4449
4451
  * ###########################################################################
4450
4452
  */
4451
4453
 
@@ -4514,7 +4516,7 @@ static int lut_index_i(int b)
4514
4516
  * # wird. Falls f�r retval NULL �bergeben wird, wird der #
4515
4517
  * # R�ckgabewert verworfen. #
4516
4518
  * # #
4517
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
4519
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
4518
4520
  * ###########################################################################
4519
4521
  */
4520
4522
 
@@ -4525,7 +4527,7 @@ static int lut_index_i(int b)
4525
4527
  * # Diese Funktion testet, ob eine BLZ (und Zweigstelle, falls gew�nscht) #
4526
4528
  * # existiert und g�ltig ist. #
4527
4529
  * # #
4528
- * # Copyright (C) 2010 Michael Plugge <m.plugge@hs-mannheim.de> #
4530
+ * # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
4529
4531
  * ###########################################################################
4530
4532
  */
4531
4533
 
@@ -4556,7 +4558,7 @@ DLL_EXPORT int lut_blz_i(int b,int zweigstelle)
4556
4558
  * # lut_filialen(): Anzahl der Filialen zu einer gegebenen Bankleitzahl #
4557
4559
  * # bestimmen. #
4558
4560
  * # #
4559
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
4561
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
4560
4562
  * ###########################################################################
4561
4563
  */
4562
4564
 
@@ -4584,7 +4586,7 @@ DLL_EXPORT int lut_filialen_i(int b,int *retval)
4584
4586
  /* ###########################################################################
4585
4587
  * # lut_name(): Banknamen (lange Form) bestimmen #
4586
4588
  * # #
4587
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
4589
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
4588
4590
  * ###########################################################################
4589
4591
  */
4590
4592
 
@@ -4619,7 +4621,7 @@ DLL_EXPORT const char *lut_name_i(int b,int zweigstelle,int *retval)
4619
4621
  * # der deutschen Kreditwirtschaft ist die L�nge der Angaben f�r die #
4620
4622
  * # Bezeichnung des Kreditinstituts begrenzt. #
4621
4623
  * # #
4622
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
4624
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
4623
4625
  * ###########################################################################
4624
4626
  */
4625
4627
 
@@ -4647,7 +4649,7 @@ DLL_EXPORT const char *lut_name_kurz_i(int b,int zweigstelle,int *retval)
4647
4649
  /* ###########################################################################
4648
4650
  * # lut_plz(): Postleitzahl bestimmen #
4649
4651
  * # #
4650
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
4652
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
4651
4653
  * ###########################################################################
4652
4654
  */
4653
4655
 
@@ -4675,7 +4677,7 @@ DLL_EXPORT int lut_plz_i(int b,int zweigstelle,int *retval)
4675
4677
  /* ###########################################################################
4676
4678
  * # lut_ort(): Sitz einer Bank bestimmen #
4677
4679
  * # #
4678
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
4680
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
4679
4681
  * ###########################################################################
4680
4682
  */
4681
4683
 
@@ -4715,7 +4717,7 @@ DLL_EXPORT const char *lut_ort_i(int b,int zweigstelle,int *retval)
4715
4717
  * # den Stellen der Deutschen Bundesbank stets die Institutsgruppennummer #
4716
4718
  * # 2 zugewiesen worden. #
4717
4719
  * # #
4718
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
4720
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
4719
4721
  * ###########################################################################
4720
4722
  */
4721
4723
 
@@ -4771,7 +4773,7 @@ DLL_EXPORT int lut_pan_i(int b,int zweigstelle,int *retval)
4771
4773
  * # korrekte Wert l��t sich in diesem Fall durch die Funktion iban_bic_gen()#
4772
4774
  * # ermitteln. #
4773
4775
  * # #
4774
- * # Copyright (C) 2007,2013 Michael Plugge <m.plugge@hs-mannheim.de> #
4776
+ * # Copyright (C) 2007,2013 Michael Plugge <konto_check@yahoo.com> #
4775
4777
  * ###########################################################################
4776
4778
  */
4777
4779
 
@@ -4883,7 +4885,7 @@ DLL_EXPORT const char *lut_bic_hi(int b,int zweigstelle,int *retval)
4883
4885
  * # automatisiert eine eindeutige Nummer vergeben. Eine einmal verwendete #
4884
4886
  * # Nummer wird nicht noch einmal vergeben. #
4885
4887
  * # #
4886
- * # Copyright (C) 2009 Michael Plugge <m.plugge@hs-mannheim.de> #
4888
+ * # Copyright (C) 2009 Michael Plugge <konto_check@yahoo.com> #
4887
4889
  * ###########################################################################
4888
4890
  */
4889
4891
 
@@ -4912,7 +4914,7 @@ DLL_EXPORT int lut_nr_i(int b,int zweigstelle,int *retval)
4912
4914
  * # lut_pz(): Pr�fzifferverfahren f�r eine Bankleitzahl. Das Verfahren wird #
4913
4915
  * # numerisch zur�ckgegeben, also z.B. 108 f�r die Methode A8. #
4914
4916
  * # #
4915
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
4917
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
4916
4918
  * ###########################################################################
4917
4919
  */
4918
4920
 
@@ -4945,7 +4947,7 @@ DLL_EXPORT int lut_pz_i(int b,int zweigstelle,int *retval)
4945
4947
  * # G�ltigkeitstermin der Bankleitzahlendatei im Zahlungsverkehr nicht mehr #
4946
4948
  * # zu verwenden. #
4947
4949
  * # #
4948
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
4950
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
4949
4951
  * ###########################################################################
4950
4952
  */
4951
4953
 
@@ -4985,7 +4987,7 @@ DLL_EXPORT int lut_aenderung_i(int b,int zweigstelle,int *retval)
4985
4987
  * # Das Feld enth�lt das Merkmal 0 (keine Angabe) oder 1 (BLZ im Feld 1 #
4986
4988
  * # ist zur L�schung vorgesehen). Die R�ckgabe erfolgt als ASCII '0' '1'. #
4987
4989
  * # #
4988
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
4990
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
4989
4991
  * ###########################################################################
4990
4992
  */
4991
4993
 
@@ -5018,7 +5020,7 @@ DLL_EXPORT int lut_loeschung_i(int b,int zweigstelle,int *retval)
5018
5020
  * # wurde (lut_loeschung()==1) oder die Bankleitzahl zum aktuellen G�ltig- #
5019
5021
  * # keitstermin gel�scht wird (lut_aenderung()=='D'). #
5020
5022
  * # #
5021
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
5023
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
5022
5024
  * ###########################################################################
5023
5025
  */
5024
5026
 
@@ -5052,7 +5054,7 @@ DLL_EXPORT int lut_nachfolge_blz_i(int b,int zweigstelle,int *retval)
5052
5054
  * # aus einer vierstelligen Nummer und einer zweistelligen Versionszahl; #
5053
5055
  * # sie wird in konto_check als eine sechsstellige Nummer dargestellt. #
5054
5056
  * # #
5055
- * # Copyright (C) 2013 Michael Plugge <m.plugge@hs-mannheim.de> #
5057
+ * # Copyright (C) 2013 Michael Plugge <konto_check@yahoo.com> #
5056
5058
  * ###########################################################################
5057
5059
  */
5058
5060
 
@@ -5087,7 +5089,7 @@ DLL_EXPORT int lut_iban_regel_i(int b,int zweigstelle,int *retval)
5087
5089
  * # Berechnung notwendig sind, schon geladen wurden; falls nicht, werden #
5088
5090
  * # die fehlenden Daten (per inkrementeller Initialisierung) nachgeladen. #
5089
5091
  * # #
5090
- * # Copyright (C) 2013 Michael Plugge <m.plugge@hs-mannheim.de> #
5092
+ * # Copyright (C) 2013 Michael Plugge <konto_check@yahoo.com> #
5091
5093
  * ###########################################################################
5092
5094
  */
5093
5095
 
@@ -5128,7 +5130,7 @@ static int iban_init(void)
5128
5130
  * # Der R�ckgabewert gibt n�here Aufschl�sse �ber die Anwendung der Regeln #
5129
5131
  * # und ob eine IBAN berechnet werden darf. #
5130
5132
  * # #
5131
- * # Copyright (C) 2013 Michael Plugge <m.plugge@hs-mannheim.de> #
5133
+ * # Copyright (C) 2013 Michael Plugge <konto_check@yahoo.com> #
5132
5134
  * ###########################################################################
5133
5135
  */
5134
5136
 
@@ -5232,7 +5234,8 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
5232
5234
  * IBAN-Regel 5 auf S. 14); alle anderen BLZs der Commerzbank
5233
5235
  * bekommen COBADEFFXXX.
5234
5236
  */
5235
- if(blz[3]=='4' && strcasecmp(lut_name(blz,0,NULL),"comdirect bank"))*bicp="COBADEFFXXX";
5237
+ // if(blz[3]=='4' && strcasecmp(lut_name(blz,0,NULL),"comdirect bank"))*bicp="COBADEFFXXX";
5238
+ if(blz[3]=='4' && blz[4]!='1')*bicp="COBADEFFXXX"; /* comdirect Bank */
5236
5239
 
5237
5240
  /* BLZs ohne Pr�fzifferberechnung */
5238
5241
  if(pz_methode==9)return OK_NO_CHK;
@@ -8316,7 +8319,7 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
8316
8319
  * # mit den Indizes der Hauptstellen wird in der letzten Variable zur�ck- #
8317
8320
  * # gegeben (start_idx). #
8318
8321
  * # #
8319
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
8322
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
8320
8323
  * ###########################################################################
8321
8324
  */
8322
8325
 
@@ -8527,7 +8530,7 @@ static int lut_multiple_int(int idx,int *cnt,int **p_blz,char ***p_name,char **
8527
8530
  * # Die Funktion lut_cleanup() gibt allen belegten Speicher frei und setzt #
8528
8531
  * # die entsprechenden Variablen auf NULL. #
8529
8532
  * # #
8530
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
8533
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
8531
8534
  * ###########################################################################
8532
8535
  */
8533
8536
 
@@ -8666,7 +8669,7 @@ DLL_EXPORT int lut_cleanup(void)
8666
8669
  * # Pr�fziffermethoden; das Problem wird mit dem neuen Dateiformat #
8667
8670
  * # noch einmal angegangen. #
8668
8671
  * # #
8669
- * # Copyright (C) 2002-2005 Michael Plugge <m.plugge@hs-mannheim.de> #
8672
+ * # Copyright (C) 2002-2005 Michael Plugge <konto_check@yahoo.com> #
8670
8673
  * ###########################################################################
8671
8674
  */
8672
8675
 
@@ -8688,7 +8691,7 @@ DLL_EXPORT int generate_lut(char *inputname,char *outputname,char *user_info,int
8688
8691
  * # #
8689
8692
  * # Bugs: f�r eine BLZ wird nur eine Pr�fziffermethode unterst�tzt (s.o.). #
8690
8693
  * # #
8691
- * # Copyright (C) 2002-2005 Michael Plugge <m.plugge@hs-mannheim.de> #
8694
+ * # Copyright (C) 2002-2005 Michael Plugge <konto_check@yahoo.com> #
8692
8695
  * ###########################################################################
8693
8696
  */
8694
8697
 
@@ -8806,7 +8809,7 @@ static int read_lut(char *filename,int *cnt_blz)
8806
8809
  * # zur�ckf�hren, was wesentlich schneller ist, als die sonst n�tigen acht #
8807
8810
  * # Multiplikationen mit dem jeweiligen Stellenwert. #
8808
8811
  * # #
8809
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
8812
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
8810
8813
  * ###########################################################################
8811
8814
  */
8812
8815
 
@@ -8950,6 +8953,8 @@ static void init_atoi_table(void)
8950
8953
  lut2_feld_namen[LUT2_2_SCL_NAME]="LUT2_2_SCL_NAME";
8951
8954
  lut2_feld_namen[LUT2_SCL_FLAGS]="LUT2_SCL_FLAGS";
8952
8955
  lut2_feld_namen[LUT2_2_SCL_FLAGS]="LUT2_2_SCL_FLAGS";
8956
+ lut2_feld_namen[LUT2_SCL_FLAGS_ORIG]="LUT2_SCL_FLAGS_ORIG";
8957
+ lut2_feld_namen[LUT2_2_SCL_FLAGS_ORIG]="LUT2_2_SCL_FLAGS_ORIG";
8953
8958
 
8954
8959
  lut_block_idx[1]=0;
8955
8960
  lut_block_idx[2]=0;
@@ -8982,6 +8987,7 @@ static void init_atoi_table(void)
8982
8987
  lut_block_idx[29]=-1;
8983
8988
  lut_block_idx[30]=-1;
8984
8989
  lut_block_idx[31]=-1;
8990
+ lut_block_idx[32]=-1;
8985
8991
 
8986
8992
  lut_block_name1[1]="BLZ";
8987
8993
  lut_block_name1[2]="FILIALEN";
@@ -9014,6 +9020,7 @@ static void init_atoi_table(void)
9014
9020
  lut_block_name1[29]="SCL_BIC";
9015
9021
  lut_block_name1[30]="SCL_NAME";
9016
9022
  lut_block_name1[31]="SCL_FLAGS";
9023
+ lut_block_name1[32]="SCL_FLAGS_ORIG";
9017
9024
  lut_block_name1[101]="BLZ (2)";
9018
9025
  lut_block_name1[102]="FILIALEN (2)";
9019
9026
  lut_block_name1[103]="NAME (2)";
@@ -9045,6 +9052,7 @@ static void init_atoi_table(void)
9045
9052
  lut_block_name1[129]="SCL_BIC (2)";
9046
9053
  lut_block_name1[130]="SCL_NAME (2)";
9047
9054
  lut_block_name1[131]="SCL_FLAGS (2)";
9055
+ lut_block_name1[132]="SCL_FLAGS_ORIG (2)";
9048
9056
 
9049
9057
  lut_block_name2[1]="1. BLZ";
9050
9058
  lut_block_name2[2]="1. Anzahl Fil.";
@@ -9077,6 +9085,7 @@ static void init_atoi_table(void)
9077
9085
  lut_block_name2[29]="1. SCL BIC";
9078
9086
  lut_block_name2[30]="1. SCL Banknamen";
9079
9087
  lut_block_name2[31]="1. SCL Flags";
9088
+ lut_block_name2[32]="1. SCL Flags orig";
9080
9089
  lut_block_name2[101]="2. BLZ";
9081
9090
  lut_block_name2[102]="2. Anzahl Fil.";
9082
9091
  lut_block_name2[103]="2. Name";
@@ -9108,7 +9117,8 @@ static void init_atoi_table(void)
9108
9117
  lut_block_name2[129]="2. SCL BIC";
9109
9118
  lut_block_name2[130]="2. SCL Banknamen";
9110
9119
  lut_block_name2[131]="2. SCL Flags";
9111
- lut_blocklen_max=521;
9120
+ lut_block_name2[132]="2. SCL Flags orig";
9121
+ lut_blocklen_max=544;
9112
9122
  init_status|=1;
9113
9123
  }
9114
9124
 
@@ -9132,7 +9142,7 @@ static void init_atoi_table(void)
9132
9142
  * # retvals: Struktur, um Pr�fziffermethode und Pr�fziffer in einer #
9133
9143
  * # threadfesten Version zur�ckzugeben #
9134
9144
  * # #
9135
- * # Copyright (C) 2002-2009 Michael Plugge <m.plugge@hs-mannheim.de> #
9145
+ * # Copyright (C) 2002-2009 Michael Plugge <konto_check@yahoo.com> #
9136
9146
  * ###########################################################################
9137
9147
  */
9138
9148
 
@@ -20143,7 +20153,7 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
20143
20153
  * # blz: Bankleitzahl (immer 8-stellig) #
20144
20154
  * # kto: Kontonummer #
20145
20155
  * # #
20146
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
20156
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
20147
20157
  * ###########################################################################
20148
20158
  */
20149
20159
 
@@ -20208,7 +20218,7 @@ DLL_EXPORT int kto_check_blz(char *blz,char *kto)
20208
20218
  * # retvals: Struktur, in der die benutzte Pr�fziffermethode und die #
20209
20219
  * # berechnete Pr�fziffer zur�ckgegeben werden #
20210
20220
  * # #
20211
- * # Copyright (C) 2013 Michael Plugge <m.plugge@hs-mannheim.de> #
20221
+ * # Copyright (C) 2013 Michael Plugge <konto_check@yahoo.com> #
20212
20222
  * ###########################################################################
20213
20223
  */
20214
20224
 
@@ -20315,7 +20325,7 @@ DLL_EXPORT int kto_check_regel(char *blz,char *kto)
20315
20325
  * # kto: Kontonummer #
20316
20326
  * # blz: Bankleitzahl (immer 8-stellig) #
20317
20327
  * # #
20318
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
20328
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
20319
20329
  * ###########################################################################
20320
20330
  */
20321
20331
 
@@ -20357,7 +20367,7 @@ DLL_EXPORT int kto_check_pz(char *pz,char *kto,char *blz)
20357
20367
  * # retvals: Struktur, in der die benutzte Pr�fziffermethode und die #
20358
20368
  * # berechnete Pr�fziffer zur�ckgegeben werden #
20359
20369
  * # #
20360
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
20370
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
20361
20371
  * ###########################################################################
20362
20372
  */
20363
20373
 
@@ -20410,7 +20420,7 @@ DLL_EXPORT int kto_check_blz_dbg(char *blz,char *kto,RETVAL *retvals)
20410
20420
  * # retvals: Struktur, in der die benutzte Pr�fziffermethode und die #
20411
20421
  * # berechnete Pr�fziffer zur�ckgegeben werden #
20412
20422
  * # #
20413
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
20423
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
20414
20424
  * ###########################################################################
20415
20425
  */
20416
20426
  DLL_EXPORT int kto_check_pz_dbg(char *pz,char *kto,char *blz,RETVAL *retvals)
@@ -20448,7 +20458,7 @@ DLL_EXPORT int kto_check_pz_dbg(char *pz,char *kto,char *blz,RETVAL *retvals){re
20448
20458
  * # statt eines numerischen Wertes. Die Funktion wurde zun�chst f�r die #
20449
20459
  * # Perl-Variante eingef�hrt. #
20450
20460
  * # #
20451
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
20461
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
20452
20462
  * ###########################################################################
20453
20463
  */
20454
20464
 
@@ -20500,7 +20510,7 @@ DLL_EXPORT const char *kto_check_str(char *x_blz,char *kto,char *lut_name)
20500
20510
  * # kto: Kontonummer #
20501
20511
  * # lut_name: Name der Lookup-Datei oder NULL (f�r DEFAULT_LUT_NAME) #
20502
20512
  * # #
20503
- * # Copyright (C) 2002-2007 Michael Plugge <m.plugge@hs-mannheim.de> #
20513
+ * # Copyright (C) 2002-2007 Michael Plugge <konto_check@yahoo.com> #
20504
20514
  * ###########################################################################
20505
20515
  */
20506
20516
 
@@ -20582,7 +20592,7 @@ DLL_EXPORT int kto_check(char *pz_or_blz,char *kto,char *lut_name)
20582
20592
  * # die Anzahl der Banken die zu dem BIC geh�ren, in der Variablen cnt #
20583
20593
  * # zur�ckgegeben (optional). #
20584
20594
  * # #
20585
- * # Copyright (C) 2013 Michael Plugge <m.plugge@hs-mannheim.de> #
20595
+ * # Copyright (C) 2013 Michael Plugge <konto_check@yahoo.com> #
20586
20596
  * ###########################################################################
20587
20597
  */
20588
20598
 
@@ -20673,7 +20683,7 @@ DLL_EXPORT int get_lut_info2_b(char *lutname,int *version,char **prolog_p,char *
20673
20683
  * # INVALID_LUT_FILE Fehler in der LUT-Datei (Format, CRC...) #
20674
20684
  * # OK Erfolg #
20675
20685
  * # #
20676
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
20686
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
20677
20687
  * ######################################################################
20678
20688
  */
20679
20689
 
@@ -20712,7 +20722,7 @@ DLL_EXPORT int get_lut_info(char **info,char *lut_name)
20712
20722
  * # keinen Speicher freigeben kann, der von C aus allokiert wurde. #
20713
20723
  * # Auch in C# ist die Speicherverwaltung nicht einfach m�glich. #
20714
20724
  * # #
20715
- * # Copyright (C) 2010 Michael Plugge <m.plugge@hs-mannheim.de> #
20725
+ * # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
20716
20726
  * ######################################################################
20717
20727
  */
20718
20728
 
@@ -20738,7 +20748,7 @@ DLL_EXPORT void *kc_alloc(int size,int *retval)
20738
20748
  * # Diese Funktion ist Teil des alten Interfaces und wurde als Wrapper #
20739
20749
  * # zu den neuen Routinen umgestellt. #
20740
20750
  * # #
20741
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
20751
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
20742
20752
  * ###########################################################################
20743
20753
  */
20744
20754
 
@@ -20757,7 +20767,7 @@ DLL_EXPORT int cleanup_kto(void)
20757
20767
  * # Diese Funktion gibt die Version und das Datum der Kompilierung der #
20758
20768
  * # konto_check library als String zur�ck. .#
20759
20769
  * # #
20760
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
20770
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
20761
20771
  * ###########################################################################
20762
20772
  */
20763
20773
 
@@ -20789,13 +20799,13 @@ DLL_EXPORT const char *get_kto_check_version_x(int mode)
20789
20799
  case 5:
20790
20800
  return "09.09.2019";
20791
20801
  case 6:
20792
- return "16. Dezember 2020"; /* Klartext-Datum der Bibliotheksversion */
20802
+ return "13. April 2023"; /* Klartext-Datum der Bibliotheksversion */
20793
20803
  case 7:
20794
20804
  return "final"; /* Versions-Typ der Bibliotheksversion (development, beta, final) */
20795
20805
  case 8:
20796
20806
  return "6"; /* Hauptversionszahl */
20797
20807
  case 9:
20798
- return "13"; /* Unterversionszahl */
20808
+ return "15"; /* Unterversionszahl */
20799
20809
  }
20800
20810
  }
20801
20811
 
@@ -20810,7 +20820,7 @@ DLL_EXPORT const char *get_kto_check_version_x(int mode)
20810
20820
  * # Variante vor allem f�r Perl gedacht ist; in der Umgebung ist es #
20811
20821
  * # etwas komplizierter, ein Array zu �bergeben. #
20812
20822
  * # #
20813
- * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
20823
+ * # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
20814
20824
  * ###########################################################################
20815
20825
  */
20816
20826
 
@@ -20841,7 +20851,7 @@ DLL_EXPORT int dump_lutfile_p(char *outputname,UINT4 felder)
20841
20851
  * # dem Array required spezifiziert. Es werden nur Felder der Deutschen #
20842
20852
  * # Bundesbank ber�cksichtigt; andere Felder werden ignoriert. #
20843
20853
  * # #
20844
- * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
20854
+ * # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
20845
20855
  * ###########################################################################
20846
20856
  */
20847
20857
 
@@ -21036,7 +21046,7 @@ DLL_EXPORT int dump_lutfile(char *outputname,UINT4 *required)
21036
21046
  * # #
21037
21047
  * # Update 2014: die IBAN-Regeln werden jetzt auch ausgegeben. #
21038
21048
  * # #
21039
- * # Copyright (C) 2007,2009 Michael Plugge <m.plugge@hs-mannheim.de> #
21049
+ * # Copyright (C) 2007,2009 Michael Plugge <konto_check@yahoo.com> #
21040
21050
  * ###########################################################################
21041
21051
  */
21042
21052
 
@@ -21147,7 +21157,7 @@ DLL_EXPORT int rebuild_blzfile(char *inputname,char *outputname,UINT4 set)
21147
21157
  * # #
21148
21158
  * # R�ckgabe: der zu der �bergebenen IBAN geh�rende BIC #
21149
21159
  * # #
21150
- * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
21160
+ * # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
21151
21161
  * ###########################################################################
21152
21162
  */
21153
21163
 
@@ -21250,7 +21260,7 @@ DLL_EXPORT const char *iban2bic(char *iban,int *retval,char *blz,char *kto)
21250
21260
  * # die Parameter blz und kto wird allerdings Speicher allokiert und per #
21251
21261
  * # Handle wieder zur�ckgegeben. #
21252
21262
  * # #
21253
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
21263
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
21254
21264
  * ###########################################################################
21255
21265
  */
21256
21266
 
@@ -21336,7 +21346,7 @@ DLL_EXPORT const char *iban2bic_id(char *iban,int *retval,int *blz,int *kto)
21336
21346
  * # fehlschl�gt, wird der entsprechende Fehlercode in die #
21337
21347
  * # Variable retval geschrieben und NULL zur�ckgegeben. #
21338
21348
  * # #
21339
- * # Copyright (C) 2008,2013 Michael Plugge <m.plugge@hs-mannheim.de> #
21349
+ * # Copyright (C) 2008,2013 Michael Plugge <konto_check@yahoo.com> #
21340
21350
  * ###########################################################################
21341
21351
  */
21342
21352
 
@@ -21588,7 +21598,7 @@ DLL_EXPORT char *iban_bic_gen(char *blz,char *kto,const char **bicp,char *blz2,c
21588
21598
  * # Parameter: #
21589
21599
  * # ci: Creditor Identifiers der getestet werden soll #
21590
21600
  * # #
21591
- * # Copyright (C) 2013 Michael Plugge <m.plugge@hs-mannheim.de> #
21601
+ * # Copyright (C) 2013 Michael Plugge <konto_check@yahoo.com> #
21592
21602
  * ###########################################################################
21593
21603
  */
21594
21604
 
@@ -21674,7 +21684,7 @@ DLL_EXPORT int ci_check(char *ci)
21674
21684
  * # retval: NULL oder Adresse einer Variablen, in die der R�ckgabe- #
21675
21685
  * # wert der Kontopr�fung geschrieben wird #
21676
21686
  * # #
21677
- * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
21687
+ * # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
21678
21688
  * ###########################################################################
21679
21689
  */
21680
21690
 
@@ -21945,7 +21955,7 @@ DLL_EXPORT int iban_check(char *iban,int *retval)
21945
21955
  * # zeichen nach jeweils 5 Zeichen) geschrieben wird, oder #
21946
21956
  * # NULL (falls nicht ben�tigt) #
21947
21957
  * # #
21948
- * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
21958
+ * # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
21949
21959
  * ###########################################################################
21950
21960
  */
21951
21961
 
@@ -22011,7 +22021,7 @@ DLL_EXPORT int ipi_gen(char *zweck,char *dst,char *papier)
22011
22021
  * # kc_id2ptr() kann das Handle in einen String umgewandelt werden, sowie #
22012
22022
  * # mittels der Funktion kc_id_free() wieder freigegeben werden. #
22013
22023
  * # #
22014
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
22024
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
22015
22025
  * ###########################################################################
22016
22026
  */
22017
22027
 
@@ -22040,7 +22050,7 @@ DLL_EXPORT int ipi_gen_id(char *zweck,int *dst,int *papier)
22040
22050
  * # Parameter: #
22041
22051
  * # zweck: der Strukturierte Verwendungszweck, der getestet werden soll #
22042
22052
  * # #
22043
- * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
22053
+ * # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
22044
22054
  * ###########################################################################
22045
22055
  */
22046
22056
 
@@ -22094,7 +22104,7 @@ DLL_EXPORT int ipi_check(char *zweck)
22094
22104
  * # Felder der LUT-Datei, z.B. Banken in einem bestimmten Ort oder mit #
22095
22105
  * # einem bestimmten Namen etc. #
22096
22106
  * # #
22097
- * # Copyright (C) 2009,2011 Michael Plugge <m.plugge@hs-mannheim.de> #
22107
+ * # Copyright (C) 2009,2011 Michael Plugge <konto_check@yahoo.com> #
22098
22108
  * ###########################################################################
22099
22109
  */
22100
22110
 
@@ -23988,6 +23998,7 @@ DLL_EXPORT int lut_suche_blz(int such1,int such2,int *anzahl,int **start_idx,int
23988
23998
  return suche_int1(such1,such2,anzahl,start_idx,zweigstellen_base,blz_base,&blz_f,&sort_blz,qcmp_blz,cnt,0);
23989
23999
  }
23990
24000
 
24001
+ #line 22564 "konto_check.lxx"
23991
24002
  /* Funktion lut_suche_bic() +���2 */
23992
24003
  DLL_EXPORT int lut_suche_bic(char *such_name,int *anzahl,int **start_idx,int **zweigstellen_base,
23993
24004
  char ***base_name,int **blz_base)
@@ -24041,7 +24052,6 @@ DLL_EXPORT int lut_suche_pz(int such1,int such2,int *anzahl,int **start_idx,int
24041
24052
  {
24042
24053
  int retval;
24043
24054
 
24044
-
24045
24055
  if(anzahl)*anzahl=0;
24046
24056
  if(such2 && such1>such2)return INVALID_SEARCH_RANGE;
24047
24057
  if((init_status&7)<7)return LUT2_NOT_INITIALIZED;
@@ -24055,7 +24065,6 @@ DLL_EXPORT int lut_suche_pz(int such1,int such2,int *anzahl,int **start_idx,int
24055
24065
  /* Funktion lut_suche_plz() +���2 */
24056
24066
  DLL_EXPORT int lut_suche_plz(int such1,int such2,int *anzahl,int **start_idx,int **zweigstellen_base,int **base_name,int **blz_base)
24057
24067
  {
24058
-
24059
24068
  if(anzahl)*anzahl=0;
24060
24069
  if(such2 && such1>such2)return INVALID_SEARCH_RANGE;
24061
24070
  if((init_status&7)<7)return LUT2_NOT_INITIALIZED;
@@ -24068,7 +24077,6 @@ DLL_EXPORT int lut_suche_plz(int such1,int such2,int *anzahl,int **start_idx,int
24068
24077
  /* Funktion lut_suche_regel() +���2 */
24069
24078
  DLL_EXPORT int lut_suche_regel(int such1,int such2,int *anzahl,int **start_idx,int **zweigstellen_base,int **base_name,int **blz_base)
24070
24079
  {
24071
-
24072
24080
  if(anzahl)*anzahl=0;
24073
24081
  if(such2 && such1>such2)return INVALID_SEARCH_RANGE;
24074
24082
  if((init_status&7)<7)return LUT2_NOT_INITIALIZED;
@@ -24169,7 +24177,7 @@ DLL_EXPORT int bic_info(char *bic1,int mode,int *anzahl,int *start_idx)
24169
24177
  /* ###############################################################################
24170
24178
  * # Diese Funktionen bestimmen das �nderungsflag zu einem BIC bzw. einer IBAN #
24171
24179
  * # #
24172
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
24180
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
24173
24181
  * ###############################################################################
24174
24182
  */
24175
24183
 
@@ -24192,7 +24200,7 @@ DLL_EXPORT int iban_aenderung(char *iban,int filiale,int*retval)
24192
24200
  /* ###############################################################################
24193
24201
  * # Diese Funktionen bestimmen das L�schflag zu einem BIC bzw. einer IBAN #
24194
24202
  * # #
24195
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
24203
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
24196
24204
  * ###############################################################################
24197
24205
  */
24198
24206
 
@@ -24215,7 +24223,7 @@ DLL_EXPORT int iban_loeschung(char *iban,int filiale,int*retval)
24215
24223
  /* ###############################################################################
24216
24224
  * # Diese Funktionen bestimmen die IBAN-Regel zu einem BIC bzw. einer IBAN #
24217
24225
  * # #
24218
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
24226
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
24219
24227
  * ###############################################################################
24220
24228
  */
24221
24229
 
@@ -24238,7 +24246,7 @@ DLL_EXPORT int iban_iban_regel(char *iban,int filiale,int*retval)
24238
24246
  /* ###############################################################################
24239
24247
  * # Diese Funktionen bestimmen die Nachfolge-BLZ zu einem BIC bzw. einer IBAN #
24240
24248
  * # #
24241
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
24249
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
24242
24250
  * ###############################################################################
24243
24251
  */
24244
24252
 
@@ -24261,7 +24269,7 @@ DLL_EXPORT int iban_nachfolge_blz(char *iban,int filiale,int*retval)
24261
24269
  /* ###############################################################################
24262
24270
  * # Diese Funktionen bestimmen die Laufende Nr. zu einem BIC bzw. einer IBAN #
24263
24271
  * # #
24264
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
24272
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
24265
24273
  * ###############################################################################
24266
24274
  */
24267
24275
 
@@ -24284,7 +24292,7 @@ DLL_EXPORT int iban_nr(char *iban,int filiale,int*retval)
24284
24292
  /* ###############################################################################
24285
24293
  * # Diese Funktionen bestimmen den PAN zu einem BIC bzw. einer IBAN #
24286
24294
  * # #
24287
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
24295
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
24288
24296
  * ###############################################################################
24289
24297
  */
24290
24298
 
@@ -24307,7 +24315,7 @@ DLL_EXPORT int iban_pan(char *iban,int filiale,int*retval)
24307
24315
  /* ###############################################################################
24308
24316
  * # Diese Funktionen bestimmen die PLZ der Bank zu einem BIC bzw. einer IBAN #
24309
24317
  * # #
24310
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
24318
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
24311
24319
  * ###############################################################################
24312
24320
  */
24313
24321
 
@@ -24330,7 +24338,7 @@ DLL_EXPORT int iban_plz(char *iban,int filiale,int*retval)
24330
24338
  /* ###############################################################################
24331
24339
  * # Diese Funktionen bestimmen die Pr�fziffer zu einem BIC bzw. einer IBAN #
24332
24340
  * # #
24333
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
24341
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
24334
24342
  * ###############################################################################
24335
24343
  */
24336
24344
 
@@ -24353,7 +24361,7 @@ DLL_EXPORT int iban_pz(char *iban,int filiale,int*retval)
24353
24361
  /* ###############################################################################
24354
24362
  * # Diese Funktionen bestimmen den BIC zu einem BIC bzw. einer IBAN #
24355
24363
  * # #
24356
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
24364
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
24357
24365
  * ###############################################################################
24358
24366
  */
24359
24367
 
@@ -24376,7 +24384,7 @@ DLL_EXPORT const char *iban_bic(char *iban,int filiale,int*retval)
24376
24384
  /* ###############################################################################
24377
24385
  * # Diese Funktionen bestimmen den BIC der Hauptstelle zu einem BIC bzw. einer IBAN#
24378
24386
  * # #
24379
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
24387
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
24380
24388
  * ###############################################################################
24381
24389
  */
24382
24390
 
@@ -24399,7 +24407,7 @@ DLL_EXPORT const char *iban_bic_h(char *iban,int filiale,int*retval)
24399
24407
  /* ###############################################################################
24400
24408
  * # Diese Funktionen bestimmen den Name der Bank zu einem BIC bzw. einer IBAN #
24401
24409
  * # #
24402
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
24410
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
24403
24411
  * ###############################################################################
24404
24412
  */
24405
24413
 
@@ -24422,7 +24430,7 @@ DLL_EXPORT const char *iban_name(char *iban,int filiale,int*retval)
24422
24430
  /* ###############################################################################
24423
24431
  * # Diese Funktionen bestimmen den Kurzname der Bank zu einem BIC bzw. einer IBAN#
24424
24432
  * # #
24425
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
24433
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
24426
24434
  * ###############################################################################
24427
24435
  */
24428
24436
 
@@ -24445,7 +24453,7 @@ DLL_EXPORT const char *iban_name_kurz(char *iban,int filiale,int*retval)
24445
24453
  /* ###############################################################################
24446
24454
  * # Diese Funktionen bestimmen den Ort einer Bank zu einem BIC bzw. einer IBAN #
24447
24455
  * # #
24448
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
24456
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
24449
24457
  * ###############################################################################
24450
24458
  */
24451
24459
 
@@ -24771,7 +24779,7 @@ static const char *iban_fkt_s(char *iban,int filiale,int *retval,const char*(*fk
24771
24779
  * # val: Daten #
24772
24780
  * # size: Gr��e des Datenblocks (nur bei set_default_bin() ) #
24773
24781
  * # #
24774
- * # Copyright (C) 2010 Michael Plugge <m.plugge@hs-mannheim.de> #
24782
+ * # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
24775
24783
  * ###########################################################################
24776
24784
  */
24777
24785
 
@@ -24827,7 +24835,7 @@ DLL_EXPORT int kto_check_set_default_bin(char *key,char *val,int size)
24827
24835
  * # Diese Funktion initialisiert die Variablen f�r den Default-Block und #
24828
24836
  * # l�scht evl. vorhandene Werte. #
24829
24837
  * # #
24830
- * # Copyright (C) 2010 Michael Plugge <m.plugge@hs-mannheim.de> #
24838
+ * # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
24831
24839
  * ###########################################################################
24832
24840
  */
24833
24841
 
@@ -24863,7 +24871,7 @@ static int kto_check_clear_default(void)
24863
24871
  * # lut_name: Name der LUT-Datei #
24864
24872
  * # block_id: ID in der LUT-Datei f�r den Block #
24865
24873
  * # #
24866
- * # Copyright (C) 2010 Michael Plugge <m.plugge@hs-mannheim.de> #
24874
+ * # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
24867
24875
  * ###########################################################################
24868
24876
  */
24869
24877
 
@@ -24942,7 +24950,7 @@ DLL_EXPORT int kto_check_init_default(char *lut_name,int block_id)
24942
24950
  * # val: Wert (R�ckgabe per Referenz) #
24943
24951
  * # size: Gr��e des Datenblocks (per Referenz) #
24944
24952
  * # #
24945
- * # Copyright (C) 2010 Michael Plugge <m.plugge@hs-mannheim.de> #
24953
+ * # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
24946
24954
  * ###########################################################################
24947
24955
  */
24948
24956
 
@@ -24974,7 +24982,7 @@ DLL_EXPORT int kto_check_get_default(char *key,char **val,int *size)
24974
24982
  * # keys: Array mit den Schl�sseln (R�ckgabe per Referenz) #
24975
24983
  * # cnt: Anzahl (R�ckgabe per Referenz) #
24976
24984
  * # #
24977
- * # Copyright (C) 2010 Michael Plugge <m.plugge@hs-mannheim.de> #
24985
+ * # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
24978
24986
  * ###########################################################################
24979
24987
  */
24980
24988
 
@@ -25002,7 +25010,7 @@ DLL_EXPORT int kto_check_default_keys(char ***keys,int *cnt)
25002
25010
  * # lutfile: LUT-Datei in die der Block geschrieben werden soll #
25003
25011
  * # block_id: ID in der LUT-Datei f�r den Block #
25004
25012
  * # #
25005
- * # Copyright (C) 2010 Michael Plugge <m.plugge@hs-mannheim.de> #
25013
+ * # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
25006
25014
  * ###########################################################################
25007
25015
  */
25008
25016
 
@@ -25047,7 +25055,7 @@ DLL_EXPORT int kto_check_write_default(char *lutfile,int block_id)
25047
25055
  * # Funktion mit dem Parameter 0 aufgerufen wird, wird nur die aktuelle #
25048
25056
  * # Kodierung zur�ckgegeben. #
25049
25057
  * # #
25050
- * # Copyright (C) 2011 Michael Plugge <m.plugge@hs-mannheim.de> #
25058
+ * # Copyright (C) 2011 Michael Plugge <konto_check@yahoo.com> #
25051
25059
  * ###########################################################################
25052
25060
  */
25053
25061
 
@@ -25198,7 +25206,7 @@ DLL_EXPORT int kto_check_encoding(int mode)
25198
25206
  * # Diese Funktion entspricht der Funktion kto_check_encoding(); allerdings #
25199
25207
  * # ist der R�ckgabewert nicht numerisch, sondern ein String. #
25200
25208
  * # #
25201
- * # Copyright (C) 2011 Michael Plugge <m.plugge@hs-mannheim.de> #
25209
+ * # Copyright (C) 2011 Michael Plugge <konto_check@yahoo.com> #
25202
25210
  * ###########################################################################
25203
25211
  */
25204
25212
 
@@ -25256,7 +25264,7 @@ DLL_EXPORT const char *kto_check_encoding_str(int mode)
25256
25264
  * # 0: Flag abfragen, nicht ver�ndern #
25257
25265
  * # -1: Flag l�schen, Speicher der raw-Daten freigeben #
25258
25266
  * # #
25259
- * # Copyright (C) 2011 Michael Plugge <m.plugge@hs-mannheim.de> #
25267
+ * # Copyright (C) 2011 Michael Plugge <konto_check@yahoo.com> #
25260
25268
  * ###########################################################################
25261
25269
  */
25262
25270
 
@@ -25293,7 +25301,7 @@ DLL_EXPORT int keep_raw_data(int mode)
25293
25301
  * # Diese Funktion konvertiert einen gelesenen LUT-Block in die gew�nschte #
25294
25302
  * # Kodierung. Der urspr�nglich allokierte Speicher wird wieder freigegeben.#
25295
25303
  * # #
25296
- * # Copyright (C) 2011 Michael Plugge <m.plugge@hs-mannheim.de> #
25304
+ * # Copyright (C) 2011 Michael Plugge <konto_check@yahoo.com> #
25297
25305
  * ###########################################################################
25298
25306
  */
25299
25307
 
@@ -25875,7 +25883,7 @@ DLL_EXPORT int lut_keine_iban_berechnung(char *iban_blacklist,char *lutfile,int
25875
25883
  * # anderer Wert: nur Abfrage des Status #
25876
25884
  * # R�ckgabe: aktueller Status des Flags # #
25877
25885
  * # #
25878
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
25886
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
25879
25887
  * ###########################################################################
25880
25888
  */
25881
25889
 
@@ -25899,7 +25907,7 @@ DLL_EXPORT int pz_aenderungen_enable(int set)
25899
25907
  * # txt: Textvariable #
25900
25908
  * # i: Integervariable (4 Byte) #
25901
25909
  * # #
25902
- * # Copyright (C) 2006 Michael Plugge <m.plugge@hs-mannheim.de> #
25910
+ * # Copyright (C) 2006 Michael Plugge <konto_check@yahoo.com> #
25903
25911
  * ###########################################################################
25904
25912
  */
25905
25913
 
@@ -25927,7 +25935,7 @@ DLL_EXPORT char *kto_check_test_vars(char *txt,UINT4 i)
25927
25935
  * # Da der Aufruf f�r jede Funktionsgruppe gleich ist, wird er per Makro #
25928
25936
  * # gemacht. #
25929
25937
  * # #
25930
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
25938
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
25931
25939
  * ###########################################################################
25932
25940
  */
25933
25941
  /* numerische R�ckgabewerte in eine id umwandeln */
@@ -26070,7 +26078,7 @@ DLL_EXPORT int current_lutfile_name_id(int *set,int *level,int *retval)
26070
26078
  * # den etwas eigenwilligen (Schleich-)Weg �ber IntPtr nehmen, damit der #
26071
26079
  * # Speicher wieder freigegeben werden kann... #
26072
26080
  * # #
26073
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
26081
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
26074
26082
  * ###########################################################################
26075
26083
  */
26076
26084
 
@@ -26088,7 +26096,7 @@ DLL_EXPORT int current_lutfile_name_id(int *set,int *level,int *retval)
26088
26096
  * # von kc_id_free() wird es auch nicht gel�scht, der Funktionsaufruf gibt #
26089
26097
  * # nur OK zur�ck, ohne etwas zu tun. #
26090
26098
  * # #
26091
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
26099
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
26092
26100
  * ###########################################################################
26093
26101
  */
26094
26102
 
@@ -26132,7 +26140,7 @@ static int kc_ptr2id(char *ptr,int *handle,int release_mem)
26132
26140
  * # Diese Funktion gibt den Pointer zu einem Handle zur�ck. Dieser Wert #
26133
26141
  * # kann dann als String-Pointer in den DLL-Routinen verwendet werden. #
26134
26142
  * # #
26135
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
26143
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
26136
26144
  * ###########################################################################
26137
26145
  */
26138
26146
 
@@ -26153,7 +26161,7 @@ DLL_EXPORT char *kc_id2ptr(int handle,int *retval)
26153
26161
  * # Diese Funktion gibt den Speicher, der zu einem Handle geh�rt, wieder #
26154
26162
  * # frei und setzt den entsprechenden Slot-Eintrag auf NULL. #
26155
26163
  * # #
26156
- * # Copyright (C) 2014 Michael Plugge <m.plugge@hs-mannheim.de> #
26164
+ * # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
26157
26165
  * ###########################################################################
26158
26166
  */
26159
26167
 
@@ -26177,7 +26185,7 @@ DLL_EXPORT int kc_id_free(int handle)
26177
26185
  * # cmp_bic() ist die Vergleichsfunktion f�r bic_binsearch() und #
26178
26186
  * # lut_write_scl_blocks() (zum Sortieren der BICs). #
26179
26187
  * # #
26180
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26188
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26181
26189
  * ###########################################################################
26182
26190
  */
26183
26191
  static int cmp_bic(const void *ap,const void *bp)
@@ -26197,7 +26205,7 @@ static int cmp_bic(const void *ap,const void *bp)
26197
26205
  * # Die Funktion bic_binsearch() implementiert eine bin�re Suche im #
26198
26206
  * # BIC-Array (rekursiv) #
26199
26207
  * # #
26200
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26208
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26201
26209
  * ###########################################################################
26202
26210
  */
26203
26211
  static int bic_binsearch(int links,int rechts,char *bic)
@@ -26222,10 +26230,18 @@ static int bic_binsearch(int links,int rechts,char *bic)
26222
26230
  * # letzten Stellen existiert (Extension BIC); falls dieser auch nicht #
26223
26231
  * # existiert, wird als Letztes ein 8-stelliger BIC gesucht (Wildcard-BIC). #
26224
26232
  * # #
26225
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26233
+ * # Der zus�tzliche Parameter raw wurde eingef�hrt, da bei den Flags #
26234
+ * # �fters bei 11-stelligen BICs nicht die richtigen Flags angegeben sind #
26235
+ * # (bei den zugeh�rigen Wildcard-BICs (8-stellig) sind mehr Optionen #
26236
+ * # gesetzt), wie z.B. bei WELADEDLLEV oder DEUTDEDBPAL. Falls als erstes #
26237
+ * # Zeichen der BIC ein ! �bergeben wird, werden die originalen Flags #
26238
+ * # zur�ckgegeben, andernfalls die "richtigen". So ist die R�ckgabe von #
26239
+ * # DEUTDEDBPAL z.B. 11011, von !DEUTDEDBPAL jedoch 10000. #
26240
+ * # #
26241
+ * # Copyright (C) 2018, 2023 Michael Plugge <konto_check@yahoo.com> #
26226
26242
  * ###########################################################################
26227
26243
  */
26228
- static int scl_idx(const char *bic,int *retval)
26244
+ static int scl_idx(const char *bic,int *retval,int *raw)
26229
26245
  {
26230
26246
  char such_bic[12];
26231
26247
  int i,idx;
@@ -26234,7 +26250,14 @@ static int scl_idx(const char *bic,int *retval)
26234
26250
  if(retval)*retval=NO_SCL_BLOCKS_LOADED;
26235
26251
  return -1;
26236
26252
  }
26237
- strcpy(such_bic,bic);
26253
+ if(*bic=='!'){
26254
+ *raw=1;
26255
+ strcpy(such_bic,bic+1);
26256
+ }
26257
+ else{
26258
+ *raw=0;
26259
+ strcpy(such_bic,bic);
26260
+ }
26238
26261
  for(i=0;i<11 && such_bic[i];i++)such_bic[i]=toupper(such_bic[i]);
26239
26262
 
26240
26263
  /*
@@ -26258,6 +26281,9 @@ static int scl_idx(const char *bic,int *retval)
26258
26281
  * Punkt 2 hat eine h�here Priorit�t als Punkt 1, denn eine 8-stellige BIC ist mit selbiger
26259
26282
  * um 'XXX' erweiterten BIC identisch.
26260
26283
  *
26284
+ * (Update April 23: das gilt wohl doch nicht so ganz, zumindest nicht bei den Flags...
26285
+ * - die Flags werden jetzt vom Eintrag und dem Wildcard kombiniert)
26286
+ *
26261
26287
  */
26262
26288
 
26263
26289
  if(such_bic[8]==0){ /* Such-BIC 8-stellig angegeben; BIC zuerst mit XXX extension suchen */
@@ -26309,21 +26335,22 @@ static int scl_idx(const char *bic,int *retval)
26309
26335
  * # direkter Download-Link: #
26310
26336
  * # https://www.bundesbank.de/Redaktion/DE/Downloads/Aufgaben/Unbarer_Zahlungsverkehr/SEPA/verzeichnis_der_erreichbaren_zahlungsdienstleister.csv?__blob=publicationFile
26311
26337
  * # #
26312
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26338
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26313
26339
  * ###########################################################################
26314
26340
  */
26315
26341
  DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
26316
26342
  {
26317
- char c,*ptr,buffer[512],*scl_name_block_s,*scl_bic_block_s,*scl_flags_block_s,*ptr1,*ptr2,*ptr3;
26343
+ char c,*ptr,buffer[512],buffer2[128],*scl_name_block_s,*scl_bic_block_s,
26344
+ *scl_flags_block_s,*scl_flags_block_o,*ptr1,*ptr2,*ptr3,*ptr4,*base_ptr="";
26318
26345
  char scl_gueltigkeit[16],scl_gueltigkeit_iso[16];
26319
- int cnt,i,rv,j,*iptr,jahr,monat,tag;
26346
+ int cnt,i,j,rv,*iptr,jahr,monat,tag,f1,f2,f3,f4,f5;
26320
26347
  FILE *in,*lut;
26321
26348
  struct stat stat_buffer;
26322
26349
  struct tm z;
26323
26350
  time_t ts;
26324
26351
 
26325
26352
  if(!(in=fopen(inputfile,"r")))RETURN(FILE_READ_ERROR);
26326
- fgets(buffer,512,in);
26353
+ if(!fgets(buffer,512,in))RETURN(SCL_INPUT_FORMAT_ERROR);
26327
26354
  if(strncmp(buffer,"Gueltig ab / valid from ",24))return SCL_INPUT_FORMAT_ERROR;
26328
26355
  for(ptr=buffer;!isdigit(*ptr);ptr++);
26329
26356
  strncpy(scl_gueltigkeit,ptr,16);
@@ -26337,26 +26364,31 @@ DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
26337
26364
  z.tm_mon=monat;
26338
26365
  z.tm_year=jahr-1900;
26339
26366
  ts=mktime(&z);
26340
- snprintf(scl_gueltigkeit_iso,16,"%4d-%02d-%02d",jahr,monat,tag);
26341
- fgets(buffer,512,in);
26342
- if(strncmp(buffer,"BIC;Name;Service SCT;Service SDD;Service COR1;Service B2B;Service SCC",69))RETURN(SCL_INPUT_FORMAT_ERROR);
26343
-
26367
+ snprintf(scl_gueltigkeit_iso,16,"%4d-%02d-%02d",jahr%10000,monat%100,tag%100);
26368
+ if(!fgets(buffer,512,in))RETURN(SCL_INPUT_FORMAT_ERROR);
26369
+ /* Leerzeichen aus dem �berschrift-String entfernen */
26370
+ for(ptr=buffer,ptr2=buffer2;*ptr;ptr++)if(!isspace(*ptr))*ptr2++=*ptr;
26371
+ if(strncmp(buffer2,"BIC;Name;SERVICESCT;SERVICECOR;SERVICECOR1;SERVICEB2B;SERVICESCC",64))RETURN(SCL_INPUT_FORMAT_ERROR);
26344
26372
  stat(inputfile,&stat_buffer);
26345
- cnt=stat_buffer.st_size/163+100; /* etwas gro�z�gig die Anzahl rechnen */
26373
+
26374
+ cnt=stat_buffer.st_size/163+300; /* etwas gro�z�gig die Anzahl rechnen; jede Zeile hat 163 Bytes und ist am Ende mit Leerzeichen aufgef�llt */
26346
26375
 
26347
26376
  scl_bic_array=(char **)calloc(sizeof(char*),cnt);
26348
26377
  scl_name_array=(char **)calloc(sizeof(char*),cnt);
26349
26378
  scl_flags_array=(char **)calloc(sizeof(char*),cnt);
26379
+ scl_flags_array_o=(char **)calloc(sizeof(char*),cnt);
26350
26380
 
26351
26381
  scl_bic_block=ptr1=(char *)calloc(12,cnt);
26352
26382
  scl_name_block=ptr2=(char *)calloc(150,cnt);
26353
26383
  scl_flags_block=ptr3=(char *)calloc(6,cnt);
26384
+ scl_flags_block_orig=ptr4=(char *)calloc(6,cnt);
26354
26385
 
26355
26386
  /* SCL-Datei einlesen */
26356
26387
  for(cnt=0;fgets(buffer,512,in);){
26357
26388
  scl_bic_array[cnt]=ptr1;
26358
26389
  scl_name_array[cnt]=ptr2;
26359
26390
  scl_flags_array[cnt]=ptr3;
26391
+ scl_flags_array_o[cnt]=ptr4;
26360
26392
  cnt++;
26361
26393
  for(ptr=buffer;*ptr!=';' && !isspace(*ptr);*ptr1++=*ptr++);
26362
26394
  c=*ptr;
@@ -26371,12 +26403,12 @@ DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
26371
26403
  ptr2++;
26372
26404
 
26373
26405
  /* ptr steht nun auf den Flags */
26374
- *ptr3++=*ptr;
26375
- *ptr3++=*(ptr+2);
26376
- *ptr3++=*(ptr+4);
26377
- *ptr3++=*(ptr+6);
26378
- *ptr3++=*(ptr+8);
26379
- *ptr3++=0;
26406
+ *ptr4++=*ptr3++=*ptr;
26407
+ *ptr4++=*ptr3++=*(ptr+2);
26408
+ *ptr4++=*ptr3++=*(ptr+4);
26409
+ *ptr4++=*ptr3++=*(ptr+6);
26410
+ *ptr4++=*ptr3++=*(ptr+8);
26411
+ *ptr4++=*ptr3++=0;
26380
26412
  }
26381
26413
  fclose(in);
26382
26414
 
@@ -26387,14 +26419,68 @@ DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
26387
26419
  /* vor dem Abspeichern der Blocks nach BICs sortieren */
26388
26420
  qsort(iptr,cnt,sizeof(int),cmp_bic);
26389
26421
 
26422
+ /* Auszug aus dem SCL-Merkblatt:
26423
+ * Das SCL-Directory enth�lt elfstellige und achtstellige BICs. Dabei gilt:
26424
+ *
26425
+ * - Ein achtstelliger BIC ist eine sog. Wildcard und repr�sentiert die Erreichbarkeit eines
26426
+ * jeden elfstelligen BICs mit identischen ersten acht Stellen sowie die Erreichbarkeit
26427
+ * des achtstelligen BICs selbst.
26428
+ *
26429
+ * - Ein elfstelliger BIC mit der Branch Code Extension XXX repr�sentiert sich selbst
26430
+ * sowie die Erreichbarkeit des zugeh�rigen achtstelligen BICs. Er stellt jedoch keine
26431
+ * Wildcard dar.
26432
+ *
26433
+ * - Alle �brigen elfstelligen BICs repr�sentieren ausschlie�lich die Erreichbarkeit des
26434
+ * jeweiligen einzelnen elfstelligen BICs.
26435
+ *
26436
+ * Ein Zahlungsdienstleister, der mit einer Wildcard im SCL-Directory ausgewiesen wird, muss
26437
+ * Zahlungen f�r alle denkbaren elfstelligen BICs, die durch die Wildcard repr�sentiert werden,
26438
+ * aufnehmen.
26439
+ *
26440
+ * D.h., bei 11-stelligen BICs, zu denen eine 8-stellige Wildcard-BIC existiert, sind die Flags
26441
+ * aus beiden Varianten zu kombinieren. Beispiel:
26442
+ *
26443
+ * WELADEDL;SPARKASSE LEVERKUSEN;1;1;0;1;1
26444
+ * WELADEDLLEV;SPARKASSE LEVERKUSEN;1;0;0;0;0
26445
+ *
26446
+ * Die resultierenden Flags f�r WELADEDLLEV werden aus den beiden BICs zusammengesetzt zu 1;1;0;1;1
26447
+ *
26448
+ * Um das Verhalten auch f�r �ltere Installationen von konto_check zu implementieren, wird in die LUT-Datei
26449
+ * ein Block mit den resultierenden Flags als SCL Flags (ID 31) geschrieben; die Original-Version findet sich
26450
+ * als ID 32 mit der Bezeichnung SCL Flags orig, und wird von �teren Installationen ignoriert.
26451
+ *
26452
+ * Von der Problematik betroffen sind in der aktuellen Datei (Stand April 2023) 68 BICs, davon 8 deutsche.
26453
+ */
26454
+
26455
+ f1=f2=f3=f4=f5=0;
26390
26456
  ptr1=scl_bic_block_s=(char *)calloc(1,ptr1-scl_bic_block+16);
26391
26457
  ptr2=scl_name_block_s=(char *)calloc(1,ptr2-scl_name_block+16);
26392
26458
  ptr3=scl_flags_block_s=(char *)calloc(1,ptr3-scl_flags_block+16);
26459
+ ptr4=scl_flags_block_o=(char *)calloc(1,ptr4-scl_flags_block_orig+16);
26393
26460
  for(i=0;i<cnt;i++){
26394
26461
  j=iptr[i];
26395
26462
  for(ptr=scl_bic_array[j];(*ptr1++=*ptr++););
26396
26463
  for(ptr=scl_name_array[j];(*ptr2++=*ptr++););
26397
26464
  for(ptr=scl_flags_array[j];(*ptr3++=*ptr++););
26465
+ if(strlen(scl_bic_array[j])==8){
26466
+ base_ptr=scl_bic_array[j]; /* 8-stelliger BIC, Flags merken */
26467
+ f1=*(scl_flags_array[j]+0)-'0';
26468
+ f2=*(scl_flags_array[j]+1)-'0';
26469
+ f3=*(scl_flags_array[j]+2)-'0';
26470
+ f4=*(scl_flags_array[j]+3)-'0';
26471
+ f5=*(scl_flags_array[j]+4)-'0';
26472
+ }
26473
+ if(!strncmp(scl_bic_array[j],base_ptr,8)){
26474
+ ptr=scl_flags_array_o[j];
26475
+ if(*ptr++=='1' || f1)*ptr4++='1'; else *ptr4++='0';
26476
+ if(*ptr++=='1' || f2)*ptr4++='1'; else *ptr4++='0';
26477
+ if(*ptr++=='1' || f3)*ptr4++='1'; else *ptr4++='0';
26478
+ if(*ptr++=='1' || f4)*ptr4++='1'; else *ptr4++='0';
26479
+ if(*ptr++=='1' || f5)*ptr4++='1'; else *ptr4++='0';
26480
+ *ptr4++=0;
26481
+ }
26482
+ else
26483
+ for(ptr=scl_flags_array_o[j];(*ptr4++=*ptr++););
26398
26484
  }
26399
26485
  free(iptr);
26400
26486
 
@@ -26408,13 +26494,14 @@ DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
26408
26494
  if(strcmp(buffer,"BLZ Lookup Table/Format 2."))RETURN(INVALID_LUT_FILE); /* keine LUT-Datei */
26409
26495
 
26410
26496
  /* nun die Blocks schreiben */
26411
- rewind(lut);
26412
- sprintf(buffer,"cnt: %d, TS: %ld, Gueltigkeit: %s %s",cnt,(long)ts,scl_gueltigkeit,scl_gueltigkeit_iso);
26497
+ rewind(lut); /* Info schreiben da� korrigierte Flags */
26498
+ sprintf(buffer,"cnt: %d, TS: %ld, Gueltigkeit: %s %s korrigiert",cnt,(long)ts,scl_gueltigkeit,scl_gueltigkeit_iso);
26413
26499
  if((rv=write_lut_block_int(lut,LUT2_SCL_INFO,strlen(buffer)+1,buffer))!=OK){
26414
26500
  fclose(lut);
26415
26501
  FREE(scl_bic_block_s);
26416
26502
  FREE(scl_name_block_s);
26417
26503
  FREE(scl_flags_block_s);
26504
+ FREE(scl_flags_block_o);
26418
26505
  RETURN(rv);
26419
26506
  }
26420
26507
  if((rv=write_lut_block_int(lut,LUT2_SCL_BIC,(UINT4)(ptr1-scl_bic_block_s+1),scl_bic_block_s))!=OK){
@@ -26422,6 +26509,7 @@ DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
26422
26509
  FREE(scl_bic_block_s);
26423
26510
  FREE(scl_name_block_s);
26424
26511
  FREE(scl_flags_block_s);
26512
+ FREE(scl_flags_block_o);
26425
26513
  RETURN(rv);
26426
26514
  }
26427
26515
  if((rv=write_lut_block_int(lut,LUT2_SCL_NAME,(UINT4)(ptr2-scl_name_block_s+1),scl_name_block_s))!=OK){
@@ -26429,13 +26517,23 @@ DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
26429
26517
  FREE(scl_bic_block_s);
26430
26518
  FREE(scl_name_block_s);
26431
26519
  FREE(scl_flags_block_s);
26520
+ FREE(scl_flags_block_o);
26521
+ RETURN(rv);
26522
+ }
26523
+ if((rv=write_lut_block_int(lut,LUT2_SCL_FLAGS,(UINT4)(ptr4-scl_flags_block_o+1),scl_flags_block_o))!=OK){
26524
+ fclose(lut);
26525
+ FREE(scl_bic_block_s);
26526
+ FREE(scl_name_block_s);
26527
+ FREE(scl_flags_block_s);
26528
+ FREE(scl_flags_block_o);
26432
26529
  RETURN(rv);
26433
26530
  }
26434
- if((rv=write_lut_block_int(lut,LUT2_SCL_FLAGS,(UINT4)(ptr3-scl_flags_block_s+1),scl_flags_block_s))!=OK){
26531
+ if((rv=write_lut_block_int(lut,LUT2_SCL_FLAGS_ORIG,(UINT4)(ptr3-scl_flags_block_s+1),scl_flags_block_s))!=OK){
26435
26532
  fclose(lut);
26436
26533
  FREE(scl_bic_block_s);
26437
26534
  FREE(scl_name_block_s);
26438
26535
  FREE(scl_flags_block_s);
26536
+ FREE(scl_flags_block_o);
26439
26537
  RETURN(rv);
26440
26538
  }
26441
26539
 
@@ -26443,6 +26541,7 @@ DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
26443
26541
  FREE(scl_bic_block_s);
26444
26542
  FREE(scl_name_block_s);
26445
26543
  FREE(scl_flags_block_s);
26544
+ FREE(scl_flags_block_o);
26446
26545
  RETURN(OK);
26447
26546
  }
26448
26547
 
@@ -26451,17 +26550,17 @@ DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
26451
26550
  * # Die Funktion lut_scl_init() liest die SCL-Blocks aus einer LUT-Datei #
26452
26551
  * # und initialisiert die zugeh�rigen internen Datenstrukturen. #
26453
26552
  * # #
26454
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26553
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26455
26554
  * ###########################################################################
26456
26555
  */
26457
26556
  DLL_EXPORT int lut_scl_init(char *lut_name)
26458
26557
  {
26459
26558
  char *ptr,*end;
26460
26559
  int i,cnt,rv;
26461
- static UINT4 block_size_0,block_size_1,block_size_2,block_size_3;
26560
+ static UINT4 block_size_0,block_size_1,block_size_2,block_size_3,block_size_4;
26462
26561
  FILE *lut;
26463
26562
 
26464
- if(scl_bic_array && scl_name_array && scl_flags_array)return OK; /* schon initialisiert */
26563
+ if(scl_bic_array && scl_name_array && scl_flags_array && scl_flags_array_o)return OK; /* schon initialisiert */
26465
26564
 
26466
26565
  if(!(lut=fopen(lut_name,"rb")))RETURN(FILE_READ_ERROR);
26467
26566
  if((rv=read_lut_block_int(lut,0,LUT2_SCL_INFO,&block_size_0,&scl_info_block))<0){
@@ -26492,6 +26591,15 @@ DLL_EXPORT int lut_scl_init(char *lut_name)
26492
26591
  else
26493
26592
  return rv;
26494
26593
  }
26594
+ if((rv=read_lut_block_int(lut,0,LUT2_SCL_FLAGS_ORIG,&block_size_4,&scl_flags_block_orig))<0){
26595
+ /* hier retval<0 ignorieren, denn bei alten LUT_Dateien ist der Block nicht enthalten.
26596
+ * In dem Fall kann der Block durch den Block LUT2_SCL_FLAGS ersetzt werden. Die BIC Flags
26597
+ * sind in dem Fall dann nicht korrigiert. Lohnt sich nicht, das hier zu machen, da die
26598
+ * LUT-Dateien die mit dieser Version erzeugt werden, den Block enthalten.
26599
+ */
26600
+ scl_flags_block_orig=scl_flags_block;
26601
+ block_size_4=block_size_3;
26602
+ }
26495
26603
  fclose(lut);
26496
26604
  if((i=sscanf(scl_info_block,"cnt: %d, TS: %ld, Gueltigkeit: %15s %15s",
26497
26605
  &cnt,&scl_ts,(char *)&scl_gueltigkeit,(char *)&scl_gueltigkeit_iso))!=4)RETURN(INVALID_SCL_INFO_BLOCK);
@@ -26499,6 +26607,7 @@ DLL_EXPORT int lut_scl_init(char *lut_name)
26499
26607
  scl_bic_array=(char **)calloc(sizeof(char*),cnt);
26500
26608
  scl_name_array=(char **)calloc(sizeof(char*),cnt);
26501
26609
  scl_flags_array=(char **)calloc(sizeof(char*),cnt);
26610
+ scl_flags_array_o=(char **)calloc(sizeof(char*),cnt);
26502
26611
 
26503
26612
  for(i=0,ptr=scl_bic_block,end=scl_bic_block+block_size_1;i<cnt && ptr<end;i++){
26504
26613
  scl_bic_array[i]=ptr;
@@ -26514,6 +26623,11 @@ DLL_EXPORT int lut_scl_init(char *lut_name)
26514
26623
  scl_flags_array[i++]=ptr;
26515
26624
  while(*ptr++ && ptr<end);
26516
26625
  }
26626
+
26627
+ for(i=0,ptr=scl_flags_block_orig,end=scl_flags_block_orig+block_size_4;i<cnt && ptr<end;){
26628
+ scl_flags_array_o[i++]=ptr;
26629
+ while(*ptr++ && ptr<end);
26630
+ }
26517
26631
  scl_cnt=cnt;
26518
26632
  RETURN(OK);
26519
26633
  }
@@ -26523,7 +26637,7 @@ DLL_EXPORT int lut_scl_init(char *lut_name)
26523
26637
  * # Die Funktion lut_scl_info() gibt Infos �ber die Anzahl der Eintr�ge im #
26524
26638
  * # SCL-Verzeichnis sowie das Datum, ab wann die Datei g�ltig ist. #
26525
26639
  * # #
26526
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26640
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26527
26641
  * ###########################################################################
26528
26642
  */
26529
26643
  DLL_EXPORT int lut_scl_info(char *lutfile,int *cnt,const char **gueltigkeit,const char **gueltigkeit_iso)
@@ -26559,16 +26673,16 @@ DLL_EXPORT int lut_scl_info(char *lutfile,int *cnt,const char **gueltigkeit,cons
26559
26673
  * # Die Funktion lut_scl_multi() gibt alle Eintr�ge des SCL-Verzeichnisses #
26560
26674
  * # zu einem gegebenen BIC zur�ck. #
26561
26675
  * # #
26562
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26676
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26563
26677
  * ###########################################################################
26564
26678
  */
26565
26679
  DLL_EXPORT int lut_scl_multi(char *bic,const char **scl_flags,const char **used_bic,const char **scl_name)
26566
26680
  {
26567
- int i,rv;
26681
+ int i,rv,raw;
26568
26682
 
26569
- i=scl_idx(bic,&rv);
26683
+ i=scl_idx(bic,&rv,&raw);
26570
26684
  if(rv<0)return rv;
26571
- if(scl_flags)*scl_flags=scl_flags_array[i];
26685
+ if(scl_flags)*scl_flags=raw?scl_flags_array_o[i]:scl_flags_array[i];
26572
26686
  if(used_bic)*used_bic=scl_bic_array[i];
26573
26687
  if(scl_name)*scl_name=scl_name_array[i];
26574
26688
  return rv;
@@ -26581,15 +26695,15 @@ DLL_EXPORT int lut_scl_multi(char *bic,const char **scl_flags,const char **used_
26581
26695
  * # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
26582
26696
  * # entsprechende Fehlercode (<0) gesetzt. #
26583
26697
  * # #
26584
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26698
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26585
26699
  * ###########################################################################
26586
26700
  */
26587
26701
  DLL_EXPORT int lut_scl_sct(char *bic,int *retval)
26588
26702
  {
26589
26703
  char *flags;
26590
- int i,rv;
26704
+ int i,rv,raw;
26591
26705
 
26592
- i=scl_idx(bic,&rv);
26706
+ i=scl_idx(bic,&rv,&raw);
26593
26707
  if(rv<0){
26594
26708
  if(retval)*retval=rv;
26595
26709
  return -1;
@@ -26607,15 +26721,15 @@ DLL_EXPORT int lut_scl_sct(char *bic,int *retval)
26607
26721
  * # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
26608
26722
  * # entsprechende Fehlercode (<0) gesetzt. #
26609
26723
  * # #
26610
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26724
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26611
26725
  * ###########################################################################
26612
26726
  */
26613
26727
  DLL_EXPORT int lut_scl_sdd(char *bic,int *retval)
26614
26728
  {
26615
26729
  char *flags;
26616
- int i,rv;
26730
+ int i,rv,raw;
26617
26731
 
26618
- i=scl_idx(bic,&rv);
26732
+ i=scl_idx(bic,&rv,&raw);
26619
26733
  if(rv<0){
26620
26734
  if(retval)*retval=rv;
26621
26735
  return -1;
@@ -26634,15 +26748,15 @@ DLL_EXPORT int lut_scl_sdd(char *bic,int *retval)
26634
26748
  * # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
26635
26749
  * # entsprechende Fehlercode (<0) gesetzt. #
26636
26750
  * # #
26637
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26751
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26638
26752
  * ###########################################################################
26639
26753
  */
26640
26754
  DLL_EXPORT int lut_scl_cor1(char *bic,int *retval)
26641
26755
  {
26642
26756
  char *flags;
26643
- int i,rv;
26757
+ int i,rv,raw;
26644
26758
 
26645
- i=scl_idx(bic,&rv);
26759
+ i=scl_idx(bic,&rv,&raw);
26646
26760
  if(rv<0){
26647
26761
  if(retval)*retval=rv;
26648
26762
  return -1;
@@ -26660,15 +26774,15 @@ DLL_EXPORT int lut_scl_cor1(char *bic,int *retval)
26660
26774
  * # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
26661
26775
  * # entsprechende Fehlercode (<0) gesetzt. #
26662
26776
  * # #
26663
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26777
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26664
26778
  * ###########################################################################
26665
26779
  */
26666
26780
  DLL_EXPORT int lut_scl_b2b(char *bic,int *retval)
26667
26781
  {
26668
26782
  char *flags;
26669
- int i,rv;
26783
+ int i,rv,raw;
26670
26784
 
26671
- i=scl_idx(bic,&rv);
26785
+ i=scl_idx(bic,&rv,&raw);
26672
26786
  if(rv<0){
26673
26787
  if(retval)*retval=rv;
26674
26788
  return -1;
@@ -26686,15 +26800,15 @@ DLL_EXPORT int lut_scl_b2b(char *bic,int *retval)
26686
26800
  * # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
26687
26801
  * # entsprechende Fehlercode (<0) gesetzt. #
26688
26802
  * # #
26689
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26803
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26690
26804
  * ###########################################################################
26691
26805
  */
26692
26806
  DLL_EXPORT int lut_scl_scc(char *bic,int *retval)
26693
26807
  {
26694
26808
  char *flags;
26695
- int i,rv;
26809
+ int i,rv,raw;
26696
26810
 
26697
- i=scl_idx(bic,&rv);
26811
+ i=scl_idx(bic,&rv,&raw);
26698
26812
  if(rv<0){
26699
26813
  if(retval)*retval=rv;
26700
26814
  return -1;
@@ -26712,17 +26826,17 @@ DLL_EXPORT int lut_scl_scc(char *bic,int *retval)
26712
26826
  * # einen BIC umgewandelt werden mu�, m�ssen auch die Blocks BLZ und BIC #
26713
26827
  * # der LUT-Datei initialisiert sein, sonst wird ein Fehler zur�ckgegeben. #
26714
26828
  * # #
26715
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26829
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26716
26830
  * ###########################################################################
26717
26831
  */
26718
26832
  DLL_EXPORT int lut_scl_multi_blz(char *blz,const char **scl_flags,const char **used_bic,const char **scl_name)
26719
26833
  {
26720
26834
  const char *bic;
26721
- int i,rv;
26835
+ int i,rv,raw;
26722
26836
 
26723
26837
  bic=lut_bic(blz,0,&rv);
26724
26838
  if(rv<0)return rv;
26725
- i=scl_idx(bic,&rv);
26839
+ i=scl_idx(bic,&rv,&raw);
26726
26840
  if(rv<0)return rv;
26727
26841
  if(scl_flags)*scl_flags=scl_flags_array[i];
26728
26842
  if(used_bic)*used_bic=scl_bic_array[i];
@@ -26737,14 +26851,14 @@ DLL_EXPORT int lut_scl_multi_blz(char *blz,const char **scl_flags,const char **u
26737
26851
  * # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
26738
26852
  * # entsprechende Fehlercode (<0) gesetzt. #
26739
26853
  * # #
26740
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26854
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26741
26855
  * ###########################################################################
26742
26856
  */
26743
26857
  DLL_EXPORT int lut_scl_sct_blz(char *blz,int *retval,const char **used_bic)
26744
26858
  {
26745
26859
  char *flags;
26746
26860
  const char *bic;
26747
- int i,rv;
26861
+ int i,rv,raw;
26748
26862
 
26749
26863
  bic=lut_bic(blz,0,&rv);
26750
26864
  if(rv<0){
@@ -26753,7 +26867,7 @@ DLL_EXPORT int lut_scl_sct_blz(char *blz,int *retval,const char **used_bic)
26753
26867
  }
26754
26868
  else
26755
26869
  if(retval)*retval=OK;
26756
- i=scl_idx(bic,&rv);
26870
+ i=scl_idx(bic,&rv,&raw);
26757
26871
  if(rv<0){
26758
26872
  if(retval)*retval=rv;
26759
26873
  return -1;
@@ -26772,14 +26886,14 @@ DLL_EXPORT int lut_scl_sct_blz(char *blz,int *retval,const char **used_bic)
26772
26886
  * # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
26773
26887
  * # entsprechende Fehlercode (<0) gesetzt. #
26774
26888
  * # #
26775
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26889
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26776
26890
  * ###########################################################################
26777
26891
  */
26778
26892
  DLL_EXPORT int lut_scl_sdd_blz(char *blz,int *retval,const char **used_bic)
26779
26893
  {
26780
26894
  char *flags;
26781
26895
  const char *bic;
26782
- int i,rv;
26896
+ int i,rv,raw;
26783
26897
 
26784
26898
  bic=lut_bic(blz,0,&rv);
26785
26899
  if(rv<0){
@@ -26788,7 +26902,7 @@ DLL_EXPORT int lut_scl_sdd_blz(char *blz,int *retval,const char **used_bic)
26788
26902
  }
26789
26903
  else
26790
26904
  if(retval)*retval=OK;
26791
- i=scl_idx(bic,&rv);
26905
+ i=scl_idx(bic,&rv,&raw);
26792
26906
  if(rv<0){
26793
26907
  if(retval)*retval=rv;
26794
26908
  return -1;
@@ -26808,14 +26922,14 @@ DLL_EXPORT int lut_scl_sdd_blz(char *blz,int *retval,const char **used_bic)
26808
26922
  * # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
26809
26923
  * # entsprechende Fehlercode (<0) gesetzt. #
26810
26924
  * # #
26811
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26925
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26812
26926
  * ###########################################################################
26813
26927
  */
26814
26928
  DLL_EXPORT int lut_scl_cor1_blz(char *blz,int *retval,const char **used_bic)
26815
26929
  {
26816
26930
  char *flags;
26817
26931
  const char *bic;
26818
- int i,rv;
26932
+ int i,rv,raw;
26819
26933
 
26820
26934
  bic=lut_bic(blz,0,&rv);
26821
26935
  if(rv<0){
@@ -26824,7 +26938,7 @@ DLL_EXPORT int lut_scl_cor1_blz(char *blz,int *retval,const char **used_bic)
26824
26938
  }
26825
26939
  else
26826
26940
  if(retval)*retval=OK;
26827
- i=scl_idx(bic,&rv);
26941
+ i=scl_idx(bic,&rv,&raw);
26828
26942
  if(rv<0){
26829
26943
  if(retval)*retval=rv;
26830
26944
  return -1;
@@ -26843,14 +26957,14 @@ DLL_EXPORT int lut_scl_cor1_blz(char *blz,int *retval,const char **used_bic)
26843
26957
  * # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
26844
26958
  * # entsprechende Fehlercode (<0) gesetzt. #
26845
26959
  * # #
26846
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26960
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26847
26961
  * ###########################################################################
26848
26962
  */
26849
26963
  DLL_EXPORT int lut_scl_b2b_blz(char *blz,int *retval,const char **used_bic)
26850
26964
  {
26851
26965
  char *flags;
26852
26966
  const char *bic;
26853
- int i,rv;
26967
+ int i,rv,raw;
26854
26968
 
26855
26969
  bic=lut_bic(blz,0,&rv);
26856
26970
  if(rv<0){
@@ -26859,7 +26973,7 @@ DLL_EXPORT int lut_scl_b2b_blz(char *blz,int *retval,const char **used_bic)
26859
26973
  }
26860
26974
  else
26861
26975
  if(retval)*retval=OK;
26862
- i=scl_idx(bic,&rv);
26976
+ i=scl_idx(bic,&rv,&raw);
26863
26977
  if(rv<0){
26864
26978
  if(retval)*retval=rv;
26865
26979
  return -1;
@@ -26878,14 +26992,14 @@ DLL_EXPORT int lut_scl_b2b_blz(char *blz,int *retval,const char **used_bic)
26878
26992
  * # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
26879
26993
  * # entsprechende Fehlercode (<0) gesetzt. #
26880
26994
  * # #
26881
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
26995
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26882
26996
  * ###########################################################################
26883
26997
  */
26884
26998
  DLL_EXPORT int lut_scl_scc_blz(char *blz,int *retval,const char **used_bic)
26885
26999
  {
26886
27000
  char *flags;
26887
27001
  const char *bic;
26888
- int i,rv;
27002
+ int i,rv,raw;
26889
27003
 
26890
27004
  bic=lut_bic(blz,0,&rv);
26891
27005
  if(rv<0){
@@ -26894,7 +27008,7 @@ DLL_EXPORT int lut_scl_scc_blz(char *blz,int *retval,const char **used_bic)
26894
27008
  }
26895
27009
  else
26896
27010
  if(retval)*retval=OK;
26897
- i=scl_idx(bic,&rv);
27011
+ i=scl_idx(bic,&rv,&raw);
26898
27012
  if(rv<0){
26899
27013
  if(retval)*retval=rv;
26900
27014
  return -1;
@@ -26911,17 +27025,17 @@ DLL_EXPORT int lut_scl_scc_blz(char *blz,int *retval,const char **used_bic)
26911
27025
  * # Diese Funktion entspricht der Funktion lut_scl_multi_blz(), nur wird #
26912
27026
  * # die BLZ als Integer-Wert statt als String �bergeben. #
26913
27027
  * # #
26914
- * # Copyright (C) 2018 Michael Plugge <m.plugge@hs-mannheim.de> #
27028
+ * # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
26915
27029
  * ###########################################################################
26916
27030
  */
26917
27031
  DLL_EXPORT int lut_scl_multi_blz_i(int blz,const char **scl_flags,const char **used_bic,const char **scl_name)
26918
27032
  {
26919
27033
  const char *bic;
26920
- int i,rv;
27034
+ int i,rv,raw;
26921
27035
 
26922
27036
  bic=lut_bic_i(blz,0,&rv);
26923
27037
  if(rv<0)return rv;
26924
- i=scl_idx(bic,&rv);
27038
+ i=scl_idx(bic,&rv,&raw);
26925
27039
  if(rv<0)return rv;
26926
27040
  if(scl_flags)*scl_flags=scl_flags_array[i];
26927
27041
  if(used_bic)*used_bic=scl_bic_array[i];