summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mbbsd/mbbsd.c125
-rw-r--r--mbbsd/talk.c800
2 files changed, 366 insertions, 559 deletions
diff --git a/mbbsd/mbbsd.c b/mbbsd/mbbsd.c
index 5323b376..b0f0dd55 100644
--- a/mbbsd/mbbsd.c
+++ b/mbbsd/mbbsd.c
@@ -1,4 +1,4 @@
-/* $Id: mbbsd.c,v 1.4 2002/03/11 20:27:39 in2 Exp $ */
+/* $Id: mbbsd.c,v 1.5 2002/03/12 16:54:36 in2 Exp $ */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
@@ -202,7 +202,7 @@ u_exit (char *mode)
{
//userec_t xuser;
int diff = (time (0) - login_start_time) / 60;
-
+
reload_money();
auto_backup ();
save_brdbuf();
@@ -217,12 +217,11 @@ u_exit (char *mode)
do_aloha ("<<下站通知>> -- 我走囉!");
purge_utmp (currutmp);
- if ((cuser.uflag != enter_uflag) || (currmode & MODE_DIRTY) || diff)
- {
- if (!diff && cuser.numlogins)
- cuser.numlogins = --cuser.numlogins;
- /* Leeym 上站停留時間限制式 */
- }
+ if ((cuser.uflag != enter_uflag) || (currmode & MODE_DIRTY) || diff){
+ if (!diff && cuser.numlogins)
+ cuser.numlogins = --cuser.numlogins;
+ /* Leeym 上站停留時間限制式 */
+ }
passwd_update (usernum, &cuser);
log_usies (mode, NULL);
}
@@ -420,62 +419,58 @@ add_history(msgque_t *msg)
static void
write_request (int sig)
{
- struct tm *ptime;
- time_t now;
-
- time (&now);
- ptime = localtime (&now);
-
- if (!WATERMODE(WATER_OFO) &&
- currutmp->mode != 0 &&
- currutmp->pager != 0 &&
- cuser.userlevel != 0 &&
- currutmp->msgcount != 0 &&
- currutmp->mode != TALK &&
- currutmp->mode != EDITING &&
- currutmp->mode != CHATING &&
- currutmp->mode != PAGE &&
- currutmp->mode != IDLE &&
- currutmp->mode != MAILALL && currutmp->mode != MONITOR)
- {
- int i;
- char c0 = currutmp->chatid[0];
- int currstat0 = currstat;
- unsigned char mode0 = currutmp->mode;
-
- currutmp->mode = 0;
- currutmp->chatid[0] = 2;
- currstat = XMODE;
+ struct tm *ptime;
+ time_t now;
+
+ time (&now);
+ ptime = localtime (&now);
- do
- {
- bell ();
- show_last_call_in (1);
- igetch ();
- currutmp->msgcount--;
- if (currutmp->msgcount >= MAX_MSGS)
- {
- /* this causes chaos... jochang */
- raise (SIGFPE);
+ if (!WATERMODE(WATER_OFO) &&
+ currutmp->mode != 0 &&
+ currutmp->pager != 0 &&
+ cuser.userlevel != 0 &&
+ currutmp->msgcount != 0 &&
+ currutmp->mode != TALK &&
+ currutmp->mode != EDITING &&
+ currutmp->mode != CHATING &&
+ currutmp->mode != PAGE &&
+ currutmp->mode != IDLE &&
+ currutmp->mode != MAILALL && currutmp->mode != MONITOR){
+ int i;
+ char c0 = currutmp->chatid[0];
+ int currstat0 = currstat;
+ unsigned char mode0 = currutmp->mode;
+
+ currutmp->mode = 0;
+ currutmp->chatid[0] = 2;
+ currstat = XMODE;
+
+ do{
+ bell ();
+ show_last_call_in (1);
+ igetch ();
+ currutmp->msgcount--;
+ if (currutmp->msgcount >= MAX_MSGS){
+ /* this causes chaos... jochang */
+ raise (SIGFPE);
}
-
- add_history(&currutmp->msgs[0]);
- for (i = 0; i < currutmp->msgcount; i++)
- currutmp->msgs[i] = currutmp->msgs[i + 1];
+
+ add_history(&currutmp->msgs[0]);
+ for (i = 0; i < currutmp->msgcount; i++)
+ currutmp->msgs[i] = currutmp->msgs[i + 1];
}
- while (currutmp->msgcount);
- currutmp->chatid[0] = c0;
- currutmp->mode = mode0;
- currstat = currstat0;
+ while (currutmp->msgcount);
+ currutmp->chatid[0] = c0;
+ currutmp->mode = mode0;
+ currstat = currstat0;
}
- else
- {
- bell ();
- show_last_call_in (1);
- add_history(&currutmp->msgs[0]);
-
- refresh ();
- currutmp->msgcount = 0;
+ else{
+ bell ();
+ show_last_call_in (1);
+ add_history(&currutmp->msgs[0]);
+
+ refresh ();
+ currutmp->msgcount = 0;
}
}
@@ -940,11 +935,11 @@ user_login ()
more (buf, NA);
}
#else
- more ("etc/Welcome_login", NA);
+ more ("etc/Welcome_login", NA);
#endif
-// pressanykey();
-// more("etc/CSIE_Week", NA);
- currutmp->birth = 0;
+ //pressanykey();
+ //more("etc/CSIE_Week", NA);
+ currutmp->birth = 0;
}
if (cuser.userlevel){/* not guest */
@@ -1010,8 +1005,6 @@ user_login ()
for (i = 0; i < NUMVIEWFILE; i++)
if ((cuser.loginview >> i) & 1)
more (loginview_file[(int) i][0], YEA);
-
-
}
static void
diff --git a/mbbsd/talk.c b/mbbsd/talk.c
index 328e4453..5499d18f 100644
--- a/mbbsd/talk.c
+++ b/mbbsd/talk.c
@@ -1,4 +1,4 @@
-/* $Id: talk.c,v 1.5 2002/03/11 11:15:47 in2 Exp $ */
+/* $Id: talk.c,v 1.6 2002/03/12 16:54:36 in2 Exp $ */
#include <stdio.h>
#include <string.h>
#include <errno.h>
@@ -96,7 +96,8 @@ static char description[30];
static FILE *flog;
-char *modestring(userinfo_t * uentp, int simple) {
+char *modestring(userinfo_t * uentp, int simple)
+{
static char modestr[40];
static char *notonline = "不在站上";
register int mode = uentp->mode;
@@ -104,41 +105,34 @@ char *modestring(userinfo_t * uentp, int simple) {
int fri_stat;
/* for debugging */
- if (mode >= MAX_MODES)
- {
+ if (mode >= MAX_MODES){
syslog(LOG_WARNING, "what!? mode = %d", mode);
word = ModeTypeTable[mode % MAX_MODES];
}
else
word = ModeTypeTable[mode];
fri_stat = friend_stat(currutmp, uentp);
- if (!(HAS_PERM(PERM_SYSOP) || HAS_PERM(PERM_SEECLOAK)) &&
- (
- (uentp->invisible || (fri_stat & HRM)) &&
- !((fri_stat & HFM) && (fri_stat & HRM))
- )
- )
+ if( !(HAS_PERM(PERM_SYSOP) || HAS_PERM(PERM_SEECLOAK)) &&
+ ((uentp->invisible || (fri_stat & HRM)) &&
+ !((fri_stat & HFM) && (fri_stat & HRM))) )
return notonline;
- else if (mode == EDITING)
- {
+ else if (mode == EDITING){
sprintf(modestr, "E:%s",
ModeTypeTable[uentp->destuid < EDITING ? uentp->destuid :
- EDITING]);
+ EDITING]);
word = modestr;
}
- else if (!mode && *uentp->chatid == 1)
- {
+ else if (!mode && *uentp->chatid == 1){
if (!simple)
sprintf(modestr, "回應 %s", getuserid(uentp->destuid));
else
sprintf(modestr, "回應呼叫");
}
else if (!mode && *uentp->chatid == 2)
- if (uentp->msgcount < 10)
- {
+ if (uentp->msgcount < 10){
char *cnum[10] =
- {"", "一", "兩", "三", "四", "五", "六", "七",
- "八", "九"};
+ {"", "一", "兩", "三", "四", "五", "六", "七",
+ "八", "九"};
sprintf(modestr, "中%s顆水球", cnum[uentp->msgcount]);
}
else
@@ -147,28 +141,25 @@ char *modestring(userinfo_t * uentp, int simple) {
sprintf(modestr, "水球準備中");
else if (!mode)
return (uentp->destuid == 6) ? uentp->chatid :
- IdleTypeTable[(0 <= uentp->destuid && uentp->destuid < 6) ?
- uentp->destuid : 0];
+ IdleTypeTable[(0 <= uentp->destuid && uentp->destuid < 6) ?
+ uentp->destuid : 0];
else if (simple)
return word;
else if (uentp->in_chat && mode == CHATING)
sprintf(modestr, "%s (%s)", word, uentp->chatid);
- else if (mode == TALK)
- {
+ else if (mode == TALK){
if (!isvisible_uid(uentp->destuid))/* Leeym 對方(紫色)隱形 */
sprintf(modestr, "%s", "交談 空氣");/* Leeym 大家自己發揮吧! */
else
sprintf(modestr, "%s %s", word, getuserid(uentp->destuid));
}
- else if (mode == M_FIVE)
- {
+ else if (mode == M_FIVE){
if (!isvisible_uid(uentp->destuid))
sprintf(modestr, "%s", "五子棋 空氣");
else
sprintf(modestr, "%s %s", word, getuserid(uentp->destuid));
}
- else if (mode == CHC)
- {
+ else if (mode == CHC){
if (isvisible_uid(uentp->destuid))
sprintf(modestr, "%s", "下象棋");
else
@@ -185,37 +176,31 @@ char *modestring(userinfo_t * uentp, int simple) {
int set_friend_bit(userinfo_t * me, userinfo_t * ui) {
int unum, *myfriends, hit=0, n;
-/* 判斷對方是否為我的朋友 ? */
+ /* 判斷對方是否為我的朋友 ? */
unum = ui->uid;
myfriends = me->friend;
- while ((n = *myfriends++))
- {
- if (unum == n)
- {
+ while ((n = *myfriends++)){
+ if (unum == n){
hit = IFH;
break;
}
}
-
-/* 判斷我是否為對方的朋友 ? */
+
+ /* 判斷我是否為對方的朋友 ? */
myfriends = ui->friend;
- while ((unum = *myfriends++))
- {
- if (unum == me->uid)
- {
+ while ((unum = *myfriends++)){
+ if (unum == me->uid){
hit |= HFM;
break;
}
}
-
+
/* 判斷對方是否為我的仇人 ? */
unum = ui->uid;
myfriends = me->reject;
- while ((n = *myfriends++))
- {
- if (unum == n)
- {
+ while ((n = *myfriends++)){
+ if (unum == n){
hit |= IRH;
break;
}
@@ -223,16 +208,15 @@ int set_friend_bit(userinfo_t * me, userinfo_t * ui) {
/* 判斷我是否為對方的仇人 ? */
myfriends = ui->reject;
- while ((unum = *myfriends++))
- {
- if (unum == me->uid)
- {
+ while ((unum = *myfriends++)){
+ if (unum == me->uid){
hit |= HRM;
break;
}
}
return hit;
}
+
int reverse_friend_stat(int stat)
{
int stat1=0;
@@ -249,54 +233,50 @@ int reverse_friend_stat(int stat)
return stat1;
}
-int login_friend_online(){
- userinfo_t *uentp;
- int i, stat, stat1;
- int offset=(int) (currutmp - &utmpshm->uinfo[0]);
- for (i=0;i<utmpshm->number && currutmp->friendtotal<MAX_FRIEND; i++)
- {
- uentp = (utmpshm->sorted[utmpshm->currsorted][0][i]);
- if(uentp && uentp->uid && (stat=set_friend_bit(currutmp,uentp)))
- {
- stat1=reverse_friend_stat(stat);
- stat <<= 24;
- stat |= (int) (uentp - &utmpshm->uinfo[0]);
- currutmp->friend_online[currutmp->friendtotal++]=stat;
- if(uentp!=currutmp && uentp->friendtotal<MAX_FRIEND)
- {
- stat1 <<= 24;
- stat1 |= offset;
- uentp->friend_online[uentp->friendtotal++]=stat1;
- }
- }
- }
- return 0;
+int login_friend_online(void)
+{
+ userinfo_t *uentp;
+ int i, stat, stat1;
+ int offset=(int) (currutmp - &utmpshm->uinfo[0]);
+ for (i=0;i<utmpshm->number && currutmp->friendtotal<MAX_FRIEND; i++){
+ uentp = (utmpshm->sorted[utmpshm->currsorted][0][i]);
+ if(uentp && uentp->uid && (stat=set_friend_bit(currutmp,uentp))){
+ stat1=reverse_friend_stat(stat);
+ stat <<= 24;
+ stat |= (int) (uentp - &utmpshm->uinfo[0]);
+ currutmp->friend_online[currutmp->friendtotal++]=stat;
+ if(uentp!=currutmp && uentp->friendtotal<MAX_FRIEND){
+ stat1 <<= 24;
+ stat1 |= offset;
+ uentp->friend_online[uentp->friendtotal++]=stat1;
+ }
+ }
+ }
+ return 0;
}
-int logout_friend_online(){
+int logout_friend_online(void)
+{
int i, j, k;
int offset=(int) (currutmp - &utmpshm->uinfo[0]);
userinfo_t *ui;
- while(currutmp->friendtotal)
- {
- i = currutmp->friendtotal-1;
- j = (currutmp->friend_online[i] & 0xFFFFFF);
- currutmp->friend_online[i]=0;
- ui = &utmpshm->uinfo[j];
- if(ui->pid && ui!=currutmp)
- {
+ while(currutmp->friendtotal){
+ i = currutmp->friendtotal-1;
+ j = (currutmp->friend_online[i] & 0xFFFFFF);
+ currutmp->friend_online[i]=0;
+ ui = &utmpshm->uinfo[j];
+ if(ui->pid && ui!=currutmp){
for(k=0; k<ui->friendtotal &&
- (int)(ui->friend_online[k] & 0xFFFFFF) !=offset; k++);
- if(k<ui->friendtotal)
- {
- ui->friendtotal--;
- ui->friend_online[k]=ui->friend_online[ui->friendtotal];
- ui->friend_online[ui->friendtotal]=0;
- }
- }
- currutmp->friendtotal--;
- currutmp->friend_online[currutmp->friendtotal]=0;
+ (int)(ui->friend_online[k] & 0xFFFFFF) !=offset; k++);
+ if(k<ui->friendtotal){
+ ui->friendtotal--;
+ ui->friend_online[k]=ui->friend_online[ui->friendtotal];
+ ui->friend_online[ui->friendtotal]=0;
+ }
}
+ currutmp->friendtotal--;
+ currutmp->friend_online[currutmp->friendtotal]=0;
+ }
return 0;
}
@@ -304,45 +284,45 @@ int logout_friend_online(){
int friend_stat(userinfo_t *me, userinfo_t * ui)
{
int i, j, hit=0;
-/* 看板好友 */
- if (me->brc_id && ui->brc_id == me->brc_id)
- {
+ /* 看板好友 */
+ if (me->brc_id && ui->brc_id == me->brc_id){
hit = IBH;
- }
- for(i=0;me->friend_online[i];i++)
- {
- j = (me->friend_online[i] & 0xFFFFFF);
- if(ui == &utmpshm->uinfo[j])
- {
- hit |= me->friend_online[i] >>24;
- break;
- }
- }
+ }
+ for(i=0;me->friend_online[i];i++){
+ j = (me->friend_online[i] & 0xFFFFFF);
+ if(ui == &utmpshm->uinfo[j]){
+ hit |= me->friend_online[i] >>24;
+ break;
+ }
+ }
if (PERM_HIDE(ui))
- return hit & ST_FRIEND;
+ return hit & ST_FRIEND;
return hit;
}
-int isvisible_stat(userinfo_t * me, userinfo_t * uentp, int fri_stat) {
+int isvisible_stat(userinfo_t * me, userinfo_t * uentp, int fri_stat)
+{
if (uentp->userid[0] == 0)
return 0;
-
+
if (PERM_HIDE(uentp) && !(PERM_HIDE(me)))/* 對方紫色隱形而你沒有 */
return 0;
else if ((me->userlevel & PERM_SYSOP) ||
((fri_stat & HRM) && (fri_stat & HFM))) /* 站長看的見任何人 */
return 1;
-
+
if (uentp->invisible && !(me->userlevel & PERM_SEECLOAK)) return 0;
return (fri_stat & HRM) ? 0 : 1;
}
-int isvisible(userinfo_t * me, userinfo_t * uentp) {
+int isvisible(userinfo_t * me, userinfo_t * uentp)
+{
return isvisible_stat(currutmp, uentp, friend_stat(me, uentp));
}
-int isvisible_uid(int tuid){
+int isvisible_uid(int tuid)
+{
userinfo_t *uentp;
if(!tuid || !(uentp = search_ulist(tuid)))
@@ -351,13 +331,13 @@ int isvisible_uid(int tuid){
}
/* 真實動作 */
-static void my_kick(userinfo_t * uentp) {
+static void my_kick(userinfo_t * uentp)
+{
char genbuf[200];
getdata(1, 0, msg_sure_ny, genbuf, 4, LCECHO);
clrtoeol();
- if (genbuf[0] == 'y')
- {
+ if (genbuf[0] == 'y'){
sprintf(genbuf, "%s (%s)", uentp->userid, uentp->username);
log_usies("KICK ", genbuf);
if((uentp->pid <= 0 || kill(uentp->pid, SIGHUP) == -1) && (errno == ESRCH))
@@ -369,23 +349,20 @@ static void my_kick(userinfo_t * uentp) {
pressanykey();
}
-static void chicken_query(char *userid) {
+static void chicken_query(char *userid)
+{
char buf[100];
- if (getuser(userid))
- {
- if (xuser.mychicken.name[0])
- {
+ if (getuser(userid)){
+ if (xuser.mychicken.name[0]){
time_diff(&(xuser.mychicken));
- if (!isdeadth(&(xuser.mychicken)))
- {
+ if (!isdeadth(&(xuser.mychicken))){
show_chicken_data(&(xuser.mychicken), NULL);
sprintf(buf, "\n\n以上是 %s 的寵物資料..", userid);
outs(buf);
}
}
- else
- {
+ else{
move(1, 0);
clrtobot();
sprintf(buf, "\n\n%s 並沒有養寵物..", userid);
@@ -395,29 +372,28 @@ static void chicken_query(char *userid) {
}
}
-int my_query(char *uident) {
+int my_query(char *uident)
+{
userec_t muser;
int tuid, i, fri_stat=0;
unsigned long int j;
userinfo_t *uentp;
static const char *money[10] =
- {"債台高築", "赤貧", "清寒", "普通", "小康",
- "小富", "中富", "大富翁", "富可敵國", "比爾蓋\天"},
- *sex[8] =
- {MSG_BIG_BOY, MSG_BIG_GIRL,
- MSG_LITTLE_BOY, MSG_LITTLE_GIRL,
- MSG_MAN, MSG_WOMAN, MSG_PLANT, MSG_MIME};
-
-
- if ((tuid = getuser(uident)))
- {
+ {"債台高築", "赤貧", "清寒", "普通", "小康",
+ "小富", "中富", "大富翁", "富可敵國", "比爾蓋\天"};
+ static const char *sex[8] =
+ {MSG_BIG_BOY, MSG_BIG_GIRL,
+ MSG_LITTLE_BOY, MSG_LITTLE_GIRL,
+ MSG_MAN, MSG_WOMAN, MSG_PLANT, MSG_MIME};
+
+ if ((tuid = getuser(uident))){
memcpy(&muser, &xuser, sizeof(muser));
move(1, 0);
clrtobot();
move(1, 0);
setutmpmode(TQUERY);
currutmp->destuid = tuid;
-
+
j = muser.money;
for (i = 0; i < 10 && j > 10; i++)
j /= 10;
@@ -429,23 +405,23 @@ int my_query(char *uident) {
prints("《上站次數》%d次", muser.numlogins);
move(2, 40);
prints("《文章篇數》%d篇\n", muser.numposts);
-
+
if((uentp = (userinfo_t *) search_ulist(tuid)))
- fri_stat=friend_stat(currutmp, uentp);
+ fri_stat=friend_stat(currutmp, uentp);
prints("\033[1;33m《目前動態》%-28.28s\033[m",
- (uentp && isvisible_stat(currutmp, uentp, fri_stat)) ?
+ (uentp && isvisible_stat(currutmp, uentp, fri_stat)) ?
modestring(uentp, 0) : "不在站上");
-
+
outs(((uentp && uentp->mailalert) || load_mailalert(muser.userid))
- ? "《私人信箱》有新進信件還沒看\n" :
- "《私人信箱》所有信件都看過了\n");
+ ? "《私人信箱》有新進信件還沒看\n" :
+ "《私人信箱》所有信件都看過了\n");
prints("《上次上站》%-28.28s《上次故鄉》%s\n",
Cdate(&muser.lastlogin),
(muser.lasthost[0] ? muser.lasthost : "(不詳)"));
if ((uentp && fri_stat&HFM) || HAS_PERM(PERM_SYSOP))
- prints("《 性 別 》%-28.28s《私有財產》%ld 銀兩\n",
- sex[muser.sex % 8],
- muser.money);
+ prints("《 性 別 》%-28.28s《私有財產》%ld 銀兩\n",
+ sex[muser.sex % 8],
+ muser.money);
prints("《五子棋戰績》%3d 勝 %3d 敗 %3d 和 "
"《象棋戰績》%3d 勝 %3d 敗 %3d 和",
muser.five_win, muser.five_lose, muser.five_tie,
@@ -607,7 +583,8 @@ void my_write2(void)
5. 丟水球 flag = 0
6. my_write2 flag = 4 (pre-edit) but confirm
*/
-int my_write(pid_t pid, char *prompt, char *id, int flag, userinfo_t *puin) {
+int my_write(pid_t pid, char *prompt, char *id, int flag, userinfo_t *puin)
+{
int len, currstat0 = currstat, fri_stat;
char msg[80], destid[IDLEN + 1];
char genbuf[200], buf[200], c0 = currutmp->chatid[0];
@@ -690,15 +667,14 @@ int my_write(pid_t pid, char *prompt, char *id, int flag, userinfo_t *puin) {
time(&now);
if(flag != 2) { /* aloha 的水球不用存下來 */
/* 存到自己的水球檔 */
- if(!fp_writelog)
- {
- sethomefile(genbuf, cuser.userid, fn_writelog);
- fp_writelog = fopen(genbuf, "a");
+ if(!fp_writelog){
+ sethomefile(genbuf, cuser.userid, fn_writelog);
+ fp_writelog = fopen(genbuf, "a");
}
if(fp_writelog) {
fprintf(fp_writelog, "To %s: %s [%s]\n",
uin->userid, msg, Cdatelite(&now));
- snprintf(t_last_write, 66, "To %s: %s", uin->userid, msg);
+ snprintf(t_last_write, 66, "To %s: %s", uin->userid, msg);
}
}
@@ -742,7 +718,9 @@ int my_write(pid_t pid, char *prompt, char *id, int flag, userinfo_t *puin) {
currstat = currstat0;
return 1;
}
-void t_display_new() {
+
+void t_display_new(void)
+{
static int t_display_new_flag=0;
int i, off=2;
if (t_display_new_flag)
@@ -816,83 +794,19 @@ void t_display_new() {
t_display_new_flag = 0;
}
-#if 0
-void t_display_new() {
- int i, which=water_which;
- char buf[200];
- if (t_display_new_flag)
- return;
- else
- t_display_new_flag = 1;
-
- if (oldmsg_count && watermode > 0)
- {
- move(1, 0);
- outs(
- "───────水─球─回─顧─────────"
- "用[Ctrl-R Ctrl-T]鍵切換─────");
- move(2, 0);
- prints(" |");
- for (i = 0; i<5 && water[i].pid != 0; i++)
- prints(" %s%13.13s \033[m|",which==i?"\033[1;33m":"",
- water[i].userid);
-
- for( i = 0 ; i < 5 &&
- water[which].msg[ (water[which].msgtop-i+4) % 5 ][0] != 0; ++i ){
- move(3 + i, 0);
- if (watermode - 1 != i)
- sprintf(buf, "\033[1;33;46m %s \033[37;45m %s \033[m",
- water[which].userid,
- water[which].msg[ (water[which].msgtop-i+4) % 5 ]);
- else
- sprintf(buf, "\033[1;44m>\033[1;33;47m%s \033[37;45m %s \033[m",
- water[which].userid,
- water[which].msg[ (water[which].msgtop-i+4) % 5 ]);
- }
- /*
- for (i = 0; i < oldmsg_count; i++)
- {
- int a = (water[water_which].top - i - 1 + MAX_REVIEW) % MAX_REVIEW;
-
- move(i + 3, 0);
- clrtoeol();
- if (watermode - 1 != i)
- sprintf(buf, "\033[1;33;46m %s \033[37;45m %s \033[m",
- oldmsg[a].userid, oldmsg[a].last_call_in);
- else
- sprintf(buf, "\033[1;44m>\033[1;33;47m%s "
- "\033[37;45m %s \033[m",
- oldmsg[a].userid, oldmsg[a].last_call_in);
- outs(buf);
- }
-*/
- if (t_last_write[0])
- {
- move(i + 3, 0);
- clrtoeol();
- outs(t_last_write);
- i++;
- }
- move(i + 3, 0);
- outs("───────────────────────"
- "─────────────────");
- }
- t_display_new_flag = 0;
-}
-#endif
-
-int t_display() {
+int t_display(void)
+{
char genbuf[200], ans[4];
- if(fp_writelog)
- { fclose(fp_writelog); fp_writelog=NULL;}
+ if(fp_writelog){
+ fclose(fp_writelog);
+ fp_writelog=NULL;
+ }
setuserfile(genbuf, fn_writelog);
- if (more(genbuf, YEA) != -1)
- {
+ if (more(genbuf, YEA) != -1){
getdata(b_lines - 1, 0, "清除(C) 移至備忘錄(M) 保留(R) (C/M/R)?[R]",
ans, 3, LCECHO);
- if (*ans == 'm')
- {
+ if (*ans == 'm'){
fileheader_t mymail;
char title[128], buf[80];
@@ -914,7 +828,8 @@ int t_display() {
return DONOTHING;
}
-static void do_talk_nextline(talkwin_t * twin) {
+static void do_talk_nextline(talkwin_t * twin)
+{
twin->curcol = 0;
if (twin->curln < twin->eline)
++(twin->curln);
@@ -923,14 +838,14 @@ static void do_talk_nextline(talkwin_t * twin) {
move(twin->curln, twin->curcol);
}
-static void do_talk_char(talkwin_t * twin, int ch) {
+static void do_talk_char(talkwin_t * twin, int ch)
+{
extern screenline_t *big_picture;
screenline_t *line;
int i;
char ch0, buf[81];
- if (isprint2(ch))
- {
+ if (isprint2(ch)){
ch0 = big_picture[twin->curln].data[twin->curcol];
if (big_picture[twin->curln].len < 79)
move(twin->curln, twin->curcol);
@@ -939,8 +854,7 @@ static void do_talk_char(talkwin_t * twin, int ch) {
outc(ch);
++(twin->curcol);
line = big_picture + twin->curln;
- if (twin->curcol < line->len)
- { /* insert */
+ if (twin->curcol < line->len){ /* insert */
++(line->len);
memcpy(buf, line->data + twin->curcol, 80);
save_cursor();
@@ -953,17 +867,15 @@ static void do_talk_char(talkwin_t * twin, int ch) {
line->data[line->len] = 0;
return;
}
-
- switch (ch)
- {
+
+ switch (ch){
case Ctrl('H'):
case '\177':
if (twin->curcol == 0)
return;
line = big_picture + twin->curln;
--(twin->curcol);
- if (twin->curcol < line->len)
- {
+ if (twin->curcol < line->len){
--(line->len);
save_cursor();
do_move(twin->curcol, twin->curln);
@@ -977,8 +889,7 @@ static void do_talk_char(talkwin_t * twin, int ch) {
return;
case Ctrl('D'):
line = big_picture + twin->curln;
- if (twin->curcol < line->len)
- {
+ if (twin->curcol < line->len){
--(line->len);
save_cursor();
do_move(twin->curcol, twin->curln);
@@ -993,15 +904,13 @@ static void do_talk_char(talkwin_t * twin, int ch) {
bell();
return;
case Ctrl('B'):
- if (twin->curcol > 0)
- {
+ if (twin->curcol > 0){
--(twin->curcol);
move(twin->curln, twin->curcol);
}
return;
case Ctrl('F'):
- if (twin->curcol < 79)
- {
+ if (twin->curcol < 79){
++(twin->curcol);
move(twin->curln, twin->curcol);
}
@@ -1039,8 +948,7 @@ static void do_talk_char(talkwin_t * twin, int ch) {
line = big_picture + twin->curln;
strncpy(buf, line->data, line->len);
buf[line->len] = 0;
- if (twin->curln > twin->sline)
- {
+ if (twin->curln > twin->sline){
--(twin->curln);
move(twin->curln, twin->curcol);
}
@@ -1049,8 +957,7 @@ static void do_talk_char(talkwin_t * twin, int ch) {
line = big_picture + twin->curln;
strncpy(buf, line->data, line->len);
buf[line->len] = 0;
- if (twin->curln < twin->eline)
- {
+ if (twin->curln < twin->eline){
++(twin->curln);
move(twin->curln, twin->curcol);
}
@@ -1065,7 +972,8 @@ static void do_talk_char(talkwin_t * twin, int ch) {
(ch == Ctrl('P')) ? "\033[37;45m(Up)\033[m" : "\033[m");
}
-static void do_talk(int fd) {
+static void do_talk(int fd)
+{
struct talkwin_t mywin, itswin;
char mid_line[128], data[200];
int i, datac, ch;
@@ -1095,8 +1003,7 @@ static void do_talk(int fd) {
i = ch - strlen(genbuf);
if (i >= 0)
i = (i >> 1) + 1;
- else
- {
+ else{
genbuf[ch] = '\0';
i = 1;
}
@@ -1121,21 +1028,17 @@ static void do_talk(int fd) {
add_io(fd, 0);
- while (1)
- {
+ while (1){
ch = igetkey();
- if (ch == I_OTHERDATA)
- {
+ if (ch == I_OTHERDATA){
datac = recv(fd, data, sizeof(data), 0);
if (datac <= 0)
break;
for (i = 0; i < datac; i++)
do_talk_char(&itswin, data[i]);
}
- else
- {
- if (ch == Ctrl('C'))
- {
+ else{
+ if (ch == Ctrl('C')){
if (im_leaving)
break;
move(b_lines, 0);
@@ -1144,14 +1047,12 @@ static void do_talk(int fd) {
im_leaving = 1;
continue;
}
- if (im_leaving)
- {
+ if (im_leaving){
move(b_lines, 0);
clrtoeol();
im_leaving = 0;
}
- switch (ch)
- {
+ switch (ch){
case KEY_LEFT: /* 把2byte的鍵改為一byte */
ch = Ctrl('B');
break;
@@ -1179,8 +1080,7 @@ static void do_talk(int fd) {
add_io(0, 0);
close(fd);
- if (flog)
- {
+ if (flog){
char ans[4];
extern screenline_t *big_picture;
extern unsigned char scr_lns;
@@ -1195,8 +1095,7 @@ static void do_talk(int fd) {
more(fpath, NA);
getdata(b_lines - 1, 0, "清除(C) 移至備忘錄(M). (C/M)?[C]",
ans, 4, LCECHO);
- if (*ans == 'm')
- {
+ if (*ans == 'm'){
fileheader_t mymail;
char title[128];
@@ -1235,45 +1134,31 @@ static void my_talk(userinfo_t * uin, int fri_stat) {
if (ch == EDITING || ch == TALK || ch == CHATING || ch == PAGE ||
ch == MAILALL || ch == MONITOR || ch == M_FIVE || ch == CHC ||
(!ch && (uin->chatid[0] == 1 || uin->chatid[0] == 3)) ||
- uin->lockmode == M_FIVE || uin->lockmode == CHC)
- {
+ uin->lockmode == M_FIVE || uin->lockmode == CHC){
outs("人家在忙啦");
}
else if (!HAS_PERM(PERM_SYSOP) &&
- (
- ((fri_stat& HRM) && !(fri_stat& HFM)) ||
- ((!uin->pager) && !(fri_stat & HFM))
- )
- )
- {
+ (((fri_stat& HRM) && !(fri_stat& HFM)) ||
+ ((!uin->pager) && !(fri_stat & HFM)) ) ){
outs("對方關掉呼叫器了");
}
else if (!HAS_PERM(PERM_SYSOP) &&
- (
- ((fri_stat & HRM) && !(fri_stat& HFM)) ||
- uin->pager == 2
- )
- )
- {
+ (((fri_stat & HRM) && !(fri_stat& HFM)) || uin->pager == 2 )) {
outs("對方拔掉呼叫器了");
}
else if (!HAS_PERM(PERM_SYSOP) &&
- !(fri_stat & HFM) && uin->pager == 4)
- {
+ !(fri_stat & HFM) && uin->pager == 4){
outs("對方只接受好友的呼叫");
}
- else if (!(pid = uin->pid) /*|| (kill(pid, 0) == -1) */ )
- {
-// resetutmpent();
+ else if (!(pid = uin->pid) /*|| (kill(pid, 0) == -1) */ ){
+ //resetutmpent();
outs(msg_usr_left);
}
- else
- {
+ else{
showplans(uin->userid);
getdata(2, 0, "要和他(她) (T)談天(F)下五子棋(P)鬥寵物"
"(C)下象棋(D)下暗棋(N)沒事找錯人了?[N] ", genbuf, 4, LCECHO);
- switch (*genbuf)
- {
+ switch (*genbuf){
case 'y':
case 't':
uin->sig = SIG_TALK;
@@ -1296,8 +1181,7 @@ static void my_talk(userinfo_t * uin, int fri_stat) {
error = 1;
if (!cuser.mychicken.name[0] || !xuser.mychicken.name[0])
error = 2;
- if (error)
- {
+ if (error){
outmsg(error == 2 ? "並非兩人都養寵物" :
"有一方的寵物正在使用中");
bell();
@@ -1317,8 +1201,7 @@ static void my_talk(userinfo_t * uin, int fri_stat) {
strcpy(currutmp->mateid, uin->userid);
sock = socket(AF_INET, SOCK_STREAM, 0);
- if (sock < 0)
- {
+ if (sock < 0){
perror("sock err");
unlockutmpmode();
return;
@@ -1326,16 +1209,14 @@ static void my_talk(userinfo_t * uin, int fri_stat) {
server.sin_family = PF_INET;
server.sin_addr.s_addr = INADDR_ANY;
server.sin_port = 0;
- if (bind(sock, (struct sockaddr *) &server, sizeof(server)) < 0)
- {
+ if (bind(sock, (struct sockaddr *) &server, sizeof(server)) < 0){
close(sock);
perror("bind err");
unlockutmpmode();
return;
}
length = sizeof(server);
- if (getsockname(sock, (struct sockaddr *) &server, &length) < 0)
- {
+ if (getsockname(sock, (struct sockaddr *) &server, &length) < 0){
close(sock);
perror("sock name err");
unlockutmpmode();
@@ -1352,15 +1233,12 @@ static void my_talk(userinfo_t * uin, int fri_stat) {
listen(sock, 1);
add_io(sock, 5);
- while (1)
- {
+ while (1){
ch = igetch();
- if (ch == I_TIMEOUT)
- {
+ if (ch == I_TIMEOUT){
ch = uin->mode;
if (!ch && uin->chatid[0] == 1 &&
- uin->destuip == currutmp - &utmpshm->uinfo[0])
- {
+ uin->destuip == currutmp - &utmpshm->uinfo[0]){
bell();
outmsg("對方回應中...");
refresh();
@@ -1369,8 +1247,7 @@ static void my_talk(userinfo_t * uin, int fri_stat) {
ch == PAGE || ch == MAILALL || ch == MONITOR ||
ch == M_FIVE || ch == CHC ||
(!ch && (uin->chatid[0] == 1 ||
- uin->chatid[0] == 3)))
- {
+ uin->chatid[0] == 3))){
add_io(0, 0);
close(sock);
currutmp->sockactive = currutmp->destuid = 0;
@@ -1379,8 +1256,7 @@ static void my_talk(userinfo_t * uin, int fri_stat) {
unlockutmpmode();
return;
}
- else
- {
+ else{
#ifdef linux
add_io(sock, 20); /* added for linux... achen */
#endif
@@ -1389,8 +1265,7 @@ static void my_talk(userinfo_t * uin, int fri_stat) {
bell();
uin->destuip = currutmp - &utmpshm->uinfo[0];
- if(pid <= 0 || kill(pid, SIGUSR1) == -1)
- {
+ if(pid <= 0 || kill(pid, SIGUSR1) == -1){
#ifdef linux
add_io(sock, 20); /* added 4 linux... achen */
#endif
@@ -1403,12 +1278,11 @@ static void my_talk(userinfo_t * uin, int fri_stat) {
continue;
}
}
-
+
if (ch == I_OTHERDATA)
break;
- if (ch == '\004')
- {
+ if (ch == '\004'){
add_io(0, 0);
close(sock);
currutmp->sockactive = currutmp->destuid = 0;
@@ -1418,8 +1292,7 @@ static void my_talk(userinfo_t * uin, int fri_stat) {
}
msgsock = accept(sock, (struct sockaddr *) 0, (int *) 0);
- if (msgsock == -1)
- {
+ if (msgsock == -1){
perror("accept");
unlockutmpmode();
return;
@@ -1429,13 +1302,11 @@ static void my_talk(userinfo_t * uin, int fri_stat) {
currutmp->sockactive = NA;
read(msgsock, &c, sizeof c);
- if (c == 'y')
- {
+ if (c == 'y'){
sprintf(save_page_requestor, "%s (%s)",
uin->userid, uin->username);
/* gomo */
- switch (uin->sig)
- {
+ switch (uin->sig){
case SIG_DARK:
main_dark(msgsock, uin);
break;
@@ -1453,12 +1324,10 @@ static void my_talk(userinfo_t * uin, int fri_stat) {
do_talk(msgsock);
}
}
- else
- {
+ else{
move(9, 9);
outs("【回音】 ");
- switch (c)
- {
+ switch (c){
case 'a':
outs("我現在很忙,請等一會兒再 call 我,好嗎?");
break;
@@ -1475,15 +1344,15 @@ static void my_talk(userinfo_t * uin, int fri_stat) {
outs("找我有事嗎?請先來信唷....");
break;
case 'f':
- {
- char msgbuf[60];
-
- read(msgsock, msgbuf, 60);
- prints("對不起,我現在不能跟你 %s,因為\n", sig_des[uin->sig]);
- move(10, 18);
- outs(msgbuf);
- }
- break;
+ {
+ char msgbuf[60];
+
+ read(msgsock, msgbuf, 60);
+ prints("對不起,我現在不能跟你 %s,因為\n", sig_des[uin->sig]);
+ move(10, 18);
+ outs(msgbuf);
+ }
+ break;
case '1':
prints("%s?先拿100銀兩來..", sig_des[uin->sig]);
break;
@@ -1524,8 +1393,7 @@ static void t_showhelp() {
"(p) 切換呼叫器 (g/i) 給錢/切換心情\n"
"(a/d/o) 好友 增加/刪除/修改 (/)(s) 網友ID/暱稱搜尋");
- if (HAS_PERM(PERM_PAGE))
- {
+ if (HAS_PERM(PERM_PAGE)){
outs("\n\n\033[36m【 交談專用鍵 】\033[m\n\n"
"(→)(t)(Enter) 跟他/她聊天\n"
"(w) 熱線 Call in\n"
@@ -1534,8 +1402,7 @@ static void t_showhelp() {
"(^R) 即時回應 (有人 Call in 你時)");
}
- if (HAS_PERM(PERM_SYSOP))
- {
+ if (HAS_PERM(PERM_SYSOP)){
outs("\n\n\033[36m【 站長專用鍵 】\033[m\n\n");
if (HAS_PERM(PERM_SYSOP))
outs("(u)/(H) 設定使用者資料/切換隱形模式\n");
@@ -1544,28 +1411,29 @@ static void t_showhelp() {
pressanykey();
}
-static int listcuent(userinfo_t * uentp) {
+static int listcuent(userinfo_t * uentp)
+{
if((!uentp->invisible || HAS_PERM(PERM_SYSOP) || HAS_PERM(PERM_SEECLOAK)))
AddNameList(uentp->userid);
return 0;
}
-static void creat_list() {
+static void creat_list()
+{
CreateNameList();
apply_ulist(listcuent);
}
-static int search_pickup(int num, int actor, pickup_t pklist[]) {
+static int search_pickup(int num, int actor, pickup_t pklist[])
+{
char genbuf[IDLEN + 2];
move(1, 0);
creat_list();
namecomplete(msg_uid, genbuf);
- if (genbuf[0])
- {
+ if (genbuf[0]){
int n = (num + 1) % actor;
- while (n != num)
- {
+ while (n != num){
if (!strcasecmp(pklist[n].ui->userid, genbuf))
return n;
if (++n >= actor)
@@ -1586,16 +1454,13 @@ static char *friend_descript(char *uident) {
setuserfile(fpath, friend_file[0]);
- if ((fp = fopen(fpath, "r")))
- {
+ if ((fp = fopen(fpath, "r"))){
sprintf(name, "%s ", uident);
len = strlen(name);
desc = genbuf + 13;
- while ((flag = (int) fgets(genbuf, STRLEN, fp)))
- {
- if (!memcmp(genbuf, name, len))
- {
+ while ((flag = (int) fgets(genbuf, STRLEN, fp))){
+ if (!memcmp(genbuf, name, len)){
if ((ptr = strchr(desc, '\n')))
ptr[0] = '\0';
if (desc)
@@ -1615,9 +1480,9 @@ static char *friend_descript(char *uident) {
}
static char *descript(int show_mode, userinfo_t * uentp, time_t diff,
- fromcache_t * fcache) {
- switch (show_mode)
- {
+ fromcache_t * fcache)
+{
+ switch (show_mode){
case 1:
return friend_descript(uentp->userid);
case 0:
@@ -1648,8 +1513,7 @@ static int pickup_user_cmp(time_t now, int sortedway, int cmp_fri,
{
int i, fri_stat, is_friend, count=0, diff;
userinfo_t *uentp;
- for (i=0;i<utmpshm->number;i++)
- {
+ for (i=0;i<utmpshm->number;i++){
uentp = (utmpshm->sorted[utmpshm->currsorted][sortedway][i]);
if (!uentp || !uentp->pid) continue;
fri_stat = friend_stat(currutmp, uentp);
@@ -1671,13 +1535,12 @@ static int pickup_user_cmp(time_t now, int sortedway, int cmp_fri,
#ifdef DOTIMEOUT
/* prevent fault /dev mount from kicking out users */
if ((diff > curr_idle_timeout + 10) &&
- (diff < 60 * 60 * 24 * 5))
- {
- if ((uentp->pid <= 0 || kill(uentp->pid, SIGHUP) == -1) &&
- (errno == ESRCH))
- purge_utmp(uentp);
- continue;
- }
+ (diff < 60 * 60 * 24 * 5)){
+ if ((uentp->pid <= 0 || kill(uentp->pid, SIGHUP) == -1) &&
+ (errno == ESRCH))
+ purge_utmp(uentp);
+ continue;
+ }
#endif
pklist[count].idle = diff;
#endif
@@ -1698,7 +1561,8 @@ static int cmputmpfriend(const void *i, const void *j)
(((pickup_t*)i)->friend&ST_FRIEND);
}
-static void pickup_user() {
+static void pickup_user(void)
+{
static int real_name = 0;
static int show_mode = 0;
static int show_uid = 0;
@@ -1750,11 +1614,9 @@ static void pickup_user() {
":D ", ":p ", ";) ", ":> ", ";> ", ":< ", ":)~", ":D~", ">< ",
"^^;", "^^|", "哭;", NULL};
- while (1)
- {
+ while (1) {
if (utmpshm->uptime > freshtime || state == US_PICKUP ||
- state ==US_RESORT)
- {
+ state ==US_RESORT){
state = US_PICKUP;
time(&freshtime);
ifh_number=hfm_number=irh_number=bfriends_number = actor = ch = 0;
@@ -1764,49 +1626,43 @@ static void pickup_user() {
sortedway=pickup_way-1;
//qsort(pklist,actor,sizeof(pickup_t),cmputmpfriend);
- if(pickup_way==0 || (cuser.uflag & FRIEND_FLAG))
- {
+ if(pickup_way==0 || (cuser.uflag & FRIEND_FLAG)){
actor=pickup_user_cmp(freshtime, sortedway, 1,
- pklist, &bfriends_number, &ifh_number, &hfm_number,
- NULL,keyword);
+ pklist, &bfriends_number, &ifh_number,
+ &hfm_number, NULL, keyword);
if(sortedway==0)
- qsort(pklist,actor,sizeof(pickup_t),cmputmpfriend);
+ qsort(pklist,actor,sizeof(pickup_t),cmputmpfriend);
if(!(cuser.uflag & FRIEND_FLAG))
- actor=pickup_user_cmp(freshtime, sortedway, -1,
- pklist+actor, NULL, NULL, NULL, &irh_number,
- keyword);
- }
- else
- {
+ actor=pickup_user_cmp(freshtime, sortedway, -1,
+ pklist+actor, NULL, NULL, NULL,
+ &irh_number, keyword);
+ }
+ else{
actor=pickup_user_cmp(freshtime, sortedway, 0,
- pklist, &bfriends_number, &ifh_number, &hfm_number,
- &irh_number, keyword);
- }
+ pklist, &bfriends_number, &ifh_number,
+ &hfm_number, &irh_number, keyword);
+ }
- if (!actor)
- {
- if(keyword[0])
- {
- mprints(b_lines-1,0,
- "搜尋不到任何人 !!");
- keyword[0]=0;
- pressanykey();
- continue;
+ if (!actor){
+ if(keyword[0]){
+ mprints(b_lines-1,0,
+ "搜尋不到任何人 !!");
+ keyword[0]=0;
+ pressanykey();
+ continue;
}
getdata(b_lines - 1, 0,
"你的朋友還沒上站,要看看一般網友嗎(Y/N)?[Y]",
genbuf, 4, LCECHO);
- if (genbuf[0] != 'n')
- {
+ if (genbuf[0] != 'n'){
cuser.uflag &= ~FRIEND_FLAG;
continue;
}
return;
}
}
- if (state >= US_ACTION)
- {
+ if (state >= US_ACTION){
showtitle((cuser.uflag & FRIEND_FLAG) ? "好友列表" : "休閒聊天",
BBSName);
prints(" 排序:[%s] 上站人數:%-4d\033[1;32m我的朋友:%-3d"
@@ -1823,18 +1679,15 @@ static void pickup_user() {
show_pid ? " PID" : "備註 發呆"
);
}
- else
- {
+ else{
move(3, 0);
clrtobot();
}
if (pid0)
- for (ch = 0; ch < actor; ch++)
- {
+ for (ch = 0; ch < actor; ch++){
if (pid0 == (pklist[ch].ui)->pid &&
id0 == 256 * pklist[ch].ui->userid[0] +
- pklist[ch].ui->userid[1])
- {
+ pklist[ch].ui->userid[1]){
num = ch;
}
}
@@ -1846,12 +1699,10 @@ static void pickup_user() {
foot = head + p_lines;
if (foot > actor)
foot = actor;
- for (ch = head; ch < foot; ch++)
- {
+ for (ch = head; ch < foot; ch++){
uentp = pklist[ch].ui;
- if (!uentp->pid)
- {
+ if (!uentp->pid){
prints("%5d < 離站中..>\n",ch);
continue;
}
@@ -1923,14 +1774,12 @@ static void pickup_user() {
"\033[31m(w)\033[30m水球 \033[31m(m)\033[30m寄信 \033[31m(h)"
"\033[30m線上輔助 \033[m");
state = 0;
- while (!state)
- {
+ while (!state){
ch = cursor_key(num + 3 - head, 0);
if (ch == KEY_RIGHT || ch == '\n' || ch == '\r')
ch = 't';
- switch (ch)
- {
+ switch (ch){
case KEY_LEFT:
case 'e':
case 'E':
@@ -1948,8 +1797,7 @@ static void pickup_user() {
case KEY_DOWN:
case 'n':
case 'j':
- if (++num < actor)
- {
+ if (++num < actor){
if (num >= foot)
state = US_REDRAW;
break;
@@ -1961,15 +1809,13 @@ static void pickup_user() {
state = US_REDRAW;
break;
case 'H':
- if (HAS_PERM(PERM_SYSOP))
- {
+ if (HAS_PERM(PERM_SYSOP)){
currutmp->userlevel ^= PERM_DENYPOST;
state = US_REDRAW;
}
break;
case 'D':
- if (HAS_PERM(PERM_SYSOP))
- {
+ if (HAS_PERM(PERM_SYSOP)){
char buf[100];
sprintf(buf, "代號 [%s]:", currutmp->userid);
@@ -1980,8 +1826,7 @@ static void pickup_user() {
}
break;
case 'F':
- if (HAS_PERM(PERM_SYSOP))
- {
+ if (HAS_PERM(PERM_SYSOP)){
char buf[100];
sprintf(buf, "故鄉 [%s]:", currutmp->from);
@@ -2002,8 +1847,7 @@ static void pickup_user() {
case ' ':
case KEY_PGDN:
case Ctrl('F'):
- if (foot < actor)
- {
+ if (foot < actor){
num += p_lines;
state = US_REDRAW;
break;
@@ -2014,10 +1858,8 @@ static void pickup_user() {
break;
case KEY_UP:
case 'k':
- if (--num < head)
- {
- if (num < 0)
- {
+ if (--num < head){
+ if (num < 0){
num = actor - 1;
if (actor == foot)
break;
@@ -2028,8 +1870,7 @@ static void pickup_user() {
case KEY_PGUP:
case Ctrl('B'):
case 'P':
- if (head)
- {
+ if (head){
num -= p_lines;
state = US_REDRAW;
break;
@@ -2099,8 +1940,7 @@ static void pickup_user() {
#endif
case 'b': /* broadcast */
- if (cuser.uflag & FRIEND_FLAG || HAS_PERM(PERM_SYSOP))
- {
+ if (cuser.uflag & FRIEND_FLAG || HAS_PERM(PERM_SYSOP)){
int actor_pos = actor;
char ans[4];
@@ -2110,8 +1950,7 @@ static void pickup_user() {
if (getdata(0, 0, "確定廣播? [Y]", ans, 4, LCECHO) &&
*ans == 'n')
break;
- while (actor_pos)
- {
+ while (actor_pos){
uentp = pklist[--actor_pos].ui;
fri_stat = pklist[actor_pos].friend;
if (uentp->pid &&
@@ -2174,8 +2013,7 @@ static void pickup_user() {
state = US_ACTION;
break;
case 'p':
- if (HAS_PERM(PERM_BASIC))
- {
+ if (HAS_PERM(PERM_BASIC)){
t_pager();
state = US_REDRAW;
}
@@ -2198,8 +2036,7 @@ static void pickup_user() {
}
}
- if (state != US_ACTION)
- {
+ if (state != US_ACTION){
pid0 = 0;
continue;
}
@@ -2210,46 +2047,38 @@ static void pickup_user() {
pid0 = uentp->pid;
id0 = 256 * uentp->userid[0] + uentp->userid[1];
- if (ch == 'w')
- {
+ if (ch == 'w'){
if ((uentp->pid != currpid) &&
(HAS_PERM(PERM_SYSOP) ||
(uentp->pager != 3 &&
- (fri_stat & HFM || uentp->pager != 4))))
- {
+ (fri_stat & HFM || uentp->pager != 4)))){
cursor_show(num + 3 - head, 0);
sprintf(genbuf, "Call-In %s :", uentp->userid);
my_write(uentp->pid, genbuf, uentp->userid, 0, NULL);
}
}
- else if (ch == 'l')
- { /* Thor: 看 Last call in */
+ else if (ch == 'l'){ /* Thor: 看 Last call in */
t_display();
}
- else
- {
- switch (ch)
- {
+ else{
+ switch (ch){
case 'r':
m_read();
break;
case 'g': /* give money */
move(b_lines - 2, 0);
- if (strcmp(uentp->userid, cuser.userid))
- {
+ if (strcmp(uentp->userid, cuser.userid)){
sprintf(genbuf, "要給 %s 多少錢呢? ", uentp->userid);
outs(genbuf);
if (getdata(b_lines - 1, 0, "[銀行轉帳]:", genbuf, 7,
- LCECHO))
- {
+ LCECHO)){
clrtoeol();
if ((ch = atoi(genbuf)) <= 0)
break;
reload_money();
if (ch > cuser.money)
outs("\033[41m 現金不足~~\033[m");
- else
- {
+ else{
deumoney(uentp->uid, ch);
sprintf(genbuf, "\033[44m 嗯..還剩下 %d 錢.."
"\033[m", demoney(-1*ch));
@@ -2261,8 +2090,7 @@ static void pickup_user() {
mail_redenvelop(cuser.userid, uentp->userid, ch, 'Y');
}
}
- else
- {
+ else{
clrtoeol();
outs("\033[41m 交易取消! \033[m");
}
@@ -2276,8 +2104,7 @@ static void pickup_user() {
case 'i':
move(3,0);
clrtobot();
- for (i = 1; Mind[i]!=NULL; i++)
- {
+ for (i = 1; Mind[i]!=NULL; i++){
move(5+(i-1)/7,((i-1)%7)*10);
prints("%2d: %s",i,Mind[i]);
}
@@ -2303,8 +2130,7 @@ static void pickup_user() {
state = US_PICKUP;
break;
case 'K':
- if (uentp->pid > 0 && kill(uentp->pid, 0) != -1)
- {
+ if (uentp->pid > 0 && kill(uentp->pid, 0) != -1){
move(1, 0);
clrtobot();
move(2, 0);
@@ -2324,16 +2150,14 @@ static void pickup_user() {
case 'c':
chicken_query(uentp->userid);
break;
- case 'u': /* Thor: 可線上查看及修改使用者 */
- {
+ case 'u':{ /* Thor: 可線上查看及修改使用者 */
int id;
userec_t muser;
-
+
strcpy(currauthor, uentp->userid);
stand_title("使用者設定");
move(1, 0);
- if ((id = getuser(uentp->userid)))
- {
+ if ((id = getuser(uentp->userid))){
memcpy(&muser, &xuser, sizeof(muser));
user_display(&muser, 1);
uinfo_query(&muser, 1, id);
@@ -2347,8 +2171,7 @@ static void pickup_user() {
case 't':
if (uentp->pid != currpid &&
- (strcmp(uentp->userid, cuser.userid)))
- {
+ (strcmp(uentp->userid, cuser.userid))){
move(1, 0);
clrtobot();
move(3, 0);
@@ -2362,7 +2185,8 @@ static void pickup_user() {
}
}
-int t_users() {
+int t_users(void)
+{
int destuid0 = currutmp->destuid;
int mode0 = currutmp->mode;
int stat0 = currstat;
@@ -2375,12 +2199,14 @@ int t_users() {
return 0;
}
-int t_pager() {
+int t_pager(void)
+{
currutmp->pager = (currutmp->pager + 1) % 5;
return 0;
}
-int t_idle() {
+int t_idle(void)
+{
int destuid0 = currutmp->destuid;
int mode0 = currutmp->mode;
int stat0 = currstat;
@@ -2390,8 +2216,7 @@ int t_idle() {
setutmpmode(IDLE);
getdata(b_lines - 1, 0, "理由:[0]發呆 (1)接電話 (2)覓食 (3)打瞌睡 "
"(4)裝死 (5)羅丹 (6)其他 (Q)沒事?", genbuf, 3, DOECHO);
- if (genbuf[0] == 'q' || genbuf[0] == 'Q')
- {
+ if (genbuf[0] == 'q' || genbuf[0] == 'Q'){
currutmp->mode = mode0;
currstat = stat0;
return 0;
@@ -2406,8 +2231,7 @@ int t_idle() {
!getdata(b_lines - 1, 0, "發呆的理由:", currutmp->chatid, 11,
DOECHO))
currutmp->destuid = 0;
- do
- {
+ do{
move(b_lines - 2, 0);
clrtoeol();
sprintf(buf, "(鎖定螢幕)發呆原因: %s", (currutmp->destuid != 6) ?
@@ -2427,7 +2251,8 @@ int t_idle() {
return 0;
}
-int t_qchicken() {
+int t_qchicken(void)
+{
char uident[STRLEN];
stand_title("查詢寵物");
@@ -2437,7 +2262,8 @@ int t_qchicken() {
return 0;
}
-int t_query() {
+int t_query(void)
+{
char uident[STRLEN];
stand_title("查詢網友");
@@ -2453,8 +2279,7 @@ int t_talk() {
userinfo_t *uentp;
char genbuf[4];
/*
- if (count_ulist() <= 1)
- {
+ if (count_ulist() <= 1){
outs("目前線上只有您一人,快邀請朋友來光臨【" BBSNAME "】吧!");
return XEASY;
}
@@ -2466,8 +2291,7 @@ int t_talk() {
return 0;
move(3, 0);
- if (!(tuid = searchuser(uident)) || tuid == usernum)
- {
+ if (!(tuid = searchuser(uident)) || tuid == usernum){
outs(err_uid);
pressanykey();
return 0;
@@ -2475,8 +2299,7 @@ int t_talk() {
/* multi-login check */
unum = 1;
- while ((ucount = count_logins(tuid, 0)) > 1)
- {
+ while ((ucount = count_logins(tuid, 0)) > 1){
outs("(0) 不想 talk 了...\n");
count_logins(tuid, 1);
getdata(1, 33, "請選擇一個聊天對象 [0]:", genbuf, 4, DOECHO);
@@ -2497,7 +2320,8 @@ int t_talk() {
/* 有人來串門子了,回應呼叫器 */
static userinfo_t *uip;
-void talkreply() {
+void talkreply(void)
+{
struct hostent *h;
char buf[4];
struct sockaddr_in sin;
@@ -2538,8 +2362,7 @@ void talkreply() {
page_requestor, sig_des[sig]);
getdata(0, 0, genbuf, buf, 4, LCECHO);
- if (uip->mode != PAGE)
- {
+ if (uip->mode != PAGE){
sprintf(genbuf, "%s已停止呼叫,按Enter繼續...", page_requestor);
getdata(0, 0, genbuf, buf, 4, LCECHO);
return;
@@ -2547,8 +2370,7 @@ void talkreply() {
currutmp->msgcount = 0;
strcpy(save_page_requestor, page_requestor);
memset(page_requestor, 0, sizeof(page_requestor));
- if (!(h = gethostbyname("localhost")))
- {
+ if (!(h = gethostbyname("localhost"))){
perror("gethostbyname");
return;
}
@@ -2557,24 +2379,21 @@ void talkreply() {
memcpy(&sin.sin_addr, h->h_addr, h->h_length);
sin.sin_port = uip->sockaddr;
a = socket(sin.sin_family, SOCK_STREAM, 0);
- if ((connect(a, (struct sockaddr *) &sin, sizeof(sin))))
- {
+ if ((connect(a, (struct sockaddr *) &sin, sizeof(sin)))){
perror("connect err");
return;
}
if (!buf[0] || !strchr("yabcdef12", buf[0]))
buf[0] = 'n';
write(a, buf, 1);
- if (buf[0] == 'f' || buf[0] == 'F')
- {
+ if (buf[0] == 'f' || buf[0] == 'F'){
if (!getdata(b_lines, 0, "不能的原因:", genbuf, 60, DOECHO))
strcpy(genbuf, "不告訴你咧 !! ^o^");
write(a, genbuf, 60);
}
uip->destuip = currutmp - &utmpshm->uinfo[0];
if (buf[0] == 'y')
- switch (sig)
- {
+ switch (sig){
case SIG_DARK:
main_dark(a, uip);
break;
@@ -2598,14 +2417,14 @@ void talkreply() {
/* 網友動態簡表 */
/* not used
-static int shortulist(userinfo_t * uentp) {
+static int shortulist(userinfo_t * uentp)
+{
static int lineno, fullactive, linecnt;
static int moreactive, page, num;
char uentry[50];
int state;
- if (!lineno)
- {
+ if (!lineno){
lineno = 3;
page = moreactive ? (page + p_lines * 3) : 0;
linecnt = num = moreactive = 0;
@@ -2614,8 +2433,7 @@ static int shortulist(userinfo_t * uentp) {
move(lineno, 0);
}
- if (uentp == NULL)
- {
+ if (uentp == NULL){
int finaltally;
clrtoeol();
@@ -2625,12 +2443,12 @@ static int shortulist(userinfo_t * uentp) {
lineno = fullactive = 0;
return finaltally;
}
+
if ((!HAS_PERM(PERM_SYSOP) &&
!HAS_PERM(PERM_SEECLOAK) &&
uentp->invisible) ||
((friend_stat(currutmp, uentp) & HRM) &&
- !HAS_PERM(PERM_SYSOP)))
- {
+ !HAS_PERM(PERM_SYSOP))){
if (lineno >= b_lines)
return 0;
if (num++ < page)
@@ -2638,11 +2456,9 @@ static int shortulist(userinfo_t * uentp) {
memset(uentry, ' ', 25);
uentry[25] = '\0';
}
- else
- {
+ else{
fullactive++;
- if (lineno >= b_lines)
- {
+ if (lineno >= b_lines){
moreactive = 1;
return 0;
}
@@ -2659,13 +2475,11 @@ static int shortulist(userinfo_t * uentp) {
uentp->userid, uentp->invisible ? '#' : ' ',
modestring(uentp, 1), state ? "\033[0m" : "");
}
- if (++linecnt < 3)
- {
+ if (++linecnt < 3){
strcat(uentry, "│");
outs(uentry);
}
- else
- {
+ else{
outs(uentry);
linecnt = 0;
clrtoeol();