1#ifdef HAVE_CONFIG_H
2#include "config.h"
3#endif
4
5#include <stdlib.h>
6#include <strings.h>
7
8#include <xf86.h>
9#include <xf86Opt.h>
10
11#include "qxl_option_helpers.h"
12
13int get_int_option(OptionInfoPtr options, int token,
14                   const char *env_name)
15{
16    int value;
17    if (env_name && getenv(env_name)) {
18        return atoi(getenv(env_name));
19    }
20    return xf86GetOptValInteger(options, token, &value) ? value : 0;
21}
22
23const char *get_str_option(OptionInfoPtr options, int token,
24                           const char *env_name)
25{
26    if (getenv(env_name)) {
27        return getenv(env_name);
28    }
29    return xf86GetOptValString(options, token);
30}
31
32int get_bool_option(OptionInfoPtr options, int token,
33                     const char *env_name)
34{
35    const char* value = getenv(env_name);
36
37    if (!value) {
38        return xf86ReturnOptValBool(options, token, FALSE);
39    }
40    if (strcmp(value, "0") == 0 ||
41        strcasecmp(value, "off") == 0 ||
42        strcasecmp(value, "false") == 0 ||
43        strcasecmp(value, "no") == 0) {
44        return FALSE;
45    }
46    if (strcmp(value, "1") == 0 ||
47        strcasecmp(value, "on") == 0 ||
48        strcasecmp(value, "true") == 0 ||
49        strcasecmp(value, "yes") == 0) {
50        return TRUE;
51    }
52
53    fprintf(stderr, "spice: invalid %s: %s\n", env_name, value);
54    exit(1);
55}
56