Commit 70e04ce7 authored by Claes Sjofors's avatar Claes Sjofors

Xtt and Ge graphs, allow comma in float value input

parent cd44f1f8
...@@ -5507,16 +5507,34 @@ int graph_attr_string_to_value( int type_id, const char *value_str, ...@@ -5507,16 +5507,34 @@ int graph_attr_string_to_value( int type_id, const char *value_str,
} }
case pwr_eType_Float32: case pwr_eType_Float32:
{ {
if ( sscanf( value_str, "%f%s", (float *)buffer_ptr, s) != 1) if ( sscanf( value_str, "%f%s", (float *)buffer_ptr, s) != 1) {
return GE__INPUT_SYNTAX; char val[40];
char *sp;
strncpy( val, value_str, sizeof(val));
if ( (sp = strchr( val, ',')) == 0)
return GE__INPUT_SYNTAX;
*sp = '.';
if ( sscanf( val, "%f%s", (float *)buffer_ptr, s) != 1)
return GE__INPUT_SYNTAX;
}
break; break;
} }
case pwr_eType_Float64: case pwr_eType_Float64:
{ {
pwr_tFloat32 f; pwr_tFloat32 f;
pwr_tFloat64 d; pwr_tFloat64 d;
if ( sscanf( value_str, "%f%s", &f, s) != 1) if ( sscanf( value_str, "%f%s", &f, s) != 1) {
return GE__INPUT_SYNTAX; char val[40];
char *sp;
strncpy( val, value_str, sizeof(val));
if ( (sp = strchr( val, ',')) == 0)
return GE__INPUT_SYNTAX;
*sp = '.';
if ( sscanf( val, "%f%s", (float *)buffer_ptr, s) != 1)
return GE__INPUT_SYNTAX;
}
d = f; d = f;
memcpy( buffer_ptr, (char *) &d, sizeof(d)); memcpy( buffer_ptr, (char *) &d, sizeof(d));
......
...@@ -270,15 +270,33 @@ int XNav::attr_string_to_value( int type_id, char *value_str, ...@@ -270,15 +270,33 @@ int XNav::attr_string_to_value( int type_id, char *value_str,
*(float *)buffer_ptr = FLT_MAX; *(float *)buffer_ptr = FLT_MAX;
else if ( strcmp( value_str, "FltNMax") == 0) else if ( strcmp( value_str, "FltNMax") == 0)
*(float *)buffer_ptr = -FLT_MAX; *(float *)buffer_ptr = -FLT_MAX;
else if ( sscanf( value_str, "%f%s", (float *)buffer_ptr, s) != 1) else if ( sscanf( value_str, "%f%s", (float *)buffer_ptr, s) != 1) {
return XNAV__INPUT_SYNTAX; char val[40];
char *sp;
strncpy( val, value_str, sizeof(val));
if ( (sp = strchr( val, ',')) == 0)
return XNAV__INPUT_SYNTAX;
*sp = '.';
if ( sscanf( val, "%f%s", (float *)buffer_ptr, s) != 1)
return XNAV__INPUT_SYNTAX;
}
break; break;
} }
case pwr_eType_Float64: { case pwr_eType_Float64: {
pwr_tFloat32 f; pwr_tFloat32 f;
pwr_tFloat64 d; pwr_tFloat64 d;
if ( sscanf( value_str, "%f%s", &f, s) != 1) if ( sscanf( value_str, "%f%s", &f, s) != 1) {
return XNAV__INPUT_SYNTAX; char val[40];
char *sp;
strncpy( val, value_str, sizeof(val));
if ( (sp = strchr( val, ',')) == 0)
return XNAV__INPUT_SYNTAX;
*sp = '.';
if ( sscanf( val, "%f%s", (float *)buffer_ptr, s) != 1)
return XNAV__INPUT_SYNTAX;
}
d = f; d = f;
memcpy( buffer_ptr, (char *) &d, sizeof(d)); memcpy( buffer_ptr, (char *) &d, sizeof(d));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment