From: Daniel Stenberg Date: Fri, 22 Aug 2025 14:58:28 +0000 (+0200) Subject: tool_getparam: let --trace-config override -v X-Git-Tag: curl-8_16_0~82 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ebff00f1af77f5e74b0cc71d6a54ad212bab857d;p=thirdparty%2Fcurl.git tool_getparam: let --trace-config override -v If --trace-config is used to set a level before -v is used, don't reset the state on first -v (to "-all") as it otherwise does. This way, --trace-config can be used to set specific trace items before -v on the command line and it still works. Previously, the first -v use would otherwise reset and undo the earlier --trace-config items. Fixes #18346 Closes #18361 --- diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h index 23e874f448..5e7222a8a8 100644 --- a/src/tool_cfgable.h +++ b/src/tool_cfgable.h @@ -383,6 +383,7 @@ struct GlobalConfig { BIT(silent); /* do not show messages, --silent given */ BIT(noprogress); /* do not show progress bar */ BIT(isatty); /* Updated internally if output is a tty */ + BIT(trace_set); /* --trace-config has been used */ }; struct OperationConfig *config_alloc(void); diff --git a/src/tool_getparam.c b/src/tool_getparam.c index 475cbd4927..165a4bfb6a 100644 --- a/src/tool_getparam.c +++ b/src/tool_getparam.c @@ -1477,7 +1477,7 @@ static ParameterError parse_verbose(bool toggle) else if(!verbose_nopts) { /* fist `-v` in an argument resets to base verbosity */ global->verbosity = 0; - if(set_trace_config("-all")) + if(!global->trace_set && set_trace_config("-all")) return PARAM_NO_MEM; } /* the '%' thing here will cause the trace get sent to stderr */ @@ -2443,6 +2443,7 @@ static ParameterError opt_filestring(struct OperationConfig *config, /* 0 is a valid value for this timeout */ break; case C_TRACE_CONFIG: /* --trace-config */ + global->trace_set = TRUE; if(set_trace_config(nextarg)) err = PARAM_NO_MEM; break; diff --git a/tests/runner.pm b/tests/runner.pm index 18f3c5098b..0ecfc84c52 100644 --- a/tests/runner.pm +++ b/tests/runner.pm @@ -866,7 +866,6 @@ sub singletest_run { else { $cmdargs .= "--trace-ascii $LOGDIR/trace$testnum "; } - $cmdargs .= "--trace-config all "; $cmdargs .= "--trace-time "; if($run_event_based) { $cmdargs .= "--test-event ";