summaryrefslogblamecommitdiffstats
path: root/mbbsd/var.c
blob: a9f52c73cb7ae16ce7341b3f722c34062d6ed02c (plain) (tree)
1
2
3
4
5
          

                     
 
                                   

















                                                     




                                                
                                                    

                                                    
                                                    
                                                        
                                                  


                                                 
                                                     
                                                   
                                                   
                                                 

  
                                      


                                                 
                                                    







                                                          
                                                     

                                                 

                                                  

                                                        
                                                   









                                                  

                                                     
                                                
                                                    

             



             

  

                             
                               
                             


                                      
                                            
                                 
                                       

                                                            

                                 
                                                            
                                                     

                            



                             

                                   





                                               





                                                     


                                      
                                                         



                                    







                                        
                                           
                                
                


             
                                                     


                                                   



















                                                                     







                                                 
 

                                      
                                          









                                           
                                           





































                                              
                                             



                                            
                                             




                                              
                                             


                                              
                                             










                                               

                                             
                                                  
                                            
                                              
                                                   
                                              
                                                   
                                                 
                                             

                                                      

       
             


       





       
              








       
              






       

       
              






       
      
  
 
            
                                                                      
                                           
                                                                                    
                               

                              
                                                   
                                    
                                                
                                    
                                                            
                                 
                                               
                                 
                                               
                                 
                                

          
                    

                               
                                    
  

                                                



                                                  
   
                               


                                                 


                                                      
   


             
                               


                         
 
            
                                                          
                                                                           
                                                                                 
                               
 
           
                                     
                              

             
                                        
                                                                

                                   
                                                 
                           
 
                
 






                                                 
                                             


                                  
              

                                   
                                   

                                 

            
                                                             
 

                            
                                  



                 
                                         



               
 



                                    








                                            
/* $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;
time4_t         start_time;
userec_t        cuser;      /* 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;
/*
 * WATERMODE(WATER_ORIG) | WATERMODE(WATER_NEW):
 * ????????????????????
 * Ptt 水球回顧   (FIXME: guessed by scw)
 * watermode = -1 沒在回水球
 *           = 0   在回上一顆水球  (Ctrl-R)
 *           > 0   在回前 n 顆水球 (Ctrl-R Ctrl-R)
 * 
 * WATERMODE(WATER_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];

/* 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;
FILE           *fp_writelog = NULL;
water_t         *water, *swater[6], *water_which;
char            over18 = 0;

/* 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