/*-------------------------------------------------------*/
/* 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 FN_USEBOARD "usboard" /* 看版統計 */
#define FN_OVERRIDES "overrides"
#define FN_REJECT "reject"
#define FN_CANVOTE "can_vote"
#define FN_WATER "water"
#define FN_VISABLE "visable"
#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 *my_ctime();
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 MSG_BIG_BOY "我是大帥哥! ^o^Y"
#define MSG_BIG_GIRL "世紀大美女 *^-^*"
#define MSG_LITTLE_BOY "我是底迪啦... =)"
#define MSG_LITTLE_GIRL "最可愛的美眉! :>"
#define MSG_MAN "麥當勞叔叔 (^O^)"
#define MSG_WOMAN "叫我小阿姨!! /:>"
#define MSG_PLANT "植物也有性別喔.."
#define MSG_MIME "礦物總沒性別了吧"
#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 \
"7m【 選擇看板 】0m\n請輸入看板名稱(按空白鍵自動搜尋):"
#define MSG_POSTER \
"4;46m 文章選讀 1;47m (y)0m回信 1m(=[]<>)0m相關主題 1m(/?)0m搜尋標題 1m(aA)0m搜尋作者 1m(x)0m轉錄 1m(V)0m投票 0m"
#define MSG_MAILER \
"4;46m 鴻雁往返 1;47m(R)0m回信1m(x)0m轉達\
1m(y)0m群組回信1m(D)0m刪除\
1m(c)0m收入信件夾1m(z)0m信件夾 1m[G]0m繼續?0m"
#define MSG_SHORTULIST "7m\
使用者代號 目前狀態 │使用者代號 目前狀態 │使用者代號 目前狀態 0m"
#ifdef _MAIN_C_
/* ----------------------------------------------------- */
/* GLOBAL VARIABLE */
/* ----------------------------------------------------- */
char trans_buffer[256]; /* 一般傳遞變數 add by Ptt */
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 quote_file[80] = "\0";
char quote_user[80] = "\0";
time_t paste_time;
char paste_title[STRLEN];
char paste_path[256];
int paste_level;
char currtitle[40] = "\0";
char vetitle[40] = "\0";
char currowner[IDLEN + 2] = "\0";
char currauthor[IDLEN + 2] = "\0";
char currfile[FNLEN]; /* current file name @ bbs.c mail.c */
uschar currfmode; /* current file mode */
char currmsg[100];
char currboard[IDLEN + 2];
char currBM[IDLEN * 3 + 10];
char reset_color[4] = "m";
/* 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_writelog = "writelog";
char *fn_talklog = "talklog";
char *fn_overrides = FN_OVERRIDES;
char *fn_reject = FN_REJECT;
char *fn_canvote = FN_CANVOTE;
char *fn_notes = "notes";
char *fn_water = FN_WATER;
char *fn_visable = FN_VISABLE;
char *fn_mandex = "/.Names";
char *fn_proverb = "proverb";
/* 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 = "." BBSUSER "@" 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 char trans_buffer[256]; /* 一般傳遞變數 add by Ptt */
extern int usernum;
extern pid_t currpid;
extern usint currstat;
extern int currmode;
extern int curredit;
extern int showansi;
extern int talkrequest;
extern time_t login_start_time;
extern userec cuser; /* current user structure */
extern userec xuser; /* lookup user structure */
extern char quote_file[80];
extern char quote_user[80];
extern time_t paste_time;
extern char paste_title[STRLEN];
extern char paste_path[256];
extern int paste_level;
extern char currowner[IDLEN + 2];
extern char currauthor[IDLEN + 2];
extern uschar currfmode; /* current file mode */
extern char currtitle[44];
extern char vetitle[44];
extern char currfile[FNLEN];
extern char currmsg[100];
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_writelog;
extern char *fn_talklog;
extern char *fn_overrides;
extern char *fn_reject;
extern char *fn_canvote;
extern char *fn_notes;
extern char *fn_water;
extern char *fn_visable;
extern char *fn_mandex;
extern char *fn_proverb;
/* 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 user_info *currutmp;
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 */
extern int KEY_ESC_arg;
#endif /* _GLOBAL_H_ */