summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mbbsd/bbs.c10
-rw-r--r--mbbsd/vote.c6
-rw-r--r--util/cleanpasswd.c4
3 files changed, 16 insertions, 4 deletions
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c
index 4f399c51..4806e092 100644
--- a/mbbsd/bbs.c
+++ b/mbbsd/bbs.c
@@ -870,7 +870,7 @@ edit_post(int ent, fileheader_t * fhdr, char *direct)
return DONOTHING;
if ((!HAS_PERM(PERM_SYSOP)) &&
- strcmp(fhdr->owner, cuser.userid))
+ !(currmode & MODE_POST) && strcmp(fhdr->owner, cuser.userid))
return DONOTHING;
if( currmode & MODE_SELECT )
@@ -942,6 +942,12 @@ cross_post(int ent, fileheader_t * fhdr, char *direct)
char genbuf[200];
char genbuf2[4];
boardheader_t *bp;
+ if (!(currmode & MODE_POST)) {
+ move(5, 10);
+ outs("對不起,您目前無法轉錄文章!");
+ pressanykey();
+ return FULLUPDATE;
+ }
move(2, 0);
clrtoeol();
move(3, 0);
@@ -1268,7 +1274,7 @@ hold_gamble(int ent, fileheader_t * fhdr, char *direct)
}
move(6, 0);
snprintf(genbuf, sizeof(genbuf),
- "請到 %s 板 按'f'參與賭博!\n\n一張 %d Ptt幣, 這是%s的賭博\n%s%s",
+ "請到 %s 板 按'f'參與賭博!\n\n一張 %d Ptt幣, 這是%s的賭博\n%s%s\n",
currboard,
i, i < 100 ? "小賭式" : i < 500 ? "平民級" :
i < 1000 ? "貴族級" : i < 5000 ? "富豪級" : "傾家蕩產",
diff --git a/mbbsd/vote.c b/mbbsd/vote.c
index 9304a697..8b4d670b 100644
--- a/mbbsd/vote.c
+++ b/mbbsd/vote.c
@@ -1,4 +1,4 @@
-/* $Id: vote.c,v 1.20 2003/07/06 23:09:25 kcwu Exp $ */
+/* $Id$ */
#include "bbs.h"
static int total;
@@ -240,10 +240,12 @@ b_result_one(boardheader_t * fh, int ind)
fgets(inbuf, sizeof(inbuf), cfp);
fprintf(tfp, "\n◆投票結果:(共有 %d 人投票,每人最多可投 %d 票)\n",
num, junk);
+ fprintf(tfp, " 選 項 總票數 得票率 得票分布\n");
while (fgets(inbuf, sizeof(inbuf), cfp)) {
inbuf[(strlen(inbuf) - 1)] = '\0';
num = counts[inbuf[0] - 'A'];
- fprintf(tfp, " %-42s %3d 票 %02.2f%%\n", inbuf + 3, num,
+ fprintf(tfp, " %-42s %3d 票 %02.2f%% %02.2f%%\n", inbuf + 3, num,
+ (float)(num * 100) / (float)(num),
(float)(num * 100) / (float)(total));
}
fclose(cfp);
diff --git a/util/cleanpasswd.c b/util/cleanpasswd.c
index c5f8a251..60ae650d 100644
--- a/util/cleanpasswd.c
+++ b/util/cleanpasswd.c
@@ -18,6 +18,10 @@ int main(int argc, char *argv[])
int i, fd, fdw;
userec_t user;
+ setgid(BBSGID);
+ setuid(BBSUID);
+ chdir(BBSHOME);
+
if ((fd = open(BBSHOME"/.PASSWDS", O_RDONLY)) < 0){
perror("open .PASSWDS error");
exit(-1);