fixed gdd => dbr_gr_enum/dbr_ctrl_enum to handle off normal situations

This commit is contained in:
Jeff Hill
2002-09-17 17:59:55 +00:00
parent dd04436293
commit bb8fa4fd10

View File

@@ -1098,14 +1098,27 @@ static int mapGraphicGddToEnum(void* v, aitIndex count, const gdd & dd, const gd
vdd.getStatSevr(db->status,db->severity);
db->no_str=menu.getDataSizeElements();
if(str && str!=f)
if(str && str!=f && menu.isAtomic() )
{
db->no_str=menu.getDataSizeElements();
for(i=0;i<db->no_str;i++) {
strncpy(&(db->strs[i][0]),str[i].fixed_string,
MAX_ENUM_STRING_SIZE);
db->strs[i][MAX_ENUM_STRING_SIZE-1u] = '\0';
}
}
else if (str && menu.isScalar()) {
db->no_str = 1;
strncpy(&(db->strs[0][0]),str->fixed_string,
MAX_ENUM_STRING_SIZE);
db->strs[0][MAX_ENUM_STRING_SIZE-1u] = '\0';
}
else {
db->no_str = 0;
}
for(i=db->no_str;i<MAX_ENUM_STATES;i++) {
db->strs[i][0] = '\0';
}
return mapGddToEnum(&db->value, count, vdd, enumStringTable);
}
@@ -1119,16 +1132,27 @@ static int mapControlGddToEnum(void* v, aitIndex count, const gdd & dd, const gd
int i;
vdd.getStatSevr(db->status,db->severity);
db->no_str=menu.getDataSizeElements();
if(str && str!=f)
if(str && str!=f && menu.isAtomic() )
{
db->no_str=menu.getDataSizeElements();
for(i=0;i<db->no_str;i++) {
strncpy(&(db->strs[i][0]),str[i].fixed_string,
MAX_ENUM_STRING_SIZE);
db->strs[i][MAX_ENUM_STRING_SIZE-1u] = '\0';
}
}
else if (str && menu.isScalar()) {
db->no_str = 1;
strncpy(&(db->strs[0][0]),str->fixed_string,
MAX_ENUM_STRING_SIZE);
db->strs[0][MAX_ENUM_STRING_SIZE-1u] = '\0';
}
else {
db->no_str = 0;
}
for(i=db->no_str;i<MAX_ENUM_STATES;i++) {
db->strs[i][0] = '\0';
}
return mapGddToEnum(&db->value, count, vdd, enumStringTable);
}