mirror of
https://github.com/moparisthebest/curl
synced 2024-12-24 00:58:48 -05:00
cmdline: fix handling of OperationConfig linked list (--next)
Ensures that -K/--config inserts new items at the end of the list instead of overwriting the second item, and that after a -K/--config option has been parsed, the option parser's view of the current config is update. Fixes #5120 Closes #5123
This commit is contained in:
parent
3d77d089a4
commit
4e0b4fee4a
@ -2258,6 +2258,7 @@ ParameterError parse_args(struct GlobalConfig *global, int argc,
|
||||
char *nextarg = (i < (argc - 1)) ? argv[i + 1] : NULL;
|
||||
|
||||
result = getparameter(flag, nextarg, &passarg, global, config);
|
||||
config = global->last;
|
||||
if(result == PARAM_NEXT_OPERATION) {
|
||||
/* Reset result as PARAM_NEXT_OPERATION is only used here and not
|
||||
returned from this function */
|
||||
|
@ -5,7 +5,7 @@
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
@ -76,7 +76,7 @@ int parseconfig(const char *filename, struct GlobalConfig *global)
|
||||
FILE *file = NULL;
|
||||
bool usedarg = FALSE;
|
||||
int rc = 0;
|
||||
struct OperationConfig *operation = global->first;
|
||||
struct OperationConfig *operation = global->last;
|
||||
char *pathalloc = NULL;
|
||||
|
||||
if(!filename || !*filename) {
|
||||
@ -233,6 +233,7 @@ int parseconfig(const char *filename, struct GlobalConfig *global)
|
||||
fprintf(stderr, "PARAM: \"%s\"\n",(param ? param : "(null)"));
|
||||
#endif
|
||||
res = getparameter(option, param, &usedarg, global, operation);
|
||||
operation = global->last;
|
||||
|
||||
if(!res && param && *param && !usedarg)
|
||||
/* we passed in a parameter that wasn't used! */
|
||||
|
Loading…
Reference in New Issue
Block a user