summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mbbsd/bbs.c423
1 files changed, 213 insertions, 210 deletions
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c
index ad38e206..a4df61dc 100644
--- a/mbbsd/bbs.c
+++ b/mbbsd/bbs.c
@@ -30,7 +30,7 @@ mail_by_link(char *owner, char *title, char *path)
void
-anticrosspost()
+anticrosspost(void)
{
log_file("etc/illegal_money", LOG_CREAT | LOG_VF,
"\033[1;33;46m%s \033[37;45mcross post 文章 \033[37m %s\033[m\n",
@@ -47,7 +47,7 @@ anticrosspost()
/* Heat CharlieL */
int
-save_violatelaw()
+save_violatelaw(void)
{
char buf[128], ok[3];
@@ -105,7 +105,7 @@ save_violatelaw()
static time_t *board_note_time;
void
-set_board()
+set_board(void)
{
boardheader_t *bp;
@@ -129,7 +129,8 @@ set_board()
}
/* check post perm on demand, no double checks in current board */
-int CheckPostPerm(void)
+int
+CheckPostPerm(void)
{
if (!(currmode & MODE_POSTCHECKED)) {
currmode |= MODE_POSTCHECKED;
@@ -144,7 +145,7 @@ int CheckPostPerm(void)
}
static void
-readtitle()
+readtitle(void)
{
boardheader_t *bp;
char *brd_title;
@@ -158,7 +159,8 @@ readtitle()
showtitle(currBM, brd_title);
prints("[←]離開 [→]閱\讀 [^P]發表文章 [b]備忘錄 [d]刪除 [z]精華區 "
"[TAB]文摘 [h]elp\n\033[7m 編號 日 期 作 者 文 章 標 題"
- " 人氣:%-5d \033[m", SHM->bcache[currbid - 1].nuser);
+ " 人氣:%-5d \033[m",
+ SHM->bcache[currbid - 1].nuser);
}
static void
@@ -193,8 +195,8 @@ readdoent(int num, fileheader_t * ent)
else
color = '3', mark = "R:";
- if (title[45])
- strlcpy(title + 42, " …", sizeof(title) - 42); /* 把多餘的 string 砍掉 */
+ if (title[45]) /* 把多餘的 string 砍掉 */
+ strlcpy(title + 42, " …", sizeof(title) - 42);
if (!strncmp(title, "[公告]", 6))
special = 1;
@@ -316,7 +318,7 @@ do_select(int ent, fileheader_t * fhdr, char *direct)
/* 改良 innbbsd 轉出信件、連線砍信之處理程序 */
/* ----------------------------------------------------- */
void
-outgo_post(fileheader_t * fh, char *board)
+outgo_post(fileheader_t *fh, char *board)
{
FILE *foo;
@@ -328,7 +330,7 @@ outgo_post(fileheader_t * fh, char *board)
}
static void
-cancelpost(fileheader_t * fh, int by_BM, char *newpath)
+cancelpost(fileheader_t *fh, int by_BM, char *newpath)
{
FILE *fin, *fout;
char *ptr, *brd;
@@ -442,66 +444,72 @@ do_crosspost(char *brd, fileheader_t *postfile, const char *fpath)
static void
setupbidinfo(bid_t *bidinfo)
{
- char buf[256];
- bidinfo->enddate = gettime(20, now+86400,"結束標案於");
- do
- getdata_str(21,0,"底價:",buf, 8, LCECHO, "1");
- while((bidinfo->high=atoi(buf))<=0);
- do
- getdata_str(21,20, "每標至少增加多少:",buf, 5, LCECHO, "1");
- while((bidinfo->increment=atoi(buf))<=0);
- getdata(21,44, "直接購買價(可不設):",buf, 10, LCECHO);
- bidinfo->buyitnow=atoi(buf);
+ char buf[256];
+ bidinfo->enddate = gettime(20, now+86400,"結束標案於");
+ do{
+ getdata_str(21, 0, "底價:", buf, 8, LCECHO, "1");
+ } while( (bidinfo->high = atoi(buf)) <= 0 );
+ do{
+ getdata_str(21, 20, "每標至少增加多少:", buf, 5, LCECHO, "1");
+ } while( (bidinfo->increment = atoi(buf)) <= 0 );
+ getdata(21,44, "直接購買價(可不設):",buf, 10, LCECHO);
+ bidinfo->buyitnow = atoi(buf);
- getdata_str(22,0,
- "付款方式: 1.Ptt幣 2.郵局或銀行轉帳 3.支票或電匯 4.郵局貨到付款 [1]:",
- buf, 3, LCECHO,"1");
- bidinfo->payby=(buf[0]-'1');
- if(bidinfo->payby<0 ||bidinfo->payby>3)bidinfo->payby=0;
- getdata_str(23,0, "運費(0:免運費或文中說明)[0]:", buf, 6, LCECHO, "0");
- bidinfo->shipping = atoi(buf);
- if(bidinfo->shipping<0) bidinfo->shipping=0;
+ getdata_str(22,0,
+ "付款方式: 1.Ptt幣 2.郵局或銀行轉帳 3.支票或電匯 4.郵局貨到付款 [1]:",
+ buf, 3, LCECHO,"1");
+ bidinfo->payby = (buf[0] - '1');
+ if( bidinfo->payby < 0 || bidinfo->payby > 3)
+ bidinfo->payby = 0;
+ getdata_str(23, 0, "運費(0:免運費或文中說明)[0]:", buf, 6, LCECHO, "0");
+ bidinfo->shipping = atoi(buf);
+ if( bidinfo->shipping < 0 )
+ bidinfo->shipping = 0;
}
static void
print_bidinfo(FILE *io, bid_t bidinfo)
{
- char *payby[4]={ "Ptt幣","郵局或銀行轉帳","支票或電匯","郵局貨到付款"};
- if(io)
- {
- if(!bidinfo.userid[0])
- fprintf(io,"起標價: %-20d\n",bidinfo.high);
- else
- fprintf(io, "目前最高價:%-20d出價者:%-16s\n",bidinfo.high, bidinfo.userid);
- fprintf(io, "付款方式: %-20s結束於:%-16s\n",payby[bidinfo.payby%4],Cdate(& bidinfo.enddate));
- if(bidinfo.buyitnow)
- fprintf(io, "直接購買價:%-20d",bidinfo.buyitnow);
- if(bidinfo.shipping)
- fprintf(io, "運費:%d", bidinfo.shipping);
- fprintf(io, "\n");
- }
- else
- {
- if(!bidinfo.userid[0])
- prints("起標價: %-20d\n",bidinfo.high);
- else
- prints("目前最高價:%-20d出價者:%-16s\n",bidinfo.high, bidinfo.userid);
- prints("付款方式: %-20s結束於:%-16s\n",payby[bidinfo.payby%4],Cdate(& bidinfo.enddate));
- if(bidinfo.buyitnow)
- prints("直接購買價:%-20d",bidinfo.buyitnow);
- if(bidinfo.shipping)
- prints("運費:%d", bidinfo.shipping);
- outc('\n');
+ char *payby[4]={"Ptt幣", "郵局或銀行轉帳", "支票或電匯", "郵局貨到付款"};
+ if(io){
+ if( !bidinfo.userid[0] )
+ fprintf(io, "起標價: %-20d\n", bidinfo.high);
+ else
+ fprintf(io, "目前最高價:%-20d出價者:%-16s\n",
+ bidinfo.high, bidinfo.userid);
+ fprintf(io, "付款方式: %-20s結束於:%-16s\n",
+ payby[bidinfo.payby % 4], Cdate(& bidinfo.enddate));
+ if(bidinfo.buyitnow)
+ fprintf(io, "直接購買價:%-20d", bidinfo.buyitnow);
+ if(bidinfo.shipping)
+ fprintf(io, "運費:%d", bidinfo.shipping);
+ fprintf(io, "\n");
+ }
+ else{
+ if(!bidinfo.userid[0])
+ prints("起標價: %-20d\n", bidinfo.high);
+ else
+ prints("目前最高價:%-20d出價者:%-16s\n",
+ bidinfo.high, bidinfo.userid);
+ prints("付款方式: %-20s結束於:%-16s\n",
+ payby[bidinfo.payby % 4], Cdate(& bidinfo.enddate));
+ if(bidinfo.buyitnow)
+ prints("直接購買價:%-20d", bidinfo.buyitnow);
+ if(bidinfo.shipping)
+ prints("運費:%d", bidinfo.shipping);
+ outc('\n');
}
-
}
+
static int
do_general(int isbid)
{
- bid_t bidinfo;
+ bid_t bidinfo;
fileheader_t postfile;
char fpath[80], buf[80];
int aborted, defanony, ifuseanony, i;
- char genbuf[200], *owner, ctype[8][5] = {"問題", "建議", "討論", "心得", "閒聊", "請益", "公告", "情報"};
+ char genbuf[200], *owner;
+ char ctype[8][5] = {"問題", "建議", "討論", "心得",
+ "閒聊", "請益", "公告", "情報"};
boardheader_t *bp;
int islocal, posttype=-1;
@@ -509,10 +517,10 @@ do_general(int isbid)
bp = getbcache(currbid);
clear();
- if (!CheckPostPerm()
+ if( !CheckPostPerm()
#ifdef FOREIGN_REG
- // 不是外籍使用者在 PttForeign 板
- && !((cuser.uflag2 & FOREIGN) && strcmp(bp->brdname, "PttForeign") == 0)
+ // 不是外籍使用者在 PttForeign 板
+ && !((cuser.uflag2 & FOREIGN) && strcmp(bp->brdname, "PttForeign") == 0)
#endif
) {
vmsg("對不起,您目前無法在此發表文章!");
@@ -722,7 +730,7 @@ do_general(int isbid)
}
int
-do_post()
+do_post(void)
{
boardheader_t *bp;
bp = getbcache(currbid);
@@ -734,13 +742,13 @@ do_post()
}
int
-do_post_vote()
+do_post_vote(void)
{
return do_voteboard(1);
}
int
-do_post_openbid()
+do_post_openbid(void)
{
boardheader_t *bp;
bp = getbcache(currbid);
@@ -815,27 +823,26 @@ b_posttype(int ent, fileheader_t * fhdr, char *direct)
move(2,0);
clrtobot();
- posttype_f = bp->posttype_f;
- for(i=0; i<8; i++)
- {
+ posttype_f = bp->posttype_f;
+ for( i = 0 ; i < 8 ; ++i ){
move(2,0);
outs("文章種類: ");
- strncpy(genbuf, bp->posttype+i*4, 4);
- genbuf[4]=0;
- sprintf(title,"%d.",i+1);
- if(!getdata_buf(2,11, title, genbuf, 5, DOECHO)) break;
- sprintf(posttype+i*4,"%-4.4s", genbuf);
- if( posttype_f & (1<<i) )
- {
- if(getdata(2, 20, "設定範本格式?(Y/n)", genbuf, 3, LCECHO) &&
- genbuf[0]=='n')
- {
- posttype_f &= ~(1<<i);
- continue;
- }
- }
- else if (!getdata(2, 20, "設定範本格式?(y/N)", genbuf, 3, LCECHO) ||
- genbuf[0]!='y') continue;
+ strncpy(genbuf, bp->posttype + i * 4, 4);
+ genbuf[4] = 0;
+ sprintf(title, "%d.", i + 1);
+ if( !getdata_buf(2, 11, title, genbuf, 5, DOECHO) )
+ break;
+ sprintf(posttype + i * 4, "%-4.4s", genbuf);
+ if( posttype_f & (1<<i) ){
+ if( getdata(2, 20, "設定範本格式?(Y/n)", genbuf, 3, LCECHO) &&
+ genbuf[0]=='n' ){
+ posttype_f &= ~(1<<i);
+ continue;
+ }
+ }
+ else if ( !getdata(2, 20, "設定範本格式?(y/N)", genbuf, 3, LCECHO) ||
+ genbuf[0] != 'y' )
+ continue;
setbnfile(filepath, bp->brdname, "postsample", i);
aborted = vedit(filepath, NA, NULL);
@@ -843,9 +850,9 @@ b_posttype(int ent, fileheader_t * fhdr, char *direct)
clear();
posttype_f &= ~(1<<i);
continue;
- }
+ }
posttype_f |= (1<<i);
- }
+ }
bp->posttype_f = posttype_f;
strncpy(bp->posttype, posttype, 32); /* 這邊應該要防race condition */
@@ -887,7 +894,8 @@ edit_post(int ent, fileheader_t * fhdr, char *direct)
if (fhdr->filemode&FILE_BOTTOM && strcmp(bp->brdname, "Security") == 0)
return DONOTHING;
- if (!HAS_PERM(PERM_SYSOP) && ((bp->brdattr & BRD_VOTEBOARD) || fhdr->filemode & FILE_VOTE))
+ if (!HAS_PERM(PERM_SYSOP) &&
+ ((bp->brdattr & BRD_VOTEBOARD) || fhdr->filemode & FILE_VOTE))
return DONOTHING;
if( !HAS_PERM(PERM_SYSOP) &&
@@ -912,11 +920,11 @@ edit_post(int ent, fileheader_t * fhdr, char *direct)
if (vedit(fpath, 0, NULL) != -1) {
Rename(fpath, genbuf);
- if(strcmp(save_title, fhdr->title)) // Ptt: here is the black hole problem
- {
- strcpy(fhdr->title, save_title);
- substitute_ref_record(direct, fhdr, ent);
- }
+ if(strcmp(save_title, fhdr->title)){
+ // Ptt: here is the black hole problem
+ strcpy(fhdr->title, save_title);
+ substitute_ref_record(direct, fhdr, ent);
+ }
}
return FULLUPDATE;
}
@@ -926,13 +934,13 @@ edit_post(int ent, fileheader_t * fhdr, char *direct)
static int
cross_post(int ent, fileheader_t * fhdr, char *direct)
{
- char xboard[20], fname[80], xfpath[80], xtitle[80], inputbuf[10];
+ char xboard[20], fname[80], xfpath[80], xtitle[80];
+ char inputbuf[10], genbuf[200], genbuf2[4];
fileheader_t xfile;
FILE *xptr;
int author = 0;
- char genbuf[200];
- char genbuf2[4];
boardheader_t *bp;
+
if (!CheckPostPerm()) {
move(5, 10);
outs("對不起,您目前無法轉錄文章!");
@@ -1032,6 +1040,7 @@ cross_post(int ent, fileheader_t * fhdr, char *direct)
}
return FULLUPDATE;
}
+
static int
read_post(int ent, fileheader_t * fhdr, char *direct)
{
@@ -1049,32 +1058,29 @@ read_post(int ent, fileheader_t * fhdr, char *direct)
brc_addlist(fhdr->filename);
strncpy(currtitle, subject(fhdr->title), TTLEN);
- if (more_result)
- {
- if(more_result == 999)
- {
- if (CheckPostPerm()) {
- strlcpy(quote_file, genbuf, sizeof(quote_file));
- do_reply(fhdr);
- *quote_file = 0;
- }
- return FULLUPDATE;
- }
- if(more_result == 998)
- {
+ if (more_result) {
+ if(more_result == 999) {
+ if (CheckPostPerm()) {
+ strlcpy(quote_file, genbuf, sizeof(quote_file));
+ do_reply(fhdr);
+ *quote_file = 0;
+ }
+ return FULLUPDATE;
+ }
+ if(more_result == 998) {
recommend(ent, fhdr, direct);
return FULLUPDATE;
- }
+ }
else return more_result;
- }
-return FULLUPDATE;
+ }
+ return FULLUPDATE;
}
/* ----------------------------------------------------- */
/* 採集精華區 */
/* ----------------------------------------------------- */
static int
-b_man()
+b_man(void)
{
char buf[64];
@@ -1196,7 +1202,7 @@ hold_gamble(int ent, fileheader_t * fhdr, char *direct)
);
strcat(msg, genbuf);
outs("請依次輸入彩票名稱, 需提供2~8項. (未滿八項, 輸入直接按enter)\n");
- for (i = 0; i < 8; i++) {
+ for( i = 0 ; i < 8 ; ++i ){
snprintf(yn, sizeof(yn), " %d)", i + 1);
getdata(7 + i, 0, yn, genbuf, 9, DOECHO);
if (!genbuf[0] && i > 1)
@@ -1302,11 +1308,13 @@ recommend_cancel(int ent, fileheader_t * fhdr, char *direct)
substitute_ref_record(direct, fhdr, ent);
return FULLUPDATE;
}
+
static int
-do_add_recommend(char *direct, fileheader_t *fhdr, int ent, char *buf, int type)
+do_add_recommend(char *direct, fileheader_t *fhdr,
+ int ent, char *buf, int type)
{
char path[256];
- int update=0;
+ int update = 0;
/*
race here:
為了減少 system calls , 現在直接用當前的推文數 +1 寫入 .DIR 中.
@@ -1335,43 +1343,43 @@ do_add_recommend(char *direct, fileheader_t *fhdr, int ent, char *buf, int type)
if( (fd = open(direct, O_RDWR)) < 0 )
return -1;
if( lseek(fd, (off_t)(sizeof(fileheader_t) * (ent - 1) +
- (int)&fhdr->recommend - (int)fhdr), SEEK_SET) >= 0)
+ (int)&fhdr->recommend - (int)fhdr),
+ SEEK_SET) >= 0 ){
// 如果 lseek 失敗就不會 write
- {
read(fd, &fhdr->recommend, sizeof(char));
fhdr->recommend += update;
lseek(fd, -1, SEEK_CUR);
write(fd, &fhdr->recommend, sizeof(char));
- }
-
+ }
close(fd);
}
return 0;
}
+
static int
-do_bid(int ent, fileheader_t * fhdr, boardheader_t *bp, char *direct, struct tm *ptime)
+do_bid(int ent, fileheader_t * fhdr, boardheader_t *bp,
+ char *direct, struct tm *ptime)
{
char genbuf[200], fpath[256],say[30],*money;
bid_t bidinfo;
- int mymax, next;
+ int mymax, next;
setdirpath(fpath, direct, fhdr->filename);
- strcat(fpath,".bid");
+ strcat(fpath, ".bid");
get_record(fpath, &bidinfo, sizeof(bidinfo), 1);
- move(18,0); clrtobot();
+ move(18,0);
+ clrtobot();
prints("競標主題: %s\n", fhdr->title);
print_bidinfo(0, bidinfo);
- if(!bidinfo.payby) money="Ptt$ "; else money=" NT$ ";
- if(now>bidinfo.enddate || bidinfo.high==bidinfo.buyitnow)
- {
+ money = bidinfo.payby ? " NT$ " : "Ptt$ ";
+ if( now > bidinfo.enddate || bidinfo.high == bidinfo.buyitnow ){
outs("此競標已經結束,");
- if( bidinfo.userid[0]) {
+ if( bidinfo.userid[0] ) {
/*if(!payby && bidinfo.usermax!=-1)
{以Ptt幣自動扣款
}*/
- prints("恭喜 %s 以 %d 得標!", bidinfo.userid,
- bidinfo.high);
+ prints("恭喜 %s 以 %d 得標!", bidinfo.userid, bidinfo.high);
#ifdef ASSESS
if (!(bidinfo.flag & SALE_COMMENTED) && strcmp(bidinfo.userid, currutmp->userid) == 0){
char tmp = getans("您對於這次交易的評價如何? 1:佳 2:欠佳 3:普通[Q]");
@@ -1395,95 +1403,89 @@ do_bid(int ent, fileheader_t * fhdr, boardheader_t *bp, char *direct, struct t
pressanykey();
return FULLUPDATE;
}
- if(bidinfo.userid[0])
- {
+
+ if( bidinfo.userid[0] ){
prints("下次出價至少要:%s%d", money,bidinfo.high + bidinfo.increment);
- if(bidinfo.buyitnow)
+ if( bidinfo.buyitnow )
prints(" (輸入 %d 等於以直接購買結束)",bidinfo.buyitnow);
- next=bidinfo.high + bidinfo.increment;
+ next = bidinfo.high + bidinfo.increment;
}
- else
- {
+ else{
prints("起標價: %d", bidinfo.high);
next=bidinfo.high;
}
- if(!strcmp(cuser.userid,bidinfo.userid))
- {
+ if( !strcmp(cuser.userid,bidinfo.userid) ){
outs("你是最高得標者!");
pressanykey();
return FULLUPDATE;
}
- if (strcmp(cuser.userid, fhdr->owner) == 0){
+ if( strcmp(cuser.userid, fhdr->owner) == 0 ){
vmsg("警告! 本人不能出價!");
return FULLUPDATE;
}
- getdata_str(23,0,"是否要下標? (y/N)", genbuf, 3, LCECHO,"n");
- if(genbuf[0]!='y') return FULLUPDATE;
+ getdata_str(23, 0, "是否要下標? (y/N)", genbuf, 3, LCECHO,"n");
+ if( genbuf[0] != 'y' )
+ return FULLUPDATE;
getdata(23, 0, "您的最高下標金額(0:取消):", genbuf, 10, LCECHO);
-
- mymax=atoi(genbuf);
+ mymax = atoi(genbuf);
getdata(23,0,"下標感言:",say,12,DOECHO);
-
get_record(fpath, &bidinfo, sizeof(bidinfo), 1);
- if(bidinfo.buyitnow && mymax>bidinfo.buyitnow)
- mymax=bidinfo.buyitnow;
- else if(!bidinfo.userid[0])
- next=bidinfo.high;
+ if( bidinfo.buyitnow && mymax > bidinfo.buyitnow )
+ mymax = bidinfo.buyitnow;
+ else if( !bidinfo.userid[0] )
+ next = bidinfo.high;
else
- next=bidinfo.high + bidinfo.increment;
+ next = bidinfo.high + bidinfo.increment;
- if(mymax< next || (bidinfo.payby==0 && cuser.money<mymax ))
- {
+ if( mymax< next || (bidinfo.payby == 0 && cuser.money < mymax) ){
vmsg("取消下標或標金不足搶標");
return FULLUPDATE;
}
snprintf(genbuf, sizeof(genbuf),
- "\033[1;31m→ \033[33m%s\033[m\033[33m:%s\033[m%*s %s%-15d標%15s %02d/%02d\n",
+ "\033[1;31m→ \033[33m%s\033[m\033[33m:%s\033[m%*s %s%-15d標%15s %02d/%02d\n",
cuser.userid,say,
31 - strlen(cuser.userid) - strlen(say), " ",
money,
next, fromhost,
ptime->tm_mon + 1, ptime->tm_mday);
do_add_recommend(direct, fhdr, ent, genbuf, 0);
- if(next > bidinfo.usermax)
- {
- bidinfo.usermax=mymax;
- bidinfo.high=next;
- strcpy(bidinfo.userid,cuser.userid);
- }
- else if(mymax>bidinfo.usermax)
- {
- bidinfo.high=bidinfo.usermax+bidinfo.increment;
- if(bidinfo.high>mymax) bidinfo.high=mymax;
- bidinfo.usermax=mymax;
- strcpy(bidinfo.userid,cuser.userid);
+ if( next > bidinfo.usermax ){
+ bidinfo.usermax = mymax;
+ bidinfo.high = next;
+ strcpy(bidinfo.userid, cuser.userid);
+ }
+ else if( mymax > bidinfo.usermax ) {
+ bidinfo.high = bidinfo.usermax + bidinfo.increment;
+ if( bidinfo.high > mymax )
+ bidinfo.high = mymax;
+ bidinfo.usermax = mymax;
+ strcpy(bidinfo.userid, cuser.userid);
snprintf(genbuf, sizeof(genbuf),
-"\033[1;31m→ \033[33m自動競標%s勝出\033[m\033[33m\033[m%*s%s%-15d標 %02d/%02d\n",
- cuser.userid,
- 20 - strlen(cuser.userid) , " ",money,
- bidinfo.high,
- ptime->tm_mon + 1, ptime->tm_mday);
+ "\033[1;31m→ \033[33m自動競標%s勝出\033[m\033[33m\033[m%*s%s%-15d標 %02d/%02d\n",
+ cuser.userid,
+ 20 - strlen(cuser.userid) , " ",money,
+ bidinfo.high,
+ ptime->tm_mon + 1, ptime->tm_mday);
do_add_recommend(direct, fhdr, ent, genbuf, 0);
}
- else
- {
- if(mymax+bidinfo.increment<bidinfo.usermax)
- bidinfo.high=mymax+bidinfo.increment;
+ else {
+ if( mymax + bidinfo.increment < bidinfo.usermax )
+ bidinfo.high = mymax + bidinfo.increment;
else
- bidinfo.high=bidinfo.usermax; /*這邊怪怪的*/
+ bidinfo.high=bidinfo.usermax; /*這邊怪怪的*/
snprintf(genbuf, sizeof(genbuf),
-"\033[1;31m→ \033[33m自動競標%s勝出\033[m\033[33m\033[m%*s%s%-15d標 %02d/%02d\n",
- bidinfo.userid,
- 20 - strlen(bidinfo.userid) , " ", money,
- bidinfo.high,
- ptime->tm_mon + 1, ptime->tm_mday);
- do_add_recommend(direct, fhdr, ent, genbuf, 0);
+ "\033[1;31m→ \033[33m自動競標%s勝出\033[m\033[33m\033[m%*s%s%-15d標 %02d/%02d\n",
+ bidinfo.userid,
+ 20 - strlen(bidinfo.userid) , " ", money,
+ bidinfo.high,
+ ptime->tm_mon + 1, ptime->tm_mday);
+ do_add_recommend(direct, fhdr, ent, genbuf, 0);
}
substitute_record(fpath, &bidinfo, sizeof(bidinfo), 1);
vmsg("恭喜您! 以最高價搶標完成!");
@@ -1532,17 +1534,19 @@ recommend(int ent, fileheader_t * fhdr, char *direct)
if (fhdr->recommend == 0 && strcmp(cuser.userid, fhdr->owner) == 0){
mouts(b_lines-1, 0, "本人推薦或噓第一次, 改以 → 加註方式");
type = 2;
- }
+ }
#ifndef DEBUG
if (!(currmode & MODE_BOARD)&& now - lastrecommend < 90) {
mouts(b_lines-1, 0,"推薦時間太近, 改以 → 加註方式");
type = 2;
}
#endif
- if(type > 2 || type < 0) type = 0;
+ if(type > 2 || type < 0)
+ type = 0;
- if (!getdata(b_lines - 2, 0, "要說的話:", path, 40, DOECHO) ||
- path == NULL || getans("確定要\033[%s\033[m嗎? 請仔細考慮(Y/N)?[n]", ctype[type])!='y')
+ if( !getdata(b_lines - 2, 0, "要說的話:", path, 40, DOECHO) ||
+ path == NULL ||
+ getans("確定要\033[%s\033[m嗎? 請仔細考慮(Y/N)?[n]", ctype[type]) != 'y')
return FULLUPDATE;
#ifdef OLDRECOMMEND
@@ -1688,7 +1692,7 @@ del_post(int ent, fileheader_t * fhdr, char *direct)
if (currmode & MODE_SELECT) {
vmsg("請回到一般模式再刪除文章");
return DONOTHING;
- }
+ }
getdata(1, 0, msg_del_ny, genbuf, 3, LCECHO);
if (genbuf[0] == 'y') {
if(
@@ -1990,7 +1994,8 @@ b_post_note()
setbfile(buf, currboard, FN_POST_NOTE);
if (more(buf, NA) == -1)
more("etc/" FN_POST_NOTE, NA);
- getdata(b_lines - 2, 0, "是否要用自訂post注意事項?", yn, sizeof(yn), LCECHO);
+ getdata(b_lines - 2, 0, "是否要用自訂post注意事項?",
+ yn, sizeof(yn), LCECHO);
if (yn[0] == 'y')
vedit(buf, NA, NULL);
else
@@ -2000,7 +2005,8 @@ b_post_note()
setbfile(buf, currboard, FN_POST_BID);
if (more(buf, NA) == -1)
more("etc/" FN_POST_BID, NA);
- getdata(b_lines - 2, 0, "是否要用自訂競標文章注意事項?", yn, sizeof(yn), LCECHO);
+ getdata(b_lines - 2, 0, "是否要用自訂競標文章注意事項?",
+ yn, sizeof(yn), LCECHO);
if (yn[0] == 'y')
vedit(buf, NA, NULL);
else
@@ -2013,7 +2019,7 @@ b_post_note()
static int
-can_vote_edit()
+can_vote_edit(void)
{
if (currmode & MODE_BOARD) {
friend_edit(FRIEND_CANVOTE);
@@ -2023,7 +2029,7 @@ can_vote_edit()
}
static int
-bh_title_edit()
+bh_title_edit(void)
{
boardheader_t *bp;
@@ -2048,7 +2054,7 @@ bh_title_edit()
}
static int
-b_notes()
+b_notes(void)
{
char buf[64];
@@ -2063,7 +2069,7 @@ b_notes()
}
int
-board_select()
+board_select(void)
{
char fpath[80];
char genbuf[100];
@@ -2080,7 +2086,7 @@ board_select()
}
int
-board_digest()
+board_digest(void)
{
if (currmode & MODE_SELECT)
board_select();
@@ -2096,7 +2102,7 @@ board_digest()
static int
-push_bottom(int ent, fileheader_t * fhdr, char *direct)
+push_bottom(int ent, fileheader_t *fhdr, char *direct)
{
int num;
char buf[256];
@@ -2104,26 +2110,23 @@ push_bottom(int ent, fileheader_t * fhdr, char *direct)
return DONOTHING;
setbottomtotal(currbid); // <- Ptt : will be remove when stable
num = getbottomtotal(currbid);
- if(getans(fhdr->filemode & FILE_BOTTOM ?
- "取消置底公告?(y/N)":
- "加入置底公告?(y/N)")!='y') return READ_REDRAW;
+ if( getans(fhdr->filemode & FILE_BOTTOM ?
+ "取消置底公告?(y/N)":
+ "加入置底公告?(y/N)") != 'y' )
+ return READ_REDRAW;
fhdr->filemode ^= FILE_BOTTOM;
- if(fhdr->filemode & FILE_BOTTOM )
- {
+ if(fhdr->filemode & FILE_BOTTOM ){
sprintf(buf, "%s.bottom", direct);
- if(num >= 5)
- {
+ if(num >= 5){
vmsg("不得超過 5 篇重要公告 請精簡!");
return READ_REDRAW;
- }
+ }
fhdr->money = ent | FHR_REFERENCE;
append_record(buf, fhdr, sizeof(fileheader_t));
-
- }
- else
- {
- num = delete_record(direct, sizeof(fileheader_t), ent);
- }
+ }
+ else{
+ num = delete_record(direct, sizeof(fileheader_t), ent);
+ }
setbottomtotal(currbid);
return DIRCHANGED;
}
@@ -2228,7 +2231,7 @@ static char * const board_help[] = {
};
static int
-b_help()
+b_help(void)
{
show_help(board_help);
return FULLUPDATE;
@@ -2423,7 +2426,7 @@ const onekey_t read_comms[] = {
};
int
-Read()
+Read(void)
{
int mode0 = currutmp->mode;
int stat0 = currstat, tmpbid = currutmp->brc_id;
@@ -2432,7 +2435,7 @@ Read()
time_t usetime = now;
#endif
- if ( ! currboard[0] )
+ if ( !currboard[0] )
brc_initial_board(DEFAULT_BOARD);
setutmpmode(READING);
@@ -2462,7 +2465,7 @@ Read()
}
void
-ReadSelect()
+ReadSelect(void)
{
int mode0 = currutmp->mode;
int stat0 = currstat;
@@ -2489,18 +2492,18 @@ log_board(char *mode, time_t usetime)
#endif
int
-Select()
+Select(void)
{
char genbuf[200];
do_select(0, NULL, genbuf);
return 0;
}
+
#ifdef HAVEMOBILE
void
mobile_message(char *mobile, char *message)
{
bsmtp(char *fpath, char *title, char *rcpt, int method);
}
-
#endif