fix: 对参数声明进行优化
This commit is contained in:
@@ -118,9 +118,9 @@ void argParseAutoHelp(ArgParse *argParse);
|
||||
* @return Command* 命令指针
|
||||
*/
|
||||
Command *argParseAddCommand(ArgParse *argParse,
|
||||
char *name,
|
||||
char *help,
|
||||
char *default_val, // 默认值
|
||||
const char *name,
|
||||
const char *help,
|
||||
const char *default_val, // 默认值
|
||||
ArgParseCallback callback,
|
||||
CommandGroup *group,
|
||||
ArgParseValueType value_type);
|
||||
@@ -135,9 +135,9 @@ Command *argParseAddCommand(ArgParse *argParse,
|
||||
* @return Command* 子命令指针
|
||||
*/
|
||||
Command *argParseAddSubCommand(Command *Parent,
|
||||
char *name,
|
||||
char *help,
|
||||
char *default_val,
|
||||
const char *name,
|
||||
const char *help,
|
||||
const char *default_val,
|
||||
ArgParseCallback callback,
|
||||
CommandGroup *group,
|
||||
ArgParseValueType value_type);
|
||||
@@ -154,10 +154,10 @@ Command *argParseAddSubCommand(Command *Parent,
|
||||
* @return CommandArgs* 参数指针
|
||||
*/
|
||||
CommandArgs *argParseAddArg(Command *command,
|
||||
char *short_opt,
|
||||
char *long_opt,
|
||||
char *help,
|
||||
char *default_val,
|
||||
const char *short_opt,
|
||||
const char *long_opt,
|
||||
const char *help,
|
||||
const char *default_val,
|
||||
ArgParseCallback callback,
|
||||
bool required,
|
||||
ArgParseValueType value_type);
|
||||
@@ -174,10 +174,10 @@ CommandArgs *argParseAddArg(Command *command,
|
||||
* @return
|
||||
*/
|
||||
CommandArgs *argParseAddGlobalArg(ArgParse *argParse,
|
||||
char *short_opt,
|
||||
char *long_opt,
|
||||
char *help,
|
||||
char *default_val,
|
||||
const char *short_opt,
|
||||
const char *long_opt,
|
||||
const char *help,
|
||||
const char *default_val,
|
||||
ArgParseCallback callback,
|
||||
bool required,
|
||||
ArgParseValueType value_type);
|
||||
@@ -228,7 +228,7 @@ char **argParseGetCurCommandValues(ArgParse *argParse, int *len);
|
||||
* @return char* 选项值
|
||||
* @return
|
||||
*/
|
||||
char *argParseGetCurArg(ArgParse *argParse, char *opt);
|
||||
char *argParseGetCurArg(ArgParse *argParse, const char *opt);
|
||||
|
||||
/**
|
||||
* @brief 获取当前解析到的命令参数列表,仅适用于多值参数
|
||||
@@ -237,7 +237,7 @@ char *argParseGetCurArg(ArgParse *argParse, char *opt);
|
||||
* @param len 参数个数buffer
|
||||
* @return char** 参数列表
|
||||
*/
|
||||
char **argParseGetCurArgList(ArgParse *argParse, char *opt, int *len);
|
||||
char **argParseGetCurArgList(ArgParse *argParse, const char *opt, int *len);
|
||||
|
||||
/**
|
||||
* @brief 获取全局参数
|
||||
@@ -245,7 +245,7 @@ char **argParseGetCurArgList(ArgParse *argParse, char *opt, int *len);
|
||||
* @param opt 选项名
|
||||
* @return char* 选项值
|
||||
*/
|
||||
char *argParseGetGlobalArg(ArgParse *argParse, char *opt);
|
||||
char *argParseGetGlobalArg(ArgParse *argParse, const char *opt);
|
||||
|
||||
/**
|
||||
* @brief 获取全局参数列表,仅适用于多值参数
|
||||
@@ -254,7 +254,7 @@ char *argParseGetGlobalArg(ArgParse *argParse, char *opt);
|
||||
* @param len 参数个数buffer
|
||||
* @return char** 参数列表
|
||||
*/
|
||||
char **argParseGetGlobalArgList(ArgParse *argParse, char *opt, int *len);
|
||||
char **argParseGetGlobalArgList(ArgParse *argParse, const char *opt, int *len);
|
||||
|
||||
/**
|
||||
* @brief 检查当前解析到的命令的某个参数是否被触发
|
||||
@@ -262,7 +262,7 @@ char **argParseGetGlobalArgList(ArgParse *argParse, char *opt, int *len);
|
||||
* @param opt 选项名
|
||||
* @return bool 是否被触发
|
||||
*/
|
||||
bool argParseCheckCurArgTriggered(ArgParse *argParse, char *opt);
|
||||
bool argParseCheckCurArgTriggered(ArgParse *argParse, const char *opt);
|
||||
|
||||
/**
|
||||
* @brief 检查当前解析到的命令是否被触发
|
||||
@@ -270,7 +270,8 @@ bool argParseCheckCurArgTriggered(ArgParse *argParse, char *opt);
|
||||
* @param command_name 命令名
|
||||
* @return bool 是否被触发
|
||||
*/
|
||||
bool argParseCheckCommandTriggered(ArgParse *argParse, char *command_name);
|
||||
bool argParseCheckCommandTriggered(ArgParse *argParse,
|
||||
const char *command_name);
|
||||
|
||||
/**
|
||||
* @brief 检查全局参数是否被触发
|
||||
@@ -278,7 +279,7 @@ bool argParseCheckCommandTriggered(ArgParse *argParse, char *command_name);
|
||||
* @param opt 选项名
|
||||
* @return bool 是否被触发
|
||||
*/
|
||||
bool argParseCheckGlobalTriggered(ArgParse *argParse, char *opt);
|
||||
bool argParseCheckGlobalTriggered(ArgParse *argParse, const char *opt);
|
||||
|
||||
char *argParseGetVal(ArgParse *argParse);
|
||||
char **argParseGetValList(ArgParse *argParse, int *len);
|
||||
@@ -306,8 +307,9 @@ char *argParseGenerateHelp(ArgParse *argParse);
|
||||
* @param short_flag 是否为短选项
|
||||
* @return char* 选项错误信息
|
||||
*/
|
||||
char *
|
||||
argParseGenerateArgErrorMsg(ArgParse *argParse, char *name, bool short_flag);
|
||||
char *argParseGenerateArgErrorMsg(ArgParse *argParse,
|
||||
const char *name,
|
||||
bool short_flag);
|
||||
|
||||
NORETURN void argParseError(ArgParse *argParse,
|
||||
Command *lastCommand,
|
||||
|
||||
@@ -109,9 +109,9 @@ void argParseCommandAutoHelp(Command *command) {
|
||||
}
|
||||
|
||||
Command *argParseAddCommand(ArgParse *argParse,
|
||||
char *name,
|
||||
char *help,
|
||||
char *default_val,
|
||||
const char *name,
|
||||
const char *help,
|
||||
const char *default_val,
|
||||
ArgParseCallback callback,
|
||||
CommandGroup *group,
|
||||
ArgParseValueType value_type) {
|
||||
@@ -148,9 +148,9 @@ Command *argParseAddCommand(ArgParse *argParse,
|
||||
* @return
|
||||
*/
|
||||
Command *argParseAddSubCommand(Command *Parent,
|
||||
char *name,
|
||||
char *help,
|
||||
char *default_val,
|
||||
const char *name,
|
||||
const char *help,
|
||||
const char *default_val,
|
||||
ArgParseCallback callback,
|
||||
CommandGroup *group,
|
||||
ArgParseValueType value_type) {
|
||||
@@ -179,10 +179,10 @@ Command *argParseAddSubCommand(Command *Parent,
|
||||
}
|
||||
|
||||
CommandArgs *argParseAddArg(Command *command,
|
||||
char *short_opt,
|
||||
char *long_opt,
|
||||
char *help,
|
||||
char *default_val,
|
||||
const char *short_opt,
|
||||
const char *long_opt,
|
||||
const char *help,
|
||||
const char *default_val,
|
||||
ArgParseCallback callback,
|
||||
bool required,
|
||||
ArgParseValueType value_type) {
|
||||
@@ -209,10 +209,10 @@ CommandArgs *argParseAddArg(Command *command,
|
||||
}
|
||||
|
||||
CommandArgs *argParseAddGlobalArg(ArgParse *argParse,
|
||||
char *short_opt,
|
||||
char *long_opt,
|
||||
char *help,
|
||||
char *default_val,
|
||||
const char *short_opt,
|
||||
const char *long_opt,
|
||||
const char *help,
|
||||
const char *default_val,
|
||||
ArgParseCallback callback,
|
||||
bool required,
|
||||
ArgParseValueType value_type) {
|
||||
@@ -649,7 +649,7 @@ char *argParseGetCurCommandName(ArgParse *argParse) {
|
||||
* @return char* 选项值
|
||||
* @return
|
||||
*/
|
||||
char *argParseGetCurArg(ArgParse *argParse, char *opt) {
|
||||
char *argParseGetCurArg(ArgParse *argParse, const char *opt) {
|
||||
CommandArgs *arg = NULL;
|
||||
// 尝试获取当前命令的长选项参数
|
||||
arg = argParseFindCommandArgs(argParse->current_command, opt, false);
|
||||
@@ -675,7 +675,7 @@ char *argParseGetCurArg(ArgParse *argParse, char *opt) {
|
||||
* @param len 参数个数buffer
|
||||
* @return char** 参数列表
|
||||
*/
|
||||
char **argParseGetCurArgList(ArgParse *argParse, char *opt, int *len) {
|
||||
char **argParseGetCurArgList(ArgParse *argParse, const char *opt, int *len) {
|
||||
CommandArgs *arg = NULL;
|
||||
arg = argParseFindCommandArgs(argParse->current_command, opt, false);
|
||||
|
||||
@@ -696,7 +696,7 @@ char **argParseGetCurArgList(ArgParse *argParse, char *opt, int *len) {
|
||||
* @param opt 选项名
|
||||
* @return char* 选项值
|
||||
*/
|
||||
char *argParseGetGlobalArg(ArgParse *argParse, char *opt) {
|
||||
char *argParseGetGlobalArg(ArgParse *argParse, const char *opt) {
|
||||
CommandArgs *arg = NULL;
|
||||
arg = argParseFindGlobalArgs(argParse, opt, false);
|
||||
|
||||
@@ -750,7 +750,7 @@ char **argParseGetCurCommandValues(ArgParse *argParse, int *len) {
|
||||
* @param len 参数个数buffer
|
||||
* @return char** 参数列表
|
||||
*/
|
||||
char **argParseGetGlobalArgList(ArgParse *argParse, char *opt, int *len) {
|
||||
char **argParseGetGlobalArgList(ArgParse *argParse, const char *opt, int *len) {
|
||||
CommandArgs *arg = NULL;
|
||||
arg = argParseFindGlobalArgs(argParse, opt, false);
|
||||
|
||||
@@ -833,7 +833,7 @@ char *argParseGenerateHelpForCommand(Command *command) {
|
||||
}
|
||||
|
||||
// 检查全局参数是否被触发
|
||||
bool argParseCheckGlobalTriggered(ArgParse *argParse, char *opt) {
|
||||
bool argParseCheckGlobalTriggered(ArgParse *argParse, const char *opt) {
|
||||
CommandArgs *arg = NULL;
|
||||
arg = argParseFindGlobalArgs(argParse, opt, false);
|
||||
|
||||
@@ -847,7 +847,7 @@ bool argParseCheckGlobalTriggered(ArgParse *argParse, char *opt) {
|
||||
return arg->is_trigged;
|
||||
}
|
||||
// 检测当前命令的某项参数是否被触发
|
||||
bool argParseCheckCurArgTriggered(ArgParse *argParse, char *opt) {
|
||||
bool argParseCheckCurArgTriggered(ArgParse *argParse, const char *opt) {
|
||||
CommandArgs *arg = NULL;
|
||||
arg = argParseFindCommandArgs(argParse->current_command, opt, false);
|
||||
|
||||
@@ -861,7 +861,8 @@ bool argParseCheckCurArgTriggered(ArgParse *argParse, char *opt) {
|
||||
return arg->is_trigged;
|
||||
}
|
||||
// 检测指定命令是否被触发
|
||||
bool argParseCheckCommandTriggered(ArgParse *argParse, char *command_name) {
|
||||
bool argParseCheckCommandTriggered(ArgParse *argParse,
|
||||
const char *command_name) {
|
||||
Command *command = argParseFindCommand(argParse, command_name);
|
||||
if (command == NULL) {
|
||||
return false;
|
||||
@@ -923,8 +924,9 @@ NORETURN void argParseError(ArgParse *argParse,
|
||||
exit(1);
|
||||
}
|
||||
|
||||
char *
|
||||
argParseGenerateArgErrorMsg(ArgParse *argParse, char *name, bool short_flag) {
|
||||
char *argParseGenerateArgErrorMsg(ArgParse *argParse,
|
||||
const char *name,
|
||||
bool short_flag) {
|
||||
if (argParse == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
* @param str 字符串
|
||||
* @return 复制后的字符串内存指针
|
||||
*/
|
||||
char *stringNewCopy(char *str) {
|
||||
char *stringNewCopy(const char *str) {
|
||||
if (str == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
@@ -24,9 +24,9 @@ char *stringNewCopy(char *str) {
|
||||
}
|
||||
|
||||
// 构造命令
|
||||
Command *createCommand(char *name,
|
||||
char *help,
|
||||
char *default_val,
|
||||
Command *createCommand(const char *name,
|
||||
const char *help,
|
||||
const char *default_val,
|
||||
ArgParseCallback callback,
|
||||
CommandGroup *group,
|
||||
ArgParseValueType value_typ) {
|
||||
@@ -83,7 +83,7 @@ ArgType checkArgType(char *arg) {
|
||||
}
|
||||
|
||||
// 寻找命令
|
||||
Command *argParseFindCommand(ArgParse *argParse, char *name) {
|
||||
Command *argParseFindCommand(ArgParse *argParse, const char *name) {
|
||||
for (size_t i = 0; i < argParse->commands_len; i++) {
|
||||
if (strcmp(argParse->commands[i]->name, name) == 0) {
|
||||
return argParse->commands[i];
|
||||
@@ -92,7 +92,7 @@ Command *argParseFindCommand(ArgParse *argParse, char *name) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Command *argParseFindSubCommand(Command *command, char *name) {
|
||||
Command *argParseFindSubCommand(Command *command, const char *name) {
|
||||
for (size_t i = 0; i < command->sub_commands_len; i++) {
|
||||
if (strcmp(command->sub_commands[i]->name, name) == 0) {
|
||||
return command->sub_commands[i];
|
||||
@@ -101,10 +101,10 @@ Command *argParseFindSubCommand(Command *command, char *name) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
CommandArgs *createCommandArgs(char *short_opt,
|
||||
char *long_opt,
|
||||
char *default_val,
|
||||
char *help,
|
||||
CommandArgs *createCommandArgs(const char *short_opt,
|
||||
const char *long_opt,
|
||||
const char *default_val,
|
||||
const char *help,
|
||||
ArgParseCallback callback,
|
||||
bool required,
|
||||
ArgParseValueType value_type) {
|
||||
@@ -133,7 +133,7 @@ CommandArgs *createCommandArgs(char *short_opt,
|
||||
}
|
||||
|
||||
CommandArgs *
|
||||
argParseFindCommandArgs(Command *command, char *name, bool short_flag) {
|
||||
argParseFindCommandArgs(Command *command, const char *name, bool short_flag) {
|
||||
if (command == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
@@ -155,7 +155,7 @@ argParseFindCommandArgs(Command *command, char *name, bool short_flag) {
|
||||
}
|
||||
|
||||
CommandArgs *
|
||||
argParseFindGlobalArgs(ArgParse *argParse, char *name, bool short_flag) {
|
||||
argParseFindGlobalArgs(ArgParse *argParse, const char *name, bool short_flag) {
|
||||
for (size_t i = 0; i < argParse->global_args_len; i++) {
|
||||
if (short_flag) {
|
||||
if (argParse->global_args[i]->short_opt != NULL &&
|
||||
@@ -178,7 +178,7 @@ argParseFindGlobalArgs(ArgParse *argParse, char *name, bool short_flag) {
|
||||
* @param val 值
|
||||
* @return 成功返回true,失败返回false
|
||||
*/
|
||||
bool argParseSetArgVal(CommandArgs *args, char *val) {
|
||||
bool argParseSetArgVal(CommandArgs *args, const char *val) {
|
||||
if (args->value_type == ArgParseMULTIVALUE) { // 多值
|
||||
args->val = realloc(args->val, (args->val_len + 1) * sizeof(char *));
|
||||
if (args->val == NULL) {
|
||||
@@ -212,7 +212,7 @@ bool argParseSetArgVal(CommandArgs *args, char *val) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool argParseSetCommandVal(Command *command, char *val) {
|
||||
bool argParseSetCommandVal(Command *command, const char *val) {
|
||||
if (command->value_type == ArgParseMULTIVALUE) { // 多值
|
||||
command->val =
|
||||
realloc(command->val, (command->val_len + 1) * sizeof(char *));
|
||||
@@ -252,7 +252,7 @@ bool argParseSetCommandVal(Command *command, char *val) {
|
||||
* @param val 值
|
||||
* @return 成功返回true,失败返回false
|
||||
*/
|
||||
bool argParseSetVal(ArgParse *argParse, char *val) {
|
||||
bool argParseSetVal(ArgParse *argParse, const char *val) {
|
||||
|
||||
if (argParse->value_type == ArgParseMULTIVALUE) { // 多值
|
||||
argParse->val =
|
||||
@@ -287,7 +287,7 @@ bool argParseSetVal(ArgParse *argParse, char *val) {
|
||||
return false;
|
||||
}
|
||||
|
||||
size_t __getStrlen(char *str) {
|
||||
size_t __getStrlen(const char *str) {
|
||||
if (str == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -16,22 +16,23 @@ typedef enum {
|
||||
BAD, // 错误
|
||||
} ArgType;
|
||||
|
||||
Command *createCommand(char *name,
|
||||
char *help,
|
||||
char *default_val,
|
||||
Command *createCommand(const char *name,
|
||||
const char *help,
|
||||
const char *default_val,
|
||||
ArgParseCallback callback,
|
||||
CommandGroup *group,
|
||||
ArgParseValueType value_type); // 创建命令
|
||||
|
||||
CommandGroup *createCommandGroup(char *name, char *help); // 创建命令组
|
||||
CommandGroup *createCommandGroup(const char *name,
|
||||
const char *help); // 创建命令组
|
||||
|
||||
CommandGroup *addCommandToGroup(CommandGroup *group,
|
||||
Command *command); // 添加命令到命令组
|
||||
|
||||
CommandArgs *createCommandArgs(char *short_opt,
|
||||
char *long_opt,
|
||||
char *default_val,
|
||||
char *help,
|
||||
CommandArgs *createCommandArgs(const char *short_opt,
|
||||
const char *long_opt,
|
||||
const char *default_val,
|
||||
const char *help,
|
||||
ArgParseCallback callback,
|
||||
bool required,
|
||||
ArgParseValueType value_type); // 创建命令参数
|
||||
@@ -42,29 +43,30 @@ CommandArgs *createCommandArgs(char *short_opt,
|
||||
* @param val 值
|
||||
* @return 成功返回true,失败返回false
|
||||
*/
|
||||
bool argParseSetArgVal(CommandArgs *args, char *val); // 设置命令参数值
|
||||
bool argParseSetArgVal(CommandArgs *args, const char *val); // 设置命令参数值
|
||||
|
||||
bool argParseSetCommandVal(Command *command, char *val); // 设置命令值
|
||||
bool argParseSetCommandVal(Command *command, const char *val); // 设置命令值
|
||||
|
||||
bool argParseSetVal(ArgParse *argParse, char *val); // 设置值
|
||||
bool argParseSetVal(ArgParse *argParse, const char *val); // 设置值
|
||||
|
||||
ArgType checkArgType(char *arg); // 检查参数类型
|
||||
|
||||
Command *argParseFindCommand(ArgParse *argParse, char *name); // 查找命令
|
||||
Command *argParseFindCommand(ArgParse *argParse, const char *name); // 查找命令
|
||||
|
||||
Command *argParseFindSubCommand(Command *command, char *name); // 查找子命令
|
||||
Command *argParseFindSubCommand(Command *command,
|
||||
const char *name); // 查找子命令
|
||||
|
||||
CommandArgs *argParseFindCommandArgs(Command *command,
|
||||
char *name,
|
||||
bool short_flag); // 查找命令参数
|
||||
CommandArgs *argParseFindCommandArgs(Command *command,
|
||||
const char *name,
|
||||
bool short_flag); // 查找命令参数
|
||||
|
||||
CommandArgs *argParseFindGlobalArgs(ArgParse *argParse,
|
||||
char *name,
|
||||
bool short_flag); // 查找全局参数
|
||||
CommandArgs *argParseFindGlobalArgs(ArgParse *argParse,
|
||||
const char *name,
|
||||
bool short_flag); // 查找全局参数
|
||||
|
||||
char *stringNewCopy(char *str); // 创建字符串副本
|
||||
char *stringNewCopy(const char *str); // 创建字符串副本
|
||||
void __catStr(char **dst, int count, ...); // 字符串拼接
|
||||
size_t __getStrlen(char *str); // 获取字符串长度
|
||||
size_t __getStrlen(const char *str); // 获取字符串长度
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user