增强命令参数输出的颜色显示,添加变量自动补全提示功能

This commit is contained in:
LokLiang
2025-04-10 09:50:56 +08:00
parent bef56209e6
commit c79335a2a1
3 changed files with 95 additions and 2 deletions

View File

@@ -239,6 +239,22 @@ bool vset_option_cp(sh_t *sh_hdl, int argc, const char *argv[], bool flag, const
}
}
/**
* @brief 对应 SET_VAR 所设置的变量的可用自动补全函数,默认补全一个 '?' 号
*
* @param sh_hdl 原参数
* @param argc 原参数
* @param argv 原参数指针值,可能被更新
* @param flag 原参数
*/
void vset_cp_hint(sh_t *sh_hdl, int argc, const char *argv[], bool flag)
{
if (argc + flag == 1)
{
sh_completion_resource(sh_hdl, NULL, "? ", NULL);
}
}
int vset_unsigned(void *dest, __type_attr_t attr, vset_cb cb, const char *argv[], unsigned int low, unsigned int high)
{
SYS_ASSERT(s_sh_hdl, "未使用 vset_init() 初始化");
@@ -971,7 +987,6 @@ static int _set_dest_string(void *dest, __type_attr_t attr, vset_cb cb, const ch
switch (attr)
{
case __TYPE_ATTR_STR:
memset(dest, 0, bufsize);
if (memcmp(dest, str, str_size))
{
if (cb)
@@ -981,6 +996,7 @@ static int _set_dest_string(void *dest, __type_attr_t attr, vset_cb cb, const ch
memcpy(value, str, str_size);
_PARAM_CB();
}
memset(dest, 0, bufsize);
memcpy(dest, str, str_size);
global_cb = s_global_cb;
}