- if (me->name != NULL && me->name[0] != 0) {
- if (strcasecmp(var, me->name) != 0)
- continue; /* surely not this one */
- if (me->beh == MB_OPT_ONOFF) {
- tmp = strtol(val, &p, 0);
- if (*p != 0)
- goto bad_val;
- if (tmp) *(int *)me->var |= me->mask;
- else *(int *)me->var &= ~me->mask;
- return;
- }
- else if (me->beh == MB_OPT_RANGE) {
- tmp = strtol(val, &p, 0);
- if (*p != 0)
- goto bad_val;
- if (tmp < me->min) tmp = me->min;
- if (tmp > me->max) tmp = me->max;
- *(int *)me->var = tmp;
- return;
- }
- else if (me->beh == MB_OPT_ENUM) {
- const char **names, *p1;
- int i;