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

📄 free_string.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
#ifndef lintstatic	char	sccsid[] = "@(#)free_string.c 1.1 92/07/30";#endif/* *	Name:		free_string.c * *	Description:	Free a menu string. * *	Call syntax:	free_menu_string(obj_p, string_p); * *	Parameters:	pointer		obj_p; *			menu_string *	string_p; */#include "menu.h"#include "menu_impl.h"voidfree_menu_string(obj_p, string_p)	pointer		obj_p;	menu_string *	string_p;{	char *		name_p;			/* pointer to object name */	menu_string **	str_pp;			/* ptr to string pointer */	if (obj_p == NULL || string_p == NULL)		return;	switch (((menu_core *) obj_p)->m_type) {	case MENU_OBJ_BUTTON:		name_p = ((form_button *) obj_p)->fb_name;		str_pp = &((form_button *) obj_p)->fb_mstrings;		break;	case MENU_OBJ_FIELD:		name_p = ((form_field *) obj_p)->ff_name;		str_pp = &((form_field *) obj_p)->ff_mstrings;		break;	case MENU_OBJ_FILE:		name_p = ((menu_file *) obj_p)->mf_name;		str_pp = &((menu_file *) obj_p)->mf_mstrings;		break;	case MENU_OBJ_FORM:		name_p = ((form *) obj_p)->f_name;		str_pp = &((form *) obj_p)->f_mstrings;		break;			case MENU_OBJ_ITEM:		name_p = ((menu_item *) obj_p)->mi_name;		str_pp = &((menu_item *) obj_p)->mi_mstrings;		break;	case MENU_OBJ_MENU:		name_p = ((menu *) obj_p)->m_name;		str_pp = &((menu *) obj_p)->m_mstrings;		break;	case MENU_OBJ_NOECHO:		name_p = ((menu *) obj_p)->m_name;		str_pp = &((form_noecho *) obj_p)->fne_mstrings;		break;	case MENU_OBJ_RADIO:		name_p = ((form_radio *) obj_p)->fr_name;		str_pp = &((form_radio *) obj_p)->fr_mstrings;		break;			case MENU_OBJ_YESNO:		name_p = ((form_yesno *) obj_p)->fyn_name;		str_pp = &((form_yesno *) obj_p)->fyn_mstrings;		break;	}	/*	 *	The target is the first string so just update the pointer	 */	if (*str_pp == string_p) {		*str_pp = string_p->ms_next;	}	/*	 *	Find the previous string and update the pointer.	 */	else {		for (; *str_pp; str_pp = &(*str_pp)->ms_next)			if ((*str_pp)->ms_next == string_p)				break;		if (*str_pp == NULL) {			menu_log("free_menu_string(): cannot find string.");			menu_log("\tobject name is %s.", name_p);			menu_abort(1);		}		(*str_pp)->ms_next = string_p->ms_next;	}	bzero((char *) string_p, sizeof(*string_p));	free((char *) string_p);} /* end free_menu_string() */

⌨️ 快捷键说明

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