diff --git a/src/tool_cfgable.c b/src/tool_cfgable.c index 9eb29ddb302a5012b32307e2d8f84709d5dccdb4..2a3c06ffa14fed84a8d2b81f11d36342a7fe783f 100644 --- a/src/tool_cfgable.c +++ b/src/tool_cfgable.c @@ -32,7 +32,6 @@ void config_init(struct OperationConfig* config) config->errors = stderr; /* default errors to stderr */ config->postfieldsize = -1; - config->showerror = -1; /* will show errors */ config->use_httpget = FALSE; config->create_dirs = FALSE; config->maxredirs = DEFAULT_MAXREDIRS; diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h index 78d17c7d333a25a43dfac8b71b217ac4ba4f1ebc..e88b978961202755ef39a91ad2cf029c368bd5f1 100644 --- a/src/tool_cfgable.h +++ b/src/tool_cfgable.h @@ -70,9 +70,6 @@ struct OperationConfig { char *dns_interface; /* interface name */ char *dns_ipv4_addr; /* dot notation */ char *dns_ipv6_addr; /* dot notation */ - int showerror; /* -1 == unset, default => show errors - 0 => -s is used to NOT show errors - 1 => -S has been used to show errors */ char *userpwd; char *login_options; char *tls_username; @@ -222,6 +219,9 @@ struct OperationConfig { struct GlobalConfig { CURL *easy; /* Once we have one, we keep it here */ + int showerror; /* -1 == unset, default => show errors + 0 => -s is used to NOT show errors + 1 => -S has been used to show errors */ struct OperationConfig *first; struct OperationConfig *current; diff --git a/src/tool_getparam.c b/src/tool_getparam.c index 701f43d99fbbb3d14ee8a132c7a3556159a7e4d6..9cd996c90b0b370e79fbd3b2d2ee3470f8e39904 100644 --- a/src/tool_getparam.c +++ b/src/tool_getparam.c @@ -1619,15 +1619,15 @@ ParameterError getparameter(char *flag, /* f or -long-flag */ config->mute = config->noprogress = TRUE; else config->mute = config->noprogress = FALSE; - if(config->showerror < 0) + if(global->showerror < 0) /* if still on the default value, set showerror to the reverse of toggle. This is to allow -S and -s to be used in an independent order but still have the same effect. */ - config->showerror = (!toggle)?TRUE:FALSE; /* toggle off */ + global->showerror = (!toggle)?TRUE:FALSE; /* toggle off */ break; case 'S': /* show errors */ - config->showerror = toggle?1:0; /* toggle on if used with -s */ + global->showerror = toggle?1:0; /* toggle on if used with -s */ break; case 't': /* Telnet options */ diff --git a/src/tool_main.c b/src/tool_main.c index 7bdd253aa95ee53a3873d0b97358c6e730a7694a..06c28395f7bd7f06f4847377a7a3e094ca1b950a 100644 --- a/src/tool_main.c +++ b/src/tool_main.c @@ -130,6 +130,9 @@ static CURLcode main_init(struct GlobalConfig *config) _djstat_flags |= _STAT_INODE | _STAT_EXEC_MAGIC | _STAT_DIRSIZE; #endif + /* Initialise the global config */ + config->showerror = -1; /* Will show errors */ + /* Allocate the initial operate config */ config->first = config->last = malloc(sizeof(struct OperationConfig)); if(config->first) { @@ -213,7 +216,7 @@ int main(int argc, char *argv[]) result = operate(&global, argc, argv); #ifdef __SYMBIAN32__ - if(global.first->showerror) + if(global.showerror) tool_pressanykey(); #endif diff --git a/src/tool_operate.c b/src/tool_operate.c index 2fb945310a825b23d83c4a6a4d78c6a6795ee00e..faecd8f4662cda93b2825db99ead04630348ee0a 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -187,7 +187,8 @@ static curl_off_t VmsSpecialSize(const char * name, } #endif /* __VMS */ -static CURLcode operate_do(struct OperationConfig *config) +static CURLcode operate_do(struct GlobalConfig *global, + struct OperationConfig *config) { char errorbuffer[CURL_ERROR_SIZE]; struct ProgressData progressbar; @@ -408,7 +409,7 @@ static CURLcode operate_do(struct OperationConfig *config) if(!config->globoff && infiles) { /* Unless explicitly shut off */ res = glob_url(&inglob, infiles, &infilenum, - config->showerror?config->errors:NULL); + global->showerror?config->errors:NULL); if(res) { Curl_safefree(outfiles); break; @@ -459,7 +460,7 @@ static CURLcode operate_do(struct OperationConfig *config) /* Unless explicitly shut off, we expand '{...}' and '[...]' expressions and return total number of URLs in pattern set */ res = glob_url(&urls, urlnode->url, &urlnum, - config->showerror?config->errors:NULL); + global->showerror?config->errors:NULL); if(res) { Curl_safefree(uploadfile); break; @@ -1554,12 +1555,12 @@ static CURLcode operate_do(struct OperationConfig *config) #ifdef __VMS if(is_vms_shell()) { /* VMS DCL shell behavior */ - if(!config->showerror) + if(!global->showerror) vms_show = VMSSTS_HIDE; } else #endif - if(res && config->showerror) { + if(res && global->showerror) { fprintf(config->errors, "curl: (%d) %s\n", res, (errorbuffer[0]) ? errorbuffer : curl_easy_strerror((CURLcode)res)); if(res == CURLE_SSL_CACERT) @@ -1836,7 +1837,7 @@ CURLcode operate(struct GlobalConfig *config, int argc, argv_item_t argv[]) /* Perform each operation */ while(!result && config->current) { - result = operate_do(config->current); + result = operate_do(config, config->current); config->current = config->current->next; }