1*4882a593SmuzhiyunFrom 4e1963a812f2c1777ba5d56ea9e939a3e40a0496 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?=
3*4882a593Smuzhiyun <zboszor@gmail.com>
4*4882a593SmuzhiyunDate: Sat, 28 Aug 2021 15:38:40 +0200
5*4882a593SmuzhiyunSubject: [PATCH] Fix a build  error with Xorg master
6*4882a593SmuzhiyunMIME-Version: 1.0
7*4882a593SmuzhiyunContent-Type: text/plain; charset=UTF-8
8*4882a593SmuzhiyunContent-Transfer-Encoding: 8bit
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunUse xf86ReturnOptValBool() in get_bool_option() instead of
11*4882a593Smuzhiyunoptions[option_index].value.bool to fix a compiler error with
12*4882a593Smuzhiyuncurrent Xorg xserver master branch.
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunAlso use xf86GetOptValInteger() in get_int_option() and
15*4882a593Smuzhiyunxf86GetOptValString() in get_str_option() for consistency.
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunThe change causes a slight performance drop during option parsing
18*4882a593Smuzhiyunbecause the passed-in index_value is no longer used as an index
19*4882a593Smuzhiyuninto the options array.
20*4882a593Smuzhiyun
21*4882a593SmuzhiyunInstead, it's used as a token now for the standard option getter
22*4882a593Smuzhiyunfunctions which works since the index_value to the get_*_option()
23*4882a593Smuzhiyunfunctions are identical to the value of options[n].token in the
24*4882a593Smuzhiyunpassed-in OptionInfoRec array.
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunAlso rename "int option_index" to "int token" for clarity in all
27*4882a593Smuzhiyunthree functions.
28*4882a593Smuzhiyun
29*4882a593SmuzhiyunSigned-off-by: Zoltán Böszörményi <zboszor@gmail.com>
30*4882a593Smuzhiyun
31*4882a593SmuzhiyunDownloaded from upstream commit
32*4882a593Smuzhiyunhttps://gitlab.freedesktop.org/xorg/driver/xf86-video-qxl/-/commit/4e1963a812f2c1777ba5d56ea9e939a3e40a0496
33*4882a593Smuzhiyun
34*4882a593SmuzhiyunSigned-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
35*4882a593Smuzhiyun---
36*4882a593Smuzhiyun src/qxl_option_helpers.c | 13 +++++++------
37*4882a593Smuzhiyun src/qxl_option_helpers.h |  6 +++---
38*4882a593Smuzhiyun 2 files changed, 10 insertions(+), 9 deletions(-)
39*4882a593Smuzhiyun
40*4882a593Smuzhiyundiff --git a/src/qxl_option_helpers.c b/src/qxl_option_helpers.c
41*4882a593Smuzhiyunindex 2aba677..7707b7c 100644
42*4882a593Smuzhiyun--- a/src/qxl_option_helpers.c
43*4882a593Smuzhiyun+++ b/src/qxl_option_helpers.c
44*4882a593Smuzhiyun@@ -10,31 +10,32 @@
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun #include "qxl_option_helpers.h"
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun-int get_int_option(OptionInfoPtr options, int option_index,
49*4882a593Smuzhiyun+int get_int_option(OptionInfoPtr options, int token,
50*4882a593Smuzhiyun                    const char *env_name)
51*4882a593Smuzhiyun {
52*4882a593Smuzhiyun+    int value;
53*4882a593Smuzhiyun     if (env_name && getenv(env_name)) {
54*4882a593Smuzhiyun         return atoi(getenv(env_name));
55*4882a593Smuzhiyun     }
56*4882a593Smuzhiyun-    return options[option_index].value.num;
57*4882a593Smuzhiyun+    return xf86GetOptValInteger(options, token, &value) ? value : 0;
58*4882a593Smuzhiyun }
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun-const char *get_str_option(OptionInfoPtr options, int option_index,
61*4882a593Smuzhiyun+const char *get_str_option(OptionInfoPtr options, int token,
62*4882a593Smuzhiyun                            const char *env_name)
63*4882a593Smuzhiyun {
64*4882a593Smuzhiyun     if (getenv(env_name)) {
65*4882a593Smuzhiyun         return getenv(env_name);
66*4882a593Smuzhiyun     }
67*4882a593Smuzhiyun-    return options[option_index].value.str;
68*4882a593Smuzhiyun+    return xf86GetOptValString(options, token);
69*4882a593Smuzhiyun }
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun-int get_bool_option(OptionInfoPtr options, int option_index,
72*4882a593Smuzhiyun+int get_bool_option(OptionInfoPtr options, int token,
73*4882a593Smuzhiyun                      const char *env_name)
74*4882a593Smuzhiyun {
75*4882a593Smuzhiyun     const char* value = getenv(env_name);
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun     if (!value) {
78*4882a593Smuzhiyun-        return options[option_index].value.bool;
79*4882a593Smuzhiyun+        return xf86ReturnOptValBool(options, token, FALSE);
80*4882a593Smuzhiyun     }
81*4882a593Smuzhiyun     if (strcmp(value, "0") == 0 ||
82*4882a593Smuzhiyun         strcasecmp(value, "off") == 0 ||
83*4882a593Smuzhiyundiff --git a/src/qxl_option_helpers.h b/src/qxl_option_helpers.h
84*4882a593Smuzhiyunindex 7c54c72..66d0a17 100644
85*4882a593Smuzhiyun--- a/src/qxl_option_helpers.h
86*4882a593Smuzhiyun+++ b/src/qxl_option_helpers.h
87*4882a593Smuzhiyun@@ -4,13 +4,13 @@
88*4882a593Smuzhiyun #include <xf86Crtc.h>
89*4882a593Smuzhiyun #include <xf86Opt.h>
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun-int get_int_option(OptionInfoPtr options, int option_index,
92*4882a593Smuzhiyun+int get_int_option(OptionInfoPtr options, int token,
93*4882a593Smuzhiyun                    const char *env_name);
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun-const char *get_str_option(OptionInfoPtr options, int option_index,
96*4882a593Smuzhiyun+const char *get_str_option(OptionInfoPtr options, int token,
97*4882a593Smuzhiyun                            const char *env_name);
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun-int get_bool_option(OptionInfoPtr options, int option_index,
100*4882a593Smuzhiyun+int get_bool_option(OptionInfoPtr options, int token,
101*4882a593Smuzhiyun                      const char *env_name);
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun #endif // OPTION_HELPERS_H
104*4882a593Smuzhiyun--
105*4882a593SmuzhiyunGitLab
106*4882a593Smuzhiyun
107