Joseph Redmon
2015-12-14 db0397cfaaf488364e3d2e1669dfefae2ee6ea73
src/option_list.c
@@ -3,11 +3,23 @@
#include <string.h>
#include "option_list.h"
typedef struct{
    char *key;
    char *val;
    int used;
} kvp;
int read_option(char *s, list *options)
{
    size_t i;
    size_t len = strlen(s);
    char *val = 0;
    for(i = 0; i < len; ++i){
        if(s[i] == '='){
            s[i] = '\0';
            val = s+i+1;
            break;
        }
    }
    if(i == len-1) return 0;
    char *key = s;
    option_insert(options, key, val);
    return 1;
}
void option_insert(list *l, char *key, char *val)
{
@@ -47,7 +59,7 @@
{
    char *v = option_find(l, key);
    if(v) return v;
    fprintf(stderr, "%s: Using default '%s'\n", key, def);
    if(def) fprintf(stderr, "%s: Using default '%s'\n", key, def);
    return def;
}
@@ -59,7 +71,21 @@
    return def;
}
double option_find_double(list *l, char *key, double def)
int option_find_int_quiet(list *l, char *key, int def)
{
    char *v = option_find(l, key);
    if(v) return atoi(v);
    return def;
}
float option_find_float_quiet(list *l, char *key, float def)
{
    char *v = option_find(l, key);
    if(v) return atof(v);
    return def;
}
float option_find_float(list *l, char *key, float def)
{
    char *v = option_find(l, key);
    if(v) return atof(v);