--show-error: position indepdenent

Previously we required that -S/--show-error was used _after_
-s/--silent. This was slightly confusing since we strive to make
arguments as position independent as possible.

Now, you can use them in any order and the result should still be the
same.

Bug: http://curl.haxx.se/bug/view.cgi?id=3424286
Reported by: Andreas Olsson
This commit is contained in:
Daniel Stenberg 2011-10-16 23:39:59 +02:00
parent 337252bdd4
commit b229c8ca8b
3 changed files with 10 additions and 4 deletions

View File

@ -64,7 +64,9 @@ struct Configurable {
char *range;
long low_speed_limit;
long low_speed_time;
bool showerror;
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 *tls_username;
char *tls_password;

View File

@ -1426,11 +1426,15 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
config->mute = config->noprogress = TRUE;
else
config->mute = config->noprogress = FALSE;
config->showerror = (!toggle)?TRUE:FALSE; /* toggle off */
if(config->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 */
break;
case 'S':
/* show errors */
config->showerror = toggle; /* toggle on if used with -s */
config->showerror = toggle?1:0; /* toggle on if used with -s */
break;
case 't':
/* Telnet options */

View File

@ -164,7 +164,7 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[])
/* inits */
config->postfieldsize = -1;
config->showerror = TRUE;
config->showerror = -1; /* will show errors */
config->use_httpget = FALSE;
config->create_dirs = FALSE;
config->maxredirs = DEFAULT_MAXREDIRS;