Not using float config values.

SVN revision: 37769
This commit is contained in:
Kim Woelders 2008-11-23 14:34:19 +00:00
parent 2e656b2214
commit b5f63fb1ef
2 changed files with 13 additions and 8 deletions

View File

@ -279,8 +279,12 @@ CfgItemFind(const CfgItem * pcl, int ncl, const char *name)
static void
CfgItemSetFromString(const CfgItem * ci, const char *str, int set_dflt)
{
int n, ival;
int ival;
#ifdef ITEM_TYPE_FLOAT
int n;
float fval;
#endif
char *ptr;
ptr = (char *)str;
@ -307,6 +311,7 @@ CfgItemSetFromString(const CfgItem * ci, const char *str, int set_dflt)
}
*((int *)ci->ptr) = ival;
break;
#ifdef ITEM_TYPE_FLOAT
case ITEM_TYPE_FLOAT:
n = (str) ? sscanf(str, "%f", &fval) : 0;
if (n <= 0)
@ -317,6 +322,7 @@ CfgItemSetFromString(const CfgItem * ci, const char *str, int set_dflt)
}
*((float *)ci->ptr) = fval;
break;
#endif
case ITEM_TYPE_STRING:
Efree(*(char **)ci->ptr);
if (str && *str == '\0')
@ -341,9 +347,11 @@ CfgItemToString(const CfgItem * ci, char *buf, int len)
case ITEM_TYPE_HEX:
Esnprintf(buf, len, "%#x", *((unsigned int *)ci->ptr));
break;
#ifdef ITEM_TYPE_FLOAT
case ITEM_TYPE_FLOAT:
Esnprintf(buf, len, "%.3f", *((float *)ci->ptr));
break;
#endif
case ITEM_TYPE_STRING:
if (*((char **)ci->ptr))
Esnprintf(buf, len, "%s", *((char **)ci->ptr));

View File

@ -36,13 +36,10 @@ typedef struct {
const CfgItem *lst;
} CfgItemList;
typedef enum {
ITEM_TYPE_BOOL,
ITEM_TYPE_INT,
ITEM_TYPE_HEX,
ITEM_TYPE_FLOAT,
ITEM_TYPE_STRING
} cfg_item_type_e;
#define ITEM_TYPE_BOOL 0
#define ITEM_TYPE_INT 1
#define ITEM_TYPE_HEX 2
#define ITEM_TYPE_STRING 3
#define CFG_ITEM_BOOL(conf, name, dflt) { #name, &conf.name, ITEM_TYPE_BOOL, dflt, NULL }
#define CFG_ITEM_INT(conf, name, dflt) { #name, &conf.name, ITEM_TYPE_INT, dflt, NULL }