aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2025-01-09 17:41:51 +0100
committerPierre Ossman <ossman@cendio.se>2025-01-10 10:13:04 +0100
commit714f2a952ab09d7b5bc3b90d1696c09bfbcc278c (patch)
tree2da56cec9bcf5d13a19813d0f90045f0c6bd9d0f
parente97e225024fbf91a0f5dc78629e09fc9e56e3ba1 (diff)
downloadtigervnc-714f2a952ab09d7b5bc3b90d1696c09bfbcc278c.tar.gz
tigervnc-714f2a952ab09d7b5bc3b90d1696c09bfbcc278c.zip
Fix handling of bool on/off arguments
These two values were overlooked in the look-ahead list and hence did not work reliably.
-rw-r--r--common/rfb/Configuration.cxx2
-rw-r--r--tests/unit/configargs.cxx12
2 files changed, 8 insertions, 6 deletions
diff --git a/common/rfb/Configuration.cxx b/common/rfb/Configuration.cxx
index 53f30863..b215483f 100644
--- a/common/rfb/Configuration.cxx
+++ b/common/rfb/Configuration.cxx
@@ -207,6 +207,8 @@ int Configuration::handleArg(int argc, char* argv[], int index)
// FIXME: Should not duplicate the list of values here
if ((strcasecmp(argv[index+1], "0") == 0) ||
(strcasecmp(argv[index+1], "1") == 0) ||
+ (strcasecmp(argv[index+1], "on") == 0) ||
+ (strcasecmp(argv[index+1], "off") == 0) ||
(strcasecmp(argv[index+1], "true") == 0) ||
(strcasecmp(argv[index+1], "false") == 0) ||
(strcasecmp(argv[index+1], "yes") == 0) ||
diff --git a/tests/unit/configargs.cxx b/tests/unit/configargs.cxx
index 590138ac..95fb8f3a 100644
--- a/tests/unit/configargs.cxx
+++ b/tests/unit/configargs.cxx
@@ -263,7 +263,7 @@ static void test_bool()
// bool argument (single)
boolparam.setParam(true);
- argv = {"prog", "-boolparam", "false", "true"};
+ argv = {"prog", "-boolparam", "off", "on"};
ret = rfb::Configuration::handleParamArg(argv.size(),
(char**)argv.data(), 1);
ASSERT_EQ_I(ret, 2);
@@ -271,7 +271,7 @@ static void test_bool()
// bool argument (double)
boolparam.setParam(true);
- argv = {"prog", "--boolparam", "false", "true"};
+ argv = {"prog", "--boolparam", "off", "on"};
ret = rfb::Configuration::handleParamArg(argv.size(),
(char**)argv.data(), 1);
ASSERT_EQ_I(ret, 2);
@@ -279,7 +279,7 @@ static void test_bool()
// bool argument equals (single)
boolparam.setParam(true);
- argv = {"prog", "-boolparam=false", "true"};
+ argv = {"prog", "-boolparam=off", "on"};
ret = rfb::Configuration::handleParamArg(argv.size(),
(char**)argv.data(), 1);
ASSERT_EQ_I(ret, 1);
@@ -287,7 +287,7 @@ static void test_bool()
// bool argument equals (double)
boolparam.setParam(true);
- argv = {"prog", "--boolparam=false", "true"};
+ argv = {"prog", "--boolparam=off", "on"};
ret = rfb::Configuration::handleParamArg(argv.size(),
(char**)argv.data(), 1);
ASSERT_EQ_I(ret, 1);
@@ -295,7 +295,7 @@ static void test_bool()
// bool bad argument (single)
boolparam.setParam(false);
- argv = {"prog", "-boolparam", "foo", "false"};
+ argv = {"prog", "-boolparam", "foo", "off"};
ret = rfb::Configuration::handleParamArg(argv.size(),
(char**)argv.data(), 1);
ASSERT_EQ_I(ret, 1);
@@ -303,7 +303,7 @@ static void test_bool()
// bool bad argument (double)
boolparam.setParam(false);
- argv = {"prog", "--boolparam", "foo", "false"};
+ argv = {"prog", "--boolparam", "foo", "off"};
ret = rfb::Configuration::handleParamArg(argv.size(),
(char**)argv.data(), 1);
ASSERT_EQ_I(ret, 1);