diff --git a/include/codeb.c b/include/codeb.c index 320fe622b..3453b6a24 100755 --- a/include/codeb.c +++ b/include/codeb.c @@ -488,18 +488,17 @@ HIDDEN void do_key(const char *fname, RecDes *r, TAG4INFO *tag_info, int n_keys) xvt_str_make_upper(tiname); for (i=0; ((i < MaxKeys) && (i < n_keys)); i++) { - tag_info[i].name=(char *)u4alloc(9); + tag_info[i].name=(char *)u4alloc(_MAX_FNAME); tag_info[i].expression=(char *)u4alloc(256); - tag_info[i].filter=(char*)u4alloc(20); + tag_info[i].filter=(char*)u4alloc(32); tag_info[i].descending=0; if (r->Ky[i].DupKeys) tag_info[i].unique=0; else - tag_info[i].unique= i == 0 ? e4unique : r4unique_continue; + tag_info[i].unique= i == 0 ? e4unique : r4unique_continue; strcpy((char *)tag_info[i].filter,".NOT. DELETED()"); /* Not available for DBIII and CLIPPER */ strcpy((char *)tag_info[i].name,tiname) ; - if (strlen(tiname) < 8) - strcat((char *)tag_info[i].name," "); + strcat((char *)tag_info[i].name," "); tag_info[i].name[strlen(tag_info[i].name)-1] = '0' + i + 1; for (j=0; j < r->Ky[i].NkFields; j++) { @@ -544,8 +543,8 @@ HIDDEN void do_key(const char *fname, RecDes *r, TAG4INFO *tag_info, int n_keys) case _longzerofld: { char ts[8]; - strcat((char *)tag_info[i].expression,","); sprintf(ts,"%d",r->Fd[nf].Len); + strcat((char *)tag_info[i].expression,","); strcat((char *)tag_info[i].expression,ts); strcat((char *)tag_info[i].expression,",0)"); } @@ -805,14 +804,16 @@ int DB_build(const char * filename, RecDes *r) FIELD4INFO field_info[MaxFields+1]; /* Numero di campi in un record */ TAG4INFO tag_info[MaxKeys+1]; /* Numero di chiavi in un file */ - DATA4 *dbuilded; + DATA4 *dbuilded = NULL; int rt=0,i; const char *ff = find_slash_backslash(filename); + memset(field_info, 0, sizeof(field_info)); + memset(tag_info, 0, sizeof(tag_info)); for (i=0; ((iNFields) && (iFd[i].Name); field_info[i].len = r->Fd[i].Len; field_info[i].dec = r->Fd[i].Dec; @@ -858,7 +859,9 @@ int DB_build(const char * filename, RecDes *r) rt=code_base.errorCode; else rt=d4close(dbuilded); - if (u4switch() & 2 || u4switch() & 8) /* Rebuild filename.cgp for CLIPPER AND DBIII only */ + + /* Non abbiamo mai usato e spariamo mai useremo questo genere di files!!!! + if (u4switch() & 2 || u4switch() & 8) //Rebuild filename.cgp for CLIPPER AND DBIII only { FILE* fp; char xx[81]; @@ -872,7 +875,7 @@ int DB_build(const char * filename, RecDes *r) fprintf(fp,"%s\n",tag_info[j].name); fclose(fp); } - } + }*/ if (rt!=0) rt=code_base.errorCode; for (i=0; ((i < MaxFields) && (i < r->NFields)); i++)