Fix default problems

This commit is contained in:
Marty Kraimer
1996-10-15 19:23:22 +00:00
parent 2d999ed858
commit 5d123c6a4d
+17 -6
View File
@@ -164,6 +164,7 @@ int dbIsDefaultValue(DBENTRY *pdbentry)
{
dbFldDes *pflddes = pdbentry->pflddes;
void *pfield = pdbentry->pfield;
char *endp;
if(!pflddes) return(FALSE);
switch (pflddes->field_type) {
@@ -182,13 +183,19 @@ int dbIsDefaultValue(DBENTRY *pdbentry)
case DBF_DOUBLE:
case DBF_ENUM:
if(!pfield) return(TRUE);
if(!pflddes->initial) return(FALSE);
if(!pflddes->initial) {
if((strtod((char *)pfield,&endp)==0.0) && (*endp=='\0'))
return(TRUE);
return(FALSE);
}
return(strcmp((char *)pfield,(char *)pflddes->initial)==0);
case DBF_MENU: {
unsigned short val,ival;
unsigned short val=0;
unsigned short ival;
if(!pfield) return(FALSE);
val = *(unsigned short *)pfield;
if(pfield) val = *(unsigned short *)pfield;
if(!pfield || pflddes->initial == 0)
return((val==0)?TRUE:FALSE);
if(pflddes->initial == 0) return((val==0)?TRUE:FALSE);
sscanf(pflddes->initial,"%hu",&ival);
return((val==ival)?TRUE:FALSE);
@@ -212,8 +219,12 @@ int dbIsDefaultValue(DBENTRY *pdbentry)
if(!plink) return(FALSE);
if(plink->type!=CONSTANT) return(FALSE);
if(plink->value.constantStr == 0) return(TRUE);
if(!pflddes->initial) return(FALSE);
if(!plink->value.constantStr) return(TRUE);
if(!pflddes->initial) {
if((strtod((char *)plink->value.constantStr,&endp)==0.0)
&& (*endp=='\0')) return(TRUE);
return(FALSE);
}
if(strcmp(plink->value.constantStr,pflddes->initial)==0)
return(TRUE);
return(FALSE);