instance->context->argc = argc;
instance->context->argv = argv;
- status = freerdp_client_settings_parse_command_line(instance->settings, argc, argv);
+ status = freerdp_client_settings_parse_command_line(instance->settings, argc, argv, FALSE);
if (status < 0)
exit(0);
context->argc = i;
- status = freerdp_client_settings_parse_command_line(context->settings, context->argc, context->argv);
+ status = freerdp_client_settings_parse_command_line(context->settings, context->argc, context->argv, FALSE);
status = freerdp_client_settings_command_line_status_print(context->settings, status, context->argc, context->argv);
channels = instance->context->channels;
- status = freerdp_client_settings_parse_command_line(instance->settings, argc, argv);
+ status = freerdp_client_settings_parse_command_line(instance->settings, argc, argv, FALSE);
if (status < 0)
{
instance->ContextFree = wl_context_free;
freerdp_context_new(instance);
- status = freerdp_client_settings_parse_command_line_arguments(instance->settings, argc, argv);
+ status = freerdp_client_settings_parse_command_line_arguments(instance->settings, argc, argv, FALSE);
status = freerdp_client_settings_command_line_status_print(instance->settings, status, argc, argv);
for (index = 0; index < context->argc; index++)
context->argv[index] = _strdup(__argv[index]);
- status = freerdp_client_settings_parse_command_line(settings, context->argc, context->argv);
+ status = freerdp_client_settings_parse_command_line(settings, context->argc, context->argv, FALSE);
status = freerdp_client_settings_command_line_status_print(settings, status, context->argc, context->argv);
settings = context->settings;
xfc = (xfContext*) context;
- status = freerdp_client_settings_parse_command_line(context->settings, argc, argv);
+ status = freerdp_client_settings_parse_command_line(context->settings, argc, argv, FALSE);
status = freerdp_client_settings_command_line_status_print(settings, status, argc, argv);
}
-int freerdp_client_settings_parse_command_line(rdpSettings* settings, int argc, char** argv)
+int freerdp_client_settings_parse_command_line(rdpSettings* settings, int argc,
+ char** argv, BOOL allowUnknown)
{
int status;
if (!argv)
return -1;
- status = freerdp_client_settings_parse_command_line_arguments(settings, argc, argv);
+ status = freerdp_client_settings_parse_command_line_arguments(settings, argc, argv, allowUnknown);
if (settings->ConnectionFile)
{
return 0;
}
-int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings, int argc, char** argv)
+int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings,
+ int argc, char** argv, BOOL allowUnknown)
{
char* p;
char* str;
{
CommandLineClearArgumentsA(args);
+ if (allowUnknown)
+ {
+ flags |= COMMAND_LINE_IGN_UNKNOWN_KEYWORD;
+ }
status = CommandLineParseArgumentsA(argc, (const char**) argv, args, flags, settings,
freerdp_client_command_line_pre_filter, freerdp_client_command_line_post_filter);
char* ConnectionFile = settings->ConnectionFile;
settings->ConnectionFile = NULL;
- freerdp_client_settings_parse_command_line(settings, file->argc, file->argv);
+ freerdp_client_settings_parse_command_line(settings, file->argc, file->argv, FALSE);
settings->ConnectionFile = ConnectionFile;
}
#include <winpr/cmdline.h>
#include <winpr/spec.h>
-#define TESTCASE(cmd, expected_return) status = freerdp_client_settings_parse_command_line(settings, ARRAYSIZE(cmd), cmd); \
+#define TESTCASE(cmd, expected_return) status = freerdp_client_settings_parse_command_line(settings, ARRAYSIZE(cmd), cmd, FALSE); \
if (status != expected_return) { \
printf("Test argument %s failed\n", #cmd); \
return -1; \
}
-#define TESTCASE_SUCCESS(cmd) status = freerdp_client_settings_parse_command_line(settings, ARRAYSIZE(cmd), cmd); \
+#define TESTCASE_SUCCESS(cmd) status = freerdp_client_settings_parse_command_line(settings, ARRAYSIZE(cmd), cmd, FALSE); \
if (status < 0) { \
printf("Test argument %s failed\n", #cmd); \
return -1; \
FREERDP_API freerdp* freerdp_client_get_instance(rdpContext* context);
FREERDP_API HANDLE freerdp_client_get_thread(rdpContext* context);
-FREERDP_API int freerdp_client_settings_parse_command_line(rdpSettings* settings, int argc, char** argv);
+FREERDP_API int freerdp_client_settings_parse_command_line(rdpSettings* settings,
+ int argc, char** argv, BOOL allowUnknown);
FREERDP_API int freerdp_client_settings_parse_connection_file(rdpSettings* settings, const char* filename);
FREERDP_API int freerdp_client_settings_parse_connection_file_buffer(rdpSettings* settings, const BYTE* buffer, size_t size);
extern "C" {
#endif
-FREERDP_API int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings, int argc, char** argv);
+FREERDP_API int freerdp_client_settings_parse_command_line_arguments(
+ rdpSettings* settings, int argc, char** argv, BOOL allowUnknown);
FREERDP_API int freerdp_client_settings_command_line_status_print(rdpSettings* settings, int status, int argc, char** argv);
FREERDP_API int freerdp_client_load_addins(rdpChannels* channels, rdpSettings* settings);