diff options
Diffstat (limited to 'community/freerdp/freerdp-args.patch')
-rw-r--r-- | community/freerdp/freerdp-args.patch | 186 |
1 files changed, 0 insertions, 186 deletions
diff --git a/community/freerdp/freerdp-args.patch b/community/freerdp/freerdp-args.patch deleted file mode 100644 index d9b7eca16ab..00000000000 --- a/community/freerdp/freerdp-args.patch +++ /dev/null @@ -1,186 +0,0 @@ -diff --git a/client/common/cmdline.c b/client/common/cmdline.c -index f1f9640..72bbd12 100644 ---- a/client/common/cmdline.c -+++ b/client/common/cmdline.c -@@ -1078,8 +1078,10 @@ BOOL freerdp_client_detect_command_line(int argc, char** argv, DWORD* flags) - if (posix_cli_status <= COMMAND_LINE_STATUS_PRINT) - return compatibility; - -- if (windows_cli_count >= posix_cli_count) -+ /* Check, if this may be windows style syntax... */ -+ if ((windows_cli_count && (windows_cli_count >= posix_cli_count)) || (windows_cli_status <= COMMAND_LINE_STATUS_PRINT)) - { -+ windows_cli_count = 1; - *flags = COMMAND_LINE_SEPARATOR_COLON; - *flags |= COMMAND_LINE_SIGIL_SLASH | COMMAND_LINE_SIGIL_PLUS_MINUS; - } -diff --git a/client/common/compatibility.c b/client/common/compatibility.c -index 3a7d0da..d6efe50 100644 ---- a/client/common/compatibility.c -+++ b/client/common/compatibility.c -@@ -122,16 +122,20 @@ void freerdp_client_old_parse_hostname(char* str, char** ServerHostname, UINT32* - - int freerdp_client_old_process_plugin(rdpSettings* settings, ADDIN_ARGV* args) - { -+ int args_handled = 0; - if (strcmp(args->argv[0], "cliprdr") == 0) - { -+ args_handled++; - settings->RedirectClipboard = TRUE; - WLog_WARN(TAG, "--plugin cliprdr -> +clipboard"); - } - else if (strcmp(args->argv[0], "rdpdr") == 0) - { -+ args_handled++; - if (args->argc < 2) -- return -1; -+ return 1; - -+ args_handled++; - if ((strcmp(args->argv[1], "disk") == 0) || - (strcmp(args->argv[1], "drive") == 0)) - { -@@ -159,21 +163,26 @@ int freerdp_client_old_process_plugin(rdpSettings* settings, ADDIN_ARGV* args) - } - else if (strcmp(args->argv[0], "drdynvc") == 0) - { -+ args_handled++; - freerdp_client_add_dynamic_channel(settings, args->argc - 1, &args->argv[1]); - } - else if (strcmp(args->argv[0], "rdpsnd") == 0) - { -+ args_handled++; - if (args->argc < 2) -- return -1; -+ return 1; - -+ args_handled++; - freerdp_addin_replace_argument_value(args, args->argv[1], "sys", args->argv[1]); - freerdp_client_add_static_channel(settings, args->argc, args->argv); - } - else if (strcmp(args->argv[0], "rail") == 0) - { -+ args_handled++; - if (args->argc < 2) -- return -1; -+ return 1; - -+ args_handled++; - settings->RemoteApplicationProgram = _strdup(args->argv[1]); - } - else -@@ -181,14 +190,12 @@ int freerdp_client_old_process_plugin(rdpSettings* settings, ADDIN_ARGV* args) - freerdp_client_add_static_channel(settings, args->argc, args->argv); - } - -- return 1; -+ return args_handled; - } - - int freerdp_client_old_command_line_pre_filter(void* context, int index, int argc, LPCSTR* argv) - { -- rdpSettings* settings; -- -- settings = (rdpSettings*) context; -+ rdpSettings* settings = (rdpSettings*) context; - - if (index == (argc - 1)) - { -@@ -204,11 +211,10 @@ int freerdp_client_old_command_line_pre_filter(void* context, int index, int arg - return -1; - } - -- if (settings) -- { -- freerdp_client_old_parse_hostname((char*) argv[index], -- &settings->ServerHostname, &settings->ServerPort); -- } -+ freerdp_client_old_parse_hostname((char*) argv[index], -+ &settings->ServerHostname, &settings->ServerPort); -+ -+ return 2; - } - else - { -@@ -218,6 +224,7 @@ int freerdp_client_old_command_line_pre_filter(void* context, int index, int arg - - if (strcmp("--plugin", argv[index]) == 0) - { -+ int args_handled = 0; - int length; - char *a, *p; - int i, j, t; -@@ -233,20 +240,19 @@ int freerdp_client_old_command_line_pre_filter(void* context, int index, int arg - return -1; - - args = (ADDIN_ARGV*) malloc(sizeof(ADDIN_ARGV)); -- args->argv = (char**) malloc(sizeof(char*) * 5); -+ args->argv = (char**) calloc(argc, sizeof(char*)); - args->argc = 1; - -- args->argv[0] = _strdup(argv[t]); -- - if ((index < argc - 1) && strcmp("--data", argv[index + 1]) == 0) - { - i = 0; - index += 2; -- args->argc = 1; - - while ((index < argc) && (strcmp("--", argv[index]) != 0)) - { -+ args_handled ++; - args->argc = 1; -+ args->argv[0] = _strdup(argv[t]); - - for (j = 0, p = (char*) argv[index]; (j < 4) && (p != NULL); j++) - { -@@ -267,6 +273,9 @@ int freerdp_client_old_command_line_pre_filter(void* context, int index, int arg - if (p != NULL) - { - p = strchr(p, ':'); -+ } -+ if (p != NULL) -+ { - length = (int) (p - a); - args->argv[j + 1] = (char*) malloc(length + 1); - CopyMemory(args->argv[j + 1], a, length); -@@ -281,11 +290,14 @@ int freerdp_client_old_command_line_pre_filter(void* context, int index, int arg - args->argc++; - } - -- if (settings->instance) -+ if (settings) - { - freerdp_client_old_process_plugin(settings, args); - } - -+ for (i = 0; i < args->argc; i++) -+ free(args->argv[i]); -+ memset(args->argv, 0, argc * sizeof(char*)); - index++; - i++; - } -@@ -294,19 +306,16 @@ int freerdp_client_old_command_line_pre_filter(void* context, int index, int arg - { - if (settings) - { -- if (settings->instance) -- { -- freerdp_client_old_process_plugin(settings, args); -- } -+ args->argv[0] = _strdup(argv[t]); -+ args_handled = freerdp_client_old_process_plugin(settings, args); -+ free (args->argv[0]); - } - } - -- for (i = 0; i < args->argc; i++) -- free(args->argv[i]); - free(args->argv); - free(args); - -- return (index - old_index); -+ return (index - old_index) + args_handled; - } - - return 0; |