diff options
author | Pierre Ossman <ossman@cendio.se> | 2025-01-09 17:41:51 +0100 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2025-01-10 10:13:04 +0100 |
commit | 714f2a952ab09d7b5bc3b90d1696c09bfbcc278c (patch) | |
tree | 2da56cec9bcf5d13a19813d0f90045f0c6bd9d0f | |
parent | e97e225024fbf91a0f5dc78629e09fc9e56e3ba1 (diff) | |
download | tigervnc-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.cxx | 2 | ||||
-rw-r--r-- | tests/unit/configargs.cxx | 12 |
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); |