⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 finsh_var.c

📁 中国人自己的c语言
💻 C
字号:
#include "finsh_var.h"
#include "finsh_type.h"

struct finsh_var global_variable[FINSH_VARIABLE_MAX];

int finsh_var_init()
{
	memset(global_variable, 0, sizeof(global_variable));

	return 0;
}

int finsh_var_insert(const u_char* name, int type)
{
	int i, empty;

	empty = -1;
	for (i = 0; i < FINSH_VARIABLE_MAX; i ++)
	{
		/* there is a same name variable exist. */
		if (strncmp(global_variable[i].name, name, FINSH_NAME_MAX) == 0)
			return -1;

		if (global_variable[i].type == finsh_type_unknown && empty == -1)
		{
			empty = i;
		}
	}

	/* there is no empty entry */
	if (empty == -1) return -1;

	/* insert entry */
	strncpy(global_variable[empty].name, name, FINSH_NAME_MAX);
	global_variable[empty].type = type;

	/* return the offset */
	return empty;
}

int finsh_var_delete(const u_char* name)
{
	int i;

	for (i = 0; i < FINSH_VARIABLE_MAX; i ++)
	{
		if (strncpy(global_variable[i].name, name, FINSH_NAME_MAX) == 0)
			break;
	}

	/* can't find variable */
	if (i == FINSH_VARIABLE_MAX) return -1;

	memset(&global_variable[i], 0, sizeof(struct finsh_var));

	return 0;
}

struct finsh_var* finsh_var_lookup(const u_char* name)
{
	int i;

	for (i = 0; i < FINSH_VARIABLE_MAX; i ++)
	{
		if (strncmp(global_variable[i].name, name, FINSH_NAME_MAX) == 0)
			break;
	}

	/* can't find variable */
	if (i == FINSH_VARIABLE_MAX) return NULL;

	return &global_variable[i];
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -