aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tool_getparam.c59
-rw-r--r--src/tool_help.c53
-rw-r--r--src/tool_help.h3
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 <https://sourceforge.net/p/curl/bugs/1196/>
@@ -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, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2014, 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
@@ -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 */