int xaddRDATableValue(RDATABLE *T,double a,double b,double r, int line,char *file) { TABLEVALUE *v=NULL; #ifdef USE_RDA_DIAGNOSTICS if(diagsec) { prterr("DIAG addRDATableValue at line [%d] program [%s].",line,file); } #endif /* ifdef USE_RDA_DIAGNOSTICS */ if(T!=NULL) { if(T->values!=NULL) { T->values=Rrealloc(T->values,(T->num+1)*sizeof(TABLEVALUE)); } else { T->values=Rmalloc((T->num+1)*sizeof(TABLEVALUE)); } v=T->values+(T->num); v->amount=a; v->base=b; v->rate=r; return(++T->num); } else { prterr("Error: RDATable is NULL at line [%d] program [%s].",line,file); return(-1); } }
void xaddRDApvar(RDApdev *p,char *name,char *command,short chgsize,short pitch, short points,short type,int line,char *file) { RDApvar *a=NULL; #ifdef USE_RDA_DIAGNOSTICS if(diagrptgen) { prterr("DIAG addRDApvar at line [%d] program [%s].",line,file); } #endif /* ifdef USE_RDA_DIAGNOSTICS */ if(p!=NULL) { if(p->pvar!=NULL) { p->pvar=Rrealloc(p->pvar,(p->num+1)*sizeof(RDApvar)); } else { p->num=0; p->pvar=Rmalloc(sizeof(RDApvar)); } a=p->pvar+p->num; a->name=stralloc(name); a->command=stralloc(command); a->type=type; a->chgsize=chgsize; a->points=points; a->pitch=pitch; ++p->num; } else { prterr("Error RDApdev at line [%d] program [%s] is NULLL.",line,file); } }
char *xstralloccat(char *base,char *add,int line,char *file) { if(diagmisc && !diagallocx) { prterr("DIAG xstralloccat String Allocated at line [%d] program [%s].",line,file); } if(base!=NULL) { if(diagallocx && diagmisc) { base=(char *)xRrealloc(base,RDAstrlen(base)+RDAstrlen(add)+1,line,file); } else { base=(char *)Rrealloc(base,RDAstrlen(base)+RDAstrlen(add)+1); } if(base!=NULL) strcat(base,add); } else { if(diagallocx && diagmisc) { base=xstralloc(add,line,file); } else { base=stralloc(add); } } return(base); }
void* Trealloc(void* memblock, size_t size) { // For compatibility, on 64-bit systems realloc should align to 16 bytes size_t alignment = (sizeof(intptr_t)>4 && size>8) ? 16 : 8; void *ret = Rrealloc(memblock, size); if (0 != ret) ASSERT(0==((uintptr_t)ret & (alignment-1)), "allocation result should be properly aligned"); return ret; }
static void XpertReadMe(RDArsrc *r) { int count=0; FILE *fp=NULL; char *temp=NULL,xtemp[513]; RDArsrc *tmprsrc=NULL; #ifndef WIN32 fp=fopen("./rda/Xpert.Read.Me","rb"); #endif #ifdef WIN32 fp=fopen(".\\rda\\Xpert.Read.Me","rb"); #endif if(fp!=NULL) { memset(xtemp,0,513); while(fgets(xtemp,512,fp)) { if(temp==NULL) { temp=Rmalloc(RDAstrlen(xtemp)+1); sprintf(&temp[count],"%s",(xtemp!=NULL ? xtemp:"")); count=RDAstrlen(xtemp); } else { temp=Rrealloc(temp,count+RDAstrlen(xtemp)+1); sprintf(&temp[count],"%s",(xtemp!=NULL ? xtemp:"")); count+=RDAstrlen(xtemp); } memset(xtemp,0,513); } fclose(fp); } tmprsrc=RDArsrcNEW("UTILITIES","READ ME"); addsctrsrc(tmprsrc,"README",0,temp,FALSE); addbtnrsrc(tmprsrc,"QUIT",TRUE,quitREADME,NULL); tmprsrc->scn=RDAscrnNEW("UTILITIES","READ ME"); addwdgt(tmprsrc->scn,1,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL); addwdgt(tmprsrc->scn,8,"README","Read Me",NULL,NULL,25,70,0,NULL,NULL,NULL); addwdgt(tmprsrc->scn,2,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL); addwdgt(tmprsrc->scn,1,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL); addwdgt(tmprsrc->scn,3,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL); addwdgt(tmprsrc->scn,1,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL); addwdgt(tmprsrc->scn,6,"QUIT","Cancel",NULL,NULL,0,0,0,NULL,NULL,NULL); addwdgt(tmprsrc->scn,2,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL); addwdgt(tmprsrc->scn,4,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL); addwdgt(tmprsrc->scn,2,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL); APPmakescrn(tmprsrc,TRUE,quitREADME,NULL,TRUE); if(temp!=NULL) Rfree(temp); }
static void *realloc_block(void *p, size_t size, const char *pFile_line) { VOGL_ASSERT(g_heap_initialized); VOGL_NOTE_UNUSED(pFile_line); #if VOGL_MALLOC_DEBUGGING lock_heap(); void *q = Rrealloc(p, size, pFile_line); unlock_heap(); #else void *q = realloc(p, size); #endif return q; }
static void *realloc_block(void *p, size_t size, const char *pFile_line) { VOGL_ASSERT(g_pHeap); lock_heap(); #if VOGL_MALLOC_DEBUGGING void *q = Rrealloc(p, size, pFile_line); #else VOGL_NOTE_UNUSED(pFile_line); void *q = stbm_realloc(NULL, g_pHeap, p, size, 0); #endif unlock_heap(); return q; }
char *fullacctdef(RDAacct *account) { RDAaccpart *accpart=NULL; short x, longest; char *display_value=NULL,zeros[101]; int defcount=0; if(account!=NULL) { if(account->acct!=NULL) { for(x=0,accpart=account->acct;x<account->num;++x,++accpart) { if(accpart->length>RDAstrlen(accpart->name)) { longest=accpart->length; } else { longest=RDAstrlen(accpart->name); } if(display_value!=NULL) { display_value=Rrealloc((void *)display_value,defcount+longest+2); } else { display_value=Rmalloc((void *)defcount+longest+1); } memset(zeros,0,101); memset(zeros,'0',100); zeros[longest]=0; if(defcount>0) { sprintf(&display_value[defcount],"-%-*s",longest,(accpart->force_zero ? zeros:accpart->definition)); defcount+=longest+1; } else { sprintf(&display_value[defcount],"%-*s",longest,(accpart->force_zero ? zeros:accpart->definition)); defcount+=longest; } } } } return(display_value); }
char *fullacctlabel(RDAacct *account) { RDAaccpart *accpart=NULL; short x, longest; char *display_value=NULL; int defcount=0; if(account!=NULL) { if(account->acct!=NULL) { for(x=0,accpart=account->acct;x<account->num;++x,++accpart) { if(accpart->length>RDAstrlen(accpart->name)) { longest=accpart->length; } else { longest=RDAstrlen(accpart->name); } if(display_value!=NULL) { display_value=Rrealloc((void *)display_value,defcount+longest+2); } else { display_value=Rmalloc((void *)defcount+longest+1); } if(defcount>0) { sprintf(&display_value[defcount],"-%-*s",longest,accpart->name); defcount+=longest+1; } else { sprintf(&display_value[defcount],"%-*s",longest,accpart->name); defcount+=longest; } } } } return(display_value); }
void lvemstm(short dowhich,void *targetkey) { char *name=NULL; RDArsrc *mtnrsrc=NULL; RDATData *previous=NULL; short nofields=0,nokeys=0,x=0,y=0; short edit_rsrc=FALSE; NRDfield *fields=NULL,*fldx=NULL; NRDkey *keys=NULL,*keyx=NULL; NRDpart *part; ZERNRD(MASTER->passkey->fileno); previous=RDATDataNEW(MASTER->passkey->fileno); mtnrsrc=RDArsrcNEW(MASTER->module,MASTER->maintain_screen); nokeys=NUMKEYS(MASTER->passkey->fileno); keys=KEYPOINTER(MASTER->passkey->fileno); nofields=NUMFLDS(MASTER->passkey->fileno); fields=FLDPOINTER(MASTER->passkey->fileno); GET_MAINTAIN_INCVARS(mtnrsrc,MASTER); GET_SCREEN_VIRTUALS(mtnrsrc,0); if(fields!=NULL) { for(x=0,fldx=fields;x<nofields;++x,++fldx) { if(fldx->type!=SDECIMALV) edit_rsrc=editable; else edit_rsrc=(short)(editable && RDAstrcmp(fldx->name,"PROCESSED EARNINGS") && RDAstrcmp(fldx->name,"UNPROCESSED EARNINGS") && RDAstrcmp(fldx->name,"PROCESSED USED") && RDAstrcmp(fldx->name,"UNPROCESSED USED")); nonlstmakefld(mtnrsrc,MASTER->passkey->fileno,fldx,edit_rsrc); if(name!=NULL) { name=Rrealloc(name,RDAstrlen(fldx->name)+5+RDAstrlen(MASTER->mainfile)); } else { name=Rmalloc(RDAstrlen(fldx->name)+5+RDAstrlen(MASTER->mainfile)); } sprintf(name,"[%s][%s]",MASTER->mainfile,fldx->name); FINDRSCSETFUNC(mtnrsrc,name,SETFILES,MASTER); } } if(keys!=NULL) { for(x=0,keyx=keys;x<nokeys;++x,++keyx) { if(keyx->part!=NULL) { for(y=0,part=keyx->part;y<keyx->numparts;++y,++part) { if(name!=NULL) { name=Rrealloc(name,RDAstrlen(part->name)+5+RDAstrlen(MASTER->mainfile)); } else { name=Rmalloc(RDAstrlen(part->name)+5+RDAstrlen(MASTER->mainfile)); } sprintf(name,"[%s][%s]",MASTER->mainfile,part->name); FINDRSCSETFUNC(mtnrsrc,name,SETID,previous); FINDRSCSETEDITABLE(mtnrsrc,name,TRUE); } } } } if(name!=NULL) Rfree(name); if(dscnum!=(-1)) file2rsrc(dscnum,mtnrsrc,FALSE); if(lvetyp!=(-1)) file2rsrc(lvetyp,mtnrsrc,FALSE); SET_MAINTAIN_FILE2RSRCS(mtnrsrc,MASTER); SCRNvirtual2rsrc(mtnrsrc); DefaultScreens(mtnrsrc); switch(dowhich) { case 1: ApplyPassKey(MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { KEYNRD(MASTER->passkey->fileno,MASTER->passkey->keyno); ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey); } else { GetRDATData(MASTER->passkey->fileno,previous); filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); } } else { GetRDATData(MASTER->passkey->fileno,previous); filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); } break; case 2: ApplyPassKey(MASTER->passkey); ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey); } else { GetRDATData(MASTER->passkey->fileno,previous); filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); } break; case 0: default: if(ADVEQLNRDKEYsec(MASTER->passkey->fileno,MASTER->passkey->keyno,targetkey,SCRNvirtualSubData,mtnrsrc)) { ZERNRD(MASTER->passkey->fileno); ApplyPassKey(MASTER->passkey); ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey); } else { GetRDATData(MASTER->passkey->fileno,previous); filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); } } else { GetRDATData(MASTER->passkey->fileno,previous); filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); } break; } GET_SUPPORTING(mtnrsrc,MASTER,SCRNvirtualSubData,(void *)mtnrsrc,FALSE,FALSE); getsupportingrecords(mtnrsrc,FALSE,FALSE); MSTSetVirFieldFuncs(mtnrsrc,MASTER); addbtnrsrc(mtnrsrc,"SAVE NO UPDATE",TRUE,save_record_nup,previous); if(mbl_mst!=NULL) { addrfcbrsrc(mtnrsrc,"SAVE",TRUE,save_record_up,previous); } else { addbtnrsrc(mtnrsrc,"SAVE",TRUE,save_record_nup,previous); } addrfkwrsrc(mtnrsrc,"BROWSE",TRUE,browse_mst,previous); if(mbl_mst!=NULL) { FINDRSCSETSENSITIVE(mtnrsrc,"BROWSE",FALSE); } if(!editable) { FINDRSCSETSENSITIVE(mtnrsrc,"SAVE",FALSE); FINDRSCSETSENSITIVE(mtnrsrc,"SAVE NO UPDATE",FALSE); } MakeMasterButtons(mtnrsrc,MASTER); MakePrevNextButtons(mtnrsrc,keys,nokeys,previous); addbtnrsrc(mtnrsrc,"RESET DEFAULTS",TRUE,resetdefs,previous); addbtnrsrc(mtnrsrc,"DEFAULTS",TRUE,SaveDefaults,NULL); addrfcbrsrc(mtnrsrc,"QUIT",TRUE,quit_record_test,previous); addrfcbrsrc(mtnrsrc,"HELP",TRUE,screenhelp,NULL); addrfcbrsrc(mtnrsrc,"PRINT RESOURCES",TRUE,printrsrcs,NULL); MSTcomputeallSCRNvirtuals(mtnrsrc,MASTER); APPmakescrn(mtnrsrc,FALSE,quit_record,previous,(mbl_mst==NULL?TRUE:FALSE)); }
static void payjpmsm(short dowhich,void *targetkey) { char *name=NULL; short nofields=0,nokeys=0,x=0,y=0,edit_rsrc=TRUE; NRDfield *fields=NULL,*fldx=NULL; NRDkey *keys=NULL,*keyx=NULL; NRDpart *part=NULL; RDArsrc *mtnrsrc=NULL; mtnrsrc=RDArsrcNEW(MASTER->module,MASTER->maintain_screen); ZERNRD(MASTER->passkey->fileno); nofields=NUMFLDS(MASTER->passkey->fileno); fields=FLDPOINTER(MASTER->passkey->fileno); nokeys=NUMKEYS(MASTER->passkey->fileno); keys=KEYPOINTER(MASTER->passkey->fileno); GET_MAINTAIN_INCVARS(mtnrsrc,MASTER); GET_SCREEN_VIRTUALS(mtnrsrc,0); if(fields!=NULL) { for(x=0,fldx=fields;x<nofields;++x,++fldx) { nonlstmakefld(mtnrsrc,MASTER->passkey->fileno,fldx,edit_rsrc); if(name!=NULL) { name=Rrealloc(name,RDAstrlen(fldx->name)+5+RDAstrlen(FILENAME(MASTER->passkey->fileno))); } else { name=Rmalloc(RDAstrlen(fldx->name)+5+RDAstrlen(FILENAME(MASTER->passkey->fileno))); } sprintf(name,"[%s][%s]",MASTER->mainfile,fldx->name); FINDRSCSETEDITABLE(mtnrsrc,name,FALSE); } if(keys!=NULL) { for(x=0,keyx=keys;x<nokeys;++x,++keyx) { if(keyx->part!=NULL) { for(y=0,part=keyx->part;y<keyx->numparts;++y,++part) { if(name!=NULL) { name=Rrealloc(name,RDAstrlen(part->name)+5+RDAstrlen(FILENAME(MASTER->passkey->fileno))); } else { name=Rmalloc(RDAstrlen(part->name)+5+RDAstrlen(FILENAME(MASTER->passkey->fileno))); } sprintf(name,"[%s][%s]",MASTER->mainfile,part->name); FINDRSCSETFUNC(mtnrsrc,name,SETID,NULL); FINDRSCSETEDITABLE(mtnrsrc,name,TRUE); } } } } } if(name!=NULL) Rfree(name); SET_MAINTAIN_FILE2RSRCS(mtnrsrc,MASTER); SCRNvirtual2rsrc(mtnrsrc); DefaultScreens(mtnrsrc); switch(dowhich) { case 1: ApplyPassKey(MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { KEYNRD(MASTER->passkey->fileno,MASTER->passkey->keyno); ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey); } else { filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); } } else { filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); } break; case 2: ApplyPassKey(MASTER->passkey); ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey); } else { filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); } break; case 0: default: if(ADVEQLNRDKEYsec(MASTER->passkey->fileno,MASTER->passkey->keyno,targetkey,SCRNvirtualSubData,mtnrsrc)) { ZERNRD(MASTER->passkey->fileno); ApplyPassKey(MASTER->passkey); ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey); } else { filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); } } else { filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); } break; } GET_SUPPORTING(mtnrsrc,MASTER,SCRNvirtualSubData,(void *)mtnrsrc,FALSE,FALSE); SetVirFieldFuncs(mtnrsrc); addrfkwrsrc(mtnrsrc,"BROWSE",TRUE,browse_payjpms,NULL); addbtnrsrc(mtnrsrc,"DEFAULTS",TRUE,SaveDefaults,NULL); addbtnrsrc(mtnrsrc,"RESET DEFAULTS",TRUE,resetdefs,NULL); addrfcbrsrc(mtnrsrc,"QUIT",TRUE,quit_record,NULL); addrfcbrsrc(mtnrsrc,"HELP",TRUE,screenhelp,NULL); addrfcbrsrc(mtnrsrc,"PRINT RESOURCES",TRUE,printrsrcs,NULL); ADVMakePrevNextButtons(mtnrsrc,keys,nokeys,getpreviouscb,NULL,getnextcb,NULL); MakeMasterButtons(mtnrsrc,MASTER); computeallSCRNvirtuals(mtnrsrc); if(mbl_payjpms!=NULL) FINDRSCSETSENSITIVE(mtnrsrc,"BROWSE",FALSE); APPmakescrn(mtnrsrc,FALSE,quit_record,NULL,(mbl_payjpms==NULL?TRUE:FALSE)); }
void fineaccm(short dowhich,void *targetkey) { int which_type=0; char *name=NULL; short nofields=0,nokeys=0,x=0,y=0,edit_rsrc=FALSE; NRDfield *fields=NULL,*fldx=NULL; NRDkey *keys=NULL,*keyx=NULL; NRDpart *part; RDAacct *acc=NULL; RDArsrc *mtnrsrc=NULL; mtnstruct *mtn=NULL; mtnrsrc=RDArsrcNEW(MASTER->module,MASTER->maintain_screen); ZERNRD(MASTER->passkey->fileno); mtn=Rmalloc(sizeof(mtnstruct)); mtn->previous=NULL; mtn->previous=RDATDataNEW(MASTER->passkey->fileno); mtn->DEFtypes=NULL; mtn->DEFtypes=APPlibNEW(); if(EXPENDITURE_ACCOUNT!=NULL) { if(EXPENDITURE_ACCOUNT->codetype!=NULL) { for(x=0,acc=EXPENDITURE_ACCOUNT->codetype;x<EXPENDITURE_ACCOUNT->num;++x,++acc) { addAPPlib(mtn->DEFtypes,acc->name); } } } if(mtn->DEFtypes->numlibs<1) { addAPPlib(mtn->DEFtypes,"No Definitions Available"); } nokeys=NUMKEYS(MASTER->passkey->fileno); keys=KEYPOINTER(MASTER->passkey->fileno); nofields=NUMFLDS(MASTER->passkey->fileno); fields=FLDPOINTER(MASTER->passkey->fileno); GET_MAINTAIN_INCVARS(mtnrsrc,MASTER); GET_SCREEN_VIRTUALS(mtnrsrc,0); if(fields!=NULL) { for(x=0,fldx=fields;x<nofields;++x,++fldx) { edit_rsrc=(short)editable; if(!RDAstrcmp(fldx->name,"DEFINITION TYPE")) { if(FIELDscrn(MASTER->passkey->fileno,fldx->name,&edit_rsrc)) { which_type=0; addlstrsrc(mtnrsrc,"DEFINITION TYPES", &which_type, (edit_rsrc==TRUE?TRUE:FALSE), changeDEFtypecb, mtn->DEFtypes->numlibs, &mtn->DEFtypes->libs,mtn); } } else { nonlstmakefld(mtnrsrc,MASTER->passkey->fileno,fldx,edit_rsrc); if(name!=NULL) { name=Rrealloc(name,RDAstrlen(fldx->name)+5+RDAstrlen(MASTER->mainfile)); } else { name=Rmalloc(RDAstrlen(fldx->name)+5+RDAstrlen(MASTER->mainfile)); } sprintf(name,"[%s][%s]",MASTER->mainfile,fldx->name); FINDRSCSETFUNC(mtnrsrc,name,SETFILES,MASTER); } } } if(keys!=NULL) { for(x=0,keyx=keys;x<nokeys;++x,++keyx) { if(keyx->part!=NULL) { for(y=0,part=keyx->part;y<keyx->numparts;++y,++part) { if(name!=NULL) { name=Rrealloc(name,RDAstrlen(part->name)+5+RDAstrlen(MASTER->mainfile)); } else { name=Rmalloc(RDAstrlen(part->name)+5+RDAstrlen(MASTER->mainfile)); } sprintf(name,"[%s][%s]",MASTER->mainfile,part->name); FINDRSCSETFUNC(mtnrsrc,name,SETID,mtn); } } } } if(name!=NULL) Rfree(name); SET_MAINTAIN_FILE2RSRCS(mtnrsrc,MASTER); SCRNvirtual2rsrc(mtnrsrc); DefaultScreens(mtnrsrc); switch(dowhich) { case 1: ApplyPassKey(MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { KEYNRD(MASTER->passkey->fileno,MASTER->passkey->keyno); ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey); } else { GetRDATData(MASTER->passkey->fileno,mtn->previous); filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); } } else { GetRDATData(MASTER->passkey->fileno,mtn->previous); filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); } break; case 2: ApplyPassKey(MASTER->passkey); ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey); } else { GetRDATData(MASTER->passkey->fileno,mtn->previous); filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); } break; default: case 0: if(EQLNRDKEYsec(MASTER->passkey->fileno,MASTER->passkey->keyno,targetkey)) { ZERNRD(MASTER->passkey->fileno); ApplyPassKey(MASTER->passkey); ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey); } else { GetRDATData(MASTER->passkey->fileno,mtn->previous); filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); } } else { filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); GetRDATData(MASTER->passkey->fileno,mtn->previous); } break; } setLISTS(mtnrsrc,mtn,FALSE); GET_SUPPORTING(mtnrsrc,MASTER,SCRNvirtualSubData,(void *)mtnrsrc,FALSE,FALSE); MSTSetVirFieldFuncs(mtnrsrc,MASTER); MakePrevNextButtons(mtnrsrc,keys,nokeys,mtn); MakeMasterButtons(mtnrsrc,MASTER); MSTcomputeallSCRNvirtuals(mtnrsrc,MASTER); addbtnrsrc(mtnrsrc,"SAVE NO UPDATE",TRUE,save_record_nup,mtn); if(mbl_fineacc!=NULL) { addbtnrsrc(mtnrsrc,"SAVE",TRUE,save_record_up,mtn); } else { addbtnrsrc(mtnrsrc,"SAVE",TRUE,save_record_nup,mtn); } addrfkwrsrc(mtnrsrc,"BROWSE",TRUE,browse_fineacc,mtn); if(mbl_fineacc!=NULL) { FINDRSCSETSENSITIVE(mtnrsrc,"BROWSE",FALSE); } if(!editable) { FINDRSCSETSENSITIVE(mtnrsrc,"SAVE",FALSE); FINDRSCSETSENSITIVE(mtnrsrc,"SAVE NO UPDATE",FALSE); } addbtnrsrc(mtnrsrc,"DEFAULTS",TRUE,SaveDefaults,NULL); addbtnrsrc(mtnrsrc,"RESET DEFAULTS",TRUE,resetdefs,mtn); addrfcbrsrc(mtnrsrc,"QUIT",TRUE,quit_record_test,mtn); addrfcbrsrc(mtnrsrc,"HELP",TRUE,screenhelp,NULL); addrfcbrsrc(mtnrsrc,"PRINT RESOURCES",TRUE,printrsrcs,NULL); APPmakescrn(mtnrsrc,FALSE,quit_record,mtn,(mbl_fineacc==NULL?TRUE:FALSE)); }
void veninvm(short dowhich,void *targetkey) { char *name=NULL; short edit_rsrc=TRUE,nofields=0,nokeys=0,x=0,y=0; int which_type=0; NRDfield *fields=NULL,*fldx=NULL; NRDkey *keys=NULL,*keyx=NULL; NRDpart *part; RDArsrc *mtnrsrc=NULL; mtnstruct *mtn=NULL; mtnrsrc=RDArsrcNEW(MASTER->module,MASTER->maintain_screen); ZERNRD(MASTER->passkey->fileno); mtn=Rmalloc(sizeof(mtnstruct)); mtn->previous=RDATDataNEW(MASTER->passkey->fileno); mtn->addresslist=NULL; nokeys=NUMKEYS(MASTER->passkey->fileno); keys=KEYPOINTER(MASTER->passkey->fileno); nofields=NUMFLDS(MASTER->passkey->fileno); fields=FLDPOINTER(MASTER->passkey->fileno); GET_MAINTAIN_INCVARS(mtnrsrc,MASTER); GET_SCREEN_VIRTUALS(mtnrsrc,0); if(fields!=NULL) { for(x=0,fldx=fields;x<nofields;++x,++fldx) { edit_rsrc=(short)editable; if(!RDAstrcmp(fldx->name,"ADDRESS IDENTIFICATION")) { if(FIELDscrn(MASTER->passkey->fileno,fldx->name,&edit_rsrc)) { if(mtn->addresslist!=NULL) freeapplib(mtn->addresslist); mtn->addresslist=APPlibNEW(); addAPPlib(mtn->addresslist,"No Addresses Defined"); addlstrsrc(mtnrsrc, "VENINV ADDRESS IDENTIFICATIONS", &which_type, (edit_rsrc?TRUE:FALSE), changeADDRlist, mtn->addresslist->numlibs, &mtn->addresslist->libs,mtn); } } else { nonlstmakefld(mtnrsrc,MASTER->passkey->fileno,fldx,edit_rsrc); if(name!=NULL) { name=Rrealloc(name,RDAstrlen(fldx->name)+5+RDAstrlen(MASTER->mainfile)); } else { name=Rmalloc(RDAstrlen(fldx->name)+5+RDAstrlen(MASTER->mainfile)); } sprintf(name,"[%s][%s]",MASTER->mainfile,fldx->name); FINDRSCSETFUNC(mtnrsrc,name,SETFILES,MASTER); } } } if(keys!=NULL) { for(x=0,keyx=keys;x<nokeys;++x,++keyx) { if(keyx->part!=NULL) { for(y=0,part=keyx->part;y<keyx->numparts;++y,++part) { if(name!=NULL) { name=Rrealloc(name,RDAstrlen(part->name)+5+RDAstrlen(MASTER->mainfile)); } else { name=Rmalloc(RDAstrlen(part->name)+5+RDAstrlen(MASTER->mainfile)); } sprintf(name,"[%s][%s]",MASTER->mainfile,part->name); FINDRSCSETFUNC(mtnrsrc,name,SETID,mtn); FINDRSCSETEDITABLE(mtnrsrc,name,TRUE); } } } } if(name!=NULL) Rfree(name); SET_MAINTAIN_FILE2RSRCS(mtnrsrc,MASTER); SCRNvirtual2rsrc(mtnrsrc); DefaultScreens(mtnrsrc); switch(dowhich) { case 1: ApplyPassKey(MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { KEYNRD(MASTER->passkey->fileno,MASTER->passkey->keyno); ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey); set_appdefaults(mtnrsrc,mtn,FALSE); } else { GetRDATData(MASTER->passkey->fileno,mtn->previous); filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); setlists(mtnrsrc,mtn,FALSE); } } else { GetRDATData(MASTER->passkey->fileno,mtn->previous); filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); setlists(mtnrsrc,mtn,FALSE); } break; case 2: ApplyPassKey(MASTER->passkey); ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey); set_appdefaults(mtnrsrc,mtn,FALSE); } else { GetRDATData(MASTER->passkey->fileno,mtn->previous); filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); setlists(mtnrsrc,mtn,FALSE); } break; default: case 0: if(ADVEQLNRDKEYsec(MASTER->passkey->fileno,MASTER->passkey->keyno,targetkey,SCRNvirtualSubData,mtnrsrc)) { ZERNRD(MASTER->passkey->fileno); ApplyPassKey(MASTER->passkey); ReadRDAScrolledListsNoPassKeys(mtnrsrc,MASTER->passkey); if(ADVEQLNRDsec(MASTER->passkey->fileno,MASTER->passkey->keyno,SCRNvirtualSubData,mtnrsrc)) { ApplyPassKey2Rsrc(mtnrsrc,MASTER->passkey); set_appdefaults(mtnrsrc,mtn,FALSE); } else { GetRDATData(MASTER->passkey->fileno,mtn->previous); filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); setlists(mtnrsrc,mtn,FALSE); } } else { GetRDATData(MASTER->passkey->fileno,mtn->previous); filerecord2rsrc(MASTER->passkey->fileno,mtnrsrc); setlists(mtnrsrc,mtn,FALSE); } break; } GET_SUPPORTING(mtnrsrc,MASTER,SCRNvirtualSubData,(void *)mtnrsrc,FALSE,FALSE); SetVirFieldFuncs(mtnrsrc); addbtnrsrc(mtnrsrc,"SAVE NO UPDATE",TRUE,save_record_nup,mtn); if(mbl_veninv!=NULL) { addbtnrsrc(mtnrsrc,"SAVE",TRUE,save_record_up,mtn); } else { addbtnrsrc(mtnrsrc,"SAVE",TRUE,save_record_nup,mtn); } addrfkwrsrc(mtnrsrc,"BROWSE",TRUE,browse_veninv,mtn); addbtnrsrc(mtnrsrc,"DEFAULTS",TRUE,SaveDefaults,NULL); addbtnrsrc(mtnrsrc,"RESET DEFAULTS",TRUE,resetdefs,mtn); addbtnrsrc(mtnrsrc,"QUIT",TRUE,quit_record_test,mtn); addbtnrsrc(mtnrsrc,"HELP",TRUE,screenhelp,NULL); addbtnrsrc(mtnrsrc,"PRINT RESOURCES",TRUE,printrsrcs,NULL); MakePrevNextButtons(mtnrsrc,keys,nokeys,mtn); MakeMasterButtons(mtnrsrc,MASTER); computeallSCRNvirtuals(mtnrsrc); if(mbl_veninv!=NULL) { FINDRSCSETSENSITIVE(mtnrsrc,"BROWSE",FALSE); } if(!editable) { FINDRSCSETSENSITIVE(mtnrsrc,"SAVE",FALSE); FINDRSCSETSENSITIVE(mtnrsrc,"SAVE NO UPDATE",FALSE); } APPmakescrn(mtnrsrc,FALSE,quit_record,mtn, (mbl_veninv==NULL?TRUE:FALSE)); }
short VIRTUALMTNReportGenSubData1(char **tmp,HoldReport *h,char *modulename) { char *dashname=NULL,*tempvalue=NULL; char *tempchar=" "; int y=0; RDAvirtual *v=NULL; RDAreport *rpt=NULL; RDArunrpt *rrpt=NULL; char *temp=NULL,*gn=NULL,doall=TRUE; short start=1,length=0,str_length=0; #ifdef USE_RDA_DIAGNOSTICS if(diagrptgen || diageval) { prterr("DIAG VIRTUALMTNReportGenSubData1(): Substituting for [%s].",*tmp); } #endif /* ifdef USE_RDA_DIAGNOSTICS */ rpt=h->rpt; rrpt=h->rrpt; if(isEMPTY(modulename)) return(1); if(rpt->virflds!=NULL && rpt->numvirtuals!=0) { for(y=0,v=rpt->virflds;y<rpt->numvirtuals;++y,++v) { if(!RDAstrcmp(modulename,v->name)) break; } if(y<rpt->numvirtuals) { switch(v->type) { case SCROLLEDTEXT: case VARIABLETEXT: case DATES: case TIMES: case SOCSECNUM: case PLAINTEXT: case PHONE: case CUSTOMTYPE: case ZIPCODE: case EXPENDITURE: case REVENUE: case BALANCESHEET: case BEGINNINGBALANCE: case OPTIONALFIELDS: if(RDAstrlen(*tmp)>(RDAstrlen(v->name)+2)) { temp=*tmp+(RDAstrlen(v->name)+3); gn=strtok(temp,",]"); if(gn!=NULL) { if(!isEMPTY(gn)) { start=Ratoi(gn); } else start=1; gn=strtok(NULL,"]"); if(!isEMPTY(gn)) { length=Ratoi(gn); } else length=0; } if(start<1) start=1; doall=FALSE; } str_length=(v->value.string_value!=NULL?RDAstrlen(v->value.string_value):0); if(length==0) length=str_length; if(RDAstrlen(*tmp)<(length+3)) { *tmp=Rrealloc(*tmp,length+3); } if(doall) { sprintf(*tmp,"\"%s\"",(v->value.string_value!=NULL ? v->value.string_value:"")); } else if(!isEMPTY(v->value.string_value) && (start-1)<str_length && str_length<length) { temp=stralloc(v->value.string_value); gn=temp+(start-1); if(RDAstrlen(gn)>(length)) { temp[start-1+length]=0; } sprintf(*tmp,"\"%s\"",&temp[start-1]); if(temp!=NULL) Rfree(temp); temp=NULL; } else if((start-1)<str_length && !isEMPTY(v->value.string_value)) { sprintf(*tmp,"\"%s\"",&v->value.string_value[start-1]); } else { sprintf(*tmp,"\"\""); } if(!RDAstrcmp(v->name,"ERROR DESCRIPTION") && !isEMPTY(v->value.string_value)) { if(rrpt->errorlist->numlibs==1 && !RDAstrcmp(rrpt->errorlist->libs[0],"No Errors Encountered")) { freeapplib(rrpt->errorlist); rrpt->errorlist=APPlibNEW(); } addAPPlib(rrpt->errorlist,v->value.string_value); } break; case SHORTV: case SSHORTV: if(*v->value.short_value<0) { sprintf(stemp,"(%d)",*v->value.short_value); } else { sprintf(stemp,"%d",*v->value.short_value); } str_length=RDAstrlen(stemp); if(RDAstrlen(*tmp)<str_length) { *tmp=Rrealloc(*tmp,str_length+1); } memcpy(*tmp,stemp,str_length+1); break; case SCROLLEDLIST: case LONGV: case SLONGV: if(*v->value.integer_value<0) { sprintf(stemp,"(%d)",*v->value.integer_value); } else { sprintf(stemp,"%d",*v->value.integer_value); } str_length=RDAstrlen(stemp); if(RDAstrlen(*tmp)<str_length) { *tmp=Rrealloc(*tmp,str_length+1); } memcpy(*tmp,stemp,str_length+1); break; case DOLLARS: case DOLLARS_NOCENTS: case DOUBLEV: case SDOUBLEV: if(*v->value.float_value<0) { sprintf(stemp,"(%.0f)",*v->value.float_value); } else { sprintf(stemp,"%.0f",*v->value.float_value); } str_length=RDAstrlen(stemp); if(RDAstrlen(*tmp)<str_length) { *tmp=Rrealloc(*tmp,str_length+1); } memcpy(*tmp,stemp,str_length+1); break; case DECIMALV: case SDECIMALV: if(*v->value.float_value<0) { sprintf(stemp,"(%f)",*v->value.float_value); } else { sprintf(stemp,"%f",*v->value.float_value); } str_length=RDAstrlen(stemp); if(RDAstrlen(*tmp)<str_length) { *tmp=Rrealloc(*tmp,str_length+1); } memcpy(*tmp,stemp,str_length+1); break; case BOOLNS: if(RDAstrlen(*tmp)<2) { *tmp=Rrealloc(*tmp,2); } sprintf(*tmp,"%d",(*v->value.string_value ? 1:0)); break; case CHARACTERS: if(RDAstrlen(*tmp)<2) { *tmp=Rrealloc(*tmp,2); } sprintf(stemp,"%c",*v->value.string_value); break; default: prterr("Error field type %d is invalid for %s.",v->type,v->name); if(*tmp!=NULL) Rfree(*tmp); *tmp=NULL; break; } } else { return(1); } } else { return(1); } return(0); }