int Exec_Msg(int type, char **result, int key, char *arg, char *menuname) { *result=NULL; switch (type) { case same_direction: if (direction==DIRECTION_NEXT) Msg_Next(last_msg); else Msg_Previous(last_msg); break; case msg_area: Msg_Area(); break; case read_next: Msg_Next(last_msg); break; case read_previous: Msg_Previous(last_msg); break; case read_individual: Msg_Read_Individual(key); break; case msg_current: Msg_Current(); break; case read_original: Msg_Read_Original(); break; case read_reply: Msg_Read_Reply(); break; case msg_kill: Msg_Kill(-1L); break; case forward: Msg_Forward(NULL); break; case enter_message: Msg_Enter(); break; case msg_reply: Msg_Reply(); break; case msg_edit_user: Msg_Edit_User(); break; case read_nonstop: Msg_Nonstop(); break; case msg_list: Msg_List(menuname); break; case msg_scan: Msg_Scan(menuname); break; case msg_checkmail: Msg_Checkmail(menuname); break; case msg_inquir: Msg_Inquire(menuname); break; case msg_hurl: Msg_Hurl(); break; case msg_upload: Msg_Upload(); break; case msg_upload_qwk: QWK_Upload(); break; case xport: Msg_Xport(); break; case msg_change: Msg_Change(); break; case msg_tag: Msg_Tag(); break; case msg_browse: Msg_Browse(0, NULL, menuname); break; case msg_unreceive: Msg_Unreceive(last_msg, NULL); break; case msg_restrict: Msg_Restrict(); break; case msg_toggle_kludges: Msg_Toggle_Kludges(); break; #ifdef MAX_TRACKER case msg_track: TrackMenu(); break; #endif case msg_dload_attach: Msg_Attach_Download(); break; case msg_reply_area: Msg_ReplyArea(arg); break; default: logit(bad_menu_opt, type); return 0; } return 0; }
/******************************************************************************* 函 数 名: FaultMsg 功能说明: 异常消息封装 参 数: upload: 异常情况具体见异常枚举歌词 返 回 值: 无 *******************************************************************************/ void FaultMsg(void) { Msg_Upload(0, 0xFF, 1, (u8*)&Fault); }