diff options
Diffstat (limited to 'src/tool_getparam.c')
-rw-r--r-- | src/tool_getparam.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/tool_getparam.c b/src/tool_getparam.c index c0ab67c3f..ab2b75289 100644 --- a/src/tool_getparam.c +++ b/src/tool_getparam.c @@ -2248,20 +2248,22 @@ ParameterError parse_args(struct GlobalConfig *global, int argc, struct OperationConfig *config = global->first; for(i = 1, stillflags = TRUE; i < argc && !result; i++) { - orig_opt = argv[i]; + orig_opt = curlx_convert_tchar_to_UTF8(argv[i]); - if(stillflags && ('-' == argv[i][0])) { + if(stillflags && ('-' == orig_opt[0])) { bool passarg; - char *flag = argv[i]; - if(!strcmp("--", argv[i])) + if(!strcmp("--", orig_opt)) /* This indicates the end of the flags and thus enables the following (URL) argument to start with -. */ stillflags = FALSE; else { - char *nextarg = (i < (argc - 1)) ? argv[i + 1] : NULL; + char *nextarg = (i < (argc - 1)) + ? curlx_convert_tchar_to_UTF8(argv[i + 1]) + : NULL; - result = getparameter(flag, nextarg, &passarg, global, config); + result = getparameter(orig_opt, nextarg, &passarg, global, config); + curlx_unicodefree(nextarg); config = global->last; if(result == PARAM_NEXT_OPERATION) { /* Reset result as PARAM_NEXT_OPERATION is only used here and not @@ -2297,7 +2299,7 @@ ParameterError parse_args(struct GlobalConfig *global, int argc, bool used; /* Just add the URL please */ - result = getparameter((char *)"--url", argv[i], &used, global, + result = getparameter("--url", orig_opt, &used, global, config); } } @@ -2314,5 +2316,6 @@ ParameterError parse_args(struct GlobalConfig *global, int argc, helpf(global->errors, "%s\n", reason); } + curlx_unicodefree(orig_opt); return result; } |