From 8dba31ea0e6afa5ffc55c62296d6bf5b3f147125 Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Thu, 17 May 2018 10:08:05 +0200 Subject: [PATCH] Fixed #4636: Consistent wording for boolean options depending on default. --- client/common/cmdline.c | 18 +++++++++++------- client/common/cmdline.h | 30 +++++++++++++++--------------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/client/common/cmdline.c b/client/common/cmdline.c index da8be9747..7a928c2c2 100644 --- a/client/common/cmdline.c +++ b/client/common/cmdline.c @@ -106,7 +106,7 @@ static void freerdp_client_print_command_line_args(COMMAND_LINE_ARGUMENT_A* arg) { printf(" %s", arg->Default ? "-" : "+"); printf("%-20s", arg->Name); - printf("\t%s (default:%s)\n", arg->Text, arg->Default ? "on" : "off"); + printf("\t%s %s\n", arg->Default ? "Disable" : "Enable", arg->Text); } } while ((arg = CommandLineFindNextArgumentA(arg)) != NULL); @@ -1315,7 +1315,7 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings, allowUnknown); else compatibility = freerdp_client_detect_command_line(argc - 1, &argv[1], &flags, - allowUnknown); + allowUnknown); settings->ProxyHostname = NULL; settings->ProxyUsername = NULL; @@ -1828,8 +1828,7 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings, if (arg->Flags & COMMAND_LINE_VALUE_PRESENT) { - char *atPtr; - + char* atPtr; /* value is [scheme://][user:password@]hostname:port */ p = strstr(arg->Value, "://"); @@ -1856,6 +1855,7 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings, /* arg->Value is now [user:password@]hostname:port */ atPtr = strrchr(arg->Value, '@'); + if (atPtr) { /* got a login / password, @@ -1865,7 +1865,8 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings, * ^ * colonPtr */ - char *colonPtr = strchr(arg->Value, ':'); + char* colonPtr = strchr(arg->Value, ':'); + if (!colonPtr || (colonPtr > atPtr)) { WLog_ERR(TAG, "invalid syntax for proxy, expected syntax is user:password@host:port"); @@ -1874,6 +1875,7 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings, *colonPtr = '\0'; settings->ProxyUsername = _strdup(arg->Value); + if (!settings->ProxyUsername) { WLog_ERR(TAG, "unable to allocate proxy username"); @@ -1882,6 +1884,7 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings, *atPtr = '\0'; settings->ProxyPassword = _strdup(colonPtr + 1); + if (!settings->ProxyPassword) { WLog_ERR(TAG, "unable to allocate proxy password"); @@ -1979,6 +1982,7 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings, else { type = strtol(arg->Value, &pEnd, 10); + if (errno != 0) return COMMAND_LINE_ERROR_UNEXPECTED_VALUE; } @@ -2125,8 +2129,8 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings, else if (_stricmp(arg->Value, "lan") == 0) type = CONNECTION_TYPE_LAN; else if ((_stricmp(arg->Value, "autodetect") == 0) || - (_stricmp(arg->Value, "auto") == 0) || - (_stricmp(arg->Value, "detect") == 0)) + (_stricmp(arg->Value, "auto") == 0) || + (_stricmp(arg->Value, "detect") == 0)) { type = CONNECTION_TYPE_AUTODETECT; } diff --git a/client/common/cmdline.h b/client/common/cmdline.h index cb76152d4..c1210925f 100644 --- a/client/common/cmdline.h +++ b/client/common/cmdline.h @@ -27,7 +27,7 @@ static COMMAND_LINE_ARGUMENT_A args[] = { "a", COMMAND_LINE_VALUE_REQUIRED, "[,]", NULL, NULL, -1, "addin", "Addin" }, { "action-script", COMMAND_LINE_VALUE_REQUIRED, "", "~/.config/freerdp/action.sh", NULL, -1, NULL, "Action script" }, { "admin", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, "console", "Admin (or console) session" }, - { "aero", COMMAND_LINE_VALUE_BOOL, NULL, NULL, BoolValueFalse, -1, NULL, "Enable desktop composition" }, + { "aero", COMMAND_LINE_VALUE_BOOL, NULL, NULL, BoolValueFalse, -1, NULL, "desktop composition" }, { "app", COMMAND_LINE_VALUE_REQUIRED, " or ||", NULL, NULL, -1, NULL, "Remote application program" }, { "app-cmd", COMMAND_LINE_VALUE_REQUIRED, "", NULL, NULL, -1, NULL, "Remote application command-line parameters" }, { "app-file", COMMAND_LINE_VALUE_REQUIRED, "", NULL, NULL, -1, NULL, "File to open with remote application" }, @@ -44,7 +44,7 @@ static COMMAND_LINE_ARGUMENT_A args[] = { "authentication", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL, "Authentication (expermiental)" }, { "auto-reconnect", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL, "Automatic reconnection" }, { "auto-reconnect-max-retries", COMMAND_LINE_VALUE_REQUIRED, "", NULL, NULL, -1, NULL, "Automatic reconnection maximum retries, 0 for unlimited [0,1000]" }, - { "bitmap-cache", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL, "Enable bitmap cache" }, + { "bitmap-cache", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL, "bitmap cache" }, { "bpp", COMMAND_LINE_VALUE_REQUIRED, "", "16", NULL, -1, NULL, "Session bpp (color depth)" }, { "buildconfig", COMMAND_LINE_VALUE_FLAG | COMMAND_LINE_PRINT_BUILDCONFIG, NULL, NULL, NULL, -1, NULL, "Print the build configuration" }, { "cert-ignore", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL, "Ignore certificate" }, @@ -53,9 +53,9 @@ static COMMAND_LINE_ARGUMENT_A args[] = { "client-hostname", COMMAND_LINE_VALUE_REQUIRED, "", NULL, NULL, -1, NULL, "Client Hostname to send to server" }, { "clipboard", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL, "Redirect clipboard" }, { "codec-cache", COMMAND_LINE_VALUE_REQUIRED, "rfx|nsc|jpeg", NULL, NULL, -1, NULL, "Bitmap codec cache" }, - { "compression", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, "z", "Enable compression" }, + { "compression", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, "z", "compression" }, { "compression-level", COMMAND_LINE_VALUE_REQUIRED, "", NULL, NULL, -1, NULL, "Compression level (0,1,2)" }, - { "credentials-delegation", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL, "Disable credentials delegation" }, + { "credentials-delegation", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL, "credentials delegation" }, { "d", COMMAND_LINE_VALUE_REQUIRED, "", NULL, NULL, -1, NULL, "Domain" }, { "decorations", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL, "Window decorations" }, { "disp", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL, "Display control" }, @@ -67,9 +67,9 @@ static COMMAND_LINE_ARGUMENT_A args[] = { "encryption", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL, "Encryption (experimental)" }, { "encryption-methods", COMMAND_LINE_VALUE_REQUIRED, "[40,][56,][128,][FIPS]", NULL, NULL, -1, NULL, "RDP standard security encryption methods" }, { "f", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL, "Fullscreen mode (++ toggles fullscreen)" }, - { "fast-path", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL, "Enable fast-path input/output" }, - { "fipsmode", COMMAND_LINE_VALUE_BOOL, NULL, NULL, NULL, -1, NULL, "Enable FIPS mode" }, - { "fonts", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL, "Enable smooth fonts (ClearType)" }, + { "fast-path", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL, "fast-path input/output" }, + { "fipsmode", COMMAND_LINE_VALUE_BOOL, NULL, NULL, NULL, -1, NULL, "FIPS mode" }, + { "fonts", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL, "smooth fonts (ClearType)" }, { "frame-ack", COMMAND_LINE_VALUE_REQUIRED, "", NULL, NULL, -1, NULL, "Number of frame acknowledgement" }, { "from-stdin", COMMAND_LINE_VALUE_OPTIONAL, "force", NULL, NULL, -1, NULL, "Read credentials from stdin. With the prompt is done before connection, otherwise on server request." }, { "g", COMMAND_LINE_VALUE_REQUIRED, "[:]", NULL, NULL, -1, NULL, "Gateway Hostname" }, @@ -99,7 +99,7 @@ static COMMAND_LINE_ARGUMENT_A args[] = { "home-drive", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL, "Redirect user home as share" }, { "ipv6", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, "6", "Prefer IPv6 AAA record over IPv4 A record"}, #if defined(WITH_JPEG) - { "jpeg", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL, "Enable JPEG codec" }, + { "jpeg", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL, "JPEG codec support" }, { "jpeg-quality", COMMAND_LINE_VALUE_REQUIRED, "", NULL, NULL, -1, NULL, "JPEG quality" }, #endif { "kbd", COMMAND_LINE_VALUE_REQUIRED, "0x or ", NULL, NULL, -1, NULL, "Keyboard layout" }, @@ -112,7 +112,7 @@ static COMMAND_LINE_ARGUMENT_A args[] = { "log-level", COMMAND_LINE_VALUE_REQUIRED, "OFF|FATAL|ERROR|WARN|INFO|DEBUG|TRACE", NULL, NULL, -1, NULL, "Set the default log level, see wLog(7) for details" }, { "max-fast-path-size", COMMAND_LINE_VALUE_REQUIRED, "", NULL, NULL, -1, NULL, "Specify maximum fast-path update size" }, { "max-loop-time", COMMAND_LINE_VALUE_REQUIRED, "