feat(argparse): 实现高级命令行参数解析库
- 添加完整的参数解析API,支持子命令、选项和参数定义 - 实现多种数据类型支持:字符串、布尔值、整数、浮点数、枚举等 - 添加约束规范结构体,支持必填项、多值、隐藏选项等功能 - 实现国际化支持,包含中英文错误提示和帮助信息 - 添加模糊匹配功能,当用户输入错误参数时提供相似建议 - 实现详细的帮助信息打印功能,包括使用方法、选项说明等 - 修改底层optparse库,优化选项处理和错误报告机制 - 添加向量类型支持用于管理参数、选项和子命令集合
This commit is contained in:
@@ -145,7 +145,7 @@ int scc_optparse_parse(scc_optparse_t *parser, scc_optparse_result_t *res) {
|
||||
goto RETURN;
|
||||
}
|
||||
|
||||
for (const scc_optparse_opt_t *opt = opts; opt->prefix; ++opt) {
|
||||
for (const scc_optparse_opt_t *opt = opts; opt && opt->prefix; ++opt) {
|
||||
if (arg[0] != opt->prefix) {
|
||||
continue;
|
||||
}
|
||||
@@ -216,5 +216,6 @@ RETURN:
|
||||
parser->current.count > res->opt->max_args) {
|
||||
res->error = SCC_OPT_ERROR_TOO_MANY_ARGS;
|
||||
}
|
||||
return res->opt != 0 || res->value != 0;
|
||||
// res->raw_arg = arg;
|
||||
return res->opt != 0 || res->value != 0 || res->error != SCC_OPT_ERROR_NONE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user