[Spice-devel] [PATCH qxl] spiceqxl: Recognize the same set of boolean values as in xorg.conf.
Francois Gouget
fgouget at codeweavers.com
Mon Jun 8 08:48:03 PDT 2015
Report an error if an invalid boolean value is used, just like for other options.
---
This seems simple enough and may avoid confusion.
src/qxl_option_helpers.c | 27 ++++++++++++++++++++-------
1 file changed, 20 insertions(+), 7 deletions(-)
diff --git a/src/qxl_option_helpers.c b/src/qxl_option_helpers.c
index 8801b53..c9ad726 100644
--- a/src/qxl_option_helpers.c
+++ b/src/qxl_option_helpers.c
@@ -3,6 +3,7 @@
#endif
#include <stdlib.h>
+#include <strings.h>
#include <xf86.h>
#include <xf86Opt.h>
@@ -30,12 +31,24 @@ const char *get_str_option(OptionInfoPtr options, int option_index,
int get_bool_option(OptionInfoPtr options, int option_index,
const char *env_name)
{
- if (getenv(env_name)) {
- /* we don't support the whole range of boolean true and
- * false values documented in man xorg.conf, just the c
- * convention - 0 is false, anything else is true, so
- * just like a number. */
- return !!atoi(getenv(env_name));
+ const char* value = getenv(env_name);
+
+ if (!value) {
+ return options[option_index].value.bool;
+ }
+ if (strcmp(value, "1") == 0 ||
+ strcasecmp(value, "on") == 0 ||
+ strcasecmp(value, "true") == 0 ||
+ strcasecmp(value, "yes") == 0) {
+ return TRUE;
}
- return options[option_index].value.bool;
+ if (strcmp(value, "0") == 0 ||
+ strcasecmp(value, "off") == 0 ||
+ strcasecmp(value, "false") == 0 ||
+ strcasecmp(value, "no") == 0) {
+ return FALSE;
+ }
+
+ fprintf(stderr, "spice: invalid %s: %s\n", env_name, value);
+ exit(1);
}
--
2.1.4
More information about the Spice-devel
mailing list