konto_check 6.00.0 → 6.01.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c83fbdc6f470077ee385b346063ab10f155c75e8
4
- data.tar.gz: 0144f5cd1d75acfcc684fc50c9c116e42dc45d5f
3
+ metadata.gz: e0b9ecf2e4612120b79bfbcbb3adbb22c3ded7e6
4
+ data.tar.gz: 4684d17c54d69b0cc1b01672918ce46f53ca598d
5
5
  SHA512:
6
- metadata.gz: 6db21c82515a82580558d6f445e99fd50f018d21d3d99a459f7e39a8aada42eaaf15169c7d6c6573a049bc9da9a34525e69647b5663e5d138e064ba73435f285
7
- data.tar.gz: 56fa5f762eede0fcb4e8b52a4268bca4c8be618b3feaec3057c87a53b84fe4768165d733299db1f1588744402fb40582b1411304c417d7f9729956ae27039800
6
+ metadata.gz: 156dc5a16fb7ed68ef304ca003c759e53a49779f581044f49a0fdedb394559b41925702cf0b2a30038bdb4a42b7ceb44c45e176a18fd9a17c0631242ded86adf
7
+ data.tar.gz: fd5eb01b83dccb3681c159081dfd845859ec7deb1ae38208e49c030374845f277ee898946158533c859735a1231f4ca295237194b0e525938d760c3067acda7e
@@ -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.00 (final)"
51
+ #define VERSION "6.01 (final)"
53
52
  #define VERSION_MAJOR 6
54
- #define VERSION_MINOR 00
53
+ #define VERSION_MINOR 01
55
54
  #endif
56
- #define VERSION_DATE "2017-06-13"
55
+ #define VERSION_DATE "2017-08-13"
57
56
 
58
57
  #ifndef INCLUDE_KONTO_CHECK_DE
59
58
  #define INCLUDE_KONTO_CHECK_DE 1
@@ -104,8 +103,8 @@ static lzo_align_t __LZO_MMODEL wrkmem[LZO1X_1_MEM_COMPRESS];
104
103
  #define KONTO_CHECK_VARS
105
104
  #include "konto_check.h"
106
105
 
107
- /* Flag, um die �nderungen zum Juni 2017 zu aktivieren */
108
- static int pz_aenderungen_aktivieren_2017_06;
106
+ /* Flag, um die �nderungen zum September 2017 zu aktivieren */
107
+ static int pz_aenderungen_aktivieren_2017_09;
109
108
 
110
109
  /* falls die Variable verbose_debug gesetzt wird, werden bei einigen
111
110
  * Funktionen mittels perror() zus�tzliche Debuginfos ausgegeben. Die
@@ -242,7 +241,6 @@ static int convert_encoding(char **data,UINT4 *len);
242
241
  #define free(ptr) efree(ptr)
243
242
  #endif
244
243
 
245
- #line 770 "konto_check.lxx"
246
244
 
247
245
  /* Testwert zur Markierung ung�ltiger Ziffern im BLZ-String (>8 Stellen) */
248
246
  #define BLZ_FEHLER 100000000
@@ -378,7 +376,6 @@ static int convert_encoding(char **data,UINT4 *len);
378
376
  */
379
377
  #define CHECK_RETVAL(fkt) do{if((retval=fkt)!=OK)goto fini;}while(0) /* es mu� noch aufger�umt werden, daher goto */
380
378
  #define CHECK_RETURN(fkt) do{if((retval=fkt)!=OK)return retval;}while(0)
381
- #line 911 "konto_check.lxx"
382
379
 
383
380
  /* einige Makros zur Umwandlung zwischen unsigned int und char */
384
381
  #define UCP (unsigned char*)
@@ -498,7 +495,6 @@ int pz=-777;
498
495
 
499
496
  #define E_START(x)
500
497
  #define E_END(x)
501
- #line 1036 "konto_check.lxx"
502
498
 
503
499
  /* Variable f�r die Methoden 27, 29 und 69 */
504
500
  static const int m10h_digits[4][10]={
@@ -947,7 +943,6 @@ static int create_lutfile_int(char *name, char *prolog, int slots,FILE **lut)
947
943
  * ###########################################################################
948
944
  */
949
945
 
950
- #line 1485 "konto_check.lxx"
951
946
  DLL_EXPORT int write_lut_block(char *lutname,UINT4 typ,UINT4 len,char *data)
952
947
  {
953
948
  char buffer[SLOT_BUFFER],*ptr;
@@ -985,7 +980,6 @@ DLL_EXPORT int write_lut_block(char *lutname,UINT4 typ,UINT4 len,char *data)
985
980
  * #############################################################################
986
981
  */
987
982
 
988
- #line 1523 "konto_check.lxx"
989
983
  static int write_lut_block_int(FILE *lut,UINT4 typ,UINT4 len,char *data)
990
984
  {
991
985
  char buffer[SLOT_BUFFER],*ptr,*cptr;
@@ -1121,7 +1115,6 @@ static int write_lut_block_int(FILE *lut,UINT4 typ,UINT4 len,char *data)
1121
1115
  * ###########################################################################
1122
1116
  */
1123
1117
 
1124
- #line 1659 "konto_check.lxx"
1125
1118
  DLL_EXPORT int read_lut_block(char *lutname, UINT4 typ,UINT4 *blocklen,char **data)
1126
1119
  {
1127
1120
  int retval;
@@ -1144,7 +1137,6 @@ DLL_EXPORT int read_lut_block(char *lutname, UINT4 typ,UINT4 *blocklen,char **da
1144
1137
  * ###########################################################################
1145
1138
  */
1146
1139
 
1147
- #line 1683 "konto_check.lxx"
1148
1140
  DLL_EXPORT int read_lut_slot(char *lutname,int slot,UINT4 *blocklen,char **data)
1149
1141
  {
1150
1142
  int retval;
@@ -1166,7 +1158,6 @@ DLL_EXPORT int read_lut_slot(char *lutname,int slot,UINT4 *blocklen,char **data)
1166
1158
  * ###########################################################################
1167
1159
  */
1168
1160
 
1169
- #line 1706 "konto_check.lxx"
1170
1161
  static int read_lut_block_int(FILE *lut,int slot,int typ,UINT4 *blocklen,char **data)
1171
1162
  {
1172
1163
  char buffer[SLOT_BUFFER],*ptr,*sbuffer,*dbuffer;
@@ -1256,7 +1247,6 @@ static int read_lut_block_int(FILE *lut,int slot,int typ,UINT4 *blocklen,char **
1256
1247
  FREE(sbuffer);
1257
1248
  RETURN(ERROR_MALLOC);
1258
1249
  }
1259
- #line 1811 "konto_check.lxx"
1260
1250
 
1261
1251
  if(fread(sbuffer,1,compressed_len,lut)<compressed_len){
1262
1252
  FREE(sbuffer);
@@ -2849,7 +2839,6 @@ DLL_EXPORT int lut_info_id(char *lut_name,int *info1,int *info2,int *valid1,int
2849
2839
  * ###########################################################################
2850
2840
  */
2851
2841
 
2852
- #line 3404 "konto_check.lxx"
2853
2842
  DLL_EXPORT int lut_info(char *lut_name,char **info1,char **info2,int *valid1,int *valid2)
2854
2843
  {
2855
2844
  char *ptr,*ptr1,buffer[128];
@@ -2937,7 +2926,6 @@ DLL_EXPORT int lut_info(char *lut_name,char **info1,char **info2,int *valid1,int
2937
2926
 
2938
2927
  /* Infoblocks lesen: 1. Infoblock */
2939
2928
  if((ret=read_lut_block_int(in,0,LUT2_INFO,&cnt,&ptr))==OK){
2940
- #line 3493 "konto_check.lxx"
2941
2929
  *(ptr+cnt)=0;
2942
2930
  if(valid1){
2943
2931
  for(ptr1=ptr,v1=v2=0;*ptr1 && *ptr1!='\n' && !isdigit(*ptr1);ptr1++);
@@ -2985,7 +2973,6 @@ DLL_EXPORT int lut_info(char *lut_name,char **info1,char **info2,int *valid1,int
2985
2973
 
2986
2974
  /* Infoblocks lesen: 2. Infoblock */
2987
2975
  if((ret=read_lut_block_int(in,0,LUT2_2_INFO,&cnt,&ptr))==OK){
2988
- #line 3542 "konto_check.lxx"
2989
2976
  *(ptr+cnt)=0;
2990
2977
  if(valid2){
2991
2978
  for(ptr1=ptr,v1=v2=0;*ptr1 && *ptr1!='\n' && !isdigit(*ptr1);ptr1++);
@@ -3204,7 +3191,6 @@ DLL_EXPORT int copy_lutfile(char *old_name,char *new_name,int new_slots)
3204
3191
  qsort(slotdir,slot_cnt,sizeof(int),cmp_int);
3205
3192
  for(last_slot=-1,i=0;i<(int)slot_cnt;i++)if((typ=slotdir[i]) && typ!=(UINT4)last_slot){
3206
3193
  read_lut_block_int(lut1,0,typ,&len,&data);
3207
- #line 3762 "konto_check.lxx"
3208
3194
  write_lut_block_int(lut2,typ,len,data);
3209
3195
  FREE(data);
3210
3196
  last_slot=typ;
@@ -3434,7 +3420,6 @@ DLL_EXPORT int lut_init(char *lut_name,int required,int set)
3434
3420
  * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
3435
3421
  * ###########################################################################
3436
3422
  */
3437
- #line 3992 "konto_check.lxx"
3438
3423
  DLL_EXPORT int kto_check_init(char *lut_name,int *required,int **status,int set,int incremental)
3439
3424
  {
3440
3425
  char *ptr,*dptr,*data,*eptr,*prolog,*info,*user_info,*hs=NULL,*info1,*info2,*ci=NULL,name_buffer[LUT_PATH_LEN];
@@ -3662,7 +3647,6 @@ DLL_EXPORT int kto_check_init(char *lut_name,int *required,int **status,int set,
3662
3647
  typ1=typ;
3663
3648
  if(lut2_block_status[typ]==OK)continue; /* jeden Block nur einmal einlesen */
3664
3649
  retval=read_lut_block_int(lut,0,typ,&len,&data);
3665
- #line 4221 "konto_check.lxx"
3666
3650
 
3667
3651
  switch(retval){
3668
3652
  case LUT_CRC_ERROR:
@@ -3750,7 +3734,6 @@ DLL_EXPORT int kto_check_init(char *lut_name,int *required,int **status,int set,
3750
3734
  if(typ==LUT2_2_NAME || typ==LUT2_2_NAME_KURZ){
3751
3735
  FREE(data);
3752
3736
  i=read_lut_block_int(lut,0,LUT2_2_NAME_NAME_KURZ,&len,&data);
3753
- #line 4313 "konto_check.lxx"
3754
3737
  if(i==OK){ /* was gefunden; Typ �ndern, dann weiter wie bei OK */
3755
3738
  typ=LUT2_2_NAME_NAME_KURZ;
3756
3739
  typ1=LUT2_NAME_NAME_KURZ;
@@ -4346,7 +4329,6 @@ DLL_EXPORT int lut_blocks_id(int mode,int *lut_filename,int *lut_blocks_ok,int *
4346
4329
  * ###########################################################################
4347
4330
  */
4348
4331
 
4349
- #line 4909 "konto_check.lxx"
4350
4332
  DLL_EXPORT const char *current_lutfile_name(int *set,int *level,int *retval)
4351
4333
  {
4352
4334
  if(init_status<7 || !current_lutfile){
@@ -5101,7 +5083,6 @@ static int iban_init(void)
5101
5083
  * ###########################################################################
5102
5084
  */
5103
5085
 
5104
- #line 5664 "konto_check.lxx"
5105
5086
  static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_version,RETVAL *retvals)
5106
5087
  {
5107
5088
  char tmp_buffer[16];
@@ -8173,6 +8154,9 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
8173
8154
  /* SEB AG */
8174
8155
  case 45:
8175
8156
 
8157
+ /* ab September 2017 entf�llt die Regel 45, bleibt jedoch frei */
8158
+ if(pz_aenderungen_aktivieren_2017_09)return OK;
8159
+
8176
8160
  /* Einer nach der Standard IBAN-Regel ermittelten IBAN ist stets
8177
8161
  * der BIC ESSEDE5FXXX zuzuordnen.
8178
8162
  */
@@ -8527,170 +8511,8 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
8527
8511
  /* Evangelische Darlehnsgenossenschaft eG */
8528
8512
  case 54:
8529
8513
  /* ab Juni 2017 entf�llt die Regel 54, bleibt jedoch frei */
8530
- if(pz_aenderungen_aktivieren_2017_06)return OK;
8531
-
8532
- /* Spendenkonten */
8533
- if(k1==0)switch(k2){
8534
- case 500: strcpy(kto,"0000500500"); RETURN_OK_KTO_REPLACED;
8535
- case 502: strcpy(kto,"0000502502"); RETURN_OK_KTO_REPLACED;
8536
- case 18067: strcpy(kto,"0000180670"); RETURN_OK_KTO_REPLACED;
8537
- case 484848: strcpy(kto,"0000484849"); RETURN_OK_KTO_REPLACED;
8538
- case 636306: strcpy(kto,"0000063606"); RETURN_OK_KTO_REPLACED;
8539
- case 760440: strcpy(kto,"0000160440"); RETURN_OK_KTO_REPLACED;
8540
- case 1018413: strcpy(kto,"0010108413"); RETURN_OK_KTO_REPLACED;
8541
- case 2601577: strcpy(kto,"0026015776"); RETURN_OK_KTO_REPLACED;
8542
- case 5005000: strcpy(kto,"0000500500"); RETURN_OK_KTO_REPLACED;
8543
- case 10796740: strcpy(kto,"0010796743"); RETURN_OK_KTO_REPLACED;
8544
- case 11796740: strcpy(kto,"0011796743"); RETURN_OK_KTO_REPLACED;
8545
- case 12796740: strcpy(kto,"0012796743"); RETURN_OK_KTO_REPLACED;
8546
- case 13796740: strcpy(kto,"0013796743"); RETURN_OK_KTO_REPLACED;
8547
- case 14796740: strcpy(kto,"0014796743"); RETURN_OK_KTO_REPLACED;
8548
- case 15796740: strcpy(kto,"0015796743"); RETURN_OK_KTO_REPLACED;
8549
- case 16307000: strcpy(kto,"0163107000"); RETURN_OK_KTO_REPLACED;
8550
- case 16610700: strcpy(kto,"0166107000"); RETURN_OK_KTO_REPLACED;
8551
- case 16796740: strcpy(kto,"0016796743"); RETURN_OK_KTO_REPLACED;
8552
- case 17796740: strcpy(kto,"0017796743"); RETURN_OK_KTO_REPLACED;
8553
- case 18796740: strcpy(kto,"0018796743"); RETURN_OK_KTO_REPLACED;
8554
- case 19796740: strcpy(kto,"0019796743"); RETURN_OK_KTO_REPLACED;
8555
- case 20796740: strcpy(kto,"0020796743"); RETURN_OK_KTO_REPLACED;
8556
- case 21796740: strcpy(kto,"0021796743"); RETURN_OK_KTO_REPLACED;
8557
- case 22796740: strcpy(kto,"0022796743"); RETURN_OK_KTO_REPLACED;
8558
- case 23796740: strcpy(kto,"0023796743"); RETURN_OK_KTO_REPLACED;
8559
- case 24796740: strcpy(kto,"0024796743"); RETURN_OK_KTO_REPLACED;
8560
- case 25796740: strcpy(kto,"0025796743"); RETURN_OK_KTO_REPLACED;
8561
- case 26610700: strcpy(kto,"0266107000"); RETURN_OK_KTO_REPLACED;
8562
- case 26796740: strcpy(kto,"0026796743"); RETURN_OK_KTO_REPLACED;
8563
- case 27796740: strcpy(kto,"0027796743"); RETURN_OK_KTO_REPLACED;
8564
- case 28796740: strcpy(kto,"0028796743"); RETURN_OK_KTO_REPLACED;
8565
- case 29796740: strcpy(kto,"0029796743"); RETURN_OK_KTO_REPLACED;
8566
- case 45796740: strcpy(kto,"0045796743"); RETURN_OK_KTO_REPLACED;
8567
- case 50796740: strcpy(kto,"0050796743"); RETURN_OK_KTO_REPLACED;
8568
- case 51796740: strcpy(kto,"0051796743"); RETURN_OK_KTO_REPLACED;
8569
- case 52796740: strcpy(kto,"0052796743"); RETURN_OK_KTO_REPLACED;
8570
- case 53796740: strcpy(kto,"0053796743"); RETURN_OK_KTO_REPLACED;
8571
- case 54796740: strcpy(kto,"0054796743"); RETURN_OK_KTO_REPLACED;
8572
- case 55796740: strcpy(kto,"0055796743"); RETURN_OK_KTO_REPLACED;
8573
- case 56796740: strcpy(kto,"0056796743"); RETURN_OK_KTO_REPLACED;
8574
- case 57796740: strcpy(kto,"0057796743"); RETURN_OK_KTO_REPLACED;
8575
- case 58796740: strcpy(kto,"0058796743"); RETURN_OK_KTO_REPLACED;
8576
- case 59796740: strcpy(kto,"0059796743"); RETURN_OK_KTO_REPLACED;
8577
- case 60796740: strcpy(kto,"0060796743"); RETURN_OK_KTO_REPLACED;
8578
- case 61796740: strcpy(kto,"0061796743"); RETURN_OK_KTO_REPLACED;
8579
- case 62796740: strcpy(kto,"0062796743"); RETURN_OK_KTO_REPLACED;
8580
- case 63796740: strcpy(kto,"0063796743"); RETURN_OK_KTO_REPLACED;
8581
- case 64796740: strcpy(kto,"0064796743"); RETURN_OK_KTO_REPLACED;
8582
- case 65796740: strcpy(kto,"0065796743"); RETURN_OK_KTO_REPLACED;
8583
- case 66796740: strcpy(kto,"0066796743"); RETURN_OK_KTO_REPLACED;
8584
- case 67796740: strcpy(kto,"0067796743"); RETURN_OK_KTO_REPLACED;
8585
- case 68796740: strcpy(kto,"0068796743"); RETURN_OK_KTO_REPLACED;
8586
- case 69796740: strcpy(kto,"0069796743"); RETURN_OK_KTO_REPLACED;
8587
- default: break;
8588
- }
8589
- else if(k1==17 && k2==61070000){strcpy(kto,"0176107000"); RETURN_OK_KTO_REPLACED;}
8590
- else if(k1==22 && k2==10531180){strcpy(kto,"0201053180"); RETURN_OK_KTO_REPLACED;}
8514
+ return OK;
8591
8515
 
8592
- if(version>0){ /* g�ltig ab 3.3.2014 */
8593
- if(k1==0)switch(k2){
8594
- case 624044: return OK_IBAN_WITHOUT_KC_TEST;
8595
- case 4063060: return OK_IBAN_WITHOUT_KC_TEST;
8596
- case 20111908: return OK_IBAN_WITHOUT_KC_TEST;
8597
- case 20211908: return OK_IBAN_WITHOUT_KC_TEST;
8598
- case 20311908: return OK_IBAN_WITHOUT_KC_TEST;
8599
- case 20411908: return OK_IBAN_WITHOUT_KC_TEST;
8600
- case 20511908: return OK_IBAN_WITHOUT_KC_TEST;
8601
- case 20611908: return OK_IBAN_WITHOUT_KC_TEST;
8602
- case 20711908: return OK_IBAN_WITHOUT_KC_TEST;
8603
- case 20811908: return OK_IBAN_WITHOUT_KC_TEST;
8604
- case 20911908: return OK_IBAN_WITHOUT_KC_TEST;
8605
- case 21111908: return OK_IBAN_WITHOUT_KC_TEST;
8606
- case 21211908: return OK_IBAN_WITHOUT_KC_TEST;
8607
- case 21311908: return OK_IBAN_WITHOUT_KC_TEST;
8608
- case 21411908: return OK_IBAN_WITHOUT_KC_TEST;
8609
- case 21511908: return OK_IBAN_WITHOUT_KC_TEST;
8610
- case 21611908: return OK_IBAN_WITHOUT_KC_TEST;
8611
- case 21711908: return OK_IBAN_WITHOUT_KC_TEST;
8612
- case 21811908: return OK_IBAN_WITHOUT_KC_TEST;
8613
- case 21911908: return OK_IBAN_WITHOUT_KC_TEST;
8614
- case 22111908: return OK_IBAN_WITHOUT_KC_TEST;
8615
- case 22211908: return OK_IBAN_WITHOUT_KC_TEST;
8616
- case 22311908: return OK_IBAN_WITHOUT_KC_TEST;
8617
- case 22411908: return OK_IBAN_WITHOUT_KC_TEST;
8618
- case 22511908: return OK_IBAN_WITHOUT_KC_TEST;
8619
- case 22611908: return OK_IBAN_WITHOUT_KC_TEST;
8620
- case 46211991: return OK_IBAN_WITHOUT_KC_TEST;
8621
- case 50111908: return OK_IBAN_WITHOUT_KC_TEST;
8622
- case 50211908: return OK_IBAN_WITHOUT_KC_TEST;
8623
- case 50311908: return OK_IBAN_WITHOUT_KC_TEST;
8624
- case 50411908: return OK_IBAN_WITHOUT_KC_TEST;
8625
- case 50511908: return OK_IBAN_WITHOUT_KC_TEST;
8626
- case 50611908: return OK_IBAN_WITHOUT_KC_TEST;
8627
- case 50711908: return OK_IBAN_WITHOUT_KC_TEST;
8628
- case 50811908: return OK_IBAN_WITHOUT_KC_TEST;
8629
- case 50911908: return OK_IBAN_WITHOUT_KC_TEST;
8630
- case 51111908: return OK_IBAN_WITHOUT_KC_TEST;
8631
- case 51111991: return OK_IBAN_WITHOUT_KC_TEST;
8632
- case 51211908: return OK_IBAN_WITHOUT_KC_TEST;
8633
- case 51211991: return OK_IBAN_WITHOUT_KC_TEST;
8634
- case 51311908: return OK_IBAN_WITHOUT_KC_TEST;
8635
- case 51411908: return OK_IBAN_WITHOUT_KC_TEST;
8636
- case 51511908: return OK_IBAN_WITHOUT_KC_TEST;
8637
- case 51611908: return OK_IBAN_WITHOUT_KC_TEST;
8638
- case 51711908: return OK_IBAN_WITHOUT_KC_TEST;
8639
- case 51811908: return OK_IBAN_WITHOUT_KC_TEST;
8640
- case 51911908: return OK_IBAN_WITHOUT_KC_TEST;
8641
- case 52111908: return OK_IBAN_WITHOUT_KC_TEST;
8642
- case 52111991: return OK_IBAN_WITHOUT_KC_TEST;
8643
- case 52211908: return OK_IBAN_WITHOUT_KC_TEST;
8644
- case 52211991: return OK_IBAN_WITHOUT_KC_TEST;
8645
- case 52311908: return OK_IBAN_WITHOUT_KC_TEST;
8646
- case 52411908: return OK_IBAN_WITHOUT_KC_TEST;
8647
- case 52511908: return OK_IBAN_WITHOUT_KC_TEST;
8648
- case 52611908: return OK_IBAN_WITHOUT_KC_TEST;
8649
- case 52711908: return OK_IBAN_WITHOUT_KC_TEST;
8650
- case 52811908: return OK_IBAN_WITHOUT_KC_TEST;
8651
- case 52911908: return OK_IBAN_WITHOUT_KC_TEST;
8652
- case 53111908: return OK_IBAN_WITHOUT_KC_TEST;
8653
- case 53211908: return OK_IBAN_WITHOUT_KC_TEST;
8654
- case 53311908: return OK_IBAN_WITHOUT_KC_TEST;
8655
- case 57111908: return OK_IBAN_WITHOUT_KC_TEST;
8656
- case 58111908: return OK_IBAN_WITHOUT_KC_TEST;
8657
- case 58211908: return OK_IBAN_WITHOUT_KC_TEST;
8658
- case 58311908: return OK_IBAN_WITHOUT_KC_TEST;
8659
- case 58411908: return OK_IBAN_WITHOUT_KC_TEST;
8660
- case 58511908: return OK_IBAN_WITHOUT_KC_TEST;
8661
- case 80111908: return OK_IBAN_WITHOUT_KC_TEST;
8662
- case 80211908: return OK_IBAN_WITHOUT_KC_TEST;
8663
- case 80311908: return OK_IBAN_WITHOUT_KC_TEST;
8664
- case 80411908: return OK_IBAN_WITHOUT_KC_TEST;
8665
- case 80511908: return OK_IBAN_WITHOUT_KC_TEST;
8666
- case 80611908: return OK_IBAN_WITHOUT_KC_TEST;
8667
- case 80711908: return OK_IBAN_WITHOUT_KC_TEST;
8668
- case 80811908: return OK_IBAN_WITHOUT_KC_TEST;
8669
- case 80911908: return OK_IBAN_WITHOUT_KC_TEST;
8670
- case 81111908: return OK_IBAN_WITHOUT_KC_TEST;
8671
- case 81211908: return OK_IBAN_WITHOUT_KC_TEST;
8672
- case 81311908: return OK_IBAN_WITHOUT_KC_TEST;
8673
- case 81411908: return OK_IBAN_WITHOUT_KC_TEST;
8674
- case 81511908: return OK_IBAN_WITHOUT_KC_TEST;
8675
- case 81611908: return OK_IBAN_WITHOUT_KC_TEST;
8676
- case 81711908: return OK_IBAN_WITHOUT_KC_TEST;
8677
- case 81811908: return OK_IBAN_WITHOUT_KC_TEST;
8678
- case 81911908: return OK_IBAN_WITHOUT_KC_TEST;
8679
- case 82111908: return OK_IBAN_WITHOUT_KC_TEST;
8680
- case 82211908: return OK_IBAN_WITHOUT_KC_TEST;
8681
- case 82311908: return OK_IBAN_WITHOUT_KC_TEST;
8682
- case 82411908: return OK_IBAN_WITHOUT_KC_TEST;
8683
- case 82511908: return OK_IBAN_WITHOUT_KC_TEST;
8684
- case 82611908: return OK_IBAN_WITHOUT_KC_TEST;
8685
- case 82711908: return OK_IBAN_WITHOUT_KC_TEST;
8686
- case 82811908: return OK_IBAN_WITHOUT_KC_TEST;
8687
- case 82911908: return OK_IBAN_WITHOUT_KC_TEST;
8688
- case 99624044: return OK_IBAN_WITHOUT_KC_TEST;
8689
- }
8690
- else
8691
- if(k1==3 && k2==143869)return OK_IBAN_WITHOUT_KC_TEST;
8692
- }
8693
- RETURN_OK;
8694
8516
 
8695
8517
  /* Iban-Regel 0055.00 +���3 */
8696
8518
  /* BHW Kreditservice GmbH */
@@ -8703,54 +8525,58 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
8703
8525
  RETURN_OK;
8704
8526
 
8705
8527
  /* Iban-Regel 0056.00 +���3 */
8528
+ /* Iban-Regel 0056.01 (ab September 2017) +���3 */
8706
8529
  /* SEB AG */
8707
8530
  case 56:
8708
- /* Spendenkonten: nur mit festgelegten IBANs -> Konto und evl. BLZ/BIC anpassen */
8709
- if(k1==0)switch(k2){
8710
- case 36: strcpy(kto,"1010240003"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8711
- case 50: strcpy(kto,"1328506100"); if(b!=48010111){strcpy(blz,"48010111"); *bicp="ESSEDE5F480"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8712
- case 99: strcpy(kto,"1826063000"); if(b!=43010111){strcpy(blz,"43010111"); *bicp="ESSEDE5F430"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8713
- case 110: strcpy(kto,"1015597802"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8714
- case 240: strcpy(kto,"1010240000"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8715
- case 333: strcpy(kto,"1011296100"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8716
- case 555: strcpy(kto,"1600220800"); if(b!=10010111){strcpy(blz,"10010111"); *bicp="ESSEDE5F100"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8717
- case 556: strcpy(kto,"1000556100"); if(b!=39010111){strcpy(blz,"39010111"); *bicp="ESSEDE5F390"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8718
- case 606: strcpy(kto,"1967153801"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8719
- case 700: strcpy(kto,"1070088000"); if(b!=26510111){strcpy(blz,"26510111"); *bicp="ESSEDE5F265"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8720
- case 777: strcpy(kto,"1006015200"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8721
- case 999: strcpy(kto,"1010240001"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8722
- case 1234: strcpy(kto,"1369152400"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8723
- case 1313: strcpy(kto,"1017500000"); if(b!=57010111){strcpy(blz,"57010111"); *bicp="ESSEDE5F570"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8724
- case 1888: strcpy(kto,"1241113000"); if(b!=37010111){strcpy(blz,"37010111"); *bicp="ESSEDE5F370"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8725
- case 1953: strcpy(kto,"1026500901"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8726
- case 1998: strcpy(kto,"1547620500"); if(b!=67010111){strcpy(blz,"67010111"); *bicp="ESSEDE5F670"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8727
- case 2007: strcpy(kto,"1026500907"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8728
- case 4004: strcpy(kto,"1635100100"); if(b!=37010111){strcpy(blz,"37010111"); *bicp="ESSEDE5F370"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8729
- case 4444: strcpy(kto,"1304610900"); if(b!=67010111){strcpy(blz,"67010111"); *bicp="ESSEDE5F670"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8730
- case 5000: strcpy(kto,"1395676000"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8731
- case 5510: strcpy(kto,"1611754300"); if(b!=29010111){strcpy(blz,"29010111"); *bicp="ESSEDE5F290"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8732
- case 6060: strcpy(kto,"1000400200"); if(b!=50010111){strcpy(blz,"50010111"); *bicp="ESSEDE5FXXX"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8733
- case 6800: strcpy(kto,"1296401301"); if(b!=67010111){strcpy(blz,"67010111"); *bicp="ESSEDE5F670"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8734
- case 55555: strcpy(kto,"1027758200"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8735
- case 60000: strcpy(kto,"1005007001"); if(b!=50010111){strcpy(blz,"50010111"); *bicp="ESSEDE5FXXX"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8736
- case 66666: strcpy(kto,"1299807801"); if(b!=20010111){strcpy(blz,"20010111"); *bicp="ESSEDE5F200"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8737
- case 102030: strcpy(kto,"1837501600"); if(b!=37010111){strcpy(blz,"37010111"); *bicp="ESSEDE5F370"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8738
- case 121212: strcpy(kto,"1249461502"); if(b!=70010111){strcpy(blz,"70010111"); *bicp="ESSEDE5F700"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8739
- case 130500: strcpy(kto,"1413482100"); if(b!=30010111){strcpy(blz,"30010111"); *bicp="ESSEDE5F300"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8740
- case 202020: strcpy(kto,"1213431002"); if(b!=37010111){strcpy(blz,"37010111"); *bicp="ESSEDE5F370"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8741
- case 414141: strcpy(kto,"1010555101"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8742
- case 666666: strcpy(kto,"1798758900"); if(b!=20010111){strcpy(blz,"20010111"); *bicp="ESSEDE5F200"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8743
- case 5000000: strcpy(kto,"1403124100"); if(b!=37010111){strcpy(blz,"37010111"); *bicp="ESSEDE5F370"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8744
- }
8745
- else if(k1==5 && k2==500500){
8746
- strcpy(kto,"1045720000");
8747
- if(b!=60010111){
8748
- strcpy(blz,"60010111");
8749
- *bicp="ESSEDE5F600";
8750
- return OK_BLZ_KTO_REPLACED;
8531
+ if(!pz_aenderungen_aktivieren_2017_09 || (pz_aenderungen_aktivieren_2017_09 && version<1)){
8532
+
8533
+ /* Spendenkonten: nur mit festgelegten IBANs -> Konto und evl. BLZ/BIC anpassen */
8534
+ if(k1==0)switch(k2){
8535
+ case 36: strcpy(kto,"1010240003"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8536
+ case 50: strcpy(kto,"1328506100"); if(b!=48010111){strcpy(blz,"48010111"); *bicp="ESSEDE5F480"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8537
+ case 99: strcpy(kto,"1826063000"); if(b!=43010111){strcpy(blz,"43010111"); *bicp="ESSEDE5F430"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8538
+ case 110: strcpy(kto,"1015597802"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8539
+ case 240: strcpy(kto,"1010240000"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8540
+ case 333: strcpy(kto,"1011296100"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8541
+ case 555: strcpy(kto,"1600220800"); if(b!=10010111){strcpy(blz,"10010111"); *bicp="ESSEDE5F100"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8542
+ case 556: strcpy(kto,"1000556100"); if(b!=39010111){strcpy(blz,"39010111"); *bicp="ESSEDE5F390"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8543
+ case 606: strcpy(kto,"1967153801"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8544
+ case 700: strcpy(kto,"1070088000"); if(b!=26510111){strcpy(blz,"26510111"); *bicp="ESSEDE5F265"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8545
+ case 777: strcpy(kto,"1006015200"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8546
+ case 999: strcpy(kto,"1010240001"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8547
+ case 1234: strcpy(kto,"1369152400"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8548
+ case 1313: strcpy(kto,"1017500000"); if(b!=57010111){strcpy(blz,"57010111"); *bicp="ESSEDE5F570"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8549
+ case 1888: strcpy(kto,"1241113000"); if(b!=37010111){strcpy(blz,"37010111"); *bicp="ESSEDE5F370"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8550
+ case 1953: strcpy(kto,"1026500901"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8551
+ case 1998: strcpy(kto,"1547620500"); if(b!=67010111){strcpy(blz,"67010111"); *bicp="ESSEDE5F670"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8552
+ case 2007: strcpy(kto,"1026500907"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8553
+ case 4004: strcpy(kto,"1635100100"); if(b!=37010111){strcpy(blz,"37010111"); *bicp="ESSEDE5F370"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8554
+ case 4444: strcpy(kto,"1304610900"); if(b!=67010111){strcpy(blz,"67010111"); *bicp="ESSEDE5F670"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8555
+ case 5000: strcpy(kto,"1395676000"); if(b!=25010111){strcpy(blz,"25010111"); *bicp="ESSEDE5F250"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8556
+ case 5510: strcpy(kto,"1611754300"); if(b!=29010111){strcpy(blz,"29010111"); *bicp="ESSEDE5F290"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8557
+ case 6060: strcpy(kto,"1000400200"); if(b!=50010111){strcpy(blz,"50010111"); *bicp="ESSEDE5FXXX"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8558
+ case 6800: strcpy(kto,"1296401301"); if(b!=67010111){strcpy(blz,"67010111"); *bicp="ESSEDE5F670"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8559
+ case 55555: strcpy(kto,"1027758200"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8560
+ case 60000: strcpy(kto,"1005007001"); if(b!=50010111){strcpy(blz,"50010111"); *bicp="ESSEDE5FXXX"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8561
+ case 66666: strcpy(kto,"1299807801"); if(b!=20010111){strcpy(blz,"20010111"); *bicp="ESSEDE5F200"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8562
+ case 102030: strcpy(kto,"1837501600"); if(b!=37010111){strcpy(blz,"37010111"); *bicp="ESSEDE5F370"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8563
+ case 121212: strcpy(kto,"1249461502"); if(b!=70010111){strcpy(blz,"70010111"); *bicp="ESSEDE5F700"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8564
+ case 130500: strcpy(kto,"1413482100"); if(b!=30010111){strcpy(blz,"30010111"); *bicp="ESSEDE5F300"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8565
+ case 202020: strcpy(kto,"1213431002"); if(b!=37010111){strcpy(blz,"37010111"); *bicp="ESSEDE5F370"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8566
+ case 414141: strcpy(kto,"1010555101"); if(b!=38010111){strcpy(blz,"38010111"); *bicp="ESSEDE5F380"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8567
+ case 666666: strcpy(kto,"1798758900"); if(b!=20010111){strcpy(blz,"20010111"); *bicp="ESSEDE5F200"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8568
+ case 5000000: strcpy(kto,"1403124100"); if(b!=37010111){strcpy(blz,"37010111"); *bicp="ESSEDE5F370"; return OK_BLZ_KTO_REPLACED;} else return OK_KTO_REPLACED;
8569
+ }
8570
+ else if(k1==5 && k2==500500){
8571
+ strcpy(kto,"1045720000");
8572
+ if(b!=60010111){
8573
+ strcpy(blz,"60010111");
8574
+ *bicp="ESSEDE5F600";
8575
+ return OK_BLZ_KTO_REPLACED;
8576
+ }
8577
+ else
8578
+ return OK_KTO_REPLACED;
8751
8579
  }
8752
- else
8753
- return OK_KTO_REPLACED;
8754
8580
  }
8755
8581
 
8756
8582
  /* f�r die folgenden BLZs sind nur zehnstelllige Kontonummern erlaubt: */
@@ -8842,7 +8668,6 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
8842
8668
  }
8843
8669
  }
8844
8670
 
8845
- #line 9405 "konto_check.lxx"
8846
8671
  /* Funktion lut_multiple() +���2 */
8847
8672
  /* ###########################################################################
8848
8673
  * # lut_multiple(): Universalfunktion, um zu einer gegebenen Bankleitzahl #
@@ -9110,7 +8935,6 @@ DLL_EXPORT int lut_cleanup(void)
9110
8935
  FREE(sort_pz_f);
9111
8936
  FREE(sort_plz);
9112
8937
  FREE(sort_iban_regel);
9113
- #line 9667 "konto_check.lxx"
9114
8938
  if(name_raw && name_data!=name_raw)
9115
8939
  FREE(name_raw);
9116
8940
  else
@@ -9179,7 +9003,6 @@ DLL_EXPORT int lut_cleanup(void)
9179
9003
  lut_cleanup(); /* neuer Versuch, aufzur�umen */
9180
9004
  RETURN(INIT_FATAL_ERROR);
9181
9005
  }
9182
- #line 9741 "konto_check.lxx"
9183
9006
  init_status&=1;
9184
9007
  init_in_progress=0;
9185
9008
  return OK;
@@ -9352,8 +9175,8 @@ static void init_atoi_table(void)
9352
9175
  int i,ziffer;
9353
9176
  unsigned long l;
9354
9177
 
9355
- /* �nderungen zum 05.06.2017 aktivieren */
9356
- if(time(NULL)>1496613600 ||0)pz_aenderungen_aktivieren_2017_06=1;
9178
+ /* �nderungen zum 04.09.2017 aktivieren */
9179
+ if(time(NULL)>1504476000 ||0)pz_aenderungen_aktivieren_2017_09=1;
9357
9180
 
9358
9181
  /* ung�ltige Ziffern; Blanks und Tabs werden ebenfalls als ung�ltig
9359
9182
  * angesehen(!), da die Stellenzuordnung sonst nicht mehr stimmt. Ausnahme:
@@ -9618,7 +9441,6 @@ static void init_atoi_table(void)
9618
9441
  lut_block_name2[126]="2. IBAN Regel idx";
9619
9442
  lut_block_name2[127]="2. BIC Hauptst.idx";
9620
9443
  lut_blocklen_max=453;
9621
- #line 9981 "konto_check.lxx"
9622
9444
  init_status|=1;
9623
9445
  }
9624
9446
 
@@ -9678,7 +9500,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
9678
9500
 
9679
9501
  switch(pz_methode){
9680
9502
 
9681
- #line 10044 "konto_check.lxx"
9682
9503
  /* Berechnungsmethoden 00 bis 09 +���3
9683
9504
  Berechnung nach der Methode 00 +���4 */
9684
9505
  /*
@@ -12013,7 +11834,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
12013
11834
  * ######################################################################
12014
11835
  */
12015
11836
 
12016
- #line 12055 "konto_check.lxx"
12017
11837
  case 51:
12018
11838
  if(*(kto+2)=='9'){ /* Ausnahme */
12019
11839
 
@@ -12275,8 +12095,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
12275
12095
  else
12276
12096
  return FALSE;
12277
12097
 
12278
- #line 12269 "konto_check.lxx"
12279
- #line 12271 "konto_check.lxx"
12280
12098
  /* Berechnung nach der Methode 53 +���4 */
12281
12099
  /*
12282
12100
  * ######################################################################
@@ -12575,7 +12393,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
12575
12393
  * # bewerten. #
12576
12394
  * ######################################################################
12577
12395
  */
12578
- #line 12540 "konto_check.lxx"
12579
12396
  case 57:
12580
12397
  #if DEBUG>0
12581
12398
  if(retvals){
@@ -13221,7 +13038,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
13221
13038
  * # Pr�fzifferberechnung) #
13222
13039
  * ######################################################################
13223
13040
  */
13224
- #line 13120 "konto_check.lxx"
13225
13041
  case 66:
13226
13042
  #if DEBUG>0
13227
13043
  case 2066:
@@ -18461,7 +18277,13 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
18461
18277
  * # Variante 2: #
18462
18278
  * # Modulus 10, Gewichtung 2, 1, 2, 1, 2, 1, 2, 1, 2 #
18463
18279
  * # Die Berechnung und m�gliche Ergebnisse entsprechen der #
18464
- * # Methode 00. #
18280
+ * # Methode 00. F�hrt die Berechnung nach Variante 2 zu einem #
18281
+ * # Pr�fzifferfehler, so ist nach Variante 3 zu pr�fen. #
18282
+ * # #
18283
+ * # Variante 3: #
18284
+ * # Modulus 11, Gewichtung 2, 3, 4, 5, 6, 7, 2, 3, 4 #
18285
+ * # Die Berechnung und m�gliche Ergebnisse entsprechen der #
18286
+ * # Methode 04. #
18465
18287
  * ######################################################################
18466
18288
  */
18467
18289
 
@@ -18542,6 +18364,30 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
18542
18364
  #endif
18543
18365
  MOD_10_80; /* pz%=10 */
18544
18366
  if(pz)pz=10-pz;
18367
+ CHECK_PZX10;
18368
+
18369
+ #if DEBUG>0
18370
+ case 3122:
18371
+ if(retvals){
18372
+ retvals->methode="C2c";
18373
+ retvals->pz_methode=3122;
18374
+ }
18375
+ #endif
18376
+ /* Variante 3, g�ltig ab September 2017 */
18377
+ if(!pz_aenderungen_aktivieren_2017_09)return UNDEFINED_SUBMETHOD;
18378
+ pz = (kto[0]-'0') * 4
18379
+ + (kto[1]-'0') * 3
18380
+ + (kto[2]-'0') * 2
18381
+ + (kto[3]-'0') * 7
18382
+ + (kto[4]-'0') * 6
18383
+ + (kto[5]-'0') * 5
18384
+ + (kto[6]-'0') * 4
18385
+ + (kto[7]-'0') * 3
18386
+ + (kto[8]-'0') * 2;
18387
+
18388
+ MOD_11_176; /* pz%=11 */
18389
+ if(pz)pz=11-pz;
18390
+ INVALID_PZ10;
18545
18391
  CHECK_PZ10;
18546
18392
 
18547
18393
 
@@ -20532,7 +20378,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
20532
20378
  retvals->pz_methode=144;
20533
20379
  }
20534
20380
  #endif
20535
- if(!pz_aenderungen_aktivieren_2017_06)return NOT_DEFINED;
20536
20381
 
20537
20382
  /* Variante 1: Berechnung nach der Methode 02 */
20538
20383
  #if DEBUG>0
@@ -20604,7 +20449,6 @@ if(!pz_aenderungen_aktivieren_2017_06)return NOT_DEFINED;
20604
20449
  return NOT_IMPLEMENTED;
20605
20450
  }
20606
20451
  }
20607
- #line 19312 "konto_check.lxx"
20608
20452
 
20609
20453
  /*
20610
20454
  * ######################################################################
@@ -20702,7 +20546,6 @@ DLL_EXPORT int kto_check_blz(char *blz,char *kto)
20702
20546
  #if DEBUG>0 /* es werden einige Funktionen benutzt, die nur in der Debug-Variante enthalten sind */
20703
20547
  DLL_EXPORT int kto_check_regel_dbg(char *blz,char *kto,char *blz2,char *kto2,const char **bic,int *regel,RETVAL *retvals)
20704
20548
  {
20705
- #line 19410 "konto_check.lxx"
20706
20549
  char *blz_o,buffer[32],kto_o[16],*blz_n,*kto_n,*ptr,*dptr;
20707
20550
  const char *bicp;
20708
20551
  int ret,ret_regel,r;
@@ -20750,7 +20593,6 @@ DLL_EXPORT int kto_check_regel_dbg(char *blz,char *kto,char *blz2,char *kto2,con
20750
20593
  }
20751
20594
  else /* BLZ und Kto gleich */
20752
20595
  return ret;
20753
- #line 19458 "konto_check.lxx"
20754
20596
  }
20755
20597
 
20756
20598
  #else /* !DEBUG */
@@ -20900,7 +20742,6 @@ DLL_EXPORT int kto_check_blz_dbg(char *blz,char *kto,RETVAL *retvals)
20900
20742
  * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
20901
20743
  * ###########################################################################
20902
20744
  */
20903
- #line 19608 "konto_check.lxx"
20904
20745
  DLL_EXPORT int kto_check_pz_dbg(char *pz,char *kto,char *blz,RETVAL *retvals)
20905
20746
  {
20906
20747
  int untermethode,pz_methode;
@@ -21136,7 +20977,6 @@ DLL_EXPORT int get_lut_info2_b(char *lutname,int *version,char **prolog_p,char *
21136
20977
  }
21137
20978
  else
21138
20979
  **user_info_p=0;
21139
- #line 19829 "konto_check.lxx"
21140
20980
  FREE(prolog);
21141
20981
  return OK;
21142
20982
  }
@@ -21271,20 +21111,20 @@ DLL_EXPORT const char *get_kto_check_version_x(int mode)
21271
21111
  case 3:
21272
21112
  return __DATE__ ", " __TIME__; /* Compilierdatum und -zeit */
21273
21113
  case 4: /* Datum der Pr�fziffermethode */
21274
- if(pz_aenderungen_aktivieren_2017_06)
21275
- return "05.06.2017";
21114
+ if(pz_aenderungen_aktivieren_2017_09)
21115
+ return "04.09.2017";
21276
21116
  else
21277
- return "06.03.2017 (Aenderungen vom 05.06.2017 enthalten aber noch nicht aktiviert)";
21117
+ return "05.06.2017 (Aenderungen vom 04.09.2017 enthalten aber noch nicht aktiviert)";
21278
21118
  case 5:
21279
- return "05.06.2017";
21119
+ return "04.09.2017";
21280
21120
  case 6:
21281
- return "13. Juni 2017"; /* Klartext-Datum der Bibliotheksversion */
21121
+ return "13. August 2017"; /* Klartext-Datum der Bibliotheksversion */
21282
21122
  case 7:
21283
21123
  return "final"; /* Versions-Typ der Bibliotheksversion (development, beta, final) */
21284
21124
  case 8:
21285
21125
  return "6"; /* Hauptversionszahl */
21286
21126
  case 9:
21287
- return "00"; /* Unterversionszahl */
21127
+ return "01"; /* Unterversionszahl */
21288
21128
  }
21289
21129
  }
21290
21130
 
@@ -21430,7 +21270,6 @@ DLL_EXPORT int dump_lutfile(char *outputname,UINT4 *required)
21430
21270
  default:
21431
21271
  break;
21432
21272
  }
21433
- #line 20062 "konto_check.lxx"
21434
21273
  fputc('\n',out);
21435
21274
  while(--i)fputc('=',out);
21436
21275
  fputc('\n',out);
@@ -21755,7 +21594,6 @@ DLL_EXPORT const char *iban2bic_id(char *iban,int *retval,int *blz,int *kto)
21755
21594
  return iban2bic(iban,retval,b,k);
21756
21595
  }
21757
21596
 
21758
- #line 20387 "konto_check.lxx"
21759
21597
  /* Funktion iban_gen(), iban_bic_gen() und iban_bic_gen1 +���1 */
21760
21598
  /* ###########################################################################
21761
21599
  * # Die Funktion iban_gen generiert aus Bankleitzahl und Kontonummer eine #
@@ -22588,7 +22426,6 @@ DLL_EXPORT int ipi_check(char *zweck)
22588
22426
  * # Copyright (C) 2009,2011 Michael Plugge <m.plugge@hs-mannheim.de> #
22589
22427
  * ###########################################################################
22590
22428
  */
22591
- #line 21220 "konto_check.lxx"
22592
22429
 
22593
22430
  /* Funktion volltext_zeichen() +���2 */
22594
22431
  /* Diese Funktion gibt f�r Zeichen die bei der Volltextsuche g�ltig sind
@@ -23435,7 +23272,6 @@ static int qcmp_bic_h(const void *ap,const void *bp)
23435
23272
  return a-b;
23436
23273
  }
23437
23274
 
23438
- #line 22067 "konto_check.lxx"
23439
23275
 
23440
23276
  /* Funktion qcmp_bic() +���3 */
23441
23277
  static int qcmp_bic(const void *ap,const void *bp)
@@ -23540,7 +23376,6 @@ static int qcmp_iban_regel(const void *ap,const void *bp)
23540
23376
  else
23541
23377
  return a-b;
23542
23378
  }
23543
- #line 22082 "konto_check.lxx"
23544
23379
 
23545
23380
  /* Funktion init_blzf() +���2
23546
23381
  * Diese Funktion initialisiert das Array mit den Bankleitzahlen f�r alle
@@ -23608,7 +23443,6 @@ DLL_EXPORT int konto_check_idx2blz(int idx,int *zweigstelle,int *retval)
23608
23443
  }
23609
23444
 
23610
23445
  /* Funktion suche_int1() +���2 */
23611
- #line 22150 "konto_check.lxx"
23612
23446
  static int suche_int1(int a1,int a2,int *anzahl,int **start_idx,int **zweigstellen_base,int **blz_base,
23613
23447
  int **base_name,int **base_sort,int(*cmp)(const void *, const void *),int cnt,int such_idx)
23614
23448
  {
@@ -23659,7 +23493,6 @@ static int suche_int1(int a1,int a2,int *anzahl,int **start_idx,int **zweigstell
23659
23493
  }
23660
23494
 
23661
23495
  /* Funktion suche_int2() +���2 */
23662
- #line 22201 "konto_check.lxx"
23663
23496
  static int suche_int2(int a1,int a2,int *anzahl,int **start_idx,int **zweigstellen_base,int **blz_base,
23664
23497
  int **base_name,int **base_sort,int(*cmp)(const void *, const void *),int such_idx,int pz_suche)
23665
23498
  {
@@ -24274,7 +24107,6 @@ static int cmp_suche_sort(const void *ap,const void *bp)
24274
24107
  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)
24275
24108
  {
24276
24109
  int i,j,last_idx,*idx_a,*cnt_o;
24277
- #line 22817 "konto_check.lxx"
24278
24110
 
24279
24111
  if(idx_op)*idx_op=NULL;
24280
24112
  if(cnt_op)*cnt_op=NULL;
@@ -24356,7 +24188,6 @@ DLL_EXPORT int lut_suche_sort2(int anzahl,int *blz,int *zweigstellen,int *anzahl
24356
24188
  return OK;
24357
24189
  }
24358
24190
 
24359
- #line 22900 "konto_check.lxx"
24360
24191
  /* Funktion lut_suche_volltext() +���2 */
24361
24192
  DLL_EXPORT int lut_suche_volltext(char *such_wort,int *anzahl,int *base_name_idx,char ***base_name,
24362
24193
  int *zweigstellen_anzahl,int **start_idx,int **zweigstellen_base,int **blz_base)
@@ -24486,7 +24317,7 @@ DLL_EXPORT int lut_suche_blz(int such1,int such2,int *anzahl,int **start_idx,int
24486
24317
  return suche_int1(such1,such2,anzahl,start_idx,zweigstellen_base,blz_base,&blz_f,&sort_blz,qcmp_blz,cnt,0);
24487
24318
  }
24488
24319
 
24489
- #line 23050 "konto_check.lxx"
24320
+ #line 22918 "konto_check.lxx"
24490
24321
  /* Funktion lut_suche_bic() +���2 */
24491
24322
  DLL_EXPORT int lut_suche_bic(char *such_name,int *anzahl,int **start_idx,int **zweigstellen_base,
24492
24323
  char ***base_name,int **blz_base)
@@ -24540,7 +24371,6 @@ DLL_EXPORT int lut_suche_pz(int such1,int such2,int *anzahl,int **start_idx,int
24540
24371
  {
24541
24372
  int retval;
24542
24373
 
24543
-
24544
24374
  if(anzahl)*anzahl=0;
24545
24375
  if(such2 && such1>such2)return INVALID_SEARCH_RANGE;
24546
24376
  if((init_status&7)<7)return LUT2_NOT_INITIALIZED;
@@ -24554,7 +24384,6 @@ DLL_EXPORT int lut_suche_pz(int such1,int such2,int *anzahl,int **start_idx,int
24554
24384
  /* Funktion lut_suche_plz() +���2 */
24555
24385
  DLL_EXPORT int lut_suche_plz(int such1,int such2,int *anzahl,int **start_idx,int **zweigstellen_base,int **base_name,int **blz_base)
24556
24386
  {
24557
-
24558
24387
  if(anzahl)*anzahl=0;
24559
24388
  if(such2 && such1>such2)return INVALID_SEARCH_RANGE;
24560
24389
  if((init_status&7)<7)return LUT2_NOT_INITIALIZED;
@@ -24567,7 +24396,6 @@ DLL_EXPORT int lut_suche_plz(int such1,int such2,int *anzahl,int **start_idx,int
24567
24396
  /* Funktion lut_suche_regel() +���2 */
24568
24397
  DLL_EXPORT int lut_suche_regel(int such1,int such2,int *anzahl,int **start_idx,int **zweigstellen_base,int **base_name,int **blz_base)
24569
24398
  {
24570
-
24571
24399
  if(anzahl)*anzahl=0;
24572
24400
  if(such2 && such1>such2)return INVALID_SEARCH_RANGE;
24573
24401
  if((init_status&7)<7)return LUT2_NOT_INITIALIZED;
@@ -24577,7 +24405,6 @@ DLL_EXPORT int lut_suche_regel(int such1,int such2,int *anzahl,int **start_idx,i
24577
24405
  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);
24578
24406
  }
24579
24407
 
24580
- #line 23083 "konto_check.lxx"
24581
24408
 
24582
24409
  /* Funktion lut_suche_bic_h() +���2 */
24583
24410
  DLL_EXPORT int lut_suche_bic_h(char *such_name,int *anzahl,int **start_idx,int **zweigstellen_base,
@@ -24963,7 +24790,6 @@ DLL_EXPORT const char *iban_ort(char *iban,int filiale,int*retval)
24963
24790
  {
24964
24791
  return iban_fkt_s(iban,filiale,retval,lut_ort);
24965
24792
  }
24966
- #line 23172 "konto_check.lxx"
24967
24793
 
24968
24794
  static int bic_fkt_c(char *bic1,int mode,int filiale,int *retval,char *base,int error)
24969
24795
  {
@@ -26215,6 +26041,7 @@ DLL_EXPORT const char *pz2str(int pz,int *ret)
26215
26041
  case 3108: return "A8c";
26216
26042
  case 3111: return "B1c";
26217
26043
  case 3118: return "B8c";
26044
+ case 3122: return "C2c";
26218
26045
  case 3125: return "C5c";
26219
26046
  case 3127: return "C7c";
26220
26047
  case 3128: return "C8c";
@@ -26251,7 +26078,6 @@ DLL_EXPORT const char *pz2str(int pz,int *ret)
26251
26078
  default: return "???";
26252
26079
  }
26253
26080
  }
26254
- #line 24127 "konto_check.lxx"
26255
26081
 
26256
26082
  /* Funktion lut_keine_iban_berechnung() +���1 */
26257
26083
  /*
@@ -26366,7 +26192,7 @@ DLL_EXPORT int lut_keine_iban_berechnung(char *iban_blacklist,char *lutfile,int
26366
26192
  /* Funktion pz_aenderungen_enable() +���1 */
26367
26193
  /* ###########################################################################
26368
26194
  * # Die Funktion pz_aenderungen_enable() dient dazu, den Status des Flags #
26369
- * # pz_aenderungen_aktivieren_2017_06 abzufragen bzw. zu setzen. Falls die Variable #
26195
+ * # pz_aenderungen_aktivieren_2017_09 abzufragen bzw. zu setzen. Falls die Variable #
26370
26196
  * # set 1 ist, werden die �nderungen aktiviert, falls sie 0 ist, werden #
26371
26197
  * # die �nderungen deaktiviert. Bei allen anderen Werten wird das aktuelle #
26372
26198
  * # Flag nicht ver�ndert, sondern nur der Status zur�ckgegeben. #
@@ -26382,8 +26208,8 @@ DLL_EXPORT int lut_keine_iban_berechnung(char *iban_blacklist,char *lutfile,int
26382
26208
 
26383
26209
  DLL_EXPORT int pz_aenderungen_enable(int set)
26384
26210
  {
26385
- if(set==0 || set==1)pz_aenderungen_aktivieren_2017_06=set;
26386
- return pz_aenderungen_aktivieren_2017_06;
26211
+ if(set==0 || set==1)pz_aenderungen_aktivieren_2017_09=set;
26212
+ return pz_aenderungen_aktivieren_2017_09;
26387
26213
  }
26388
26214
 
26389
26215
  #if DEBUG>0
@@ -26415,7 +26241,6 @@ DLL_EXPORT char *kto_check_test_vars(char *txt,UINT4 i)
26415
26241
  #endif
26416
26242
 
26417
26243
 
26418
- #line 24291 "konto_check.lxx"
26419
26244
  /* Funktionen *_id() +���1 */
26420
26245
  /* ###########################################################################
26421
26246
  * # Die folgenden Funktionen sind die id-Varianten von Funktionen, die #
@@ -1,6 +1,5 @@
1
1
  /* vim: ft=c:set si:set fileencoding=iso-8859-1
2
2
  */
3
- #line 9 "konto_check_h.lx"
4
3
 
5
4
  /*
6
5
  * ##########################################################################
@@ -484,7 +483,6 @@ extern const char *lut2_feld_namen[256];
484
483
  #define OK_KTO_REPLACED_NO_PZ 24
485
484
  #define OK_UNTERKONTO_ATTACHED 25
486
485
  #define OK_SHORT_BIC_USED 26
487
- #line 279 "konto_check_h.lx"
488
486
 
489
487
  #define MAX_BLZ_CNT 30000 /* maximale Anzahl BLZ's in generate_lut() */
490
488
 
@@ -1228,7 +1228,7 @@ static VALUE rebuild_blzfile_rb(int argc,VALUE* argv,VALUE self)
1228
1228
  * Rückgabe: aktueller Status des Flags
1229
1229
  */
1230
1230
 
1231
- static int pz_aenderungen_enable_rb(int argc,VALUE *argv)
1231
+ static VALUE pz_aenderungen_enable_rb(int argc,VALUE *argv,VALUE self)
1232
1232
  {
1233
1233
  int mode;
1234
1234
  VALUE mode_rb=Qnil;
@@ -4354,11 +4354,11 @@ void Init_konto_check_raw()
4354
4354
  /*
4355
4355
  * This is a C/Ruby library to check the validity of German Bank Account
4356
4356
  * Numbers. All currently defined test methods by Deutsche Bundesbank
4357
- * (00 to E3) are implemented.
4357
+ * (00 to E4) are implemented.
4358
4358
  *
4359
4359
  * <b>ATTENTION:</b> There are a few important changes in the API between
4360
4360
  * version 0.0.2 (version by Peter Horn/Provideal), version 0.0.6 (jeanmartin)
4361
- * and this version (V. 6.00 from 2017-06-13):
4361
+ * and this version (V. 6.01 from 2017-08-13):
4362
4362
  *
4363
4363
  * * The function KontoCheck::load_bank_data() is no longer used; it is
4364
4364
  * replaced by KontoCheck::init() and KontoCheck::generate_lutfile().
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: konto_check
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.00.0
4
+ version: 6.01.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Provideal Systems GmbH
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-06-08 00:00:00.000000000 Z
13
+ date: 2017-09-20 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: thoughtbot-shoulda