konto_check 6.08.0 → 6.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.textile +1 -1
- data/ext/konto_check_raw/konto_check.c +422 -288
- data/ext/konto_check_raw/konto_check.h +21 -17
- data/ext/konto_check_raw/konto_check_raw_ruby.c +528 -2
- data/ext/konto_check_raw/retvals.h +7 -7
- data/lib/konto_check.rb +216 -0
- metadata +10 -9
@@ -13,7 +13,7 @@
|
|
13
13
|
* # wurden aus der aktuellen BLZ-Datei der Deutschen Bundesbank #
|
14
14
|
* # �bernommen. #
|
15
15
|
* # #
|
16
|
-
* # Copyright (C) 2002-
|
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 #
|
@@ -45,15 +45,14 @@
|
|
45
45
|
* # im Internet herunterladen. #
|
46
46
|
* ##########################################################################
|
47
47
|
*/
|
48
|
-
#line 332 "konto_check.lxx"
|
49
48
|
|
50
49
|
/* Definitionen und Includes */
|
51
50
|
#ifndef VERSION
|
52
|
-
#define VERSION "6.
|
51
|
+
#define VERSION "6.15 (final)"
|
53
52
|
#define VERSION_MAJOR 6
|
54
|
-
#define VERSION_MINOR
|
53
|
+
#define VERSION_MINOR 15
|
55
54
|
#endif
|
56
|
-
#define VERSION_DATE "
|
55
|
+
#define VERSION_DATE "2023-04-13"
|
57
56
|
|
58
57
|
#ifndef INCLUDE_KONTO_CHECK_DE
|
59
58
|
#define INCLUDE_KONTO_CHECK_DE 1
|
@@ -93,6 +92,7 @@ static lzo_align_t __LZO_MMODEL wrkmem[LZO1X_1_MEM_COMPRESS];
|
|
93
92
|
#include <fcntl.h>
|
94
93
|
#include <sys/types.h>
|
95
94
|
#include <sys/stat.h>
|
95
|
+
#include <unistd.h>
|
96
96
|
#if COMPRESS>0
|
97
97
|
#include <zlib.h>
|
98
98
|
#endif
|
@@ -104,8 +104,8 @@ static lzo_align_t __LZO_MMODEL wrkmem[LZO1X_1_MEM_COMPRESS];
|
|
104
104
|
#define KONTO_CHECK_VARS
|
105
105
|
#include "konto_check.h"
|
106
106
|
|
107
|
-
/* Flag, um die �nderungen zum Dezember
|
108
|
-
static int
|
107
|
+
/* Flag, um die �nderungen zum Dezember 2019 zu aktivieren */
|
108
|
+
static int pz_aenderungen_aktivieren_2019_12;
|
109
109
|
|
110
110
|
/* falls die Variable verbose_debug gesetzt wird, werden bei einigen
|
111
111
|
* Funktionen mittels perror() zus�tzliche Debuginfos ausgegeben. Die
|
@@ -207,8 +207,8 @@ static char **sortc_buf;
|
|
207
207
|
static int *sorti_buf;
|
208
208
|
|
209
209
|
/* Variablen f�r das SCL-Verzeichnis */
|
210
|
-
static char *scl_info_block,*scl_bic_block,*scl_name_block,*scl_flags_block,
|
211
|
-
**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,
|
212
212
|
scl_gueltigkeit[16],scl_gueltigkeit_iso[16];
|
213
213
|
static int scl_cnt;
|
214
214
|
long scl_ts;
|
@@ -217,6 +217,7 @@ long scl_ts;
|
|
217
217
|
DLL_EXPORT const char *(*retval_enc)(int)=NULL;
|
218
218
|
|
219
219
|
static int convert_encoding(char **data,UINT4 *len);
|
220
|
+
static int scl_idx(const char *bic,int *retval,int *raw);
|
220
221
|
|
221
222
|
|
222
223
|
/* das Makro RETURN(r) gibt Debug-Meldungen zu Fehler-R�ckgabewerten (zur Fehlersuche) */
|
@@ -249,7 +250,6 @@ static int convert_encoding(char **data,UINT4 *len);
|
|
249
250
|
#define free(ptr) efree(ptr)
|
250
251
|
#endif
|
251
252
|
|
252
|
-
#line 777 "konto_check.lxx"
|
253
253
|
|
254
254
|
/* Testwert zur Markierung ung�ltiger Ziffern im BLZ-String (>8 Stellen) */
|
255
255
|
#define BLZ_FEHLER 100000000
|
@@ -385,7 +385,6 @@ static int convert_encoding(char **data,UINT4 *len);
|
|
385
385
|
*/
|
386
386
|
#define CHECK_RETVAL(fkt) do{if((retval=fkt)!=OK)goto fini;}while(0) /* es mu� noch aufger�umt werden, daher goto */
|
387
387
|
#define CHECK_RETURN(fkt) do{if((retval=fkt)!=OK)return retval;}while(0)
|
388
|
-
#line 918 "konto_check.lxx"
|
389
388
|
|
390
389
|
/* einige Makros zur Umwandlung zwischen unsigned int und char */
|
391
390
|
#define UCP (unsigned char*)
|
@@ -505,7 +504,6 @@ int pz=-777;
|
|
505
504
|
|
506
505
|
#define E_START(x)
|
507
506
|
#define E_END(x)
|
508
|
-
#line 1043 "konto_check.lxx"
|
509
507
|
|
510
508
|
/* Variable f�r die Methoden 27, 29 und 69 */
|
511
509
|
static const int m10h_digits[4][10]={
|
@@ -812,7 +810,7 @@ static UINT4 adler32a(UINT4 adler,const char *buf,unsigned int len)
|
|
812
810
|
* # was einen Sortierlauf vor der Generierung der Tabelle bedingt. #
|
813
811
|
* # Die Funktion wird von qsort() (aus der libc) aufgerufen. #
|
814
812
|
* # #
|
815
|
-
* # Copyright (C) 2007 Michael Plugge <
|
813
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
816
814
|
* ###########################################################################
|
817
815
|
*/
|
818
816
|
|
@@ -839,7 +837,7 @@ static int sort_cmp(const void *ap,const void *bp)
|
|
839
837
|
* # Diese Funktion dient als Vergleichsfunktion f�r zwei Integerwerte f�r #
|
840
838
|
* # die Quicksort-Bibliotheksfunktion. #
|
841
839
|
* # #
|
842
|
-
* # Copyright (C) 2008 Michael Plugge <
|
840
|
+
* # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
|
843
841
|
* ###########################################################################
|
844
842
|
*/
|
845
843
|
|
@@ -892,7 +890,7 @@ DLL_EXPORT int set_default_compression(int mode)
|
|
892
890
|
* # Funktion create_lutfile_int() (ohne den FILE-Pointer). Die generierte #
|
893
891
|
* # Datei wird nach dem Aufruf geschlossen. #
|
894
892
|
* # #
|
895
|
-
* # Copyright (C) 2007 Michael Plugge <
|
893
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
896
894
|
* ###########################################################################
|
897
895
|
*/
|
898
896
|
|
@@ -913,7 +911,7 @@ DLL_EXPORT int create_lutfile(char *filename, char *prolog, int slots)
|
|
913
911
|
* # des Inhaltsverzeichnisses mit 0-Bytes. Diese Datei kann dann mit der #
|
914
912
|
* # Funktion write_lut_block() (bzw. write_lut_block_int()) gef�llt werden. #
|
915
913
|
* # #
|
916
|
-
* # Copyright (C) 2007 Michael Plugge <
|
914
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
917
915
|
* ###########################################################################
|
918
916
|
*/
|
919
917
|
|
@@ -950,11 +948,10 @@ static int create_lutfile_int(char *name, char *prolog, int slots,FILE **lut)
|
|
950
948
|
* # einige grundlegende Tests gemacht, um sicherzustellen, da� es sich auch #
|
951
949
|
* # um eine LUT2-Datei handelt (hier und sp�ter in write_block_int()). #
|
952
950
|
* # #
|
953
|
-
* # Copyright (C) 2007 Michael Plugge <
|
951
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
954
952
|
* ###########################################################################
|
955
953
|
*/
|
956
954
|
|
957
|
-
#line 1492 "konto_check.lxx"
|
958
955
|
DLL_EXPORT int write_lut_block(char *lutname,UINT4 typ,UINT4 len,char *data)
|
959
956
|
{
|
960
957
|
char buffer[SLOT_BUFFER],*ptr;
|
@@ -988,11 +985,10 @@ DLL_EXPORT int write_lut_block(char *lutname,UINT4 typ,UINT4 len,char *data)
|
|
988
985
|
* # meldung LUT2_NO_SLOT_FREE zur�ckgegeben, aber nichts geschrieben. #
|
989
986
|
* # Vor dem Schreiben wird der Block mittels der ZLIB komprimiert. #
|
990
987
|
* # #
|
991
|
-
* # Copyright (C) 2007 Michael Plugge <
|
988
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
992
989
|
* #############################################################################
|
993
990
|
*/
|
994
991
|
|
995
|
-
#line 1530 "konto_check.lxx"
|
996
992
|
static int write_lut_block_int(FILE *lut,UINT4 typ,UINT4 len,char *data)
|
997
993
|
{
|
998
994
|
char buffer[SLOT_BUFFER],*ptr,*cptr;
|
@@ -1124,11 +1120,10 @@ static int write_lut_block_int(FILE *lut,UINT4 typ,UINT4 len,char *data)
|
|
1124
1120
|
* # mehrere Blocks des angegebenen Typs enthalten sind, wird der letze #
|
1125
1121
|
* # zur�ckgeliefert. #
|
1126
1122
|
* # #
|
1127
|
-
* # Copyright (C) 2007 Michael Plugge <
|
1123
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
1128
1124
|
* ###########################################################################
|
1129
1125
|
*/
|
1130
1126
|
|
1131
|
-
#line 1666 "konto_check.lxx"
|
1132
1127
|
DLL_EXPORT int read_lut_block(char *lutname, UINT4 typ,UINT4 *blocklen,char **data)
|
1133
1128
|
{
|
1134
1129
|
int retval;
|
@@ -1147,11 +1142,10 @@ DLL_EXPORT int read_lut_block(char *lutname, UINT4 typ,UINT4 *blocklen,char **da
|
|
1147
1142
|
* # Blocks eines bestimmeten Typs enthalten sind, auch alte Blocks gelesen #
|
1148
1143
|
* # werden. #
|
1149
1144
|
* # #
|
1150
|
-
* # Copyright (C) 2007 Michael Plugge <
|
1145
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
1151
1146
|
* ###########################################################################
|
1152
1147
|
*/
|
1153
1148
|
|
1154
|
-
#line 1690 "konto_check.lxx"
|
1155
1149
|
DLL_EXPORT int read_lut_slot(char *lutname,int slot,UINT4 *blocklen,char **data)
|
1156
1150
|
{
|
1157
1151
|
int retval;
|
@@ -1169,11 +1163,10 @@ DLL_EXPORT int read_lut_slot(char *lutname,int slot,UINT4 *blocklen,char **data)
|
|
1169
1163
|
* # lesen; sie wird von vielen internen Funktionen benutzt. Die LUT-Datei #
|
1170
1164
|
* # wird als FILE-Pointer �bergeben und nicht geschlossen. #
|
1171
1165
|
* # #
|
1172
|
-
* # Copyright (C) 2007 Michael Plugge <
|
1166
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
1173
1167
|
* ###########################################################################
|
1174
1168
|
*/
|
1175
1169
|
|
1176
|
-
#line 1713 "konto_check.lxx"
|
1177
1170
|
static int read_lut_block_int(FILE *lut,int slot,int typ,UINT4 *blocklen,char **data)
|
1178
1171
|
{
|
1179
1172
|
char buffer[SLOT_BUFFER],*ptr,*sbuffer,*dbuffer;
|
@@ -1263,7 +1256,6 @@ static int read_lut_block_int(FILE *lut,int slot,int typ,UINT4 *blocklen,char **
|
|
1263
1256
|
FREE(sbuffer);
|
1264
1257
|
RETURN(ERROR_MALLOC);
|
1265
1258
|
}
|
1266
|
-
#line 1818 "konto_check.lxx"
|
1267
1259
|
|
1268
1260
|
if(fread(sbuffer,1,compressed_len,lut)<compressed_len){
|
1269
1261
|
FREE(sbuffer);
|
@@ -1428,7 +1420,7 @@ static int read_lut_block_int(FILE *lut,int slot,int typ,UINT4 *blocklen,char **
|
|
1428
1420
|
* # gegeben. Falls eine Variable nicht ben�tigt wird, kann f�r sie auch #
|
1429
1421
|
* # NULL �bergeben werden; die entsprechende Variable wird dann ignoriert. #
|
1430
1422
|
* # #
|
1431
|
-
* # Copyright (C) 2007 Michael Plugge <
|
1423
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
1432
1424
|
* #############################################################################
|
1433
1425
|
*/
|
1434
1426
|
|
@@ -1597,7 +1589,7 @@ static int lut_dir(FILE *lut,int id,UINT4 *slot_cnt,UINT4 *typ,UINT4 *len,
|
|
1597
1589
|
* # dieser Buffer wird dann mittels der Funktion write_lut_block_int() #
|
1598
1590
|
* # komprimiert und in die LUT-Datei geschrieben. #
|
1599
1591
|
* # #
|
1600
|
-
* # Copyright (C) 2007 Michael Plugge <
|
1592
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
1601
1593
|
* ###########################################################################
|
1602
1594
|
*/
|
1603
1595
|
|
@@ -2169,7 +2161,7 @@ static int write_lutfile_entry_de(UINT4 typ,int auch_filialen,int bank_cnt,char
|
|
2169
2161
|
* # generate_lut2(), aber die Funktionalit�t reicht in der Praxis normaler- #
|
2170
2162
|
* # weise gut aus. #
|
2171
2163
|
* # #
|
2172
|
-
* # Copyright (C) 2008 Michael Plugge <
|
2164
|
+
* # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
|
2173
2165
|
* ###########################################################################
|
2174
2166
|
*/
|
2175
2167
|
|
@@ -2221,7 +2213,7 @@ DLL_EXPORT int generate_lut2_p(char *inputname,char *outputname,char *user_info,
|
|
2221
2213
|
* # f�r einige Pr�fziffermethoden (52, 53, B6) ben�tigt werden (sie sind in #
|
2222
2214
|
* # den Beispielen enthalten, haben aber keine reale Entsprechung). #
|
2223
2215
|
* # #
|
2224
|
-
* # Copyright (C) 2007, 2013 Michael Plugge <
|
2216
|
+
* # Copyright (C) 2007, 2013 Michael Plugge <konto_check@yahoo.com> #
|
2225
2217
|
* ###########################################################################
|
2226
2218
|
*/
|
2227
2219
|
|
@@ -2601,7 +2593,7 @@ fini:
|
|
2601
2593
|
* # Die Funktion lut_dir_dump_str() allokiert f�r die Ausgabe Speicher; #
|
2602
2594
|
* # dieser mu� von dre aufrufenden Funktion wieder freigegeben werden. #
|
2603
2595
|
* # #
|
2604
|
-
* # Copyright (C) 2007-2010 Michael Plugge <
|
2596
|
+
* # Copyright (C) 2007-2010 Michael Plugge <konto_check@yahoo.com> #
|
2605
2597
|
* ###########################################################################
|
2606
2598
|
*/
|
2607
2599
|
|
@@ -2711,7 +2703,7 @@ DLL_EXPORT int lut_dir_dump_str(char *lutname,char **dptr)
|
|
2711
2703
|
* # LUT2_NO_VALID_DATE: Der Datenblock enth�lt kein G�ltigkeitsdatum #
|
2712
2704
|
* # LUT2_NOT_INITIALIZED: die library wurde noch nicht initialisiert #
|
2713
2705
|
* # #
|
2714
|
-
* # Copyright (C) 2008 Michael Plugge <
|
2706
|
+
* # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
|
2715
2707
|
* ###########################################################################
|
2716
2708
|
*/
|
2717
2709
|
DLL_EXPORT int lut_valid(void)
|
@@ -2742,6 +2734,38 @@ DLL_EXPORT int lut_valid(void)
|
|
2742
2734
|
RETURN(LUT2_NO_LONGER_VALID);
|
2743
2735
|
}
|
2744
2736
|
|
2737
|
+
DLL_EXPORT int lut_valid_date(char *lut_name,int *v11,int *v12,int *v21,int *v22)
|
2738
|
+
{
|
2739
|
+
char *ptr,*info1,*info2;
|
2740
|
+
int retval,v1,v2;
|
2741
|
+
|
2742
|
+
*v11=*v12=*v21=*v22=0;
|
2743
|
+
if((retval=lut_info(lut_name,&info1,&info2,&v1,&v2))!=OK)return retval;
|
2744
|
+
if(info1){
|
2745
|
+
for(ptr=info1;*ptr && *ptr!='\n' && !isdigit(*ptr);ptr++);
|
2746
|
+
if(*ptr && *ptr!='\n'){
|
2747
|
+
*v11=strtoul(ptr,NULL,10); /* Anfangsdatum der G�ltigkeit */
|
2748
|
+
if(*ptr && *ptr!='\n'){
|
2749
|
+
while(*ptr && *ptr!='\n' && *ptr++!='-'); /* Endedatum suchen */
|
2750
|
+
if(*ptr)*v12=strtoul(ptr,NULL,10); /* Endedatum der G�ltigkeit */
|
2751
|
+
}
|
2752
|
+
}
|
2753
|
+
free(info1);
|
2754
|
+
}
|
2755
|
+
if(info2){
|
2756
|
+
for(ptr=info2;*ptr && *ptr!='\n' && !isdigit(*ptr);ptr++);
|
2757
|
+
if(*ptr && *ptr!='\n'){
|
2758
|
+
*v21=strtoul(ptr,NULL,10); /* Anfangsdatum der G�ltigkeit */
|
2759
|
+
if(*ptr && *ptr!='\n'){
|
2760
|
+
while(*ptr && *ptr!='\n' && *ptr++!='-'); /* Endedatum suchen */
|
2761
|
+
if(*ptr)*v22=strtoul(ptr,NULL,10); /* Endedatum der G�ltigkeit */
|
2762
|
+
}
|
2763
|
+
}
|
2764
|
+
free(info2);
|
2765
|
+
}
|
2766
|
+
return OK;
|
2767
|
+
}
|
2768
|
+
|
2745
2769
|
|
2746
2770
|
/* Funktion lut_info_b() +���1 */
|
2747
2771
|
/* ###########################################################################
|
@@ -2751,7 +2775,7 @@ DLL_EXPORT int lut_valid(void)
|
|
2751
2775
|
* # und info2; danach wird der Speicher der von lut_info() allokiert wurde, #
|
2752
2776
|
* # wieder freigegeben. #
|
2753
2777
|
* # #
|
2754
|
-
* # Copyright (C) 2007 Michael Plugge <
|
2778
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
2755
2779
|
* ###########################################################################
|
2756
2780
|
*/
|
2757
2781
|
|
@@ -2784,7 +2808,7 @@ DLL_EXPORT int lut_info_b(char *lut_name,char **info1,char **info2,int *valid1,i
|
|
2784
2808
|
* # mittels der Funktion kc_id2ptr() in einen String umgewandelt, sowie mit #
|
2785
2809
|
* # der Funktion kc_id_free() wieder freigegeben werden kann. #
|
2786
2810
|
* # #
|
2787
|
-
* # Copyright (C) 2014 Michael Plugge <
|
2811
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
2788
2812
|
* ###########################################################################
|
2789
2813
|
*/
|
2790
2814
|
|
@@ -2852,11 +2876,10 @@ DLL_EXPORT int lut_info_id(char *lut_name,int *info1,int *info2,int *valid1,int
|
|
2852
2876
|
* # LUT2_NO_VALID_DATE: Der Datenblock enth�lt kein G�ltigkeitsdatum #
|
2853
2877
|
* # LUT2_BLOCK_NOT_IN_FILE: Die LUT-Datei enth�lt den Infoblock nicht #
|
2854
2878
|
* # #
|
2855
|
-
* # Copyright (C) 2007 Michael Plugge <
|
2879
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
2856
2880
|
* ###########################################################################
|
2857
2881
|
*/
|
2858
2882
|
|
2859
|
-
#line 3411 "konto_check.lxx"
|
2860
2883
|
DLL_EXPORT int lut_info(char *lut_name,char **info1,char **info2,int *valid1,int *valid2)
|
2861
2884
|
{
|
2862
2885
|
char *ptr,*ptr1,buffer[128];
|
@@ -2944,7 +2967,6 @@ DLL_EXPORT int lut_info(char *lut_name,char **info1,char **info2,int *valid1,int
|
|
2944
2967
|
|
2945
2968
|
/* Infoblocks lesen: 1. Infoblock */
|
2946
2969
|
if((ret=read_lut_block_int(in,0,LUT2_INFO,&cnt,&ptr))==OK){
|
2947
|
-
#line 3500 "konto_check.lxx"
|
2948
2970
|
*(ptr+cnt)=0;
|
2949
2971
|
if(valid1){
|
2950
2972
|
for(ptr1=ptr,v1=v2=0;*ptr1 && *ptr1!='\n' && !isdigit(*ptr1);ptr1++);
|
@@ -2992,7 +3014,6 @@ DLL_EXPORT int lut_info(char *lut_name,char **info1,char **info2,int *valid1,int
|
|
2992
3014
|
|
2993
3015
|
/* Infoblocks lesen: 2. Infoblock */
|
2994
3016
|
if((ret=read_lut_block_int(in,0,LUT2_2_INFO,&cnt,&ptr))==OK){
|
2995
|
-
#line 3549 "konto_check.lxx"
|
2996
3017
|
*(ptr+cnt)=0;
|
2997
3018
|
if(valid2){
|
2998
3019
|
for(ptr1=ptr,v1=v2=0;*ptr1 && *ptr1!='\n' && !isdigit(*ptr1);ptr1++);
|
@@ -3070,7 +3091,7 @@ DLL_EXPORT int lut_info(char *lut_name,char **info1,char **info2,int *valid1,int
|
|
3070
3091
|
* # info_p: Variablenpointer f�r R�ckgabe des Info-Strings #
|
3071
3092
|
* # user_info_p: Variablenpointer f�r R�ckgabe des User-Info-Strings #
|
3072
3093
|
* # #
|
3073
|
-
* # Copyright (C) 2007 Michael Plugge <
|
3094
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
3074
3095
|
* ###########################################################################
|
3075
3096
|
*/
|
3076
3097
|
|
@@ -3181,7 +3202,7 @@ DLL_EXPORT int get_lut_info2(char *lut_name,int *version_p,char **prolog_p,char
|
|
3181
3202
|
* # Au�erdem kann die Anzahl Slots ver�ndert (vergr��ert oder verkleinert) #
|
3182
3203
|
* # werden. #
|
3183
3204
|
* # #
|
3184
|
-
* # Copyright (C) 2007 Michael Plugge <
|
3205
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
3185
3206
|
* ###########################################################################
|
3186
3207
|
*/
|
3187
3208
|
|
@@ -3211,7 +3232,6 @@ DLL_EXPORT int copy_lutfile(char *old_name,char *new_name,int new_slots)
|
|
3211
3232
|
qsort(slotdir,slot_cnt,sizeof(int),cmp_int);
|
3212
3233
|
for(last_slot=-1,i=0;i<(int)slot_cnt;i++)if((typ=slotdir[i]) && typ!=(UINT4)last_slot){
|
3213
3234
|
read_lut_block_int(lut1,0,typ,&len,&data);
|
3214
|
-
#line 3769 "konto_check.lxx"
|
3215
3235
|
write_lut_block_int(lut2,typ,len,data);
|
3216
3236
|
FREE(data);
|
3217
3237
|
last_slot=typ;
|
@@ -3229,7 +3249,7 @@ DLL_EXPORT int copy_lutfile(char *old_name,char *new_name,int new_slots)
|
|
3229
3249
|
* # Sets geladen. Der R�ckgabewert ist daher oft -38 (nicht alle Blocks #
|
3230
3250
|
* # geladen), da die LUT-Datei nicht unbedingt alle Blocks enth�lt :-). #
|
3231
3251
|
* # #
|
3232
|
-
* # Copyright (C) 2008 Michael Plugge <
|
3252
|
+
* # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
|
3233
3253
|
* ###########################################################################
|
3234
3254
|
*/
|
3235
3255
|
|
@@ -3247,7 +3267,7 @@ DLL_EXPORT int kto_check_init2(char *lut_name)
|
|
3247
3267
|
* # unterschiedlichen Blocks definiert (lut_set_0 ... lut_set_9), die �ber #
|
3248
3268
|
* # einen skalaren Parameter ausgew�hlt werden k�nnen. #
|
3249
3269
|
* # #
|
3250
|
-
* # Copyright (C) 2008 Michael Plugge <
|
3270
|
+
* # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
|
3251
3271
|
* ###########################################################################
|
3252
3272
|
*/
|
3253
3273
|
|
@@ -3287,7 +3307,7 @@ DLL_EXPORT int kto_check_init_p(char *lut_name,int required,int set,int incremen
|
|
3287
3307
|
* # testen, ob ein bestimmter Block initialisiert wurde, und welcher #
|
3288
3308
|
* # R�ckgabewert dabei auftrat. #
|
3289
3309
|
* # #
|
3290
|
-
* # Copyright (C) 2008 Michael Plugge <
|
3310
|
+
* # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
|
3291
3311
|
* ###########################################################################
|
3292
3312
|
*/
|
3293
3313
|
|
@@ -3309,7 +3329,7 @@ DLL_EXPORT int *lut2_status(void)
|
|
3309
3329
|
* # Der Parameter id sollte auf einen Speicherbereich von mindestens 33 Byte#
|
3310
3330
|
* # zeigen. Die Datei-ID wird in diesen Speicher geschrieben. #
|
3311
3331
|
* # #
|
3312
|
-
* # Copyright (C) 2008 Michael Plugge <
|
3332
|
+
* # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
|
3313
3333
|
* ###########################################################################
|
3314
3334
|
*/
|
3315
3335
|
|
@@ -3407,7 +3427,7 @@ DLL_EXPORT int get_lut_id(char *lut_name,int set,char *id)
|
|
3407
3427
|
* # inkrementelle Initialisierung, um noch ben�tigte Blocks nachzuladen. #
|
3408
3428
|
* # Falls schon alle gew�nschten Blocks geladen sind, wird nichts gemacht. #
|
3409
3429
|
* # #
|
3410
|
-
* # Copyright (C) 2008 Michael Plugge <
|
3430
|
+
* # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
|
3411
3431
|
* ###########################################################################
|
3412
3432
|
*/
|
3413
3433
|
|
@@ -3438,10 +3458,9 @@ DLL_EXPORT int lut_init(char *lut_name,int required,int set)
|
|
3438
3458
|
* # Probleme; daher gibt es noch einige andere Initialisierungsfunktionen #
|
3439
3459
|
* # mit einfacherem Aufrufinterface, wie lut_init() oder kto_check_init_p().#
|
3440
3460
|
* # #
|
3441
|
-
* # Copyright (C) 2008 Michael Plugge <
|
3461
|
+
* # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
|
3442
3462
|
* ###########################################################################
|
3443
3463
|
*/
|
3444
|
-
#line 3999 "konto_check.lxx"
|
3445
3464
|
DLL_EXPORT int kto_check_init(char *lut_name,int *required,int **status,int set,int incremental)
|
3446
3465
|
{
|
3447
3466
|
char *ptr,*dptr,*data,*eptr,*prolog,*info,*user_info,*hs=NULL,*info1,*info2,*ci=NULL,name_buffer[LUT_PATH_LEN];
|
@@ -3669,7 +3688,6 @@ DLL_EXPORT int kto_check_init(char *lut_name,int *required,int **status,int set,
|
|
3669
3688
|
typ1=typ;
|
3670
3689
|
if(lut2_block_status[typ]==OK)continue; /* jeden Block nur einmal einlesen */
|
3671
3690
|
retval=read_lut_block_int(lut,0,typ,&len,&data);
|
3672
|
-
#line 4228 "konto_check.lxx"
|
3673
3691
|
|
3674
3692
|
switch(retval){
|
3675
3693
|
case LUT_CRC_ERROR:
|
@@ -3757,7 +3775,6 @@ DLL_EXPORT int kto_check_init(char *lut_name,int *required,int **status,int set,
|
|
3757
3775
|
if(typ==LUT2_2_NAME || typ==LUT2_2_NAME_KURZ){
|
3758
3776
|
FREE(data);
|
3759
3777
|
i=read_lut_block_int(lut,0,LUT2_2_NAME_NAME_KURZ,&len,&data);
|
3760
|
-
#line 4320 "konto_check.lxx"
|
3761
3778
|
if(i==OK){ /* was gefunden; Typ �ndern, dann weiter wie bei OK */
|
3762
3779
|
typ=LUT2_2_NAME_NAME_KURZ;
|
3763
3780
|
typ1=LUT2_NAME_NAME_KURZ;
|
@@ -4254,7 +4271,7 @@ DLL_EXPORT int kto_check_init(char *lut_name,int *required,int **status,int set,
|
|
4254
4271
|
* # LUT2_BLOCKS_MISSING bei einigen Blocks traten Fehler auf #
|
4255
4272
|
* # OK alle Blocks erfolgreich geladen #
|
4256
4273
|
* # #
|
4257
|
-
* # Copyright (C) 2013 Michael Plugge <
|
4274
|
+
* # Copyright (C) 2013 Michael Plugge <konto_check@yahoo.com> #
|
4258
4275
|
* ############################################################################
|
4259
4276
|
*/
|
4260
4277
|
DLL_EXPORT int lut_blocks(int mode,char **lut_filename,char **lut_blocks_ok,char **lut_blocks_fehler)
|
@@ -4328,7 +4345,7 @@ DLL_EXPORT int lut_blocks(int mode,char **lut_filename,char **lut_blocks_ok,char
|
|
4328
4345
|
* # Variablen lut_filename, lut_blocks_ok und lut_blocks_fehler m�ssen immer #
|
4329
4346
|
* # angegeben werden; eine �bergabe von NULL f�hrt zu einer access violation.#
|
4330
4347
|
* # #
|
4331
|
-
* # Copyright (C) 2014 Michael Plugge <
|
4348
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
4332
4349
|
* ############################################################################
|
4333
4350
|
*/
|
4334
4351
|
DLL_EXPORT int lut_blocks_id(int mode,int *lut_filename,int *lut_blocks_ok,int *lut_blocks_fehler)
|
@@ -4359,11 +4376,10 @@ DLL_EXPORT int lut_blocks_id(int mode,int *lut_filename,int *lut_blocks_ok,int *
|
|
4359
4376
|
* # benutzt, ist aber auch als Info interessant, falls f�r die LUT-Datei #
|
4360
4377
|
* # die Default-Werte benutzt wurden (Pfad und Dateiname). #
|
4361
4378
|
* # #
|
4362
|
-
* # Copyright (C) 2011 Michael Plugge <
|
4379
|
+
* # Copyright (C) 2011 Michael Plugge <konto_check@yahoo.com> #
|
4363
4380
|
* ###########################################################################
|
4364
4381
|
*/
|
4365
4382
|
|
4366
|
-
#line 4926 "konto_check.lxx"
|
4367
4383
|
DLL_EXPORT const char *current_lutfile_name(int *set,int *level,int *retval)
|
4368
4384
|
{
|
4369
4385
|
if(init_status<7 || !current_lutfile){
|
@@ -4382,7 +4398,7 @@ DLL_EXPORT const char *current_lutfile_name(int *set,int *level,int *retval)
|
|
4382
4398
|
/* ###########################################################################
|
4383
4399
|
* # lut_index(): Index einer BLZ in den internen Arrays bestimmen #
|
4384
4400
|
* # #
|
4385
|
-
* # Copyright (C) 2007 Michael Plugge <
|
4401
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
4386
4402
|
* ###########################################################################
|
4387
4403
|
*/
|
4388
4404
|
|
@@ -4431,7 +4447,7 @@ static int lut_index(char *b)
|
|
4431
4447
|
* # Diese Funktion ist nicht so optimiert wie lut_index(), #
|
4432
4448
|
* # da sie nicht in zeitkritischen Routinen benutzt wird. #
|
4433
4449
|
* # #
|
4434
|
-
* # Copyright (C) 2009 Michael Plugge <
|
4450
|
+
* # Copyright (C) 2009 Michael Plugge <konto_check@yahoo.com> #
|
4435
4451
|
* ###########################################################################
|
4436
4452
|
*/
|
4437
4453
|
|
@@ -4500,7 +4516,7 @@ static int lut_index_i(int b)
|
|
4500
4516
|
* # wird. Falls f�r retval NULL �bergeben wird, wird der #
|
4501
4517
|
* # R�ckgabewert verworfen. #
|
4502
4518
|
* # #
|
4503
|
-
* # Copyright (C) 2007 Michael Plugge <
|
4519
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
4504
4520
|
* ###########################################################################
|
4505
4521
|
*/
|
4506
4522
|
|
@@ -4511,7 +4527,7 @@ static int lut_index_i(int b)
|
|
4511
4527
|
* # Diese Funktion testet, ob eine BLZ (und Zweigstelle, falls gew�nscht) #
|
4512
4528
|
* # existiert und g�ltig ist. #
|
4513
4529
|
* # #
|
4514
|
-
* # Copyright (C) 2010 Michael Plugge <
|
4530
|
+
* # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
|
4515
4531
|
* ###########################################################################
|
4516
4532
|
*/
|
4517
4533
|
|
@@ -4542,7 +4558,7 @@ DLL_EXPORT int lut_blz_i(int b,int zweigstelle)
|
|
4542
4558
|
* # lut_filialen(): Anzahl der Filialen zu einer gegebenen Bankleitzahl #
|
4543
4559
|
* # bestimmen. #
|
4544
4560
|
* # #
|
4545
|
-
* # Copyright (C) 2007 Michael Plugge <
|
4561
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
4546
4562
|
* ###########################################################################
|
4547
4563
|
*/
|
4548
4564
|
|
@@ -4570,7 +4586,7 @@ DLL_EXPORT int lut_filialen_i(int b,int *retval)
|
|
4570
4586
|
/* ###########################################################################
|
4571
4587
|
* # lut_name(): Banknamen (lange Form) bestimmen #
|
4572
4588
|
* # #
|
4573
|
-
* # Copyright (C) 2007 Michael Plugge <
|
4589
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
4574
4590
|
* ###########################################################################
|
4575
4591
|
*/
|
4576
4592
|
|
@@ -4605,7 +4621,7 @@ DLL_EXPORT const char *lut_name_i(int b,int zweigstelle,int *retval)
|
|
4605
4621
|
* # der deutschen Kreditwirtschaft ist die L�nge der Angaben f�r die #
|
4606
4622
|
* # Bezeichnung des Kreditinstituts begrenzt. #
|
4607
4623
|
* # #
|
4608
|
-
* # Copyright (C) 2007 Michael Plugge <
|
4624
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
4609
4625
|
* ###########################################################################
|
4610
4626
|
*/
|
4611
4627
|
|
@@ -4633,7 +4649,7 @@ DLL_EXPORT const char *lut_name_kurz_i(int b,int zweigstelle,int *retval)
|
|
4633
4649
|
/* ###########################################################################
|
4634
4650
|
* # lut_plz(): Postleitzahl bestimmen #
|
4635
4651
|
* # #
|
4636
|
-
* # Copyright (C) 2007 Michael Plugge <
|
4652
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
4637
4653
|
* ###########################################################################
|
4638
4654
|
*/
|
4639
4655
|
|
@@ -4661,7 +4677,7 @@ DLL_EXPORT int lut_plz_i(int b,int zweigstelle,int *retval)
|
|
4661
4677
|
/* ###########################################################################
|
4662
4678
|
* # lut_ort(): Sitz einer Bank bestimmen #
|
4663
4679
|
* # #
|
4664
|
-
* # Copyright (C) 2007 Michael Plugge <
|
4680
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
4665
4681
|
* ###########################################################################
|
4666
4682
|
*/
|
4667
4683
|
|
@@ -4701,7 +4717,7 @@ DLL_EXPORT const char *lut_ort_i(int b,int zweigstelle,int *retval)
|
|
4701
4717
|
* # den Stellen der Deutschen Bundesbank stets die Institutsgruppennummer #
|
4702
4718
|
* # 2 zugewiesen worden. #
|
4703
4719
|
* # #
|
4704
|
-
* # Copyright (C) 2007 Michael Plugge <
|
4720
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
4705
4721
|
* ###########################################################################
|
4706
4722
|
*/
|
4707
4723
|
|
@@ -4757,7 +4773,7 @@ DLL_EXPORT int lut_pan_i(int b,int zweigstelle,int *retval)
|
|
4757
4773
|
* # korrekte Wert l��t sich in diesem Fall durch die Funktion iban_bic_gen()#
|
4758
4774
|
* # ermitteln. #
|
4759
4775
|
* # #
|
4760
|
-
* # Copyright (C) 2007,2013 Michael Plugge <
|
4776
|
+
* # Copyright (C) 2007,2013 Michael Plugge <konto_check@yahoo.com> #
|
4761
4777
|
* ###########################################################################
|
4762
4778
|
*/
|
4763
4779
|
|
@@ -4869,7 +4885,7 @@ DLL_EXPORT const char *lut_bic_hi(int b,int zweigstelle,int *retval)
|
|
4869
4885
|
* # automatisiert eine eindeutige Nummer vergeben. Eine einmal verwendete #
|
4870
4886
|
* # Nummer wird nicht noch einmal vergeben. #
|
4871
4887
|
* # #
|
4872
|
-
* # Copyright (C) 2009 Michael Plugge <
|
4888
|
+
* # Copyright (C) 2009 Michael Plugge <konto_check@yahoo.com> #
|
4873
4889
|
* ###########################################################################
|
4874
4890
|
*/
|
4875
4891
|
|
@@ -4898,7 +4914,7 @@ DLL_EXPORT int lut_nr_i(int b,int zweigstelle,int *retval)
|
|
4898
4914
|
* # lut_pz(): Pr�fzifferverfahren f�r eine Bankleitzahl. Das Verfahren wird #
|
4899
4915
|
* # numerisch zur�ckgegeben, also z.B. 108 f�r die Methode A8. #
|
4900
4916
|
* # #
|
4901
|
-
* # Copyright (C) 2007 Michael Plugge <
|
4917
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
4902
4918
|
* ###########################################################################
|
4903
4919
|
*/
|
4904
4920
|
|
@@ -4931,7 +4947,7 @@ DLL_EXPORT int lut_pz_i(int b,int zweigstelle,int *retval)
|
|
4931
4947
|
* # G�ltigkeitstermin der Bankleitzahlendatei im Zahlungsverkehr nicht mehr #
|
4932
4948
|
* # zu verwenden. #
|
4933
4949
|
* # #
|
4934
|
-
* # Copyright (C) 2007 Michael Plugge <
|
4950
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
4935
4951
|
* ###########################################################################
|
4936
4952
|
*/
|
4937
4953
|
|
@@ -4971,7 +4987,7 @@ DLL_EXPORT int lut_aenderung_i(int b,int zweigstelle,int *retval)
|
|
4971
4987
|
* # Das Feld enth�lt das Merkmal 0 (keine Angabe) oder 1 (BLZ im Feld 1 #
|
4972
4988
|
* # ist zur L�schung vorgesehen). Die R�ckgabe erfolgt als ASCII '0' '1'. #
|
4973
4989
|
* # #
|
4974
|
-
* # Copyright (C) 2007 Michael Plugge <
|
4990
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
4975
4991
|
* ###########################################################################
|
4976
4992
|
*/
|
4977
4993
|
|
@@ -5004,7 +5020,7 @@ DLL_EXPORT int lut_loeschung_i(int b,int zweigstelle,int *retval)
|
|
5004
5020
|
* # wurde (lut_loeschung()==1) oder die Bankleitzahl zum aktuellen G�ltig- #
|
5005
5021
|
* # keitstermin gel�scht wird (lut_aenderung()=='D'). #
|
5006
5022
|
* # #
|
5007
|
-
* # Copyright (C) 2007 Michael Plugge <
|
5023
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
5008
5024
|
* ###########################################################################
|
5009
5025
|
*/
|
5010
5026
|
|
@@ -5038,7 +5054,7 @@ DLL_EXPORT int lut_nachfolge_blz_i(int b,int zweigstelle,int *retval)
|
|
5038
5054
|
* # aus einer vierstelligen Nummer und einer zweistelligen Versionszahl; #
|
5039
5055
|
* # sie wird in konto_check als eine sechsstellige Nummer dargestellt. #
|
5040
5056
|
* # #
|
5041
|
-
* # Copyright (C) 2013 Michael Plugge <
|
5057
|
+
* # Copyright (C) 2013 Michael Plugge <konto_check@yahoo.com> #
|
5042
5058
|
* ###########################################################################
|
5043
5059
|
*/
|
5044
5060
|
|
@@ -5073,7 +5089,7 @@ DLL_EXPORT int lut_iban_regel_i(int b,int zweigstelle,int *retval)
|
|
5073
5089
|
* # Berechnung notwendig sind, schon geladen wurden; falls nicht, werden #
|
5074
5090
|
* # die fehlenden Daten (per inkrementeller Initialisierung) nachgeladen. #
|
5075
5091
|
* # #
|
5076
|
-
* # Copyright (C) 2013 Michael Plugge <
|
5092
|
+
* # Copyright (C) 2013 Michael Plugge <konto_check@yahoo.com> #
|
5077
5093
|
* ###########################################################################
|
5078
5094
|
*/
|
5079
5095
|
|
@@ -5114,11 +5130,10 @@ static int iban_init(void)
|
|
5114
5130
|
* # Der R�ckgabewert gibt n�here Aufschl�sse �ber die Anwendung der Regeln #
|
5115
5131
|
* # und ob eine IBAN berechnet werden darf. #
|
5116
5132
|
* # #
|
5117
|
-
* # Copyright (C) 2013 Michael Plugge <
|
5133
|
+
* # Copyright (C) 2013 Michael Plugge <konto_check@yahoo.com> #
|
5118
5134
|
* ###########################################################################
|
5119
5135
|
*/
|
5120
5136
|
|
5121
|
-
#line 5681 "konto_check.lxx"
|
5122
5137
|
static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_version,RETVAL *retvals)
|
5123
5138
|
{
|
5124
5139
|
char tmp_buffer[16];
|
@@ -5219,7 +5234,8 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
|
|
5219
5234
|
* IBAN-Regel 5 auf S. 14); alle anderen BLZs der Commerzbank
|
5220
5235
|
* bekommen COBADEFFXXX.
|
5221
5236
|
*/
|
5222
|
-
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 */
|
5223
5239
|
|
5224
5240
|
/* BLZs ohne Pr�fzifferberechnung */
|
5225
5241
|
if(pz_methode==9)return OK_NO_CHK;
|
@@ -5961,9 +5977,9 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
|
|
5961
5977
|
return OK_BLZ_REPLACED;
|
5962
5978
|
|
5963
5979
|
|
5964
|
-
/* Iban-Regel 0020.
|
5980
|
+
/* Iban-Regel 0020.02 +���3 */
|
5965
5981
|
/* Deutsche Bank AG
|
5966
|
-
* Neuimplementierung nach der Regel-Version 1.
|
5982
|
+
* Neuimplementierung nach der Regel-Version 1.51 der Deutschen Bank vom 19.9.2013
|
5967
5983
|
*/
|
5968
5984
|
case 20:
|
5969
5985
|
|
@@ -8058,21 +8074,29 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
|
|
8058
8074
|
*bicp="VONEDE33XXX";
|
8059
8075
|
return OK_BLZ_REPLACED;
|
8060
8076
|
|
8061
|
-
/* Iban-Regel 0049.
|
8062
|
-
/*
|
8077
|
+
/* Iban-Regel 0049.01 +���3 */
|
8078
|
+
/* DZ Bank */
|
8063
8079
|
case 49:
|
8064
8080
|
|
8065
|
-
/*
|
8066
|
-
|
8067
|
-
|
8068
|
-
|
8069
|
-
|
8070
|
-
|
8071
|
-
|
8072
|
-
|
8081
|
+
/* Bei der Ermittlung von IBAN und BIC aus Kontonummer und BLZ sind in Abwei-
|
8082
|
+
* chung zu der Standard IBAN-Regel folgende Besonderheiten zu beachten:
|
8083
|
+
*
|
8084
|
+
* 1. F�r die Bankleitzahlen 300 600 10, 400 600 00 und 570 600 00 der DZ BANK ist die
|
8085
|
+
* IBAN-Ermittlung f�r Kontonummern mit der 1.-2. Stelle ungleich '92-99' (standardm��ig
|
8086
|
+
* links mit Nullen auf 10 Stellen aufgef�llt) mit der Standard-IBAN-Regel m�glich.
|
8087
|
+
*
|
8088
|
+
* 2. Kontonummern mit einer '92-99' an der 1.-2. Stelle haben keine Pr�fziffer, die daher
|
8089
|
+
* nicht gepr�ft werden darf. Auch f�r diese Konten kann die IBAN nach der Standard-
|
8090
|
+
* IBAN-Regel ermittelt werden.
|
8091
|
+
*
|
8092
|
+
* [etwas vereinfacht ausgedr�ckt, k�nnen Konten einfach nach der Standard-Regel konvertiert werden :-) ]
|
8093
|
+
*/
|
8073
8094
|
|
8074
|
-
/*
|
8075
|
-
*
|
8095
|
+
/* (der folgende Teil wurde nicht gel�scht, da er auch aus realen Kontodaten stammt;
|
8096
|
+
* die ehemaligen Sonderkonten tauchen nicht mehr auf und wurden entfernt)
|
8097
|
+
*
|
8098
|
+
* F�r Kontonummern mit einer '9' an der 5. Stelle muss die Kontonummer, auf deren Basis
|
8099
|
+
* die IBAN ermittelt wird, abweichend berechnet werden. Die ersten 4 Stellen (inkl.
|
8076
8100
|
* aufgef�llter Nullen) m�ssen ans Ende gestellt werden, so dass die Kontonummer dann
|
8077
8101
|
* immer mit der '9' anf�ngt.
|
8078
8102
|
*
|
@@ -8279,7 +8303,6 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
|
|
8279
8303
|
}
|
8280
8304
|
}
|
8281
8305
|
|
8282
|
-
#line 8842 "konto_check.lxx"
|
8283
8306
|
/* Funktion lut_multiple() +���2 */
|
8284
8307
|
/* ###########################################################################
|
8285
8308
|
* # lut_multiple(): Universalfunktion, um zu einer gegebenen Bankleitzahl #
|
@@ -8296,7 +8319,7 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
|
|
8296
8319
|
* # mit den Indizes der Hauptstellen wird in der letzten Variable zur�ck- #
|
8297
8320
|
* # gegeben (start_idx). #
|
8298
8321
|
* # #
|
8299
|
-
* # Copyright (C) 2007 Michael Plugge <
|
8322
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
8300
8323
|
* ###########################################################################
|
8301
8324
|
*/
|
8302
8325
|
|
@@ -8507,7 +8530,7 @@ static int lut_multiple_int(int idx,int *cnt,int **p_blz,char ***p_name,char **
|
|
8507
8530
|
* # Die Funktion lut_cleanup() gibt allen belegten Speicher frei und setzt #
|
8508
8531
|
* # die entsprechenden Variablen auf NULL. #
|
8509
8532
|
* # #
|
8510
|
-
* # Copyright (C) 2007 Michael Plugge <
|
8533
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
8511
8534
|
* ###########################################################################
|
8512
8535
|
*/
|
8513
8536
|
|
@@ -8547,7 +8570,6 @@ DLL_EXPORT int lut_cleanup(void)
|
|
8547
8570
|
FREE(sort_pz_f);
|
8548
8571
|
FREE(sort_plz);
|
8549
8572
|
FREE(sort_iban_regel);
|
8550
|
-
#line 9104 "konto_check.lxx"
|
8551
8573
|
if(name_raw && name_data!=name_raw)
|
8552
8574
|
FREE(name_raw);
|
8553
8575
|
else
|
@@ -8624,7 +8646,6 @@ DLL_EXPORT int lut_cleanup(void)
|
|
8624
8646
|
lut_cleanup(); /* neuer Versuch, aufzur�umen */
|
8625
8647
|
RETURN(INIT_FATAL_ERROR);
|
8626
8648
|
}
|
8627
|
-
#line 9186 "konto_check.lxx"
|
8628
8649
|
init_status&=1;
|
8629
8650
|
init_in_progress=0;
|
8630
8651
|
return OK;
|
@@ -8648,7 +8669,7 @@ DLL_EXPORT int lut_cleanup(void)
|
|
8648
8669
|
* # Pr�fziffermethoden; das Problem wird mit dem neuen Dateiformat #
|
8649
8670
|
* # noch einmal angegangen. #
|
8650
8671
|
* # #
|
8651
|
-
* # Copyright (C) 2002-2005 Michael Plugge <
|
8672
|
+
* # Copyright (C) 2002-2005 Michael Plugge <konto_check@yahoo.com> #
|
8652
8673
|
* ###########################################################################
|
8653
8674
|
*/
|
8654
8675
|
|
@@ -8670,7 +8691,7 @@ DLL_EXPORT int generate_lut(char *inputname,char *outputname,char *user_info,int
|
|
8670
8691
|
* # #
|
8671
8692
|
* # Bugs: f�r eine BLZ wird nur eine Pr�fziffermethode unterst�tzt (s.o.). #
|
8672
8693
|
* # #
|
8673
|
-
* # Copyright (C) 2002-2005 Michael Plugge <
|
8694
|
+
* # Copyright (C) 2002-2005 Michael Plugge <konto_check@yahoo.com> #
|
8674
8695
|
* ###########################################################################
|
8675
8696
|
*/
|
8676
8697
|
|
@@ -8788,7 +8809,7 @@ static int read_lut(char *filename,int *cnt_blz)
|
|
8788
8809
|
* # zur�ckf�hren, was wesentlich schneller ist, als die sonst n�tigen acht #
|
8789
8810
|
* # Multiplikationen mit dem jeweiligen Stellenwert. #
|
8790
8811
|
* # #
|
8791
|
-
* # Copyright (C) 2007 Michael Plugge <
|
8812
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
8792
8813
|
* ###########################################################################
|
8793
8814
|
*/
|
8794
8815
|
|
@@ -8797,8 +8818,8 @@ static void init_atoi_table(void)
|
|
8797
8818
|
int i,ziffer;
|
8798
8819
|
unsigned long l;
|
8799
8820
|
|
8800
|
-
/* �nderungen zum
|
8801
|
-
if(time(NULL)>
|
8821
|
+
/* �nderungen zum 09.12.2019 aktivieren */
|
8822
|
+
if(time(NULL)>1575846000 ||0)pz_aenderungen_aktivieren_2019_12=1;
|
8802
8823
|
|
8803
8824
|
/* ung�ltige Ziffern; Blanks und Tabs werden ebenfalls als ung�ltig
|
8804
8825
|
* angesehen(!), da die Stellenzuordnung sonst nicht mehr stimmt. Ausnahme:
|
@@ -8932,6 +8953,8 @@ static void init_atoi_table(void)
|
|
8932
8953
|
lut2_feld_namen[LUT2_2_SCL_NAME]="LUT2_2_SCL_NAME";
|
8933
8954
|
lut2_feld_namen[LUT2_SCL_FLAGS]="LUT2_SCL_FLAGS";
|
8934
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";
|
8935
8958
|
|
8936
8959
|
lut_block_idx[1]=0;
|
8937
8960
|
lut_block_idx[2]=0;
|
@@ -8964,6 +8987,7 @@ static void init_atoi_table(void)
|
|
8964
8987
|
lut_block_idx[29]=-1;
|
8965
8988
|
lut_block_idx[30]=-1;
|
8966
8989
|
lut_block_idx[31]=-1;
|
8990
|
+
lut_block_idx[32]=-1;
|
8967
8991
|
|
8968
8992
|
lut_block_name1[1]="BLZ";
|
8969
8993
|
lut_block_name1[2]="FILIALEN";
|
@@ -8996,6 +9020,7 @@ static void init_atoi_table(void)
|
|
8996
9020
|
lut_block_name1[29]="SCL_BIC";
|
8997
9021
|
lut_block_name1[30]="SCL_NAME";
|
8998
9022
|
lut_block_name1[31]="SCL_FLAGS";
|
9023
|
+
lut_block_name1[32]="SCL_FLAGS_ORIG";
|
8999
9024
|
lut_block_name1[101]="BLZ (2)";
|
9000
9025
|
lut_block_name1[102]="FILIALEN (2)";
|
9001
9026
|
lut_block_name1[103]="NAME (2)";
|
@@ -9027,6 +9052,7 @@ static void init_atoi_table(void)
|
|
9027
9052
|
lut_block_name1[129]="SCL_BIC (2)";
|
9028
9053
|
lut_block_name1[130]="SCL_NAME (2)";
|
9029
9054
|
lut_block_name1[131]="SCL_FLAGS (2)";
|
9055
|
+
lut_block_name1[132]="SCL_FLAGS_ORIG (2)";
|
9030
9056
|
|
9031
9057
|
lut_block_name2[1]="1. BLZ";
|
9032
9058
|
lut_block_name2[2]="1. Anzahl Fil.";
|
@@ -9059,6 +9085,7 @@ static void init_atoi_table(void)
|
|
9059
9085
|
lut_block_name2[29]="1. SCL BIC";
|
9060
9086
|
lut_block_name2[30]="1. SCL Banknamen";
|
9061
9087
|
lut_block_name2[31]="1. SCL Flags";
|
9088
|
+
lut_block_name2[32]="1. SCL Flags orig";
|
9062
9089
|
lut_block_name2[101]="2. BLZ";
|
9063
9090
|
lut_block_name2[102]="2. Anzahl Fil.";
|
9064
9091
|
lut_block_name2[103]="2. Name";
|
@@ -9090,8 +9117,8 @@ static void init_atoi_table(void)
|
|
9090
9117
|
lut_block_name2[129]="2. SCL BIC";
|
9091
9118
|
lut_block_name2[130]="2. SCL Banknamen";
|
9092
9119
|
lut_block_name2[131]="2. SCL Flags";
|
9093
|
-
|
9094
|
-
|
9120
|
+
lut_block_name2[132]="2. SCL Flags orig";
|
9121
|
+
lut_blocklen_max=544;
|
9095
9122
|
init_status|=1;
|
9096
9123
|
}
|
9097
9124
|
|
@@ -9115,7 +9142,7 @@ static void init_atoi_table(void)
|
|
9115
9142
|
* # retvals: Struktur, um Pr�fziffermethode und Pr�fziffer in einer #
|
9116
9143
|
* # threadfesten Version zur�ckzugeben #
|
9117
9144
|
* # #
|
9118
|
-
* # Copyright (C) 2002-2009 Michael Plugge <
|
9145
|
+
* # Copyright (C) 2002-2009 Michael Plugge <konto_check@yahoo.com> #
|
9119
9146
|
* ###########################################################################
|
9120
9147
|
*/
|
9121
9148
|
|
@@ -9151,7 +9178,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
9151
9178
|
|
9152
9179
|
switch(pz_methode){
|
9153
9180
|
|
9154
|
-
#line 9489 "konto_check.lxx"
|
9155
9181
|
/* Berechnungsmethoden 00 bis 09 +���3
|
9156
9182
|
Berechnung nach der Methode 00 +���4 */
|
9157
9183
|
/*
|
@@ -10988,6 +11014,10 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
10988
11014
|
* # Stellennr.: 1 2 3 4 5 6 7 8 9 10 #
|
10989
11015
|
* # Kontonr.: x x x x x x x x x P #
|
10990
11016
|
* # Gewichtung: 0 0 0 0 A 5 8 4 2 (A = 10) #
|
11017
|
+
* # #
|
11018
|
+
* # Es gibt noch einen Sonderfall, der in der IBAN-Regel 49 angegeben #
|
11019
|
+
* # ist: Konten mit 9 an der ersten oder 5. Stelle enthalten keine #
|
11020
|
+
* # Pr�fziffer. sondern sind ohne Pr�fung als richtig anzusehen. #
|
10991
11021
|
* ######################################################################
|
10992
11022
|
*/
|
10993
11023
|
case 44:
|
@@ -11486,7 +11516,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
11486
11516
|
* ######################################################################
|
11487
11517
|
*/
|
11488
11518
|
|
11489
|
-
#line 11500 "konto_check.lxx"
|
11490
11519
|
case 51:
|
11491
11520
|
if(*(kto+2)=='9'){ /* Ausnahme */
|
11492
11521
|
|
@@ -11748,8 +11777,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
11748
11777
|
else
|
11749
11778
|
return FALSE;
|
11750
11779
|
|
11751
|
-
#line 11714 "konto_check.lxx"
|
11752
|
-
#line 11716 "konto_check.lxx"
|
11753
11780
|
/* Berechnung nach der Methode 53 +���4 */
|
11754
11781
|
/*
|
11755
11782
|
* ######################################################################
|
@@ -12048,7 +12075,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
12048
12075
|
* # bewerten. #
|
12049
12076
|
* ######################################################################
|
12050
12077
|
*/
|
12051
|
-
#line 11985 "konto_check.lxx"
|
12052
12078
|
case 57:
|
12053
12079
|
#if DEBUG>0
|
12054
12080
|
if(retvals){
|
@@ -12694,7 +12720,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
12694
12720
|
* # Pr�fzifferberechnung) #
|
12695
12721
|
* ######################################################################
|
12696
12722
|
*/
|
12697
|
-
#line 12565 "konto_check.lxx"
|
12698
12723
|
case 66:
|
12699
12724
|
#if DEBUG>0
|
12700
12725
|
case 2066:
|
@@ -20103,7 +20128,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
20103
20128
|
return NOT_IMPLEMENTED;
|
20104
20129
|
}
|
20105
20130
|
}
|
20106
|
-
#line 18777 "konto_check.lxx"
|
20107
20131
|
|
20108
20132
|
/*
|
20109
20133
|
* ######################################################################
|
@@ -20129,7 +20153,7 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
|
|
20129
20153
|
* # blz: Bankleitzahl (immer 8-stellig) #
|
20130
20154
|
* # kto: Kontonummer #
|
20131
20155
|
* # #
|
20132
|
-
* # Copyright (C) 2007 Michael Plugge <
|
20156
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
20133
20157
|
* ###########################################################################
|
20134
20158
|
*/
|
20135
20159
|
|
@@ -20194,14 +20218,13 @@ DLL_EXPORT int kto_check_blz(char *blz,char *kto)
|
|
20194
20218
|
* # retvals: Struktur, in der die benutzte Pr�fziffermethode und die #
|
20195
20219
|
* # berechnete Pr�fziffer zur�ckgegeben werden #
|
20196
20220
|
* # #
|
20197
|
-
* # Copyright (C) 2013 Michael Plugge <
|
20221
|
+
* # Copyright (C) 2013 Michael Plugge <konto_check@yahoo.com> #
|
20198
20222
|
* ###########################################################################
|
20199
20223
|
*/
|
20200
20224
|
|
20201
20225
|
#if DEBUG>0 /* es werden einige Funktionen benutzt, die nur in der Debug-Variante enthalten sind */
|
20202
20226
|
DLL_EXPORT int kto_check_regel_dbg(char *blz,char *kto,char *blz2,char *kto2,const char **bic,int *regel,RETVAL *retvals)
|
20203
20227
|
{
|
20204
|
-
#line 18875 "konto_check.lxx"
|
20205
20228
|
char *blz_o,buffer[32],kto_o[16],*blz_n,*kto_n,*ptr,*dptr;
|
20206
20229
|
const char *bicp;
|
20207
20230
|
int ret,ret_regel,r,i;
|
@@ -20250,7 +20273,6 @@ DLL_EXPORT int kto_check_regel_dbg(char *blz,char *kto,char *blz2,char *kto2,con
|
|
20250
20273
|
}
|
20251
20274
|
else /* BLZ und Kto gleich */
|
20252
20275
|
return ret;
|
20253
|
-
#line 18924 "konto_check.lxx"
|
20254
20276
|
}
|
20255
20277
|
|
20256
20278
|
#else /* !DEBUG */
|
@@ -20303,7 +20325,7 @@ DLL_EXPORT int kto_check_regel(char *blz,char *kto)
|
|
20303
20325
|
* # kto: Kontonummer #
|
20304
20326
|
* # blz: Bankleitzahl (immer 8-stellig) #
|
20305
20327
|
* # #
|
20306
|
-
* # Copyright (C) 2007 Michael Plugge <
|
20328
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
20307
20329
|
* ###########################################################################
|
20308
20330
|
*/
|
20309
20331
|
|
@@ -20345,7 +20367,7 @@ DLL_EXPORT int kto_check_pz(char *pz,char *kto,char *blz)
|
|
20345
20367
|
* # retvals: Struktur, in der die benutzte Pr�fziffermethode und die #
|
20346
20368
|
* # berechnete Pr�fziffer zur�ckgegeben werden #
|
20347
20369
|
* # #
|
20348
|
-
* # Copyright (C) 2007 Michael Plugge <
|
20370
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
20349
20371
|
* ###########################################################################
|
20350
20372
|
*/
|
20351
20373
|
|
@@ -20398,10 +20420,9 @@ DLL_EXPORT int kto_check_blz_dbg(char *blz,char *kto,RETVAL *retvals)
|
|
20398
20420
|
* # retvals: Struktur, in der die benutzte Pr�fziffermethode und die #
|
20399
20421
|
* # berechnete Pr�fziffer zur�ckgegeben werden #
|
20400
20422
|
* # #
|
20401
|
-
* # Copyright (C) 2007 Michael Plugge <
|
20423
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
20402
20424
|
* ###########################################################################
|
20403
20425
|
*/
|
20404
|
-
#line 19075 "konto_check.lxx"
|
20405
20426
|
DLL_EXPORT int kto_check_pz_dbg(char *pz,char *kto,char *blz,RETVAL *retvals)
|
20406
20427
|
{
|
20407
20428
|
int untermethode,pz_methode;
|
@@ -20437,7 +20458,7 @@ DLL_EXPORT int kto_check_pz_dbg(char *pz,char *kto,char *blz,RETVAL *retvals){re
|
|
20437
20458
|
* # statt eines numerischen Wertes. Die Funktion wurde zun�chst f�r die #
|
20438
20459
|
* # Perl-Variante eingef�hrt. #
|
20439
20460
|
* # #
|
20440
|
-
* # Copyright (C) 2007 Michael Plugge <
|
20461
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
20441
20462
|
* ###########################################################################
|
20442
20463
|
*/
|
20443
20464
|
|
@@ -20489,7 +20510,7 @@ DLL_EXPORT const char *kto_check_str(char *x_blz,char *kto,char *lut_name)
|
|
20489
20510
|
* # kto: Kontonummer #
|
20490
20511
|
* # lut_name: Name der Lookup-Datei oder NULL (f�r DEFAULT_LUT_NAME) #
|
20491
20512
|
* # #
|
20492
|
-
* # Copyright (C) 2002-2007 Michael Plugge <
|
20513
|
+
* # Copyright (C) 2002-2007 Michael Plugge <konto_check@yahoo.com> #
|
20493
20514
|
* ###########################################################################
|
20494
20515
|
*/
|
20495
20516
|
|
@@ -20571,7 +20592,7 @@ DLL_EXPORT int kto_check(char *pz_or_blz,char *kto,char *lut_name)
|
|
20571
20592
|
* # die Anzahl der Banken die zu dem BIC geh�ren, in der Variablen cnt #
|
20572
20593
|
* # zur�ckgegeben (optional). #
|
20573
20594
|
* # #
|
20574
|
-
* # Copyright (C) 2013 Michael Plugge <
|
20595
|
+
* # Copyright (C) 2013 Michael Plugge <konto_check@yahoo.com> #
|
20575
20596
|
* ###########################################################################
|
20576
20597
|
*/
|
20577
20598
|
|
@@ -20637,7 +20658,6 @@ DLL_EXPORT int get_lut_info2_b(char *lutname,int *version,char **prolog_p,char *
|
|
20637
20658
|
}
|
20638
20659
|
else
|
20639
20660
|
**user_info_p=0;
|
20640
|
-
#line 19296 "konto_check.lxx"
|
20641
20661
|
FREE(prolog);
|
20642
20662
|
return OK;
|
20643
20663
|
}
|
@@ -20663,7 +20683,7 @@ DLL_EXPORT int get_lut_info2_b(char *lutname,int *version,char **prolog_p,char *
|
|
20663
20683
|
* # INVALID_LUT_FILE Fehler in der LUT-Datei (Format, CRC...) #
|
20664
20684
|
* # OK Erfolg #
|
20665
20685
|
* # #
|
20666
|
-
* # Copyright (C) 2007 Michael Plugge <
|
20686
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
20667
20687
|
* ######################################################################
|
20668
20688
|
*/
|
20669
20689
|
|
@@ -20702,7 +20722,7 @@ DLL_EXPORT int get_lut_info(char **info,char *lut_name)
|
|
20702
20722
|
* # keinen Speicher freigeben kann, der von C aus allokiert wurde. #
|
20703
20723
|
* # Auch in C# ist die Speicherverwaltung nicht einfach m�glich. #
|
20704
20724
|
* # #
|
20705
|
-
* # Copyright (C) 2010 Michael Plugge <
|
20725
|
+
* # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
|
20706
20726
|
* ######################################################################
|
20707
20727
|
*/
|
20708
20728
|
|
@@ -20728,7 +20748,7 @@ DLL_EXPORT void *kc_alloc(int size,int *retval)
|
|
20728
20748
|
* # Diese Funktion ist Teil des alten Interfaces und wurde als Wrapper #
|
20729
20749
|
* # zu den neuen Routinen umgestellt. #
|
20730
20750
|
* # #
|
20731
|
-
* # Copyright (C) 2007 Michael Plugge <
|
20751
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
20732
20752
|
* ###########################################################################
|
20733
20753
|
*/
|
20734
20754
|
|
@@ -20747,7 +20767,7 @@ DLL_EXPORT int cleanup_kto(void)
|
|
20747
20767
|
* # Diese Funktion gibt die Version und das Datum der Kompilierung der #
|
20748
20768
|
* # konto_check library als String zur�ck. .#
|
20749
20769
|
* # #
|
20750
|
-
* # Copyright (C) 2007 Michael Plugge <
|
20770
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
20751
20771
|
* ###########################################################################
|
20752
20772
|
*/
|
20753
20773
|
|
@@ -20772,20 +20792,20 @@ DLL_EXPORT const char *get_kto_check_version_x(int mode)
|
|
20772
20792
|
case 3:
|
20773
20793
|
return __DATE__ ", " __TIME__; /* Compilierdatum und -zeit */
|
20774
20794
|
case 4: /* Datum der Pr�fziffermethode */
|
20775
|
-
if(
|
20776
|
-
return "
|
20795
|
+
if(pz_aenderungen_aktivieren_2019_12)
|
20796
|
+
return "09.12.2019";
|
20777
20797
|
else
|
20778
|
-
return "
|
20798
|
+
return "09.09.2019 (Aenderungen vom 09.12.2019 enthalten aber noch nicht aktiviert)";
|
20779
20799
|
case 5:
|
20780
|
-
return "
|
20800
|
+
return "09.09.2019";
|
20781
20801
|
case 6:
|
20782
|
-
return "
|
20802
|
+
return "13. April 2023"; /* Klartext-Datum der Bibliotheksversion */
|
20783
20803
|
case 7:
|
20784
20804
|
return "final"; /* Versions-Typ der Bibliotheksversion (development, beta, final) */
|
20785
20805
|
case 8:
|
20786
20806
|
return "6"; /* Hauptversionszahl */
|
20787
20807
|
case 9:
|
20788
|
-
return "
|
20808
|
+
return "15"; /* Unterversionszahl */
|
20789
20809
|
}
|
20790
20810
|
}
|
20791
20811
|
|
@@ -20800,7 +20820,7 @@ DLL_EXPORT const char *get_kto_check_version_x(int mode)
|
|
20800
20820
|
* # Variante vor allem f�r Perl gedacht ist; in der Umgebung ist es #
|
20801
20821
|
* # etwas komplizierter, ein Array zu �bergeben. #
|
20802
20822
|
* # #
|
20803
|
-
* # Copyright (C) 2008 Michael Plugge <
|
20823
|
+
* # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
|
20804
20824
|
* ###########################################################################
|
20805
20825
|
*/
|
20806
20826
|
|
@@ -20831,7 +20851,7 @@ DLL_EXPORT int dump_lutfile_p(char *outputname,UINT4 felder)
|
|
20831
20851
|
* # dem Array required spezifiziert. Es werden nur Felder der Deutschen #
|
20832
20852
|
* # Bundesbank ber�cksichtigt; andere Felder werden ignoriert. #
|
20833
20853
|
* # #
|
20834
|
-
* # Copyright (C) 2007 Michael Plugge <
|
20854
|
+
* # Copyright (C) 2007 Michael Plugge <konto_check@yahoo.com> #
|
20835
20855
|
* ###########################################################################
|
20836
20856
|
*/
|
20837
20857
|
|
@@ -20931,7 +20951,6 @@ DLL_EXPORT int dump_lutfile(char *outputname,UINT4 *required)
|
|
20931
20951
|
default:
|
20932
20952
|
break;
|
20933
20953
|
}
|
20934
|
-
#line 19529 "konto_check.lxx"
|
20935
20954
|
fputc('\n',out);
|
20936
20955
|
while(--i)fputc('=',out);
|
20937
20956
|
fputc('\n',out);
|
@@ -21027,7 +21046,7 @@ DLL_EXPORT int dump_lutfile(char *outputname,UINT4 *required)
|
|
21027
21046
|
* # #
|
21028
21047
|
* # Update 2014: die IBAN-Regeln werden jetzt auch ausgegeben. #
|
21029
21048
|
* # #
|
21030
|
-
* # Copyright (C) 2007,2009 Michael Plugge <
|
21049
|
+
* # Copyright (C) 2007,2009 Michael Plugge <konto_check@yahoo.com> #
|
21031
21050
|
* ###########################################################################
|
21032
21051
|
*/
|
21033
21052
|
|
@@ -21138,7 +21157,7 @@ DLL_EXPORT int rebuild_blzfile(char *inputname,char *outputname,UINT4 set)
|
|
21138
21157
|
* # #
|
21139
21158
|
* # R�ckgabe: der zu der �bergebenen IBAN geh�rende BIC #
|
21140
21159
|
* # #
|
21141
|
-
* # Copyright (C) 2008 Michael Plugge <
|
21160
|
+
* # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
|
21142
21161
|
* ###########################################################################
|
21143
21162
|
*/
|
21144
21163
|
|
@@ -21241,7 +21260,7 @@ DLL_EXPORT const char *iban2bic(char *iban,int *retval,char *blz,char *kto)
|
|
21241
21260
|
* # die Parameter blz und kto wird allerdings Speicher allokiert und per #
|
21242
21261
|
* # Handle wieder zur�ckgegeben. #
|
21243
21262
|
* # #
|
21244
|
-
* # Copyright (C) 2014 Michael Plugge <
|
21263
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
21245
21264
|
* ###########################################################################
|
21246
21265
|
*/
|
21247
21266
|
|
@@ -21256,7 +21275,6 @@ DLL_EXPORT const char *iban2bic_id(char *iban,int *retval,int *blz,int *kto)
|
|
21256
21275
|
return iban2bic(iban,retval,b,k);
|
21257
21276
|
}
|
21258
21277
|
|
21259
|
-
#line 19854 "konto_check.lxx"
|
21260
21278
|
/* Funktion iban_gen(), iban_bic_gen() und iban_bic_gen1 +���1 */
|
21261
21279
|
/* ###########################################################################
|
21262
21280
|
* # Die Funktion iban_gen generiert aus Bankleitzahl und Kontonummer eine #
|
@@ -21328,7 +21346,7 @@ DLL_EXPORT const char *iban2bic_id(char *iban,int *retval,int *blz,int *kto)
|
|
21328
21346
|
* # fehlschl�gt, wird der entsprechende Fehlercode in die #
|
21329
21347
|
* # Variable retval geschrieben und NULL zur�ckgegeben. #
|
21330
21348
|
* # #
|
21331
|
-
* # Copyright (C) 2008,2013 Michael Plugge <
|
21349
|
+
* # Copyright (C) 2008,2013 Michael Plugge <konto_check@yahoo.com> #
|
21332
21350
|
* ###########################################################################
|
21333
21351
|
*/
|
21334
21352
|
|
@@ -21580,7 +21598,7 @@ DLL_EXPORT char *iban_bic_gen(char *blz,char *kto,const char **bicp,char *blz2,c
|
|
21580
21598
|
* # Parameter: #
|
21581
21599
|
* # ci: Creditor Identifiers der getestet werden soll #
|
21582
21600
|
* # #
|
21583
|
-
* # Copyright (C) 2013 Michael Plugge <
|
21601
|
+
* # Copyright (C) 2013 Michael Plugge <konto_check@yahoo.com> #
|
21584
21602
|
* ###########################################################################
|
21585
21603
|
*/
|
21586
21604
|
|
@@ -21666,7 +21684,7 @@ DLL_EXPORT int ci_check(char *ci)
|
|
21666
21684
|
* # retval: NULL oder Adresse einer Variablen, in die der R�ckgabe- #
|
21667
21685
|
* # wert der Kontopr�fung geschrieben wird #
|
21668
21686
|
* # #
|
21669
|
-
* # Copyright (C) 2008 Michael Plugge <
|
21687
|
+
* # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
|
21670
21688
|
* ###########################################################################
|
21671
21689
|
*/
|
21672
21690
|
|
@@ -21937,7 +21955,7 @@ DLL_EXPORT int iban_check(char *iban,int *retval)
|
|
21937
21955
|
* # zeichen nach jeweils 5 Zeichen) geschrieben wird, oder #
|
21938
21956
|
* # NULL (falls nicht ben�tigt) #
|
21939
21957
|
* # #
|
21940
|
-
* # Copyright (C) 2008 Michael Plugge <
|
21958
|
+
* # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
|
21941
21959
|
* ###########################################################################
|
21942
21960
|
*/
|
21943
21961
|
|
@@ -22003,7 +22021,7 @@ DLL_EXPORT int ipi_gen(char *zweck,char *dst,char *papier)
|
|
22003
22021
|
* # kc_id2ptr() kann das Handle in einen String umgewandelt werden, sowie #
|
22004
22022
|
* # mittels der Funktion kc_id_free() wieder freigegeben werden. #
|
22005
22023
|
* # #
|
22006
|
-
* # Copyright (C) 2014 Michael Plugge <
|
22024
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
22007
22025
|
* ###########################################################################
|
22008
22026
|
*/
|
22009
22027
|
|
@@ -22032,7 +22050,7 @@ DLL_EXPORT int ipi_gen_id(char *zweck,int *dst,int *papier)
|
|
22032
22050
|
* # Parameter: #
|
22033
22051
|
* # zweck: der Strukturierte Verwendungszweck, der getestet werden soll #
|
22034
22052
|
* # #
|
22035
|
-
* # Copyright (C) 2008 Michael Plugge <
|
22053
|
+
* # Copyright (C) 2008 Michael Plugge <konto_check@yahoo.com> #
|
22036
22054
|
* ###########################################################################
|
22037
22055
|
*/
|
22038
22056
|
|
@@ -22086,10 +22104,9 @@ DLL_EXPORT int ipi_check(char *zweck)
|
|
22086
22104
|
* # Felder der LUT-Datei, z.B. Banken in einem bestimmten Ort oder mit #
|
22087
22105
|
* # einem bestimmten Namen etc. #
|
22088
22106
|
* # #
|
22089
|
-
* # Copyright (C) 2009,2011 Michael Plugge <
|
22107
|
+
* # Copyright (C) 2009,2011 Michael Plugge <konto_check@yahoo.com> #
|
22090
22108
|
* ###########################################################################
|
22091
22109
|
*/
|
22092
|
-
#line 20687 "konto_check.lxx"
|
22093
22110
|
|
22094
22111
|
/* Funktion volltext_zeichen() +���2 */
|
22095
22112
|
/* Diese Funktion gibt f�r Zeichen die bei der Volltextsuche g�ltig sind
|
@@ -22936,7 +22953,6 @@ static int qcmp_bic_h(const void *ap,const void *bp)
|
|
22936
22953
|
return a-b;
|
22937
22954
|
}
|
22938
22955
|
|
22939
|
-
#line 21534 "konto_check.lxx"
|
22940
22956
|
|
22941
22957
|
/* Funktion qcmp_bic() +���3 */
|
22942
22958
|
static int qcmp_bic(const void *ap,const void *bp)
|
@@ -23041,7 +23057,6 @@ static int qcmp_iban_regel(const void *ap,const void *bp)
|
|
23041
23057
|
else
|
23042
23058
|
return a-b;
|
23043
23059
|
}
|
23044
|
-
#line 21549 "konto_check.lxx"
|
23045
23060
|
|
23046
23061
|
/* Funktion init_blzf() +���2
|
23047
23062
|
* Diese Funktion initialisiert das Array mit den Bankleitzahlen f�r alle
|
@@ -23109,7 +23124,6 @@ DLL_EXPORT int konto_check_idx2blz(int idx,int *zweigstelle,int *retval)
|
|
23109
23124
|
}
|
23110
23125
|
|
23111
23126
|
/* Funktion suche_int1() +���2 */
|
23112
|
-
#line 21617 "konto_check.lxx"
|
23113
23127
|
static int suche_int1(int a1,int a2,int *anzahl,int **start_idx,int **zweigstellen_base,int **blz_base,
|
23114
23128
|
int **base_name,int **base_sort,int(*cmp)(const void *, const void *),int cnt,int such_idx)
|
23115
23129
|
{
|
@@ -23160,7 +23174,6 @@ static int suche_int1(int a1,int a2,int *anzahl,int **start_idx,int **zweigstell
|
|
23160
23174
|
}
|
23161
23175
|
|
23162
23176
|
/* Funktion suche_int2() +���2 */
|
23163
|
-
#line 21668 "konto_check.lxx"
|
23164
23177
|
static int suche_int2(int a1,int a2,int *anzahl,int **start_idx,int **zweigstellen_base,int **blz_base,
|
23165
23178
|
int **base_name,int **base_sort,int(*cmp)(const void *, const void *),int such_idx,int pz_suche)
|
23166
23179
|
{
|
@@ -23775,7 +23788,6 @@ static int cmp_suche_sort(const void *ap,const void *bp)
|
|
23775
23788
|
DLL_EXPORT int lut_suche_sort1(int anzahl,int *blz_base,int *zweigstellen_base,int *idx,int *anzahl_o,int **idx_op,int **cnt_op,int uniq)
|
23776
23789
|
{
|
23777
23790
|
int i,j,last_idx,*idx_a,*cnt_o;
|
23778
|
-
#line 22284 "konto_check.lxx"
|
23779
23791
|
|
23780
23792
|
if(idx_op)*idx_op=NULL;
|
23781
23793
|
if(cnt_op)*cnt_op=NULL;
|
@@ -23857,7 +23869,6 @@ DLL_EXPORT int lut_suche_sort2(int anzahl,int *blz,int *zweigstellen,int *anzahl
|
|
23857
23869
|
return OK;
|
23858
23870
|
}
|
23859
23871
|
|
23860
|
-
#line 22367 "konto_check.lxx"
|
23861
23872
|
/* Funktion lut_suche_volltext() +���2 */
|
23862
23873
|
DLL_EXPORT int lut_suche_volltext(char *such_wort,int *anzahl,int *base_name_idx,char ***base_name,
|
23863
23874
|
int *zweigstellen_anzahl,int **start_idx,int **zweigstellen_base,int **blz_base)
|
@@ -23987,7 +23998,7 @@ DLL_EXPORT int lut_suche_blz(int such1,int such2,int *anzahl,int **start_idx,int
|
|
23987
23998
|
return suche_int1(such1,such2,anzahl,start_idx,zweigstellen_base,blz_base,&blz_f,&sort_blz,qcmp_blz,cnt,0);
|
23988
23999
|
}
|
23989
24000
|
|
23990
|
-
#line
|
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;
|
@@ -24078,7 +24086,6 @@ DLL_EXPORT int lut_suche_regel(int such1,int such2,int *anzahl,int **start_idx,i
|
|
24078
24086
|
return suche_int2(such1*100,such2*100+99,anzahl,start_idx,zweigstellen_base,blz_base,&iban_regel,&sort_iban_regel,qcmp_iban_regel,LUT2_IBAN_REGEL_SORT,0);
|
24079
24087
|
}
|
24080
24088
|
|
24081
|
-
#line 22550 "konto_check.lxx"
|
24082
24089
|
|
24083
24090
|
/* Funktion lut_suche_bic_h() +���2 */
|
24084
24091
|
DLL_EXPORT int lut_suche_bic_h(char *such_name,int *anzahl,int **start_idx,int **zweigstellen_base,
|
@@ -24170,7 +24177,7 @@ DLL_EXPORT int bic_info(char *bic1,int mode,int *anzahl,int *start_idx)
|
|
24170
24177
|
/* ###############################################################################
|
24171
24178
|
* # Diese Funktionen bestimmen das �nderungsflag zu einem BIC bzw. einer IBAN #
|
24172
24179
|
* # #
|
24173
|
-
* # Copyright (C) 2014 Michael Plugge <
|
24180
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
24174
24181
|
* ###############################################################################
|
24175
24182
|
*/
|
24176
24183
|
|
@@ -24193,7 +24200,7 @@ DLL_EXPORT int iban_aenderung(char *iban,int filiale,int*retval)
|
|
24193
24200
|
/* ###############################################################################
|
24194
24201
|
* # Diese Funktionen bestimmen das L�schflag zu einem BIC bzw. einer IBAN #
|
24195
24202
|
* # #
|
24196
|
-
* # Copyright (C) 2014 Michael Plugge <
|
24203
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
24197
24204
|
* ###############################################################################
|
24198
24205
|
*/
|
24199
24206
|
|
@@ -24216,7 +24223,7 @@ DLL_EXPORT int iban_loeschung(char *iban,int filiale,int*retval)
|
|
24216
24223
|
/* ###############################################################################
|
24217
24224
|
* # Diese Funktionen bestimmen die IBAN-Regel zu einem BIC bzw. einer IBAN #
|
24218
24225
|
* # #
|
24219
|
-
* # Copyright (C) 2014 Michael Plugge <
|
24226
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
24220
24227
|
* ###############################################################################
|
24221
24228
|
*/
|
24222
24229
|
|
@@ -24239,7 +24246,7 @@ DLL_EXPORT int iban_iban_regel(char *iban,int filiale,int*retval)
|
|
24239
24246
|
/* ###############################################################################
|
24240
24247
|
* # Diese Funktionen bestimmen die Nachfolge-BLZ zu einem BIC bzw. einer IBAN #
|
24241
24248
|
* # #
|
24242
|
-
* # Copyright (C) 2014 Michael Plugge <
|
24249
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
24243
24250
|
* ###############################################################################
|
24244
24251
|
*/
|
24245
24252
|
|
@@ -24262,7 +24269,7 @@ DLL_EXPORT int iban_nachfolge_blz(char *iban,int filiale,int*retval)
|
|
24262
24269
|
/* ###############################################################################
|
24263
24270
|
* # Diese Funktionen bestimmen die Laufende Nr. zu einem BIC bzw. einer IBAN #
|
24264
24271
|
* # #
|
24265
|
-
* # Copyright (C) 2014 Michael Plugge <
|
24272
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
24266
24273
|
* ###############################################################################
|
24267
24274
|
*/
|
24268
24275
|
|
@@ -24285,7 +24292,7 @@ DLL_EXPORT int iban_nr(char *iban,int filiale,int*retval)
|
|
24285
24292
|
/* ###############################################################################
|
24286
24293
|
* # Diese Funktionen bestimmen den PAN zu einem BIC bzw. einer IBAN #
|
24287
24294
|
* # #
|
24288
|
-
* # Copyright (C) 2014 Michael Plugge <
|
24295
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
24289
24296
|
* ###############################################################################
|
24290
24297
|
*/
|
24291
24298
|
|
@@ -24308,7 +24315,7 @@ DLL_EXPORT int iban_pan(char *iban,int filiale,int*retval)
|
|
24308
24315
|
/* ###############################################################################
|
24309
24316
|
* # Diese Funktionen bestimmen die PLZ der Bank zu einem BIC bzw. einer IBAN #
|
24310
24317
|
* # #
|
24311
|
-
* # Copyright (C) 2014 Michael Plugge <
|
24318
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
24312
24319
|
* ###############################################################################
|
24313
24320
|
*/
|
24314
24321
|
|
@@ -24331,7 +24338,7 @@ DLL_EXPORT int iban_plz(char *iban,int filiale,int*retval)
|
|
24331
24338
|
/* ###############################################################################
|
24332
24339
|
* # Diese Funktionen bestimmen die Pr�fziffer zu einem BIC bzw. einer IBAN #
|
24333
24340
|
* # #
|
24334
|
-
* # Copyright (C) 2014 Michael Plugge <
|
24341
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
24335
24342
|
* ###############################################################################
|
24336
24343
|
*/
|
24337
24344
|
|
@@ -24354,7 +24361,7 @@ DLL_EXPORT int iban_pz(char *iban,int filiale,int*retval)
|
|
24354
24361
|
/* ###############################################################################
|
24355
24362
|
* # Diese Funktionen bestimmen den BIC zu einem BIC bzw. einer IBAN #
|
24356
24363
|
* # #
|
24357
|
-
* # Copyright (C) 2014 Michael Plugge <
|
24364
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
24358
24365
|
* ###############################################################################
|
24359
24366
|
*/
|
24360
24367
|
|
@@ -24377,7 +24384,7 @@ DLL_EXPORT const char *iban_bic(char *iban,int filiale,int*retval)
|
|
24377
24384
|
/* ###############################################################################
|
24378
24385
|
* # Diese Funktionen bestimmen den BIC der Hauptstelle zu einem BIC bzw. einer IBAN#
|
24379
24386
|
* # #
|
24380
|
-
* # Copyright (C) 2014 Michael Plugge <
|
24387
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
24381
24388
|
* ###############################################################################
|
24382
24389
|
*/
|
24383
24390
|
|
@@ -24400,7 +24407,7 @@ DLL_EXPORT const char *iban_bic_h(char *iban,int filiale,int*retval)
|
|
24400
24407
|
/* ###############################################################################
|
24401
24408
|
* # Diese Funktionen bestimmen den Name der Bank zu einem BIC bzw. einer IBAN #
|
24402
24409
|
* # #
|
24403
|
-
* # Copyright (C) 2014 Michael Plugge <
|
24410
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
24404
24411
|
* ###############################################################################
|
24405
24412
|
*/
|
24406
24413
|
|
@@ -24423,7 +24430,7 @@ DLL_EXPORT const char *iban_name(char *iban,int filiale,int*retval)
|
|
24423
24430
|
/* ###############################################################################
|
24424
24431
|
* # Diese Funktionen bestimmen den Kurzname der Bank zu einem BIC bzw. einer IBAN#
|
24425
24432
|
* # #
|
24426
|
-
* # Copyright (C) 2014 Michael Plugge <
|
24433
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
24427
24434
|
* ###############################################################################
|
24428
24435
|
*/
|
24429
24436
|
|
@@ -24446,7 +24453,7 @@ DLL_EXPORT const char *iban_name_kurz(char *iban,int filiale,int*retval)
|
|
24446
24453
|
/* ###############################################################################
|
24447
24454
|
* # Diese Funktionen bestimmen den Ort einer Bank zu einem BIC bzw. einer IBAN #
|
24448
24455
|
* # #
|
24449
|
-
* # Copyright (C) 2014 Michael Plugge <
|
24456
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
24450
24457
|
* ###############################################################################
|
24451
24458
|
*/
|
24452
24459
|
|
@@ -24464,7 +24471,6 @@ DLL_EXPORT const char *iban_ort(char *iban,int filiale,int*retval)
|
|
24464
24471
|
{
|
24465
24472
|
return iban_fkt_s(iban,filiale,retval,lut_ort);
|
24466
24473
|
}
|
24467
|
-
#line 22639 "konto_check.lxx"
|
24468
24474
|
|
24469
24475
|
static int bic_fkt_c(char *bic1,int mode,int filiale,int *retval,char *base,int error)
|
24470
24476
|
{
|
@@ -24773,7 +24779,7 @@ static const char *iban_fkt_s(char *iban,int filiale,int *retval,const char*(*fk
|
|
24773
24779
|
* # val: Daten #
|
24774
24780
|
* # size: Gr��e des Datenblocks (nur bei set_default_bin() ) #
|
24775
24781
|
* # #
|
24776
|
-
* # Copyright (C) 2010 Michael Plugge <
|
24782
|
+
* # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
|
24777
24783
|
* ###########################################################################
|
24778
24784
|
*/
|
24779
24785
|
|
@@ -24829,7 +24835,7 @@ DLL_EXPORT int kto_check_set_default_bin(char *key,char *val,int size)
|
|
24829
24835
|
* # Diese Funktion initialisiert die Variablen f�r den Default-Block und #
|
24830
24836
|
* # l�scht evl. vorhandene Werte. #
|
24831
24837
|
* # #
|
24832
|
-
* # Copyright (C) 2010 Michael Plugge <
|
24838
|
+
* # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
|
24833
24839
|
* ###########################################################################
|
24834
24840
|
*/
|
24835
24841
|
|
@@ -24865,7 +24871,7 @@ static int kto_check_clear_default(void)
|
|
24865
24871
|
* # lut_name: Name der LUT-Datei #
|
24866
24872
|
* # block_id: ID in der LUT-Datei f�r den Block #
|
24867
24873
|
* # #
|
24868
|
-
* # Copyright (C) 2010 Michael Plugge <
|
24874
|
+
* # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
|
24869
24875
|
* ###########################################################################
|
24870
24876
|
*/
|
24871
24877
|
|
@@ -24944,7 +24950,7 @@ DLL_EXPORT int kto_check_init_default(char *lut_name,int block_id)
|
|
24944
24950
|
* # val: Wert (R�ckgabe per Referenz) #
|
24945
24951
|
* # size: Gr��e des Datenblocks (per Referenz) #
|
24946
24952
|
* # #
|
24947
|
-
* # Copyright (C) 2010 Michael Plugge <
|
24953
|
+
* # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
|
24948
24954
|
* ###########################################################################
|
24949
24955
|
*/
|
24950
24956
|
|
@@ -24976,7 +24982,7 @@ DLL_EXPORT int kto_check_get_default(char *key,char **val,int *size)
|
|
24976
24982
|
* # keys: Array mit den Schl�sseln (R�ckgabe per Referenz) #
|
24977
24983
|
* # cnt: Anzahl (R�ckgabe per Referenz) #
|
24978
24984
|
* # #
|
24979
|
-
* # Copyright (C) 2010 Michael Plugge <
|
24985
|
+
* # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
|
24980
24986
|
* ###########################################################################
|
24981
24987
|
*/
|
24982
24988
|
|
@@ -25004,7 +25010,7 @@ DLL_EXPORT int kto_check_default_keys(char ***keys,int *cnt)
|
|
25004
25010
|
* # lutfile: LUT-Datei in die der Block geschrieben werden soll #
|
25005
25011
|
* # block_id: ID in der LUT-Datei f�r den Block #
|
25006
25012
|
* # #
|
25007
|
-
* # Copyright (C) 2010 Michael Plugge <
|
25013
|
+
* # Copyright (C) 2010 Michael Plugge <konto_check@yahoo.com> #
|
25008
25014
|
* ###########################################################################
|
25009
25015
|
*/
|
25010
25016
|
|
@@ -25049,7 +25055,7 @@ DLL_EXPORT int kto_check_write_default(char *lutfile,int block_id)
|
|
25049
25055
|
* # Funktion mit dem Parameter 0 aufgerufen wird, wird nur die aktuelle #
|
25050
25056
|
* # Kodierung zur�ckgegeben. #
|
25051
25057
|
* # #
|
25052
|
-
* # Copyright (C) 2011 Michael Plugge <
|
25058
|
+
* # Copyright (C) 2011 Michael Plugge <konto_check@yahoo.com> #
|
25053
25059
|
* ###########################################################################
|
25054
25060
|
*/
|
25055
25061
|
|
@@ -25200,7 +25206,7 @@ DLL_EXPORT int kto_check_encoding(int mode)
|
|
25200
25206
|
* # Diese Funktion entspricht der Funktion kto_check_encoding(); allerdings #
|
25201
25207
|
* # ist der R�ckgabewert nicht numerisch, sondern ein String. #
|
25202
25208
|
* # #
|
25203
|
-
* # Copyright (C) 2011 Michael Plugge <
|
25209
|
+
* # Copyright (C) 2011 Michael Plugge <konto_check@yahoo.com> #
|
25204
25210
|
* ###########################################################################
|
25205
25211
|
*/
|
25206
25212
|
|
@@ -25258,7 +25264,7 @@ DLL_EXPORT const char *kto_check_encoding_str(int mode)
|
|
25258
25264
|
* # 0: Flag abfragen, nicht ver�ndern #
|
25259
25265
|
* # -1: Flag l�schen, Speicher der raw-Daten freigeben #
|
25260
25266
|
* # #
|
25261
|
-
* # Copyright (C) 2011 Michael Plugge <
|
25267
|
+
* # Copyright (C) 2011 Michael Plugge <konto_check@yahoo.com> #
|
25262
25268
|
* ###########################################################################
|
25263
25269
|
*/
|
25264
25270
|
|
@@ -25295,7 +25301,7 @@ DLL_EXPORT int keep_raw_data(int mode)
|
|
25295
25301
|
* # Diese Funktion konvertiert einen gelesenen LUT-Block in die gew�nschte #
|
25296
25302
|
* # Kodierung. Der urspr�nglich allokierte Speicher wird wieder freigegeben.#
|
25297
25303
|
* # #
|
25298
|
-
* # Copyright (C) 2011 Michael Plugge <
|
25304
|
+
* # Copyright (C) 2011 Michael Plugge <konto_check@yahoo.com> #
|
25299
25305
|
* ###########################################################################
|
25300
25306
|
*/
|
25301
25307
|
|
@@ -25753,7 +25759,6 @@ DLL_EXPORT const char *pz2str(int pz,int *ret)
|
|
25753
25759
|
default: return "???";
|
25754
25760
|
}
|
25755
25761
|
}
|
25756
|
-
#line 23594 "konto_check.lxx"
|
25757
25762
|
|
25758
25763
|
/* Funktion lut_keine_iban_berechnung() +���1 */
|
25759
25764
|
/*
|
@@ -25868,7 +25873,7 @@ DLL_EXPORT int lut_keine_iban_berechnung(char *iban_blacklist,char *lutfile,int
|
|
25868
25873
|
/* Funktion pz_aenderungen_enable() +���1 */
|
25869
25874
|
/* ###########################################################################
|
25870
25875
|
* # Die Funktion pz_aenderungen_enable() dient dazu, den Status des Flags #
|
25871
|
-
* #
|
25876
|
+
* # pz_aenderungen_aktivieren_2019_12 abzufragen bzw. zu setzen. Falls die Variable #
|
25872
25877
|
* # set 1 ist, werden die �nderungen aktiviert, falls sie 0 ist, werden #
|
25873
25878
|
* # die �nderungen deaktiviert. Bei allen anderen Werten wird das aktuelle #
|
25874
25879
|
* # Flag nicht ver�ndert, sondern nur der Status zur�ckgegeben. #
|
@@ -25878,14 +25883,14 @@ DLL_EXPORT int lut_keine_iban_berechnung(char *iban_blacklist,char *lutfile,int
|
|
25878
25883
|
* # anderer Wert: nur Abfrage des Status #
|
25879
25884
|
* # R�ckgabe: aktueller Status des Flags # #
|
25880
25885
|
* # #
|
25881
|
-
* # Copyright (C) 2014 Michael Plugge <
|
25886
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
25882
25887
|
* ###########################################################################
|
25883
25888
|
*/
|
25884
25889
|
|
25885
25890
|
DLL_EXPORT int pz_aenderungen_enable(int set)
|
25886
25891
|
{
|
25887
|
-
if(set==0 || set==1)
|
25888
|
-
return
|
25892
|
+
if(set==0 || set==1)pz_aenderungen_aktivieren_2019_12=set;
|
25893
|
+
return pz_aenderungen_aktivieren_2019_12;
|
25889
25894
|
}
|
25890
25895
|
|
25891
25896
|
#if DEBUG>0
|
@@ -25902,7 +25907,7 @@ DLL_EXPORT int pz_aenderungen_enable(int set)
|
|
25902
25907
|
* # txt: Textvariable #
|
25903
25908
|
* # i: Integervariable (4 Byte) #
|
25904
25909
|
* # #
|
25905
|
-
* # Copyright (C) 2006 Michael Plugge <
|
25910
|
+
* # Copyright (C) 2006 Michael Plugge <konto_check@yahoo.com> #
|
25906
25911
|
* ###########################################################################
|
25907
25912
|
*/
|
25908
25913
|
|
@@ -25917,7 +25922,6 @@ DLL_EXPORT char *kto_check_test_vars(char *txt,UINT4 i)
|
|
25917
25922
|
#endif
|
25918
25923
|
|
25919
25924
|
|
25920
|
-
#line 23758 "konto_check.lxx"
|
25921
25925
|
/* Funktionen *_id() +���1 */
|
25922
25926
|
/* ###########################################################################
|
25923
25927
|
* # Die folgenden Funktionen sind die id-Varianten von Funktionen, die #
|
@@ -25931,7 +25935,7 @@ DLL_EXPORT char *kto_check_test_vars(char *txt,UINT4 i)
|
|
25931
25935
|
* # Da der Aufruf f�r jede Funktionsgruppe gleich ist, wird er per Makro #
|
25932
25936
|
* # gemacht. #
|
25933
25937
|
* # #
|
25934
|
-
* # Copyright (C) 2014 Michael Plugge <
|
25938
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
25935
25939
|
* ###########################################################################
|
25936
25940
|
*/
|
25937
25941
|
/* numerische R�ckgabewerte in eine id umwandeln */
|
@@ -26074,7 +26078,7 @@ DLL_EXPORT int current_lutfile_name_id(int *set,int *level,int *retval)
|
|
26074
26078
|
* # den etwas eigenwilligen (Schleich-)Weg �ber IntPtr nehmen, damit der #
|
26075
26079
|
* # Speicher wieder freigegeben werden kann... #
|
26076
26080
|
* # #
|
26077
|
-
* # Copyright (C) 2014 Michael Plugge <
|
26081
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
26078
26082
|
* ###########################################################################
|
26079
26083
|
*/
|
26080
26084
|
|
@@ -26092,7 +26096,7 @@ DLL_EXPORT int current_lutfile_name_id(int *set,int *level,int *retval)
|
|
26092
26096
|
* # von kc_id_free() wird es auch nicht gel�scht, der Funktionsaufruf gibt #
|
26093
26097
|
* # nur OK zur�ck, ohne etwas zu tun. #
|
26094
26098
|
* # #
|
26095
|
-
* # Copyright (C) 2014 Michael Plugge <
|
26099
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
26096
26100
|
* ###########################################################################
|
26097
26101
|
*/
|
26098
26102
|
|
@@ -26136,7 +26140,7 @@ static int kc_ptr2id(char *ptr,int *handle,int release_mem)
|
|
26136
26140
|
* # Diese Funktion gibt den Pointer zu einem Handle zur�ck. Dieser Wert #
|
26137
26141
|
* # kann dann als String-Pointer in den DLL-Routinen verwendet werden. #
|
26138
26142
|
* # #
|
26139
|
-
* # Copyright (C) 2014 Michael Plugge <
|
26143
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
26140
26144
|
* ###########################################################################
|
26141
26145
|
*/
|
26142
26146
|
|
@@ -26157,7 +26161,7 @@ DLL_EXPORT char *kc_id2ptr(int handle,int *retval)
|
|
26157
26161
|
* # Diese Funktion gibt den Speicher, der zu einem Handle geh�rt, wieder #
|
26158
26162
|
* # frei und setzt den entsprechenden Slot-Eintrag auf NULL. #
|
26159
26163
|
* # #
|
26160
|
-
* # Copyright (C) 2014 Michael Plugge <
|
26164
|
+
* # Copyright (C) 2014 Michael Plugge <konto_check@yahoo.com> #
|
26161
26165
|
* ###########################################################################
|
26162
26166
|
*/
|
26163
26167
|
|
@@ -26181,7 +26185,7 @@ DLL_EXPORT int kc_id_free(int handle)
|
|
26181
26185
|
* # cmp_bic() ist die Vergleichsfunktion f�r bic_binsearch() und #
|
26182
26186
|
* # lut_write_scl_blocks() (zum Sortieren der BICs). #
|
26183
26187
|
* # #
|
26184
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26188
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26185
26189
|
* ###########################################################################
|
26186
26190
|
*/
|
26187
26191
|
static int cmp_bic(const void *ap,const void *bp)
|
@@ -26201,7 +26205,7 @@ static int cmp_bic(const void *ap,const void *bp)
|
|
26201
26205
|
* # Die Funktion bic_binsearch() implementiert eine bin�re Suche im #
|
26202
26206
|
* # BIC-Array (rekursiv) #
|
26203
26207
|
* # #
|
26204
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26208
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26205
26209
|
* ###########################################################################
|
26206
26210
|
*/
|
26207
26211
|
static int bic_binsearch(int links,int rechts,char *bic)
|
@@ -26226,10 +26230,18 @@ static int bic_binsearch(int links,int rechts,char *bic)
|
|
26226
26230
|
* # letzten Stellen existiert (Extension BIC); falls dieser auch nicht #
|
26227
26231
|
* # existiert, wird als Letztes ein 8-stelliger BIC gesucht (Wildcard-BIC). #
|
26228
26232
|
* # #
|
26229
|
-
* #
|
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> #
|
26230
26242
|
* ###########################################################################
|
26231
26243
|
*/
|
26232
|
-
static int scl_idx(const char *bic,int *retval)
|
26244
|
+
static int scl_idx(const char *bic,int *retval,int *raw)
|
26233
26245
|
{
|
26234
26246
|
char such_bic[12];
|
26235
26247
|
int i,idx;
|
@@ -26238,41 +26250,75 @@ static int scl_idx(const char *bic,int *retval)
|
|
26238
26250
|
if(retval)*retval=NO_SCL_BLOCKS_LOADED;
|
26239
26251
|
return -1;
|
26240
26252
|
}
|
26241
|
-
|
26253
|
+
if(*bic=='!'){
|
26254
|
+
*raw=1;
|
26255
|
+
strcpy(such_bic,bic+1);
|
26256
|
+
}
|
26257
|
+
else{
|
26258
|
+
*raw=0;
|
26259
|
+
strcpy(such_bic,bic);
|
26260
|
+
}
|
26242
26261
|
for(i=0;i<11 && such_bic[i];i++)such_bic[i]=toupper(such_bic[i]);
|
26243
26262
|
|
26244
|
-
|
26245
|
-
|
26263
|
+
/*
|
26264
|
+
* Auszug aus dem SCL Directory Notice (Seite 13):
|
26265
|
+
*
|
26266
|
+
* The SCL Directory contains 11-character and 8-character BICs. The following convention
|
26267
|
+
* applies.
|
26268
|
+
*
|
26269
|
+
* - An 8-character BIC is a wild card and represents the reachability of any 11-character
|
26270
|
+
* BIC with the same first eight characters, as well as the reachability of the 8-character
|
26271
|
+
* BIC itself.
|
26272
|
+
*
|
26273
|
+
* - An 11-character BIC with the branch code extension "XXX" represents itself as well
|
26274
|
+
* as the reachability of the corresponding 8-character BIC. But it is not a wild card.
|
26275
|
+
*
|
26276
|
+
* - All other 11-character BICs represent the reachability of the respective individual
|
26277
|
+
* 11-character BIC only.
|
26278
|
+
*
|
26279
|
+
* https://www.bundesbank.de/resource/blob/626738/8f82d10dd08993a1941e8441cf5a9fd4/mL/scl-directory-notice-ab-nov2018-data.pdf
|
26280
|
+
*
|
26281
|
+
* Punkt 2 hat eine h�here Priorit�t als Punkt 1, denn eine 8-stellige BIC ist mit selbiger
|
26282
|
+
* um 'XXX' erweiterten BIC identisch.
|
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
|
+
*
|
26287
|
+
*/
|
26288
|
+
|
26289
|
+
if(such_bic[8]==0){ /* Such-BIC 8-stellig angegeben; BIC zuerst mit XXX extension suchen */
|
26290
|
+
such_bic[8]=such_bic[9]=such_bic[10]='X';
|
26291
|
+
such_bic[11]=0;
|
26292
|
+
idx=bic_binsearch(0,scl_cnt-1,such_bic);
|
26293
|
+
if(idx>=0){
|
26294
|
+
if(retval)*retval=OK_SCL_EXTENSION_BIC_USED;
|
26295
|
+
return idx;
|
26296
|
+
}
|
26297
|
+
else
|
26298
|
+
such_bic[8]=0; /* wieder zur�cksetzen */
|
26299
|
+
}
|
26300
|
+
|
26301
|
+
/* nun den BIC suchen wie angegeben */
|
26302
|
+
idx=bic_binsearch(0,scl_cnt-1,such_bic);
|
26246
26303
|
if(idx>=0){
|
26247
26304
|
if(retval)*retval=OK;
|
26248
26305
|
return idx;
|
26249
26306
|
}
|
26307
|
+
else if(such_bic[8]==0){
|
26308
|
+
if(retval)*retval=SCL_BIC_NOT_FOUND;
|
26309
|
+
return -1;
|
26310
|
+
}
|
26250
26311
|
else{
|
26251
|
-
|
26252
|
-
|
26253
|
-
|
26254
|
-
|
26255
|
-
if(
|
26256
|
-
|
26257
|
-
return idx;
|
26258
|
-
}
|
26259
|
-
else{
|
26260
|
-
if(retval)*retval=SCL_BIC_NOT_FOUND;
|
26261
|
-
return -1;
|
26262
|
-
}
|
26312
|
+
/* Wildcard-BIC suchen, nur noch bei 11-stelligen BICs */
|
26313
|
+
such_bic[8]=0;
|
26314
|
+
idx=bic_binsearch(0,scl_cnt-1,such_bic);
|
26315
|
+
if(idx>=0){
|
26316
|
+
if(retval)*retval=OK_SCL_WILDCARD_BIC_USED;
|
26317
|
+
return idx;
|
26263
26318
|
}
|
26264
26319
|
else{
|
26265
|
-
|
26266
|
-
|
26267
|
-
idx=bic_binsearch(0,scl_cnt,such_bic);
|
26268
|
-
if(idx>=0){
|
26269
|
-
if(retval)*retval=OK_SCL_WILDCARD_BIC_USED;
|
26270
|
-
return idx;
|
26271
|
-
}
|
26272
|
-
else{
|
26273
|
-
if(retval)*retval=SCL_BIC_NOT_FOUND;
|
26274
|
-
return -1;
|
26275
|
-
}
|
26320
|
+
if(retval)*retval=SCL_BIC_NOT_FOUND;
|
26321
|
+
return -1;
|
26276
26322
|
}
|
26277
26323
|
}
|
26278
26324
|
}
|
@@ -26289,21 +26335,22 @@ static int scl_idx(const char *bic,int *retval)
|
|
26289
26335
|
* # direkter Download-Link: #
|
26290
26336
|
* # https://www.bundesbank.de/Redaktion/DE/Downloads/Aufgaben/Unbarer_Zahlungsverkehr/SEPA/verzeichnis_der_erreichbaren_zahlungsdienstleister.csv?__blob=publicationFile
|
26291
26337
|
* # #
|
26292
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26338
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26293
26339
|
* ###########################################################################
|
26294
26340
|
*/
|
26295
26341
|
DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
|
26296
26342
|
{
|
26297
|
-
char c,*ptr,buffer[512],*scl_name_block_s,*scl_bic_block_s
|
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="";
|
26298
26345
|
char scl_gueltigkeit[16],scl_gueltigkeit_iso[16];
|
26299
|
-
int cnt,i,rv
|
26346
|
+
int cnt,i,j,rv,*iptr,jahr,monat,tag,f1,f2,f3,f4,f5;
|
26300
26347
|
FILE *in,*lut;
|
26301
26348
|
struct stat stat_buffer;
|
26302
26349
|
struct tm z;
|
26303
26350
|
time_t ts;
|
26304
26351
|
|
26305
26352
|
if(!(in=fopen(inputfile,"r")))RETURN(FILE_READ_ERROR);
|
26306
|
-
fgets(buffer,512,in);
|
26353
|
+
if(!fgets(buffer,512,in))RETURN(SCL_INPUT_FORMAT_ERROR);
|
26307
26354
|
if(strncmp(buffer,"Gueltig ab / valid from ",24))return SCL_INPUT_FORMAT_ERROR;
|
26308
26355
|
for(ptr=buffer;!isdigit(*ptr);ptr++);
|
26309
26356
|
strncpy(scl_gueltigkeit,ptr,16);
|
@@ -26317,26 +26364,31 @@ DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
|
|
26317
26364
|
z.tm_mon=monat;
|
26318
26365
|
z.tm_year=jahr-1900;
|
26319
26366
|
ts=mktime(&z);
|
26320
|
-
snprintf(scl_gueltigkeit_iso,16,"%4d-%02d-%02d",jahr,monat,tag);
|
26321
|
-
fgets(buffer,512,in);
|
26322
|
-
|
26323
|
-
|
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);
|
26324
26372
|
stat(inputfile,&stat_buffer);
|
26325
|
-
|
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 */
|
26326
26375
|
|
26327
26376
|
scl_bic_array=(char **)calloc(sizeof(char*),cnt);
|
26328
26377
|
scl_name_array=(char **)calloc(sizeof(char*),cnt);
|
26329
26378
|
scl_flags_array=(char **)calloc(sizeof(char*),cnt);
|
26379
|
+
scl_flags_array_o=(char **)calloc(sizeof(char*),cnt);
|
26330
26380
|
|
26331
26381
|
scl_bic_block=ptr1=(char *)calloc(12,cnt);
|
26332
26382
|
scl_name_block=ptr2=(char *)calloc(150,cnt);
|
26333
26383
|
scl_flags_block=ptr3=(char *)calloc(6,cnt);
|
26384
|
+
scl_flags_block_orig=ptr4=(char *)calloc(6,cnt);
|
26334
26385
|
|
26335
26386
|
/* SCL-Datei einlesen */
|
26336
26387
|
for(cnt=0;fgets(buffer,512,in);){
|
26337
26388
|
scl_bic_array[cnt]=ptr1;
|
26338
26389
|
scl_name_array[cnt]=ptr2;
|
26339
26390
|
scl_flags_array[cnt]=ptr3;
|
26391
|
+
scl_flags_array_o[cnt]=ptr4;
|
26340
26392
|
cnt++;
|
26341
26393
|
for(ptr=buffer;*ptr!=';' && !isspace(*ptr);*ptr1++=*ptr++);
|
26342
26394
|
c=*ptr;
|
@@ -26351,12 +26403,12 @@ DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
|
|
26351
26403
|
ptr2++;
|
26352
26404
|
|
26353
26405
|
/* ptr steht nun auf den Flags */
|
26354
|
-
*ptr3++=*ptr;
|
26355
|
-
*ptr3++=*(ptr+2);
|
26356
|
-
*ptr3++=*(ptr+4);
|
26357
|
-
*ptr3++=*(ptr+6);
|
26358
|
-
*ptr3++=*(ptr+8);
|
26359
|
-
*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;
|
26360
26412
|
}
|
26361
26413
|
fclose(in);
|
26362
26414
|
|
@@ -26367,34 +26419,89 @@ DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
|
|
26367
26419
|
/* vor dem Abspeichern der Blocks nach BICs sortieren */
|
26368
26420
|
qsort(iptr,cnt,sizeof(int),cmp_bic);
|
26369
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;
|
26370
26456
|
ptr1=scl_bic_block_s=(char *)calloc(1,ptr1-scl_bic_block+16);
|
26371
26457
|
ptr2=scl_name_block_s=(char *)calloc(1,ptr2-scl_name_block+16);
|
26372
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);
|
26373
26460
|
for(i=0;i<cnt;i++){
|
26374
26461
|
j=iptr[i];
|
26375
26462
|
for(ptr=scl_bic_array[j];(*ptr1++=*ptr++););
|
26376
26463
|
for(ptr=scl_name_array[j];(*ptr2++=*ptr++););
|
26377
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++););
|
26378
26484
|
}
|
26379
26485
|
free(iptr);
|
26380
26486
|
|
26381
26487
|
if(!(lut=fopen(lutfile,"rb+")))RETURN(FILE_WRITE_ERROR);
|
26382
26488
|
|
26383
26489
|
/* zun�chst mal testen ob es auch eine LUT2 Datei ist */
|
26384
|
-
if(!(ptr=fgets(buffer,
|
26490
|
+
if(!(ptr=fgets(buffer,512,lut)))RETURN(FILE_READ_ERROR);
|
26385
26491
|
while(*ptr && *ptr!='\n')ptr++;
|
26386
26492
|
*--ptr=0;
|
26387
26493
|
if(!strcmp(buffer,"BLZ Lookup Table/Format 1."))RETURN(LUT1_FILE_USED); /* alte LUT-Datei */
|
26388
26494
|
if(strcmp(buffer,"BLZ Lookup Table/Format 2."))RETURN(INVALID_LUT_FILE); /* keine LUT-Datei */
|
26389
26495
|
|
26390
26496
|
/* nun die Blocks schreiben */
|
26391
|
-
rewind(lut);
|
26392
|
-
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);
|
26393
26499
|
if((rv=write_lut_block_int(lut,LUT2_SCL_INFO,strlen(buffer)+1,buffer))!=OK){
|
26394
26500
|
fclose(lut);
|
26395
26501
|
FREE(scl_bic_block_s);
|
26396
26502
|
FREE(scl_name_block_s);
|
26397
26503
|
FREE(scl_flags_block_s);
|
26504
|
+
FREE(scl_flags_block_o);
|
26398
26505
|
RETURN(rv);
|
26399
26506
|
}
|
26400
26507
|
if((rv=write_lut_block_int(lut,LUT2_SCL_BIC,(UINT4)(ptr1-scl_bic_block_s+1),scl_bic_block_s))!=OK){
|
@@ -26402,6 +26509,7 @@ DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
|
|
26402
26509
|
FREE(scl_bic_block_s);
|
26403
26510
|
FREE(scl_name_block_s);
|
26404
26511
|
FREE(scl_flags_block_s);
|
26512
|
+
FREE(scl_flags_block_o);
|
26405
26513
|
RETURN(rv);
|
26406
26514
|
}
|
26407
26515
|
if((rv=write_lut_block_int(lut,LUT2_SCL_NAME,(UINT4)(ptr2-scl_name_block_s+1),scl_name_block_s))!=OK){
|
@@ -26409,13 +26517,23 @@ DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
|
|
26409
26517
|
FREE(scl_bic_block_s);
|
26410
26518
|
FREE(scl_name_block_s);
|
26411
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);
|
26412
26529
|
RETURN(rv);
|
26413
26530
|
}
|
26414
|
-
if((rv=write_lut_block_int(lut,
|
26531
|
+
if((rv=write_lut_block_int(lut,LUT2_SCL_FLAGS_ORIG,(UINT4)(ptr3-scl_flags_block_s+1),scl_flags_block_s))!=OK){
|
26415
26532
|
fclose(lut);
|
26416
26533
|
FREE(scl_bic_block_s);
|
26417
26534
|
FREE(scl_name_block_s);
|
26418
26535
|
FREE(scl_flags_block_s);
|
26536
|
+
FREE(scl_flags_block_o);
|
26419
26537
|
RETURN(rv);
|
26420
26538
|
}
|
26421
26539
|
|
@@ -26423,26 +26541,26 @@ DLL_EXPORT int lut_write_scl_blocks(char *inputfile,char *lutfile)
|
|
26423
26541
|
FREE(scl_bic_block_s);
|
26424
26542
|
FREE(scl_name_block_s);
|
26425
26543
|
FREE(scl_flags_block_s);
|
26544
|
+
FREE(scl_flags_block_o);
|
26426
26545
|
RETURN(OK);
|
26427
26546
|
}
|
26428
26547
|
|
26429
|
-
#line 24267 "konto_check.lxx"
|
26430
26548
|
/* Funktion lut_scl_init() +���3 */
|
26431
26549
|
/* ###########################################################################
|
26432
26550
|
* # Die Funktion lut_scl_init() liest die SCL-Blocks aus einer LUT-Datei #
|
26433
26551
|
* # und initialisiert die zugeh�rigen internen Datenstrukturen. #
|
26434
26552
|
* # #
|
26435
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26553
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26436
26554
|
* ###########################################################################
|
26437
26555
|
*/
|
26438
26556
|
DLL_EXPORT int lut_scl_init(char *lut_name)
|
26439
26557
|
{
|
26440
26558
|
char *ptr,*end;
|
26441
26559
|
int i,cnt,rv;
|
26442
|
-
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;
|
26443
26561
|
FILE *lut;
|
26444
26562
|
|
26445
|
-
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 */
|
26446
26564
|
|
26447
26565
|
if(!(lut=fopen(lut_name,"rb")))RETURN(FILE_READ_ERROR);
|
26448
26566
|
if((rv=read_lut_block_int(lut,0,LUT2_SCL_INFO,&block_size_0,&scl_info_block))<0){
|
@@ -26473,6 +26591,15 @@ DLL_EXPORT int lut_scl_init(char *lut_name)
|
|
26473
26591
|
else
|
26474
26592
|
return rv;
|
26475
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
|
+
}
|
26476
26603
|
fclose(lut);
|
26477
26604
|
if((i=sscanf(scl_info_block,"cnt: %d, TS: %ld, Gueltigkeit: %15s %15s",
|
26478
26605
|
&cnt,&scl_ts,(char *)&scl_gueltigkeit,(char *)&scl_gueltigkeit_iso))!=4)RETURN(INVALID_SCL_INFO_BLOCK);
|
@@ -26480,6 +26607,7 @@ DLL_EXPORT int lut_scl_init(char *lut_name)
|
|
26480
26607
|
scl_bic_array=(char **)calloc(sizeof(char*),cnt);
|
26481
26608
|
scl_name_array=(char **)calloc(sizeof(char*),cnt);
|
26482
26609
|
scl_flags_array=(char **)calloc(sizeof(char*),cnt);
|
26610
|
+
scl_flags_array_o=(char **)calloc(sizeof(char*),cnt);
|
26483
26611
|
|
26484
26612
|
for(i=0,ptr=scl_bic_block,end=scl_bic_block+block_size_1;i<cnt && ptr<end;i++){
|
26485
26613
|
scl_bic_array[i]=ptr;
|
@@ -26495,6 +26623,11 @@ DLL_EXPORT int lut_scl_init(char *lut_name)
|
|
26495
26623
|
scl_flags_array[i++]=ptr;
|
26496
26624
|
while(*ptr++ && ptr<end);
|
26497
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
|
+
}
|
26498
26631
|
scl_cnt=cnt;
|
26499
26632
|
RETURN(OK);
|
26500
26633
|
}
|
@@ -26504,7 +26637,7 @@ DLL_EXPORT int lut_scl_init(char *lut_name)
|
|
26504
26637
|
* # Die Funktion lut_scl_info() gibt Infos �ber die Anzahl der Eintr�ge im #
|
26505
26638
|
* # SCL-Verzeichnis sowie das Datum, ab wann die Datei g�ltig ist. #
|
26506
26639
|
* # #
|
26507
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26640
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26508
26641
|
* ###########################################################################
|
26509
26642
|
*/
|
26510
26643
|
DLL_EXPORT int lut_scl_info(char *lutfile,int *cnt,const char **gueltigkeit,const char **gueltigkeit_iso)
|
@@ -26540,16 +26673,16 @@ DLL_EXPORT int lut_scl_info(char *lutfile,int *cnt,const char **gueltigkeit,cons
|
|
26540
26673
|
* # Die Funktion lut_scl_multi() gibt alle Eintr�ge des SCL-Verzeichnisses #
|
26541
26674
|
* # zu einem gegebenen BIC zur�ck. #
|
26542
26675
|
* # #
|
26543
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26676
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26544
26677
|
* ###########################################################################
|
26545
26678
|
*/
|
26546
26679
|
DLL_EXPORT int lut_scl_multi(char *bic,const char **scl_flags,const char **used_bic,const char **scl_name)
|
26547
26680
|
{
|
26548
|
-
int i,rv;
|
26681
|
+
int i,rv,raw;
|
26549
26682
|
|
26550
|
-
i=scl_idx(bic,&rv);
|
26683
|
+
i=scl_idx(bic,&rv,&raw);
|
26551
26684
|
if(rv<0)return rv;
|
26552
|
-
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];
|
26553
26686
|
if(used_bic)*used_bic=scl_bic_array[i];
|
26554
26687
|
if(scl_name)*scl_name=scl_name_array[i];
|
26555
26688
|
return rv;
|
@@ -26562,15 +26695,15 @@ DLL_EXPORT int lut_scl_multi(char *bic,const char **scl_flags,const char **used_
|
|
26562
26695
|
* # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
|
26563
26696
|
* # entsprechende Fehlercode (<0) gesetzt. #
|
26564
26697
|
* # #
|
26565
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26698
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26566
26699
|
* ###########################################################################
|
26567
26700
|
*/
|
26568
26701
|
DLL_EXPORT int lut_scl_sct(char *bic,int *retval)
|
26569
26702
|
{
|
26570
26703
|
char *flags;
|
26571
|
-
int i,rv;
|
26704
|
+
int i,rv,raw;
|
26572
26705
|
|
26573
|
-
i=scl_idx(bic,&rv);
|
26706
|
+
i=scl_idx(bic,&rv,&raw);
|
26574
26707
|
if(rv<0){
|
26575
26708
|
if(retval)*retval=rv;
|
26576
26709
|
return -1;
|
@@ -26588,15 +26721,15 @@ DLL_EXPORT int lut_scl_sct(char *bic,int *retval)
|
|
26588
26721
|
* # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
|
26589
26722
|
* # entsprechende Fehlercode (<0) gesetzt. #
|
26590
26723
|
* # #
|
26591
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26724
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26592
26725
|
* ###########################################################################
|
26593
26726
|
*/
|
26594
26727
|
DLL_EXPORT int lut_scl_sdd(char *bic,int *retval)
|
26595
26728
|
{
|
26596
26729
|
char *flags;
|
26597
|
-
int i,rv;
|
26730
|
+
int i,rv,raw;
|
26598
26731
|
|
26599
|
-
i=scl_idx(bic,&rv);
|
26732
|
+
i=scl_idx(bic,&rv,&raw);
|
26600
26733
|
if(rv<0){
|
26601
26734
|
if(retval)*retval=rv;
|
26602
26735
|
return -1;
|
@@ -26615,15 +26748,15 @@ DLL_EXPORT int lut_scl_sdd(char *bic,int *retval)
|
|
26615
26748
|
* # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
|
26616
26749
|
* # entsprechende Fehlercode (<0) gesetzt. #
|
26617
26750
|
* # #
|
26618
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26751
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26619
26752
|
* ###########################################################################
|
26620
26753
|
*/
|
26621
26754
|
DLL_EXPORT int lut_scl_cor1(char *bic,int *retval)
|
26622
26755
|
{
|
26623
26756
|
char *flags;
|
26624
|
-
int i,rv;
|
26757
|
+
int i,rv,raw;
|
26625
26758
|
|
26626
|
-
i=scl_idx(bic,&rv);
|
26759
|
+
i=scl_idx(bic,&rv,&raw);
|
26627
26760
|
if(rv<0){
|
26628
26761
|
if(retval)*retval=rv;
|
26629
26762
|
return -1;
|
@@ -26641,15 +26774,15 @@ DLL_EXPORT int lut_scl_cor1(char *bic,int *retval)
|
|
26641
26774
|
* # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
|
26642
26775
|
* # entsprechende Fehlercode (<0) gesetzt. #
|
26643
26776
|
* # #
|
26644
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26777
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26645
26778
|
* ###########################################################################
|
26646
26779
|
*/
|
26647
26780
|
DLL_EXPORT int lut_scl_b2b(char *bic,int *retval)
|
26648
26781
|
{
|
26649
26782
|
char *flags;
|
26650
|
-
int i,rv;
|
26783
|
+
int i,rv,raw;
|
26651
26784
|
|
26652
|
-
i=scl_idx(bic,&rv);
|
26785
|
+
i=scl_idx(bic,&rv,&raw);
|
26653
26786
|
if(rv<0){
|
26654
26787
|
if(retval)*retval=rv;
|
26655
26788
|
return -1;
|
@@ -26667,15 +26800,15 @@ DLL_EXPORT int lut_scl_b2b(char *bic,int *retval)
|
|
26667
26800
|
* # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
|
26668
26801
|
* # entsprechende Fehlercode (<0) gesetzt. #
|
26669
26802
|
* # #
|
26670
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26803
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26671
26804
|
* ###########################################################################
|
26672
26805
|
*/
|
26673
26806
|
DLL_EXPORT int lut_scl_scc(char *bic,int *retval)
|
26674
26807
|
{
|
26675
26808
|
char *flags;
|
26676
|
-
int i,rv;
|
26809
|
+
int i,rv,raw;
|
26677
26810
|
|
26678
|
-
i=scl_idx(bic,&rv);
|
26811
|
+
i=scl_idx(bic,&rv,&raw);
|
26679
26812
|
if(rv<0){
|
26680
26813
|
if(retval)*retval=rv;
|
26681
26814
|
return -1;
|
@@ -26693,17 +26826,17 @@ DLL_EXPORT int lut_scl_scc(char *bic,int *retval)
|
|
26693
26826
|
* # einen BIC umgewandelt werden mu�, m�ssen auch die Blocks BLZ und BIC #
|
26694
26827
|
* # der LUT-Datei initialisiert sein, sonst wird ein Fehler zur�ckgegeben. #
|
26695
26828
|
* # #
|
26696
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26829
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26697
26830
|
* ###########################################################################
|
26698
26831
|
*/
|
26699
26832
|
DLL_EXPORT int lut_scl_multi_blz(char *blz,const char **scl_flags,const char **used_bic,const char **scl_name)
|
26700
26833
|
{
|
26701
26834
|
const char *bic;
|
26702
|
-
int i,rv;
|
26835
|
+
int i,rv,raw;
|
26703
26836
|
|
26704
26837
|
bic=lut_bic(blz,0,&rv);
|
26705
26838
|
if(rv<0)return rv;
|
26706
|
-
i=scl_idx(bic,&rv);
|
26839
|
+
i=scl_idx(bic,&rv,&raw);
|
26707
26840
|
if(rv<0)return rv;
|
26708
26841
|
if(scl_flags)*scl_flags=scl_flags_array[i];
|
26709
26842
|
if(used_bic)*used_bic=scl_bic_array[i];
|
@@ -26718,14 +26851,14 @@ DLL_EXPORT int lut_scl_multi_blz(char *blz,const char **scl_flags,const char **u
|
|
26718
26851
|
* # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
|
26719
26852
|
* # entsprechende Fehlercode (<0) gesetzt. #
|
26720
26853
|
* # #
|
26721
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26854
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26722
26855
|
* ###########################################################################
|
26723
26856
|
*/
|
26724
26857
|
DLL_EXPORT int lut_scl_sct_blz(char *blz,int *retval,const char **used_bic)
|
26725
26858
|
{
|
26726
26859
|
char *flags;
|
26727
26860
|
const char *bic;
|
26728
|
-
int i,rv;
|
26861
|
+
int i,rv,raw;
|
26729
26862
|
|
26730
26863
|
bic=lut_bic(blz,0,&rv);
|
26731
26864
|
if(rv<0){
|
@@ -26734,7 +26867,7 @@ DLL_EXPORT int lut_scl_sct_blz(char *blz,int *retval,const char **used_bic)
|
|
26734
26867
|
}
|
26735
26868
|
else
|
26736
26869
|
if(retval)*retval=OK;
|
26737
|
-
i=scl_idx(bic,&rv);
|
26870
|
+
i=scl_idx(bic,&rv,&raw);
|
26738
26871
|
if(rv<0){
|
26739
26872
|
if(retval)*retval=rv;
|
26740
26873
|
return -1;
|
@@ -26753,14 +26886,14 @@ DLL_EXPORT int lut_scl_sct_blz(char *blz,int *retval,const char **used_bic)
|
|
26753
26886
|
* # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
|
26754
26887
|
* # entsprechende Fehlercode (<0) gesetzt. #
|
26755
26888
|
* # #
|
26756
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26889
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26757
26890
|
* ###########################################################################
|
26758
26891
|
*/
|
26759
26892
|
DLL_EXPORT int lut_scl_sdd_blz(char *blz,int *retval,const char **used_bic)
|
26760
26893
|
{
|
26761
26894
|
char *flags;
|
26762
26895
|
const char *bic;
|
26763
|
-
int i,rv;
|
26896
|
+
int i,rv,raw;
|
26764
26897
|
|
26765
26898
|
bic=lut_bic(blz,0,&rv);
|
26766
26899
|
if(rv<0){
|
@@ -26769,7 +26902,7 @@ DLL_EXPORT int lut_scl_sdd_blz(char *blz,int *retval,const char **used_bic)
|
|
26769
26902
|
}
|
26770
26903
|
else
|
26771
26904
|
if(retval)*retval=OK;
|
26772
|
-
i=scl_idx(bic,&rv);
|
26905
|
+
i=scl_idx(bic,&rv,&raw);
|
26773
26906
|
if(rv<0){
|
26774
26907
|
if(retval)*retval=rv;
|
26775
26908
|
return -1;
|
@@ -26789,14 +26922,14 @@ DLL_EXPORT int lut_scl_sdd_blz(char *blz,int *retval,const char **used_bic)
|
|
26789
26922
|
* # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
|
26790
26923
|
* # entsprechende Fehlercode (<0) gesetzt. #
|
26791
26924
|
* # #
|
26792
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26925
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26793
26926
|
* ###########################################################################
|
26794
26927
|
*/
|
26795
26928
|
DLL_EXPORT int lut_scl_cor1_blz(char *blz,int *retval,const char **used_bic)
|
26796
26929
|
{
|
26797
26930
|
char *flags;
|
26798
26931
|
const char *bic;
|
26799
|
-
int i,rv;
|
26932
|
+
int i,rv,raw;
|
26800
26933
|
|
26801
26934
|
bic=lut_bic(blz,0,&rv);
|
26802
26935
|
if(rv<0){
|
@@ -26805,7 +26938,7 @@ DLL_EXPORT int lut_scl_cor1_blz(char *blz,int *retval,const char **used_bic)
|
|
26805
26938
|
}
|
26806
26939
|
else
|
26807
26940
|
if(retval)*retval=OK;
|
26808
|
-
i=scl_idx(bic,&rv);
|
26941
|
+
i=scl_idx(bic,&rv,&raw);
|
26809
26942
|
if(rv<0){
|
26810
26943
|
if(retval)*retval=rv;
|
26811
26944
|
return -1;
|
@@ -26824,14 +26957,14 @@ DLL_EXPORT int lut_scl_cor1_blz(char *blz,int *retval,const char **used_bic)
|
|
26824
26957
|
* # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
|
26825
26958
|
* # entsprechende Fehlercode (<0) gesetzt. #
|
26826
26959
|
* # #
|
26827
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26960
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26828
26961
|
* ###########################################################################
|
26829
26962
|
*/
|
26830
26963
|
DLL_EXPORT int lut_scl_b2b_blz(char *blz,int *retval,const char **used_bic)
|
26831
26964
|
{
|
26832
26965
|
char *flags;
|
26833
26966
|
const char *bic;
|
26834
|
-
int i,rv;
|
26967
|
+
int i,rv,raw;
|
26835
26968
|
|
26836
26969
|
bic=lut_bic(blz,0,&rv);
|
26837
26970
|
if(rv<0){
|
@@ -26840,7 +26973,7 @@ DLL_EXPORT int lut_scl_b2b_blz(char *blz,int *retval,const char **used_bic)
|
|
26840
26973
|
}
|
26841
26974
|
else
|
26842
26975
|
if(retval)*retval=OK;
|
26843
|
-
i=scl_idx(bic,&rv);
|
26976
|
+
i=scl_idx(bic,&rv,&raw);
|
26844
26977
|
if(rv<0){
|
26845
26978
|
if(retval)*retval=rv;
|
26846
26979
|
return -1;
|
@@ -26859,14 +26992,14 @@ DLL_EXPORT int lut_scl_b2b_blz(char *blz,int *retval,const char **used_bic)
|
|
26859
26992
|
* # Im Fehlerfall wird -1 zur�ckgegeben und die Variable retval auf den #
|
26860
26993
|
* # entsprechende Fehlercode (<0) gesetzt. #
|
26861
26994
|
* # #
|
26862
|
-
* # Copyright (C) 2018 Michael Plugge <
|
26995
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26863
26996
|
* ###########################################################################
|
26864
26997
|
*/
|
26865
26998
|
DLL_EXPORT int lut_scl_scc_blz(char *blz,int *retval,const char **used_bic)
|
26866
26999
|
{
|
26867
27000
|
char *flags;
|
26868
27001
|
const char *bic;
|
26869
|
-
int i,rv;
|
27002
|
+
int i,rv,raw;
|
26870
27003
|
|
26871
27004
|
bic=lut_bic(blz,0,&rv);
|
26872
27005
|
if(rv<0){
|
@@ -26875,7 +27008,7 @@ DLL_EXPORT int lut_scl_scc_blz(char *blz,int *retval,const char **used_bic)
|
|
26875
27008
|
}
|
26876
27009
|
else
|
26877
27010
|
if(retval)*retval=OK;
|
26878
|
-
i=scl_idx(bic,&rv);
|
27011
|
+
i=scl_idx(bic,&rv,&raw);
|
26879
27012
|
if(rv<0){
|
26880
27013
|
if(retval)*retval=rv;
|
26881
27014
|
return -1;
|
@@ -26892,17 +27025,17 @@ DLL_EXPORT int lut_scl_scc_blz(char *blz,int *retval,const char **used_bic)
|
|
26892
27025
|
* # Diese Funktion entspricht der Funktion lut_scl_multi_blz(), nur wird #
|
26893
27026
|
* # die BLZ als Integer-Wert statt als String �bergeben. #
|
26894
27027
|
* # #
|
26895
|
-
* # Copyright (C) 2018 Michael Plugge <
|
27028
|
+
* # Copyright (C) 2018 Michael Plugge <konto_check@yahoo.com> #
|
26896
27029
|
* ###########################################################################
|
26897
27030
|
*/
|
26898
27031
|
DLL_EXPORT int lut_scl_multi_blz_i(int blz,const char **scl_flags,const char **used_bic,const char **scl_name)
|
26899
27032
|
{
|
26900
27033
|
const char *bic;
|
26901
|
-
int i,rv;
|
27034
|
+
int i,rv,raw;
|
26902
27035
|
|
26903
27036
|
bic=lut_bic_i(blz,0,&rv);
|
26904
27037
|
if(rv<0)return rv;
|
26905
|
-
i=scl_idx(bic,&rv);
|
27038
|
+
i=scl_idx(bic,&rv,&raw);
|
26906
27039
|
if(rv<0)return rv;
|
26907
27040
|
if(scl_flags)*scl_flags=scl_flags_array[i];
|
26908
27041
|
if(used_bic)*used_bic=scl_bic_array[i];
|
@@ -26960,6 +27093,7 @@ XI lut_info(char *lut_name,char **info1,char **info2,int *valid1,int *valid2)EXC
|
|
26960
27093
|
XI lut_info_b(char *lut_name,char **info1,char **info2,int *valid1,int *valid2)EXCLUDED
|
26961
27094
|
XI lut_info_id(char *lut_name,int *info1,int *info2,int *valid1,int *valid2)EXCLUDED
|
26962
27095
|
XI lut_valid(void)EXCLUDED
|
27096
|
+
XI lut_valid_date(char *lut_name,int *v11,int *v12,int *v21,int *v22)EXCLUDED
|
26963
27097
|
XI lut_multiple(char *b,int *cnt,int **p_blz,char ***p_name,char ***p_name_kurz,int **p_plz,char ***p_ort,
|
26964
27098
|
int **p_pan,char ***p_bic,int *p_pz,int **p_nr,char **p_aenderung,char **p_loeschung,int **p_nachfolge_blz,
|
26965
27099
|
int *id,int *cnt_all,int **start_idx)EXCLUDED
|