代码拉取完成,页面将自动刷新
同步操作将从 pengguoguo/Linux_Greenhouse-app 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#ifndef _SMS_MENU_H_
#define _SMS_MENU_H_
#include <stdlib.h>
#include <string.h>
#include "utils.h"
typedef char *(*SMSMENUFUNC)(char *output, char *arg);
typedef struct sms_menu_t {
void *items; // 菜单项列表
unsigned int idx_len; // 菜单引导序号长度
int item_count; // 菜单项数量
const char *prefix_tip; // 菜单前面的提示
const char *suffix_tip; // 菜单后面的提示
} SMSMENU;
typedef struct sms_menu_item_t {
const char *help; // 帮助
SMSMENUFUNC func; // 菜单处理函数
SMSMENU *submenu; // 子菜单
} SMSMENUITEM;
// 定义一个菜单的起始
#define SMSMENU_START(name, idxlen) \
static SMSMENUITEM name##Items[] = {
// 增加一项菜单项
#define ADD_SMSMENUITEM(help, func) \
{ help, func, NULL },
// 增加一个带有子菜单的菜单项
#define ADD_SMSSUBMENUITEM(help, sub) \
{ help, NULL, &sub },
// 定义一个菜单的结束
#define SMSMENU_END(name, idxlen, ptip, stip) \
}; \
static SMSMENU name = { name##Items, idxlen, ARRAY_SIZE(name##Items), ptip, stip };
SMSMENU *get_top_menu();
char *exec_smscommand(SMSMENU *menu, char *output, char *sms, const char *prefix);
#endif//_SMS_MENU_H_
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。