/*-------------------------------------------------------*/ /* global.h ( NTHU CS MapleBBS Ver 2.36 ) */ /*-------------------------------------------------------*/ /* target : global definitions & variables */ /* create : 95/03/29 */ /* update : 95/12/15 */ /*-------------------------------------------------------*/ #ifndef _GLOBAL_H_ #define _GLOBAL_H_ /* ----------------------------------------------------- */ /* GLOBAL DEFINITION */ /* ----------------------------------------------------- */ /* 檔名設定 */ #define FN_PASSWD ".PASSWDS" /* User records */ #define FN_BOARD ".BOARDS" /* board list */ #define FN_USIES "usies" /* BBS log */ #define DEFAULT_BOARD str_sysop /* 鍵盤設定 */ #ifndef EXTEND_KEY #define EXTEND_KEY #define KEY_TAB 9 #define KEY_ESC 27 #define KEY_UP 0x0101 #define KEY_DOWN 0x0102 #define KEY_RIGHT 0x0103 #define KEY_LEFT 0x0104 #define KEY_HOME 0x0201 #define KEY_INS 0x0202 #define KEY_DEL 0x0203 #define KEY_END 0x0204 #define KEY_PGUP 0x0205 #define KEY_PGDN 0x0206 #endif #define Ctrl(c) ( c & 037 ) #ifdef SYSV #undef CTRL /* SVR4 CTRL macro is hokey */ #define CTRL(c) ('c'&037) /* This gives ESIX a warning...ignore it! */ #endif #define chartoupper(c) ((c >= 'a' && c <= 'z') ? c+'A'-'a' : c) #define char_lower(c) ((c >= 'A' && c <= 'Z') ? c|32 : c) /* ----------------------------------------------------- */ /* External function declarations */ /* ----------------------------------------------------- */ char *subject(); void pressanykey(); void showtitle(); void show_help(); void showplans(); void user_display(); void log_usies(); void talkreply(); void uinfo_query(); void touch_boards(); void namecomplete(); void usercomplete(); void stampfile(); #define TRACE log_usies /* #define setutmpmode(x) (currutmp->mode = (x)) */ /* ----------------------------------------------------- */ /* 訊息字串:獨立出來,以利支援各種語言 */ /* ----------------------------------------------------- */ #define STR_CURSOR "●" #define STR_UNCUR " " #define STR_AUTHOR1 "作者:" #define STR_AUTHOR2 "發信人:" #define STR_POST1 "看板:" #define STR_POST2 "站內:" #define LEN_AUTHOR1 5 #define LEN_AUTHOR2 7 #define STR_GUEST "guest" #define MSG_SEPERATOR "\ ───────────────────────────────────────" #define MSG_CLOAKED "哈哈!我隱形了!看不到勒... :P" #define MSG_UNCLOAK "我要重現江湖了...." #define MSG_WORKING "處理中,請稍候..." #define MSG_WAWA "嗚哇哇哇哇啊啊啊啊啊∼∼∼!!! ~~~>_<~~~" #define MSG_CANCEL "取消。" #define MSG_USR_LEFT "User 已經離開了" #define MSG_NOBODY "目前無人上線" #define MSG_DEL_OK "刪除完畢" #define MSG_DEL_CANCEL "取消刪除" #define MSG_DEL_ERROR "刪除錯誤" #define MSG_DEL_NY "請確定刪除(Y/N)?[N] " #define MSG_FWD_OK "文章轉寄完成!" #define MSG_FWD_ERR1 "轉寄失誤: system error" #define MSG_FWD_ERR2 "轉寄失誤: address error" #define MSG_SURE_NY "請您確定(Y/N)?[N] " #define MSG_SURE_YN "請您確定(Y/N)?[Y] " #define MSG_BID "請輸入看板名稱:" #define MSG_UID "請輸入使用者代號:" #define MSG_PASSWD "請輸入您的密碼: " #define ERR_BOARD_OPEN ".BOARD 開啟錯誤" #define ERR_BOARD_UPDATE ".BOARD 更新有誤" #define ERR_PASSWD_OPEN ".PASSWDS 開啟錯誤" #define ERR_BID "你搞錯了啦!沒有這個板喔!" #define ERR_UID "這裡沒有這個人啦!" #define ERR_PASSWD "密碼不對喔!你有沒有冒用人家的名字啊?" #define ERR_FILENAME "檔名不合法!" #define MSG_SELECT_BOARD \ "【 選擇看板 】\n請輸入看板名稱(按空白鍵自動搜尋):" #define MSG_POSTER \ " 文章選讀  (y)回信 (=[]<>)相關主題 (/?)搜尋標題 (aA)搜尋作者 (x)轉錄 (V)投票 " #define MSG_MAILER \ " 鴻雁往返  (R)回信 (x)轉達 (y)群組回信 (D)刪除 [G]繼續 ? " #define MSG_SHORTULIST "\ 使用者代號 目前狀態 │ 使用者代號 目前狀態 │ 使用者代號 目前狀態 " #ifdef _MAIN_C_ /* ----------------------------------------------------- */ /* GLOBAL VARIABLE */ /* ----------------------------------------------------- */ int usernum; pid_t currpid; /* current process ID */ usint currstat; int currmode = 0; int curredit = 0; int showansi = 1; time_t login_start_time; userec cuser; /* current user structure */ userec xuser; /* lookup user structure */ char genbuf[1024]; char quote_file[80] = "\0"; char quote_user[80] = "\0"; char currtitle[40] = "\0"; char currfile[FNLEN]; /* current file name @ bbs.c mail.c */ char currboard[IDLEN + 2]; char currBM[IDLEN * 3 + 10]; char reset_color[4] = ""; /* global string variables */ /* filename */ char *fn_passwd = FN_PASSWD; char *fn_board = FN_BOARD; char *fn_note_ans = "note.ans"; char *fn_register = "register.new"; char *fn_plans = "plans"; char *fn_write = "write"; char *fn_overrides = "overrides"; char *fn_reject = "reject"; char *fn_notes = "notes"; char *fn_mandex = "/.Names"; /* message */ char *msg_wawa = MSG_WAWA; char *msg_seperator = MSG_SEPERATOR; char *msg_mailer = MSG_MAILER; char *msg_shortulist = MSG_SHORTULIST; char *msg_cancel = MSG_CANCEL; char *msg_usr_left = MSG_USR_LEFT; char *msg_nobody = MSG_NOBODY; char *msg_sure_ny = MSG_SURE_NY; char *msg_sure_yn = MSG_SURE_YN; char *msg_bid = MSG_BID; char *msg_uid = MSG_UID; char *msg_del_ok = MSG_DEL_OK; char *msg_del_ny = MSG_DEL_NY; char *msg_fwd_ok = MSG_FWD_OK; char *msg_fwd_err1 = MSG_FWD_ERR1; char *msg_fwd_err2 = MSG_FWD_ERR2; char *err_board_update = ERR_BOARD_UPDATE; char *err_bid = ERR_BID; char *err_uid = ERR_UID; char *err_filename = ERR_FILENAME; char *str_mail_address = ".bbs@" MYHOSTNAME; char *str_new = "new"; char *str_reply = "Re: "; char *str_space = " \t\n\r"; char *str_sysop = "sysop"; char *str_author1 = STR_AUTHOR1; char *str_author2 = STR_AUTHOR2; char *str_post1 = STR_POST1; char *str_post2 = STR_POST2; char *BoardName = BOARDNAME; #else /* _MAIN_C_ */ /* ----------------------------------------------------- */ /* GLOBAL VARIABLE */ /* ----------------------------------------------------- */ extern int usernum; extern int currmode; extern int curredit; extern int showansi; extern int talkrequest; extern time_t login_start_time; extern char genbuf[1024]; extern char quote_file[80]; extern char quote_user[80]; extern char currtitle[44]; extern char currboard[]; /* name of currently selected board */ extern char currBM[]; /* BM of currently selected board */ extern char reset_color[]; /* global string variable */ /* filename */ extern char *fn_passwd; extern char *fn_board; extern char *fn_note_ans; extern char *fn_register; extern char *fn_plans; extern char *fn_write; extern char *fn_overrides; extern char *fn_reject; extern char *fn_notes; extern char *fn_mandex; /* message */ extern char *msg_wawa; extern char *msg_seperator; extern char *msg_mailer; extern char *msg_shortulist; extern char *msg_cancel; extern char *msg_usr_left; extern char *msg_nobody; extern char *msg_sure_ny; extern char *msg_sure_yn; extern char *msg_bid; extern char *msg_uid; extern char *msg_del_ok; extern char *msg_del_ny; extern char *msg_fwd_ok; extern char *msg_fwd_err1; extern char *msg_fwd_err2; extern char *err_board_update; extern char *err_bid; extern char *err_uid; extern char *err_filename; extern char *str_mail_address; extern char *str_new; extern char *str_reply; extern char *str_space; extern char *str_sysop; extern char *str_author1; extern char *str_author2; extern char *str_post1; extern char *str_post2; extern char *BoardName; #ifdef XINU extern int errno; #endif #endif /* _MAIN_C_ */ extern int errno; extern jmp_buf byebye; /* for exception condition like I/O error */ extern int dumb_term; extern int t_lines, t_columns; /* Screen size / width */ extern int b_lines; /* Screen bottom line number: t_lines-1 */ extern int p_lines; /* a Page of Screen line numbers: tlines-4 */ extern char fromhost[]; extern char save_title[]; /* used by editor when inserting */ #endif /* _GLOBAL_H_ */