mirror of
https://github.com/curl/curl.git
synced 2025-03-13 15:37:04 +08:00
--help: strdup the category
... since it is converted and the original pointer is freed on Windows unicode handling. Follow-up to aa8777f63febc Fixes #5977 Closes #5978 Reported-by: xwxbug on github
This commit is contained in:
parent
2df7414a73
commit
5bd63e0619
@ -1777,7 +1777,11 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
||||
|
||||
case 'h': /* h for help */
|
||||
if(toggle) {
|
||||
global->help_category = nextarg;
|
||||
if(nextarg) {
|
||||
global->help_category = strdup(nextarg);
|
||||
if(!global->help_category)
|
||||
return PARAM_NO_MEM;
|
||||
}
|
||||
return PARAM_HELP_REQUESTED;
|
||||
}
|
||||
/* we now actually support --no-help too! */
|
||||
|
@ -899,35 +899,31 @@ static void get_categories(void)
|
||||
}
|
||||
|
||||
|
||||
void tool_help(const char *category)
|
||||
void tool_help(char *category)
|
||||
{
|
||||
puts("Usage: curl [options...] <url>");
|
||||
/* If no category was provided */
|
||||
if(!category) {
|
||||
const char *category_note = "\nThis is not the full help, this "
|
||||
"menu is stripped into categories.\nUse \"--help category\" to get "
|
||||
"an overview of all categories.\nFor all options use the manual"
|
||||
" or \"--help all\".";
|
||||
"menu is stripped into categories.\nUse \"--help category\" to get "
|
||||
"an overview of all categories.\nFor all options use the manual"
|
||||
" or \"--help all\".";
|
||||
print_category(CURLHELP_IMPORTANT);
|
||||
puts(category_note);
|
||||
return;
|
||||
}
|
||||
/* Lets print everything if "all" was provided */
|
||||
if(curl_strequal(category, "all")) {
|
||||
else if(curl_strequal(category, "all"))
|
||||
/* Print everything except hidden */
|
||||
print_category(~(CURLHELP_HIDDEN));
|
||||
return;
|
||||
}
|
||||
/* Lets handle the string "category" differently to not print an errormsg */
|
||||
if(curl_strequal(category, "category")) {
|
||||
else if(curl_strequal(category, "category"))
|
||||
get_categories();
|
||||
return;
|
||||
}
|
||||
/* Otherwise print category and handle the case if the cat was not found */
|
||||
if(get_category_content(category)) {
|
||||
else if(get_category_content(category)) {
|
||||
puts("Invalid category provided, here is a list of all categories:\n");
|
||||
get_categories();
|
||||
}
|
||||
free(category);
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -23,7 +23,7 @@
|
||||
***************************************************************************/
|
||||
#include "tool_setup.h"
|
||||
|
||||
void tool_help(const char *category);
|
||||
void tool_help(char *category);
|
||||
void tool_list_engines(void);
|
||||
void tool_version_info(void);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user