📄 free_file.c
字号:
#ifndef lintstatic char sccsid[] = "@(#)free_file.c 1.1 92/07/30";#endif/* * Name: free_file.c * * Description: Free a file object. * * Call syntax: free_menu_file(obj_p, file_p); * * Parameters: pointer obj_p; * menu_file * file_p; */#include "menu.h"#include "menu_impl.h"voidfree_menu_file(obj_p, file_p) pointer obj_p; menu_file * file_p;{ menu_file ** fpp; /* ptr to file obj pointer */ char * name_p; /* pointer to object name */ if (obj_p == NULL || file_p == NULL) return; switch(((menu_core *) obj_p)->m_type) { case MENU_OBJ_FORM: fpp = &((form *) obj_p)->f_files; name_p = ((form *) obj_p)->f_name; break; case MENU_OBJ_MENU: fpp = &((menu *) obj_p)->m_files; name_p = ((menu *) obj_p)->m_name; break; default: menu_log("add_menu_file(): %x: unsupported menu object type.", ((menu_core *) obj_p)->m_type); menu_abort(1); } /* * The target is the first file obj so just update the pointer */ if (*fpp == file_p) { *fpp = file_p->mf_next; } /* * Find the previous file and update the pointer. */ else { for (; *fpp; fpp = &(*fpp)->mf_next) if ((*fpp)->mf_next == file_p) break; if (*fpp == NULL) { menu_log("free_menu_file(): cannot find file."); menu_log("\tfile name is %s.", file_p->mf_name); menu_log("\tobject name is %s.", name_p); menu_abort(1); } (*fpp)->mf_next = file_p->mf_next; } bzero((char *) file_p, sizeof(*file_p)); free((char *) file_p);} /* end free_menu_file() */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -