/* $Id$ */ #define INCLUDE_VAR_H #include "bbs.h" const char * const str_permid[] = { "基本權力", /* PERM_BASIC */ "進入聊天室", /* PERM_CHAT */ "找人聊天", /* PERM_PAGE */ "發表文章", /* PERM_POST */ "註冊程序認證", /* PERM_LOGINOK */ "信件無上限", /* PERM_MAILLIMIT */ "隱身術", /* PERM_CLOAK */ "看見忍者", /* PERM_SEECLOAK */ "永久保留帳號", /* PERM_XEMPT */ "站長隱身術", /* PERM_DENYPOST */ "板主", /* PERM_BM */ "帳號總管", /* PERM_ACCOUNTS */ "聊天室總管", /* PERM_CHATCLOAK */ "看板總管", /* PERM_BOARD */ "站長", /* PERM_SYSOP */ "BBSADM", /* PERM_POSTMARK */ "不列入排行榜", /* PERM_NOTOP */ "違法通緝中", /* PERM_VIOLATELAW */ #ifdef PLAY_ANGEL "可擔任小天使", /* PERM_ANGEL */ #else "未使用", #endif "不允許\認證碼註冊", /* PERM_NOREGCODE */ "視覺站長", /* PERM_VIEWSYSOP */ "觀察使用者行蹤", /* PERM_LOGUSER */ "禠奪公權", /* PERM_NOCITIZEN */ "群組長", /* PERM_SYSSUPERSUBOP */ "帳號審核組", /* PERM_ACCTREG */ "程式組", /* PERM_PRG */ "活動組", /* PERM_ACTION */ "美工組", /* PERM_PAINT */ "警察總管", /* PERM_POLICE_MAN */ "小組長", /* PERM_SYSSUBOP */ "退休站長", /* PERM_OLDSYSOP */ "警察" /* PERM_POLICE */ }; const char * const str_permboard[] = { "不可 Zap", /* BRD_NOZAP */ "不列入統計", /* BRD_NOCOUNT */ "不轉信", /* BRD_NOTRAN */ "群組板", /* BRD_GROUPBOARD */ "隱藏板", /* BRD_HIDE */ "限制(不需設定)", /* BRD_POSTMASK */ "匿名板", /* BRD_ANONYMOUS */ "預設匿名板", /* BRD_DEFAULTANONYMOUS */ "違法改進中看板", /* BRD_BAD */ "連署專用看板", /* BRD_VOTEBOARD */ "已警告要廢除", /* BRD_WARNEL */ "熱門看板群組", /* BRD_TOP */ "不可推薦", /* BRD_NORECOMMEND */ "布落格", /* BRD_BLOG */ "板主設定列入記錄", /* BRD_BMCOUNT */ "連結看板", /* BRD_SYMBOLIC */ "不可噓", /* BRD_NOBOO */ "預設 Local Save", /* BRD_LOCALSAVE */ "限板友發文", /* BRD_RESTRICTEDPOST */ "Guest可以發表", /* BRD_GUESTPOST */ #ifdef USE_COOLDOWN "冷靜", /* BRD_COOLDOWN */ #else "冷靜(本站無效)", /* BRD_COOLDOWN */ #endif #ifdef USE_AUTOCPLOG "自動留轉錄記錄", /* BRD_CPLOG */ #else "轉錄記錄(本站無效)", /* BRD_CPLOG */ #endif "禁止快速推文", /* BRD_NOFASTRECMD */ "推文記錄 IP", /* BRD_IPLOGRECMD */ "十八禁", /* BRD_OVER18 */ "對齊式推文", /* BRD_ALIGNEDCMT */ "沒想到", "沒想到", "沒想到", "沒想到", "沒想到", "沒想到", }; int usernum; int currmode = 0; int currsrmode = 0; int curredit = 0; int currbid; char quote_file[80] = "\0"; char quote_user[80] = "\0"; char currtitle[TTLEN + 1] = "\0"; const char *currboard = "\0"; char currBM[IDLEN * 3 + 10]; char margs[64] = "\0"; /* main argv list */ pid_t currpid; /* current process ID */ time4_t login_start_time, last_login_time; time4_t start_time; userec_t pwcuser; /* current user structure */ crosspost_t postrecord; /* anti cross post */ unsigned int currbrdattr; unsigned int currstat; /* global string variables */ /* filename */ char * const fn_passwd = FN_PASSWD; char * const fn_board = FN_BOARD; char * const fn_note_ans = FN_NOTE_ANS; const char * const fn_plans = "plans"; const char * const fn_writelog = "writelog"; const char * const fn_talklog = "talklog"; const char * const fn_overrides = FN_OVERRIDES; const char * const fn_reject = FN_REJECT; const char * const fn_notes = "notes"; const char * const fn_water = FN_WATER; const char * const fn_visable = FN_VISABLE; const char * const fn_mandex = "/.Names"; const char * const fn_boardlisthelp = FN_BRDLISTHELP; const char * const fn_boardhelp = FN_BOARDHELP; /* are descript in userec.loginview */ char * const loginview_file[NUMVIEWFILE][2] = { {FN_NOTE_ANS, "酸甜苦辣流言板"}, {FN_TOPSONG, "點歌排行榜"}, {"etc/topusr", "十大排行榜"}, {"etc/topusr100", "百大排行榜"}, {"etc/weather.tmp", "天氣快報"}, {"etc/stock.tmp", "股市快報"}, {"etc/day", "今日十大話題"}, {"etc/week", "一週五十大話題"}, {"etc/today", "今天上站人次"}, {"etc/yesterday", "昨日上站人次"}, {"etc/history", "歷史上的今天"}, {"etc/topboardman", "精華區排行榜"}, {"etc/topboard.tmp", "看板人氣排行榜"}, {"@calendar", "個人行事曆"}, {NULL, NULL} }; /* message */ char * const msg_seperator = MSG_SEPERATOR; char * const msg_cancel = MSG_CANCEL; char * const msg_usr_left = MSG_USR_LEFT; char * const msg_sure_ny = MSG_SURE_NY; char * const msg_sure_yn = MSG_SURE_YN; char * const msg_bid = MSG_BID; char * const msg_uid = MSG_UID; char * const msg_del_ok = MSG_DEL_OK; char * const msg_del_ny = MSG_DEL_NY; char * const msg_fwd_ok = MSG_FWD_OK; char * const msg_fwd_err1 = MSG_FWD_ERR1; char * const msg_fwd_err2 = MSG_FWD_ERR2; char * const err_board_update = ERR_BOARD_UPDATE; char * const err_bid = ERR_BID; char * const err_uid = ERR_UID; char * const err_filename = ERR_FILENAME; char * const str_mail_address = "." BBSUSER "@" MYHOSTNAME; char * const str_reply = "Re: "; char * const str_space = " \t\n\r"; char * const str_sysop = "SYSOP"; char * const str_author1 = STR_AUTHOR1; char * const str_author2 = STR_AUTHOR2; char * const str_post1 = STR_POST1; char * const str_post2 = STR_POST2; char * const BBSName = BBSNAME; /* MAX_MODES is defined in common.h */ char * const ModeTypeTable[] = { "發呆", /* IDLE */ "主選單", /* MMENU */ "系統維護", /* ADMIN */ "郵件選單", /* MAIL */ "交談選單", /* TMENU */ "使用者選單", /* UMENU */ "XYZ 選單", /* XMENU */ "分類看板", /* CLASS */ "Play選單", /* PMENU */ "編特別名單", /* NMENU */ BBSMNAME2 "量販店", /* PSALE */ "發表文章", /* POSTING */ "看板列表", /* READBRD */ "閱\讀文章", /* READING */ "新文章列表", /* READNEW */ "選擇看板", /* SELECT */ "讀信", /* RMAIL */ "寫信", /* SMAIL */ "聊天室", /* CHATING */ "其他", /* XMODE */ "尋找好友", /* FRIEND */ "上線使用者", /* LAUSERS */ "使用者名單", /* LUSERS */ "追蹤站友", /* MONITOR */ "呼叫", /* PAGE */ "查詢", /* TQUERY */ "交談", /* TALK */ "編名片檔", /* EDITPLAN */ "編簽名檔", /* EDITSIG */ "投票中", /* VOTING */ "設定資料", /* XINFO */ "寄給站長", /* MSYSOP */ "汪汪汪", /* WWW */ "打大老二", /* BIG2 */ "回應", /* REPLY */ "被水球打中", /* HIT */ "水球準備中", /* DBACK */ "筆記本", /* NOTE */ "編輯文章", /* EDITING */ "發系統通告", /* MAILALL */ "摸兩圈", /* MJ */ "電腦擇友", /* P_FRIEND */ "上站途中", /* LOGIN */ "查字典", /* DICT */ "打橋牌", /* BRIDGE */ "找檔案", /* ARCHIE */ "打地鼠", /* GOPHER */ "看News", /* NEWS */ "情書產生器", /* LOVE */ "編輯輔助器", /* EDITEXP */ "申請IP位址", /* IPREG */ "網管辦公中", /* NetAdm */ "虛擬實業坊", /* DRINK */ "計算機", /* CAL */ "編輯座右銘", /* PROVERB */ "公佈欄", /* ANNOUNCE */ "刻流言板", /* EDNOTE */ "英漢翻譯機", /* CDICT */ "檢視自己物品", /* LOBJ */ "點歌", /* OSONG */ "與寵物同樂", /* CHICKEN */ "玩彩券", /* TICKET */ "猜數字", /* GUESSNUM */ "遊樂場", /* AMUSE */ "單人黑白棋", /* OTHELLO */ "玩骰子", /* DICE */ "發票對獎", /* VICE */ "逼逼摳ing", /* BBCALL */ "繳罰單", /* CROSSPOST */ "五子棋", /* M_FIVE */ "21點ing", /* JACK_CARD */ "10點半ing", /* TENHALF */ "超級九十九", /* CARD_99 */ "火車查詢", /* RAIL_WAY */ "搜尋選單", /* SREG */ "下象棋", /* CHC */ "下暗棋", /* DARK */ "NBA大猜測", /* TMPJACK */ BBSMNAME2 "查榜系統", /* JCEE */ "重編文章", /* REEDIT */ "部落格", /* BLOGGING */ "看棋", /* CHESSWATCHING */ "下圍棋", /* UMODE_GO */ "[系統錯誤]", /* DEBUGSLEEPING */ "連六棋", /* UMODE_CONN6 */ "黑白棋", /* REVERSI */ "BBS-Lua", /* UMODE_BBSLUA */ "播放動畫", /* UMODE_ASCIIMOVIE */ "", "", "", // 90 "", "", "", "", "", "", "", "", "", "", // 100 "", "", "", "", "", "", "", "", "", "", // 110 "", "", "", "", "", "", "", "", "", "", // 120 "", "", "", "", "", "", "", "" }; /* term.c */ int b_lines = 23; // bottom line of screen (= t_lines - 1) int t_lines = 24; // term lines int p_lines = 20; // 扣掉 header(3), footer(1), 畫面上可以顯示資料的行數 int t_columns = 80; /* refer to ansi.h for *len */ char * const strtstandout = ANSI_REVERSE; const int strtstandoutlen = 4; char * const endstandout = ANSI_RESET; const int endstandoutlen = 3; char * const clearbuf = ESC_STR "[H" ESC_STR "[J"; const int clearbuflen = 6; char * const cleolbuf = ESC_STR "[K"; const int cleolbuflen = 3; char * const scrollrev = ESC_STR "M"; const int scrollrevlen = 2; int automargins = 1; /* io.c */ time4_t now; int KEY_ESC_arg; int watermode = -1; int wmofo = NOTREPLYING; /* * PAGER_UI_IS(PAGER_UI_ORIG) | PAGER_UI_IS(PAGER_UI_NEW): * ???????????????????? * Ptt 水球回顧 (FIXME: guessed by scw) * watermode = -1 沒在回水球 * = 0 在回上一顆水球 (Ctrl-R) * > 0 在回前 n 顆水球 (Ctrl-R Ctrl-R) * * PAGER_UI_IS(PAGER_UI_OFO) by in2 * wmofo = NOTREPLYING 沒在回水球 * = REPLYING 正在回水球 * = RECVINREPLYING 回水球間又接到水球 * * wmofo >=0 時收到水球將只顯示, 不會到water[]裡, * 待回完水球的時候一次寫入. */ /* cache.c */ int numboards = -1; SHM_t *SHM; boardheader_t *bcache; userinfo_t *currutmp; /* read.c */ int TagNum = 0; /* tag's number */ int TagBoard = -1; /* TagBoard = 0 : user's mailbox */ /* TagBoard > 0 : bid where last taged */ char currdirect[64]; /* XXX TODO change this to PATHLEN? */ /* bbs.c */ char real_name[IDLEN + 1]; char local_article; /* mbbsd.c */ char fromhost[STRLEN] = "\0"; char fromhost_masked[32] = "\0"; // masked 'fromhost' char water_usies = 0; char over18 = 0; char is_first_login_of_today = 0; FILE *fp_writelog = NULL; water_t *water, *swater[6], *water_which; /* chc_play.c */ /* user.c */ #ifdef CHESSCOUNTRY int user_query_mode; /* * user_query_mode = 0 simple data * = 1 gomoku chess country data * = 2 chc chess country data * = 3 go chess country data */ #endif /* defined(CHESSCOUNTRY) */ /* screen.c */ #define scr_lns t_lines #define scr_cols ANSILINELEN screenline_t *big_picture = NULL; char roll = 0; char msg_occupied = 0; /* gomo.c */ const char * const bw_chess[] = {"○", "●", "。", "•"}; /* friend.c */ /* Ptt 各種特別名單的檔名 */ char *friend_file[8] = { FN_OVERRIDES, FN_REJECT, "alohaed", "postlist", "", /* may point to other filename */ FN_CANVOTE, FN_WATER, FN_VISABLE }; #ifdef NOKILLWATERBALL char reentrant_write_request = 0; #endif #ifdef PTTBBS_UTIL #ifdef OUTTA_TIMER #define COMMON_TIME (SHM->GV2.e.now) #else #define COMMON_TIME (time(0)) #endif #else #define COMMON_TIME (now) #endif