curl: added --styled-output

It is enabled by default, so --no-styled-output will switch off the
detection/use of bold headers.

Closes #2538
This commit is contained in:
Daniel Stenberg 2018-05-17 14:09:17 +02:00
parent c1c27625c7
commit f3d836b736
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
7 changed files with 19 additions and 5 deletions

View File

@ -46,6 +46,7 @@ DPAGES = abstract-unix-socket.d anyauth.d append.d basic.d cacert.d capath.d cer
tlsauthtype.d tlspassword.d tlsuser.d tlsv1.0.d tlsv1.1.d tlsv1.2.d \
tlsv1.3.d tlsv1.d trace-ascii.d trace.d trace-time.d tr-encoding.d \
unix-socket.d upload-file.d url.d use-ascii.d user-agent.d user.d \
verbose.d version.d write-out.d xattr.d request-target.d
verbose.d version.d write-out.d xattr.d request-target.d \
styled-output.d
OTHERPAGES = page-footer page-header

View File

@ -0,0 +1,6 @@
Long: styled-output
Help: Enable styled output for HTTP headers
Added: 7.61.0
---
Enables the automatic use of bold font styles when writing HTTP headers to the
terminal. Use --no-styled-output to switch them off.

View File

@ -163,7 +163,7 @@ size_t tool_header_cb(char *ptr, size_t size, size_t nmemb, void *userdata)
if(!outs->stream && !tool_create_output_file(outs, FALSE))
return failure;
if(hdrcbdata->global->isatty)
if(hdrcbdata->global->isatty && hdrcbdata->global->styled_output)
value = memchr(ptr, ':', cb);
if(value) {
size_t namelen = value - ptr;

View File

@ -276,6 +276,7 @@ struct GlobalConfig {
int progressmode; /* CURL_PROGRESS_BAR / CURL_PROGRESS_STATS */
char *libcurl; /* Output libcurl code to this file name */
bool fail_early; /* exit on first transfer error */
bool styled_output; /* enable fancy output style detection */
struct OperationConfig *first;
struct OperationConfig *current;
struct OperationConfig *last; /* Always last in the struct */

View File

@ -260,6 +260,7 @@ static const struct LongShort aliases[]= {
{"EB", "socks5-gssapi", ARG_BOOL},
{"f", "fail", ARG_BOOL},
{"fa", "fail-early", ARG_BOOL},
{"fb", "styled-output", ARG_BOOL},
{"F", "form", ARG_STRING},
{"Fs", "form-string", ARG_STRING},
{"g", "globoff", ARG_BOOL},
@ -1643,8 +1644,10 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
case 'a': /* --fail-early */
global->fail_early = toggle;
break;
default:
/* fail hard on errors */
case 'b': /* --styled-output */
global->styled_output = toggle;
break;
default: /* --fail (hard on errors) */
config->failonerror = toggle;
}
break;

View File

@ -414,6 +414,8 @@ static const struct helptxt helptext[] = {
"Use SSLv3"},
{" --stderr",
"Where to redirect stderr"},
{" --styled-output",
"Enable styled output for HTTP headers"},
{" --suppress-connect-headers",
"Suppress proxy CONNECT response headers"},
{" --tcp-fastopen",

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2018, 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
@ -147,6 +147,7 @@ static CURLcode main_init(struct GlobalConfig *config)
/* Initialise the global config */
config->showerror = -1; /* Will show errors */
config->errors = stderr; /* Default errors to stderr */
config->styled_output = TRUE; /* enable detection */
/* Allocate the initial operate config */
config->first = config->last = malloc(sizeof(struct OperationConfig));