konto_check 6.01.0 → 6.02.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: e0b9ecf2e4612120b79bfbcbb3adbb22c3ded7e6
4
- data.tar.gz: 4684d17c54d69b0cc1b01672918ce46f53ca598d
3
+ metadata.gz: e4a2b9a4eaf3c213df26bdba2049de70c77dcdba
4
+ data.tar.gz: d93390ab90f68728cde22531c7d9ff2e6ab9ec38
5
5
  SHA512:
6
- metadata.gz: 156dc5a16fb7ed68ef304ca003c759e53a49779f581044f49a0fdedb394559b41925702cf0b2a30038bdb4a42b7ceb44c45e176a18fd9a17c0631242ded86adf
7
- data.tar.gz: fd5eb01b83dccb3681c159081dfd845859ec7deb1ae38208e49c030374845f277ee898946158533c859735a1231f4ca295237194b0e525938d760c3067acda7e
6
+ metadata.gz: 0316ff43346a0960a890306f58d570a114f58fff702a26f35c3f857c090a6ef39dca17984f6adc58cff4633a8f5ee110afa054daae7976e7d5e4a236a3c403b1
7
+ data.tar.gz: b504964df3f12767ece6506e9653e4af0e22855ef970937651ceb84a4917023b6f5c92f14afcddef362033b7a2eb453ee07e802007c8c30ddc994906e8b77f2a
@@ -45,14 +45,15 @@
45
45
  * # im Internet herunterladen. #
46
46
  * ##########################################################################
47
47
  */
48
+ #line 332 "ruby/ext/konto_check_raw/konto_check.lxx"
48
49
 
49
50
  /* Definitionen und Includes */
50
51
  #ifndef VERSION
51
- #define VERSION "6.01 (final)"
52
+ #define VERSION "6.02 (final)"
52
53
  #define VERSION_MAJOR 6
53
- #define VERSION_MINOR 01
54
+ #define VERSION_MINOR 02
54
55
  #endif
55
- #define VERSION_DATE "2017-08-13"
56
+ #define VERSION_DATE "2017-11-26"
56
57
 
57
58
  #ifndef INCLUDE_KONTO_CHECK_DE
58
59
  #define INCLUDE_KONTO_CHECK_DE 1
@@ -103,8 +104,8 @@ static lzo_align_t __LZO_MMODEL wrkmem[LZO1X_1_MEM_COMPRESS];
103
104
  #define KONTO_CHECK_VARS
104
105
  #include "konto_check.h"
105
106
 
106
- /* Flag, um die �nderungen zum September 2017 zu aktivieren */
107
- static int pz_aenderungen_aktivieren_2017_09;
107
+ /* Flag, um die �nderungen zum Dezember 2017 zu aktivieren */
108
+ static int pz_aenderungen_aktivieren_2017_12;
108
109
 
109
110
  /* falls die Variable verbose_debug gesetzt wird, werden bei einigen
110
111
  * Funktionen mittels perror() zus�tzliche Debuginfos ausgegeben. Die
@@ -241,6 +242,7 @@ static int convert_encoding(char **data,UINT4 *len);
241
242
  #define free(ptr) efree(ptr)
242
243
  #endif
243
244
 
245
+ #line 770 "ruby/ext/konto_check_raw/konto_check.lxx"
244
246
 
245
247
  /* Testwert zur Markierung ung�ltiger Ziffern im BLZ-String (>8 Stellen) */
246
248
  #define BLZ_FEHLER 100000000
@@ -376,6 +378,7 @@ static int convert_encoding(char **data,UINT4 *len);
376
378
  */
377
379
  #define CHECK_RETVAL(fkt) do{if((retval=fkt)!=OK)goto fini;}while(0) /* es mu� noch aufger�umt werden, daher goto */
378
380
  #define CHECK_RETURN(fkt) do{if((retval=fkt)!=OK)return retval;}while(0)
381
+ #line 911 "ruby/ext/konto_check_raw/konto_check.lxx"
379
382
 
380
383
  /* einige Makros zur Umwandlung zwischen unsigned int und char */
381
384
  #define UCP (unsigned char*)
@@ -495,6 +498,7 @@ int pz=-777;
495
498
 
496
499
  #define E_START(x)
497
500
  #define E_END(x)
501
+ #line 1036 "ruby/ext/konto_check_raw/konto_check.lxx"
498
502
 
499
503
  /* Variable f�r die Methoden 27, 29 und 69 */
500
504
  static const int m10h_digits[4][10]={
@@ -943,6 +947,7 @@ static int create_lutfile_int(char *name, char *prolog, int slots,FILE **lut)
943
947
  * ###########################################################################
944
948
  */
945
949
 
950
+ #line 1485 "ruby/ext/konto_check_raw/konto_check.lxx"
946
951
  DLL_EXPORT int write_lut_block(char *lutname,UINT4 typ,UINT4 len,char *data)
947
952
  {
948
953
  char buffer[SLOT_BUFFER],*ptr;
@@ -980,6 +985,7 @@ DLL_EXPORT int write_lut_block(char *lutname,UINT4 typ,UINT4 len,char *data)
980
985
  * #############################################################################
981
986
  */
982
987
 
988
+ #line 1523 "ruby/ext/konto_check_raw/konto_check.lxx"
983
989
  static int write_lut_block_int(FILE *lut,UINT4 typ,UINT4 len,char *data)
984
990
  {
985
991
  char buffer[SLOT_BUFFER],*ptr,*cptr;
@@ -1115,6 +1121,7 @@ static int write_lut_block_int(FILE *lut,UINT4 typ,UINT4 len,char *data)
1115
1121
  * ###########################################################################
1116
1122
  */
1117
1123
 
1124
+ #line 1659 "ruby/ext/konto_check_raw/konto_check.lxx"
1118
1125
  DLL_EXPORT int read_lut_block(char *lutname, UINT4 typ,UINT4 *blocklen,char **data)
1119
1126
  {
1120
1127
  int retval;
@@ -1137,6 +1144,7 @@ DLL_EXPORT int read_lut_block(char *lutname, UINT4 typ,UINT4 *blocklen,char **da
1137
1144
  * ###########################################################################
1138
1145
  */
1139
1146
 
1147
+ #line 1683 "ruby/ext/konto_check_raw/konto_check.lxx"
1140
1148
  DLL_EXPORT int read_lut_slot(char *lutname,int slot,UINT4 *blocklen,char **data)
1141
1149
  {
1142
1150
  int retval;
@@ -1158,6 +1166,7 @@ DLL_EXPORT int read_lut_slot(char *lutname,int slot,UINT4 *blocklen,char **data)
1158
1166
  * ###########################################################################
1159
1167
  */
1160
1168
 
1169
+ #line 1706 "ruby/ext/konto_check_raw/konto_check.lxx"
1161
1170
  static int read_lut_block_int(FILE *lut,int slot,int typ,UINT4 *blocklen,char **data)
1162
1171
  {
1163
1172
  char buffer[SLOT_BUFFER],*ptr,*sbuffer,*dbuffer;
@@ -1247,6 +1256,7 @@ static int read_lut_block_int(FILE *lut,int slot,int typ,UINT4 *blocklen,char **
1247
1256
  FREE(sbuffer);
1248
1257
  RETURN(ERROR_MALLOC);
1249
1258
  }
1259
+ #line 1811 "ruby/ext/konto_check_raw/konto_check.lxx"
1250
1260
 
1251
1261
  if(fread(sbuffer,1,compressed_len,lut)<compressed_len){
1252
1262
  FREE(sbuffer);
@@ -2839,6 +2849,7 @@ DLL_EXPORT int lut_info_id(char *lut_name,int *info1,int *info2,int *valid1,int
2839
2849
  * ###########################################################################
2840
2850
  */
2841
2851
 
2852
+ #line 3404 "ruby/ext/konto_check_raw/konto_check.lxx"
2842
2853
  DLL_EXPORT int lut_info(char *lut_name,char **info1,char **info2,int *valid1,int *valid2)
2843
2854
  {
2844
2855
  char *ptr,*ptr1,buffer[128];
@@ -2926,6 +2937,7 @@ DLL_EXPORT int lut_info(char *lut_name,char **info1,char **info2,int *valid1,int
2926
2937
 
2927
2938
  /* Infoblocks lesen: 1. Infoblock */
2928
2939
  if((ret=read_lut_block_int(in,0,LUT2_INFO,&cnt,&ptr))==OK){
2940
+ #line 3493 "ruby/ext/konto_check_raw/konto_check.lxx"
2929
2941
  *(ptr+cnt)=0;
2930
2942
  if(valid1){
2931
2943
  for(ptr1=ptr,v1=v2=0;*ptr1 && *ptr1!='\n' && !isdigit(*ptr1);ptr1++);
@@ -2973,6 +2985,7 @@ DLL_EXPORT int lut_info(char *lut_name,char **info1,char **info2,int *valid1,int
2973
2985
 
2974
2986
  /* Infoblocks lesen: 2. Infoblock */
2975
2987
  if((ret=read_lut_block_int(in,0,LUT2_2_INFO,&cnt,&ptr))==OK){
2988
+ #line 3542 "ruby/ext/konto_check_raw/konto_check.lxx"
2976
2989
  *(ptr+cnt)=0;
2977
2990
  if(valid2){
2978
2991
  for(ptr1=ptr,v1=v2=0;*ptr1 && *ptr1!='\n' && !isdigit(*ptr1);ptr1++);
@@ -3191,6 +3204,7 @@ DLL_EXPORT int copy_lutfile(char *old_name,char *new_name,int new_slots)
3191
3204
  qsort(slotdir,slot_cnt,sizeof(int),cmp_int);
3192
3205
  for(last_slot=-1,i=0;i<(int)slot_cnt;i++)if((typ=slotdir[i]) && typ!=(UINT4)last_slot){
3193
3206
  read_lut_block_int(lut1,0,typ,&len,&data);
3207
+ #line 3762 "ruby/ext/konto_check_raw/konto_check.lxx"
3194
3208
  write_lut_block_int(lut2,typ,len,data);
3195
3209
  FREE(data);
3196
3210
  last_slot=typ;
@@ -3420,6 +3434,7 @@ DLL_EXPORT int lut_init(char *lut_name,int required,int set)
3420
3434
  * # Copyright (C) 2008 Michael Plugge <m.plugge@hs-mannheim.de> #
3421
3435
  * ###########################################################################
3422
3436
  */
3437
+ #line 3992 "ruby/ext/konto_check_raw/konto_check.lxx"
3423
3438
  DLL_EXPORT int kto_check_init(char *lut_name,int *required,int **status,int set,int incremental)
3424
3439
  {
3425
3440
  char *ptr,*dptr,*data,*eptr,*prolog,*info,*user_info,*hs=NULL,*info1,*info2,*ci=NULL,name_buffer[LUT_PATH_LEN];
@@ -3647,6 +3662,7 @@ DLL_EXPORT int kto_check_init(char *lut_name,int *required,int **status,int set,
3647
3662
  typ1=typ;
3648
3663
  if(lut2_block_status[typ]==OK)continue; /* jeden Block nur einmal einlesen */
3649
3664
  retval=read_lut_block_int(lut,0,typ,&len,&data);
3665
+ #line 4221 "ruby/ext/konto_check_raw/konto_check.lxx"
3650
3666
 
3651
3667
  switch(retval){
3652
3668
  case LUT_CRC_ERROR:
@@ -3734,6 +3750,7 @@ DLL_EXPORT int kto_check_init(char *lut_name,int *required,int **status,int set,
3734
3750
  if(typ==LUT2_2_NAME || typ==LUT2_2_NAME_KURZ){
3735
3751
  FREE(data);
3736
3752
  i=read_lut_block_int(lut,0,LUT2_2_NAME_NAME_KURZ,&len,&data);
3753
+ #line 4313 "ruby/ext/konto_check_raw/konto_check.lxx"
3737
3754
  if(i==OK){ /* was gefunden; Typ �ndern, dann weiter wie bei OK */
3738
3755
  typ=LUT2_2_NAME_NAME_KURZ;
3739
3756
  typ1=LUT2_NAME_NAME_KURZ;
@@ -4329,6 +4346,7 @@ DLL_EXPORT int lut_blocks_id(int mode,int *lut_filename,int *lut_blocks_ok,int *
4329
4346
  * ###########################################################################
4330
4347
  */
4331
4348
 
4349
+ #line 4909 "ruby/ext/konto_check_raw/konto_check.lxx"
4332
4350
  DLL_EXPORT const char *current_lutfile_name(int *set,int *level,int *retval)
4333
4351
  {
4334
4352
  if(init_status<7 || !current_lutfile){
@@ -5083,6 +5101,7 @@ static int iban_init(void)
5083
5101
  * ###########################################################################
5084
5102
  */
5085
5103
 
5104
+ #line 5664 "ruby/ext/konto_check_raw/konto_check.lxx"
5086
5105
  static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_version,RETVAL *retvals)
5087
5106
  {
5088
5107
  char tmp_buffer[16];
@@ -8155,140 +8174,6 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
8155
8174
  case 45:
8156
8175
 
8157
8176
  /* ab September 2017 entf�llt die Regel 45, bleibt jedoch frei */
8158
- if(pz_aenderungen_aktivieren_2017_09)return OK;
8159
-
8160
- /* Einer nach der Standard IBAN-Regel ermittelten IBAN ist stets
8161
- * der BIC ESSEDE5FXXX zuzuordnen.
8162
- */
8163
- if(version<1){
8164
- *bicp="ESSEDE5FXXX";
8165
- return OK_BLZ_REPLACED;
8166
- }
8167
- else switch(b){ /* Ab Dezember 2013 wird eine Liste von BLZs angegeben */
8168
- case 50210130:
8169
- case 50210131:
8170
- case 50210132:
8171
- case 50210133:
8172
- case 50210134:
8173
- case 50210135:
8174
- case 50210136:
8175
- case 50210137:
8176
- case 50210138:
8177
- case 50210139:
8178
- case 50210140:
8179
- case 50210141:
8180
- case 50210142:
8181
- case 50210143:
8182
- case 50210144:
8183
- case 50210145:
8184
- case 50210146:
8185
- case 50210147:
8186
- case 50210148:
8187
- case 50210149:
8188
- case 50210150:
8189
- case 50210151:
8190
- case 50210152:
8191
- case 50210153:
8192
- case 50210154:
8193
- case 50210155:
8194
- case 50210156:
8195
- case 50210157:
8196
- case 50210158:
8197
- case 50210159:
8198
- case 50210160:
8199
- case 50210161:
8200
- case 50210162:
8201
- case 50210163:
8202
- case 50210164:
8203
- case 50210165:
8204
- case 50210166:
8205
- case 50210167:
8206
- case 50210168:
8207
- case 50210169:
8208
- case 50210170:
8209
- case 50210171:
8210
- case 50210172:
8211
- case 50210173:
8212
- case 50210174:
8213
- case 50210175:
8214
- case 50210176:
8215
- case 50210177:
8216
- case 50210178:
8217
- case 50210179:
8218
- case 50210180:
8219
- case 50210181:
8220
- case 50210182:
8221
- case 50210183:
8222
- case 50210184:
8223
- case 50210185:
8224
- case 50210186:
8225
- case 50210187:
8226
- case 50210188:
8227
- case 50210189:
8228
- case 50510120:
8229
- case 50510121:
8230
- case 50510122:
8231
- case 50510123:
8232
- case 50510124:
8233
- case 50510125:
8234
- case 50510126:
8235
- case 50510127:
8236
- case 50510128:
8237
- case 50510129:
8238
- case 50510130:
8239
- case 50510131:
8240
- case 50510132:
8241
- case 50510133:
8242
- case 50510134:
8243
- case 50510135:
8244
- case 50510136:
8245
- case 50510137:
8246
- case 50510138:
8247
- case 50510139:
8248
- case 50510140:
8249
- case 50510141:
8250
- case 50510142:
8251
- case 50510143:
8252
- case 50510144:
8253
- case 50510145:
8254
- case 50510146:
8255
- case 50510147:
8256
- case 50510148:
8257
- case 50510149:
8258
- case 50510150:
8259
- case 50510151:
8260
- case 50510152:
8261
- case 50510153:
8262
- case 50510154:
8263
- case 50510155:
8264
- case 50510156:
8265
- case 50510157:
8266
- case 50510158:
8267
- case 50510159:
8268
- case 50510160:
8269
- case 50510161:
8270
- case 50510162:
8271
- case 50510163:
8272
- case 50510164:
8273
- case 50510165:
8274
- case 50510166:
8275
- case 50510167:
8276
- case 50510168:
8277
- case 50510169:
8278
- case 50510170:
8279
- case 50510171:
8280
- case 50510172:
8281
- case 50510173:
8282
- case 50510174:
8283
- case 50510175:
8284
- case 50510176:
8285
- case 50510177:
8286
- case 50510178:
8287
- case 50510179:
8288
- case 50510180:
8289
- *bicp="ESSEDE5FXXX";
8290
- return OK_BLZ_REPLACED;
8291
- }
8292
8177
  return OK;
8293
8178
 
8294
8179
 
@@ -8526,9 +8411,12 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
8526
8411
 
8527
8412
  /* Iban-Regel 0056.00 +���3 */
8528
8413
  /* Iban-Regel 0056.01 (ab September 2017) +���3 */
8414
+ /* Iban-Regel 0056.01 (ab Dezember 2017) BLZ 51410111 ung�ltig +���3 */
8415
+
8416
+
8529
8417
  /* SEB AG */
8530
8418
  case 56:
8531
- if(!pz_aenderungen_aktivieren_2017_09 || (pz_aenderungen_aktivieren_2017_09 && version<1)){
8419
+ if(version<1){
8532
8420
 
8533
8421
  /* Spendenkonten: nur mit festgelegten IBANs -> Konto und evl. BLZ/BIC anpassen */
8534
8422
  if(k1==0)switch(k2){
@@ -8580,6 +8468,7 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
8580
8468
  }
8581
8469
 
8582
8470
  /* f�r die folgenden BLZs sind nur zehnstelllige Kontonummern erlaubt: */
8471
+ if(pz_aenderungen_aktivieren_2017_12 && b==51410111)return INVALID_BLZ; /* die BLZ wird ab Dezember 2017 ung�ltig */
8583
8472
  switch(b){
8584
8473
  case 10010111:
8585
8474
  case 13010111:
@@ -8619,7 +8508,7 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
8619
8508
  case 50510111:
8620
8509
  case 51010111:
8621
8510
  case 51310111:
8622
- case 51410111:
8511
+ case 51410111: /* wird ab Dezember 2017 ung�ltig */
8623
8512
  case 52010111:
8624
8513
  case 54210111:
8625
8514
  case 55010111:
@@ -8668,6 +8557,7 @@ static int iban_regel_cvt(char *blz,char *kto,const char **bicp,int regel_versio
8668
8557
  }
8669
8558
  }
8670
8559
 
8560
+ #line 9120 "ruby/ext/konto_check_raw/konto_check.lxx"
8671
8561
  /* Funktion lut_multiple() +���2 */
8672
8562
  /* ###########################################################################
8673
8563
  * # lut_multiple(): Universalfunktion, um zu einer gegebenen Bankleitzahl #
@@ -8935,6 +8825,7 @@ DLL_EXPORT int lut_cleanup(void)
8935
8825
  FREE(sort_pz_f);
8936
8826
  FREE(sort_plz);
8937
8827
  FREE(sort_iban_regel);
8828
+ #line 9382 "ruby/ext/konto_check_raw/konto_check.lxx"
8938
8829
  if(name_raw && name_data!=name_raw)
8939
8830
  FREE(name_raw);
8940
8831
  else
@@ -9003,6 +8894,7 @@ DLL_EXPORT int lut_cleanup(void)
9003
8894
  lut_cleanup(); /* neuer Versuch, aufzur�umen */
9004
8895
  RETURN(INIT_FATAL_ERROR);
9005
8896
  }
8897
+ #line 9456 "ruby/ext/konto_check_raw/konto_check.lxx"
9006
8898
  init_status&=1;
9007
8899
  init_in_progress=0;
9008
8900
  return OK;
@@ -9175,8 +9067,8 @@ static void init_atoi_table(void)
9175
9067
  int i,ziffer;
9176
9068
  unsigned long l;
9177
9069
 
9178
- /* �nderungen zum 04.09.2017 aktivieren */
9179
- if(time(NULL)>1504476000 ||0)pz_aenderungen_aktivieren_2017_09=1;
9070
+ /* �nderungen zum 04.12.2017 aktivieren */
9071
+ if(time(NULL)>1512342000 ||0)pz_aenderungen_aktivieren_2017_12=1;
9180
9072
 
9181
9073
  /* ung�ltige Ziffern; Blanks und Tabs werden ebenfalls als ung�ltig
9182
9074
  * angesehen(!), da die Stellenzuordnung sonst nicht mehr stimmt. Ausnahme:
@@ -9441,6 +9333,7 @@ static void init_atoi_table(void)
9441
9333
  lut_block_name2[126]="2. IBAN Regel idx";
9442
9334
  lut_block_name2[127]="2. BIC Hauptst.idx";
9443
9335
  lut_blocklen_max=453;
9336
+ #line 9696 "ruby/ext/konto_check_raw/konto_check.lxx"
9444
9337
  init_status|=1;
9445
9338
  }
9446
9339
 
@@ -9500,6 +9393,7 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
9500
9393
 
9501
9394
  switch(pz_methode){
9502
9395
 
9396
+ #line 9759 "ruby/ext/konto_check_raw/konto_check.lxx"
9503
9397
  /* Berechnungsmethoden 00 bis 09 +���3
9504
9398
  Berechnung nach der Methode 00 +���4 */
9505
9399
  /*
@@ -11834,6 +11728,7 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
11834
11728
  * ######################################################################
11835
11729
  */
11836
11730
 
11731
+ #line 11770 "ruby/ext/konto_check_raw/konto_check.lxx"
11837
11732
  case 51:
11838
11733
  if(*(kto+2)=='9'){ /* Ausnahme */
11839
11734
 
@@ -12095,6 +11990,8 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
12095
11990
  else
12096
11991
  return FALSE;
12097
11992
 
11993
+ #line 11984 "ruby/ext/konto_check_raw/konto_check.lxx"
11994
+ #line 11986 "ruby/ext/konto_check_raw/konto_check.lxx"
12098
11995
  /* Berechnung nach der Methode 53 +���4 */
12099
11996
  /*
12100
11997
  * ######################################################################
@@ -12393,6 +12290,7 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
12393
12290
  * # bewerten. #
12394
12291
  * ######################################################################
12395
12292
  */
12293
+ #line 12255 "ruby/ext/konto_check_raw/konto_check.lxx"
12396
12294
  case 57:
12397
12295
  #if DEBUG>0
12398
12296
  if(retvals){
@@ -13038,6 +12936,7 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
13038
12936
  * # Pr�fzifferberechnung) #
13039
12937
  * ######################################################################
13040
12938
  */
12939
+ #line 12835 "ruby/ext/konto_check_raw/konto_check.lxx"
13041
12940
  case 66:
13042
12941
  #if DEBUG>0
13043
12942
  case 2066:
@@ -18374,7 +18273,6 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
18374
18273
  }
18375
18274
  #endif
18376
18275
  /* Variante 3, g�ltig ab September 2017 */
18377
- if(!pz_aenderungen_aktivieren_2017_09)return UNDEFINED_SUBMETHOD;
18378
18276
  pz = (kto[0]-'0') * 4
18379
18277
  + (kto[1]-'0') * 3
18380
18278
  + (kto[2]-'0') * 2
@@ -20449,6 +20347,7 @@ static int kto_check_int(char *x_blz,int pz_methode,char *kto)
20449
20347
  return NOT_IMPLEMENTED;
20450
20348
  }
20451
20349
  }
20350
+ #line 19049 "ruby/ext/konto_check_raw/konto_check.lxx"
20452
20351
 
20453
20352
  /*
20454
20353
  * ######################################################################
@@ -20546,9 +20445,10 @@ DLL_EXPORT int kto_check_blz(char *blz,char *kto)
20546
20445
  #if DEBUG>0 /* es werden einige Funktionen benutzt, die nur in der Debug-Variante enthalten sind */
20547
20446
  DLL_EXPORT int kto_check_regel_dbg(char *blz,char *kto,char *blz2,char *kto2,const char **bic,int *regel,RETVAL *retvals)
20548
20447
  {
20448
+ #line 19147 "ruby/ext/konto_check_raw/konto_check.lxx"
20549
20449
  char *blz_o,buffer[32],kto_o[16],*blz_n,*kto_n,*ptr,*dptr;
20550
20450
  const char *bicp;
20551
- int ret,ret_regel,r;
20451
+ int ret,ret_regel,r,i;
20552
20452
 
20553
20453
  if(regel)*regel=0;
20554
20454
  if(blz2 && kto2){
@@ -20560,7 +20460,8 @@ DLL_EXPORT int kto_check_regel_dbg(char *blz,char *kto,char *blz2,char *kto2,con
20560
20460
  kto_n=buffer+10;
20561
20461
  }
20562
20462
  memcpy(blz_n,blz,9);
20563
- for(ptr=kto;*ptr;ptr++); /* Ende von kto suchen */
20463
+ for(ptr=kto,i=0;*ptr && i++<10;ptr++); /* Ende von kto suchen (maximal 10 Stellen) */
20464
+ if(*ptr)return INVALID_KTO_LENGTH;
20564
20465
  ptr--;
20565
20466
  memcpy(kto_n,"0000000000",10);
20566
20467
  kto_n[10]=0;
@@ -20593,6 +20494,7 @@ DLL_EXPORT int kto_check_regel_dbg(char *blz,char *kto,char *blz2,char *kto2,con
20593
20494
  }
20594
20495
  else /* BLZ und Kto gleich */
20595
20496
  return ret;
20497
+ #line 19196 "ruby/ext/konto_check_raw/konto_check.lxx"
20596
20498
  }
20597
20499
 
20598
20500
  #else /* !DEBUG */
@@ -20603,10 +20505,11 @@ DLL_EXPORT int kto_check_regel(char *blz,char *kto)
20603
20505
  {
20604
20506
  char *blz_o,blz_n[10],kto_o[16],kto_n[16],*ptr,*dptr;
20605
20507
  const char *bicp;
20606
- int ret,ret_regel,regel;
20508
+ int ret,ret_regel,regel,i;
20607
20509
 
20608
20510
  memcpy(blz_n,blz,9);
20609
- for(ptr=kto;*ptr;ptr++); /* Ende von kto suchen */
20511
+ for(ptr=kto,i=0;*ptr && i++<10;ptr++); /* Ende von kto suchen (maximal 10 Stellen) */
20512
+ if(*ptr)return INVALID_KTO_LENGTH;
20610
20513
  ptr--;
20611
20514
  memcpy(kto_n,"0000000000",10);
20612
20515
  kto_n[10]=0;
@@ -20742,6 +20645,7 @@ DLL_EXPORT int kto_check_blz_dbg(char *blz,char *kto,RETVAL *retvals)
20742
20645
  * # Copyright (C) 2007 Michael Plugge <m.plugge@hs-mannheim.de> #
20743
20646
  * ###########################################################################
20744
20647
  */
20648
+ #line 19347 "ruby/ext/konto_check_raw/konto_check.lxx"
20745
20649
  DLL_EXPORT int kto_check_pz_dbg(char *pz,char *kto,char *blz,RETVAL *retvals)
20746
20650
  {
20747
20651
  int untermethode,pz_methode;
@@ -20977,6 +20881,7 @@ DLL_EXPORT int get_lut_info2_b(char *lutname,int *version,char **prolog_p,char *
20977
20881
  }
20978
20882
  else
20979
20883
  **user_info_p=0;
20884
+ #line 19568 "ruby/ext/konto_check_raw/konto_check.lxx"
20980
20885
  FREE(prolog);
20981
20886
  return OK;
20982
20887
  }
@@ -21111,20 +21016,20 @@ DLL_EXPORT const char *get_kto_check_version_x(int mode)
21111
21016
  case 3:
21112
21017
  return __DATE__ ", " __TIME__; /* Compilierdatum und -zeit */
21113
21018
  case 4: /* Datum der Pr�fziffermethode */
21114
- if(pz_aenderungen_aktivieren_2017_09)
21115
- return "04.09.2017";
21019
+ if(pz_aenderungen_aktivieren_2017_12)
21020
+ return "04.12.2017";
21116
21021
  else
21117
- return "05.06.2017 (Aenderungen vom 04.09.2017 enthalten aber noch nicht aktiviert)";
21022
+ return "04.09.2017 (Aenderungen vom 04.12.2017 enthalten aber noch nicht aktiviert)";
21118
21023
  case 5:
21119
- return "04.09.2017";
21024
+ return "04.12.2017";
21120
21025
  case 6:
21121
- return "13. August 2017"; /* Klartext-Datum der Bibliotheksversion */
21026
+ return "26. November 2017"; /* Klartext-Datum der Bibliotheksversion */
21122
21027
  case 7:
21123
21028
  return "final"; /* Versions-Typ der Bibliotheksversion (development, beta, final) */
21124
21029
  case 8:
21125
21030
  return "6"; /* Hauptversionszahl */
21126
21031
  case 9:
21127
- return "01"; /* Unterversionszahl */
21032
+ return "02"; /* Unterversionszahl */
21128
21033
  }
21129
21034
  }
21130
21035
 
@@ -21270,6 +21175,7 @@ DLL_EXPORT int dump_lutfile(char *outputname,UINT4 *required)
21270
21175
  default:
21271
21176
  break;
21272
21177
  }
21178
+ #line 19801 "ruby/ext/konto_check_raw/konto_check.lxx"
21273
21179
  fputc('\n',out);
21274
21180
  while(--i)fputc('=',out);
21275
21181
  fputc('\n',out);
@@ -21594,6 +21500,7 @@ DLL_EXPORT const char *iban2bic_id(char *iban,int *retval,int *blz,int *kto)
21594
21500
  return iban2bic(iban,retval,b,k);
21595
21501
  }
21596
21502
 
21503
+ #line 20126 "ruby/ext/konto_check_raw/konto_check.lxx"
21597
21504
  /* Funktion iban_gen(), iban_bic_gen() und iban_bic_gen1 +���1 */
21598
21505
  /* ###########################################################################
21599
21506
  * # Die Funktion iban_gen generiert aus Bankleitzahl und Kontonummer eine #
@@ -22426,6 +22333,7 @@ DLL_EXPORT int ipi_check(char *zweck)
22426
22333
  * # Copyright (C) 2009,2011 Michael Plugge <m.plugge@hs-mannheim.de> #
22427
22334
  * ###########################################################################
22428
22335
  */
22336
+ #line 20959 "ruby/ext/konto_check_raw/konto_check.lxx"
22429
22337
 
22430
22338
  /* Funktion volltext_zeichen() +���2 */
22431
22339
  /* Diese Funktion gibt f�r Zeichen die bei der Volltextsuche g�ltig sind
@@ -23272,6 +23180,7 @@ static int qcmp_bic_h(const void *ap,const void *bp)
23272
23180
  return a-b;
23273
23181
  }
23274
23182
 
23183
+ #line 21806 "ruby/ext/konto_check_raw/konto_check.lxx"
23275
23184
 
23276
23185
  /* Funktion qcmp_bic() +���3 */
23277
23186
  static int qcmp_bic(const void *ap,const void *bp)
@@ -23376,6 +23285,7 @@ static int qcmp_iban_regel(const void *ap,const void *bp)
23376
23285
  else
23377
23286
  return a-b;
23378
23287
  }
23288
+ #line 21821 "ruby/ext/konto_check_raw/konto_check.lxx"
23379
23289
 
23380
23290
  /* Funktion init_blzf() +���2
23381
23291
  * Diese Funktion initialisiert das Array mit den Bankleitzahlen f�r alle
@@ -23443,6 +23353,7 @@ DLL_EXPORT int konto_check_idx2blz(int idx,int *zweigstelle,int *retval)
23443
23353
  }
23444
23354
 
23445
23355
  /* Funktion suche_int1() +���2 */
23356
+ #line 21889 "ruby/ext/konto_check_raw/konto_check.lxx"
23446
23357
  static int suche_int1(int a1,int a2,int *anzahl,int **start_idx,int **zweigstellen_base,int **blz_base,
23447
23358
  int **base_name,int **base_sort,int(*cmp)(const void *, const void *),int cnt,int such_idx)
23448
23359
  {
@@ -23493,6 +23404,7 @@ static int suche_int1(int a1,int a2,int *anzahl,int **start_idx,int **zweigstell
23493
23404
  }
23494
23405
 
23495
23406
  /* Funktion suche_int2() +���2 */
23407
+ #line 21940 "ruby/ext/konto_check_raw/konto_check.lxx"
23496
23408
  static int suche_int2(int a1,int a2,int *anzahl,int **start_idx,int **zweigstellen_base,int **blz_base,
23497
23409
  int **base_name,int **base_sort,int(*cmp)(const void *, const void *),int such_idx,int pz_suche)
23498
23410
  {
@@ -24107,6 +24019,7 @@ static int cmp_suche_sort(const void *ap,const void *bp)
24107
24019
  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)
24108
24020
  {
24109
24021
  int i,j,last_idx,*idx_a,*cnt_o;
24022
+ #line 22556 "ruby/ext/konto_check_raw/konto_check.lxx"
24110
24023
 
24111
24024
  if(idx_op)*idx_op=NULL;
24112
24025
  if(cnt_op)*cnt_op=NULL;
@@ -24188,6 +24101,7 @@ DLL_EXPORT int lut_suche_sort2(int anzahl,int *blz,int *zweigstellen,int *anzahl
24188
24101
  return OK;
24189
24102
  }
24190
24103
 
24104
+ #line 22639 "ruby/ext/konto_check_raw/konto_check.lxx"
24191
24105
  /* Funktion lut_suche_volltext() +���2 */
24192
24106
  DLL_EXPORT int lut_suche_volltext(char *such_wort,int *anzahl,int *base_name_idx,char ***base_name,
24193
24107
  int *zweigstellen_anzahl,int **start_idx,int **zweigstellen_base,int **blz_base)
@@ -24317,7 +24231,7 @@ DLL_EXPORT int lut_suche_blz(int such1,int such2,int *anzahl,int **start_idx,int
24317
24231
  return suche_int1(such1,such2,anzahl,start_idx,zweigstellen_base,blz_base,&blz_f,&sort_blz,qcmp_blz,cnt,0);
24318
24232
  }
24319
24233
 
24320
- #line 22918 "konto_check.lxx"
24234
+ #line 22789 "ruby/ext/konto_check_raw/konto_check.lxx"
24321
24235
  /* Funktion lut_suche_bic() +���2 */
24322
24236
  DLL_EXPORT int lut_suche_bic(char *such_name,int *anzahl,int **start_idx,int **zweigstellen_base,
24323
24237
  char ***base_name,int **blz_base)
@@ -24371,6 +24285,7 @@ DLL_EXPORT int lut_suche_pz(int such1,int such2,int *anzahl,int **start_idx,int
24371
24285
  {
24372
24286
  int retval;
24373
24287
 
24288
+
24374
24289
  if(anzahl)*anzahl=0;
24375
24290
  if(such2 && such1>such2)return INVALID_SEARCH_RANGE;
24376
24291
  if((init_status&7)<7)return LUT2_NOT_INITIALIZED;
@@ -24384,6 +24299,7 @@ DLL_EXPORT int lut_suche_pz(int such1,int such2,int *anzahl,int **start_idx,int
24384
24299
  /* Funktion lut_suche_plz() +���2 */
24385
24300
  DLL_EXPORT int lut_suche_plz(int such1,int such2,int *anzahl,int **start_idx,int **zweigstellen_base,int **base_name,int **blz_base)
24386
24301
  {
24302
+
24387
24303
  if(anzahl)*anzahl=0;
24388
24304
  if(such2 && such1>such2)return INVALID_SEARCH_RANGE;
24389
24305
  if((init_status&7)<7)return LUT2_NOT_INITIALIZED;
@@ -24396,6 +24312,7 @@ DLL_EXPORT int lut_suche_plz(int such1,int such2,int *anzahl,int **start_idx,int
24396
24312
  /* Funktion lut_suche_regel() +���2 */
24397
24313
  DLL_EXPORT int lut_suche_regel(int such1,int such2,int *anzahl,int **start_idx,int **zweigstellen_base,int **base_name,int **blz_base)
24398
24314
  {
24315
+
24399
24316
  if(anzahl)*anzahl=0;
24400
24317
  if(such2 && such1>such2)return INVALID_SEARCH_RANGE;
24401
24318
  if((init_status&7)<7)return LUT2_NOT_INITIALIZED;
@@ -24405,6 +24322,7 @@ DLL_EXPORT int lut_suche_regel(int such1,int such2,int *anzahl,int **start_idx,i
24405
24322
  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);
24406
24323
  }
24407
24324
 
24325
+ #line 22822 "ruby/ext/konto_check_raw/konto_check.lxx"
24408
24326
 
24409
24327
  /* Funktion lut_suche_bic_h() +���2 */
24410
24328
  DLL_EXPORT int lut_suche_bic_h(char *such_name,int *anzahl,int **start_idx,int **zweigstellen_base,
@@ -24790,6 +24708,7 @@ DLL_EXPORT const char *iban_ort(char *iban,int filiale,int*retval)
24790
24708
  {
24791
24709
  return iban_fkt_s(iban,filiale,retval,lut_ort);
24792
24710
  }
24711
+ #line 22911 "ruby/ext/konto_check_raw/konto_check.lxx"
24793
24712
 
24794
24713
  static int bic_fkt_c(char *bic1,int mode,int filiale,int *retval,char *base,int error)
24795
24714
  {
@@ -25734,7 +25653,7 @@ static int convert_encoding(char **data,UINT4 *len)
25734
25653
  DLL_EXPORT const char *pz2str(int pz,int *ret)
25735
25654
  {
25736
25655
  if(ret){
25737
- if(pz%1000>=144)
25656
+ if(pz%1000>=145)
25738
25657
  *ret=NOT_DEFINED;
25739
25658
  else
25740
25659
  *ret=OK;
@@ -26078,6 +25997,7 @@ DLL_EXPORT const char *pz2str(int pz,int *ret)
26078
25997
  default: return "???";
26079
25998
  }
26080
25999
  }
26000
+ #line 23866 "ruby/ext/konto_check_raw/konto_check.lxx"
26081
26001
 
26082
26002
  /* Funktion lut_keine_iban_berechnung() +���1 */
26083
26003
  /*
@@ -26192,7 +26112,7 @@ DLL_EXPORT int lut_keine_iban_berechnung(char *iban_blacklist,char *lutfile,int
26192
26112
  /* Funktion pz_aenderungen_enable() +���1 */
26193
26113
  /* ###########################################################################
26194
26114
  * # Die Funktion pz_aenderungen_enable() dient dazu, den Status des Flags #
26195
- * # pz_aenderungen_aktivieren_2017_09 abzufragen bzw. zu setzen. Falls die Variable #
26115
+ * # pz_aenderungen_aktivieren_2017_12 abzufragen bzw. zu setzen. Falls die Variable #
26196
26116
  * # set 1 ist, werden die �nderungen aktiviert, falls sie 0 ist, werden #
26197
26117
  * # die �nderungen deaktiviert. Bei allen anderen Werten wird das aktuelle #
26198
26118
  * # Flag nicht ver�ndert, sondern nur der Status zur�ckgegeben. #
@@ -26208,8 +26128,8 @@ DLL_EXPORT int lut_keine_iban_berechnung(char *iban_blacklist,char *lutfile,int
26208
26128
 
26209
26129
  DLL_EXPORT int pz_aenderungen_enable(int set)
26210
26130
  {
26211
- if(set==0 || set==1)pz_aenderungen_aktivieren_2017_09=set;
26212
- return pz_aenderungen_aktivieren_2017_09;
26131
+ if(set==0 || set==1)pz_aenderungen_aktivieren_2017_12=set;
26132
+ return pz_aenderungen_aktivieren_2017_12;
26213
26133
  }
26214
26134
 
26215
26135
  #if DEBUG>0
@@ -26241,6 +26161,7 @@ DLL_EXPORT char *kto_check_test_vars(char *txt,UINT4 i)
26241
26161
  #endif
26242
26162
 
26243
26163
 
26164
+ #line 24030 "ruby/ext/konto_check_raw/konto_check.lxx"
26244
26165
  /* Funktionen *_id() +���1 */
26245
26166
  /* ###########################################################################
26246
26167
  * # Die folgenden Funktionen sind die id-Varianten von Funktionen, die #
@@ -4358,7 +4358,7 @@ void Init_konto_check_raw()
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.01 from 2017-08-13):
4361
+ * and this version (V. 6.02 from 2017-11-26):
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.01.0
4
+ version: 6.02.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-09-20 00:00:00.000000000 Z
13
+ date: 2017-12-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: thoughtbot-shoulda