- 论坛徽章:
- 0
|
[fly]为了能够在g-bios里应用程序有自己的特殊的命令参数补全接口(可以给应用程序自己实现命令补全),在app.h 的
struct gapp
{
const char *name;
int (*main)(int argc, char *argv[]);
char (*option)[CMD_OPTION_LEN];
int (*usr_opt_match)(char *buf, int *cur_pos, int *cur_max);
};
里增加了int (*usr_opt_match)(char *buf, int *cur_pos, int *cur_max);加了以后,要解决的问题就是如何根据应用程序是否写了自己命令参数补全而给usr_opt_match赋不同的值(如应用程序没实现命令参数补全就让 usr_opt_match 为NULL 否则赋值为应用程序自己实现的__app_usr_opt_match ),这样在相应table键时就可根据gapp结构体里的usr_opt_match是否为NULL调用不同的命令参数相应函数!
要根据代码是否含有__app_usr_opt_match 而给usr_opt_match赋不同的值,可以想到可以在app对应的makefile里做这些工作(在没有compile之前)!
所以在/g-bios/build/rules/app.mk 里增加了
@grep "__app_usr_opt_match" __temp_gapp_$^ > /dev/null || echo "INSTALL_APPLICATION($*, main, __app_option, NULL);" >> __temp_gapp_$^
@grep "INSTALL_APPLICATION($*, main, __app_option, NULL);" __temp_gapp_$^ > /dev/null || echo "INSTALL_APPLICATION($*, main, __app_option, __app_usr_opt_match);" >> __temp_gapp_$^
这样就能够很好的保证里应用程序都可以有自己的特殊命令参数补全接口!![/fly] |
|