aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tool_operate.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/tool_operate.c b/src/tool_operate.c
index 6d02fb667..4b9c42dc7 100644
--- a/src/tool_operate.c
+++ b/src/tool_operate.c
@@ -140,6 +140,9 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[])
int res = 0;
int i;
+ bool orig_noprogress = config->noprogress;
+ bool orig_isatty = config->isatty;
+
errorbuffer[0] = '\0';
/* default headers output stream is stdout */
memset(&hdrcbdata, 0, sizeof(struct HdrCbData));
@@ -223,7 +226,7 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[])
('-' == argv[i][0])) {
char *nextarg;
bool passarg;
- char *origopt = argv[i];
+ char *orig_opt = argv[i];
char *flag = argv[i];
@@ -239,7 +242,7 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[])
int retval = CURLE_OK;
if(res != PARAM_HELP_REQUESTED) {
const char *reason = param2text(res);
- helpf(config->errors, "option %s: %s\n", origopt, reason);
+ helpf(config->errors, "option %s: %s\n", orig_opt, reason);
retval = CURLE_FAILED_INIT;
}
res = retval;
@@ -766,6 +769,12 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[])
/* we send the output to a tty, therefore we switch off the progress
meter */
config->noprogress = config->isatty = TRUE;
+ else {
+ /* progress meter is per download, so restore config
+ values */
+ config->noprogress = orig_noprogress;
+ config->isatty = orig_isatty;
+ }
if(urlnum > 1 && !(config->mute)) {
fprintf(config->errors, "\n[%d/%d]: %s --> %s\n",