From dcbae71812a5fdf4dc4335aa10ea75a2ab1b16d4 Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Sat, 22 Feb 2014 17:45:38 +0000 Subject: tool_getparam: Moved version information into separate function in tool_help --- src/tool_getparam.c | 59 +++++------------------------------------------------ src/tool_help.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++ src/tool_help.h | 3 ++- 3 files changed, 60 insertions(+), 55 deletions(-) diff --git a/src/tool_getparam.c b/src/tool_getparam.c index d54df22d6..5e7962cfc 100644 --- a/src/tool_getparam.c +++ b/src/tool_getparam.c @@ -43,7 +43,6 @@ #include "tool_msgs.h" #include "tool_paramhlp.h" #include "tool_parsecfg.h" -#include "tool_version.h" #include "memdebug.h" /* keep this as LAST include */ @@ -276,31 +275,6 @@ static const struct LongShort aliases[]= { {"~", "xattr", FALSE}, }; -struct feat { - const char *name; - int bitmask; -}; - -static const struct feat feats[] = { - {"AsynchDNS", CURL_VERSION_ASYNCHDNS}, - {"Debug", CURL_VERSION_DEBUG}, - {"TrackMemory", CURL_VERSION_CURLDEBUG}, - {"GSS-Negotiate", CURL_VERSION_GSSNEGOTIATE}, - {"IDN", CURL_VERSION_IDN}, - {"IPv6", CURL_VERSION_IPV6}, - {"Largefile", CURL_VERSION_LARGEFILE}, - {"NTLM", CURL_VERSION_NTLM}, - {"NTLM_WB", CURL_VERSION_NTLM_WB}, - {"SPNEGO", CURL_VERSION_SPNEGO}, - {"SSL", CURL_VERSION_SSL}, - {"SSPI", CURL_VERSION_SSPI}, - {"krb4", CURL_VERSION_KERBEROS4}, - {"libz", CURL_VERSION_LIBZ}, - {"CharConv", CURL_VERSION_CONV}, - {"TLS-SRP", CURL_VERSION_TLSAUTH_SRP}, - {"HTTP2", CURL_VERSION_HTTP2} -}; - /* Split the argument of -E to 'certname' and 'passphrase' separated by colon. * We allow ':' and '\' to be escaped by '\' so that we can use certificate * nicknames containing ':'. See @@ -1727,35 +1701,12 @@ ParameterError getparameter(char *flag, /* f or -long-flag */ config->tracetype = TRACE_NONE; break; case 'V': - { - const char *const *proto; - - if(!toggle) - /* --no-version yields no output! */ - break; - - printf(CURL_ID "%s\n", curl_version()); - if(curlinfo->protocols) { - printf("Protocols: "); - for(proto = curlinfo->protocols; *proto; ++proto) { - printf("%s ", *proto); - } - puts(""); /* newline */ - } - if(curlinfo->features) { - unsigned int i; - printf("Features: "); - for(i = 0; i < sizeof(feats)/sizeof(feats[0]); i++) { - if(curlinfo->features & feats[i].bitmask) - printf("%s ", feats[i].name); - } -#ifdef USE_METALINK - printf("Metalink "); -#endif - puts(""); /* newline */ + if(toggle) { /* --no-version yields no output! */ + tool_version_info(); + return PARAM_HELP_REQUESTED; } - } - return PARAM_HELP_REQUESTED; + break; + case 'w': /* get the output string */ if('@' == *nextarg) { diff --git a/src/tool_help.c b/src/tool_help.c index 99d276845..d00e6dcc2 100644 --- a/src/tool_help.c +++ b/src/tool_help.c @@ -23,6 +23,8 @@ #include "tool_panykey.h" #include "tool_help.h" +#include "tool_libinfo.h" +#include "tool_version.h" #include "memdebug.h" /* keep this as LAST include */ @@ -245,6 +247,31 @@ static const char *const helptext[] = { # define PRINT_LINES_PAUSE 16 #endif +struct feat { + const char *name; + int bitmask; +}; + +static const struct feat feats[] = { + {"AsynchDNS", CURL_VERSION_ASYNCHDNS}, + {"Debug", CURL_VERSION_DEBUG}, + {"TrackMemory", CURL_VERSION_CURLDEBUG}, + {"GSS-Negotiate", CURL_VERSION_GSSNEGOTIATE}, + {"IDN", CURL_VERSION_IDN}, + {"IPv6", CURL_VERSION_IPV6}, + {"Largefile", CURL_VERSION_LARGEFILE}, + {"NTLM", CURL_VERSION_NTLM}, + {"NTLM_WB", CURL_VERSION_NTLM_WB}, + {"SPNEGO", CURL_VERSION_SPNEGO}, + {"SSL", CURL_VERSION_SSL}, + {"SSPI", CURL_VERSION_SSPI}, + {"krb4", CURL_VERSION_KERBEROS4}, + {"libz", CURL_VERSION_LIBZ}, + {"CharConv", CURL_VERSION_CONV}, + {"TLS-SRP", CURL_VERSION_TLSAUTH_SRP}, + {"HTTP2", CURL_VERSION_HTTP2} +}; + void tool_help(void) { int i; @@ -257,6 +284,32 @@ void tool_help(void) } } +void tool_version_info(void) +{ + const char *const *proto; + + printf(CURL_ID "%s\n", curl_version()); + if(curlinfo->protocols) { + printf("Protocols: "); + for(proto = curlinfo->protocols; *proto; ++proto) { + printf("%s ", *proto); + } + puts(""); /* newline */ + } + if(curlinfo->features) { + unsigned int i; + printf("Features: "); + for(i = 0; i < sizeof(feats)/sizeof(feats[0]); i++) { + if(curlinfo->features & feats[i].bitmask) + printf("%s ", feats[i].name); + } +#ifdef USE_METALINK + printf("Metalink "); +#endif + puts(""); /* newline */ + } +} + void tool_list_engines(CURL *curl) { struct curl_slist *engines = NULL; diff --git a/src/tool_help.h b/src/tool_help.h index 775478df7..9ef50069a 100644 --- a/src/tool_help.h +++ b/src/tool_help.h @@ -7,7 +7,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2012, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2014, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -25,6 +25,7 @@ void tool_help(void); void tool_list_engines(CURL *curl); +void tool_version_info(void); #endif /* HEADER_CURL_TOOL_HELP_H */ -- cgit v1.2.3