summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pttbbs/mbbsd/mail.c134
-rw-r--r--pttbbs/mbbsd/menu.c3
2 files changed, 1 insertions, 136 deletions
diff --git a/pttbbs/mbbsd/mail.c b/pttbbs/mbbsd/mail.c
index 6b4e566a..d02591be 100644
--- a/pttbbs/mbbsd/mail.c
+++ b/pttbbs/mbbsd/mail.c
@@ -1441,140 +1441,6 @@ doforward(const char *direct, const fileheader_t * fh, int mode)
return (return_no);
}
-static int
-read_new_mail(void * voidfptr, void *optarg)
-{
- fileheader_t *fptr=(fileheader_t*)voidfptr;
- struct ReadNewMailArg *arg=(struct ReadNewMailArg*)optarg;
- char done = NA, delete_it;
- char fname[PATHLEN];
- char genbuf[4];
-
- arg->idc++;
-
- if (fptr->filemode & FILE_READ)
- return 0;
-
- // XXX fptr->filename may be invalid.
- if (*fptr->filename) {
- clear();
- move(10, 0);
- prints("您要讀來自[%s]的訊息(%s)嗎?", fptr->owner, fptr->title);
- getdata(11, 0, "請您確定(Y/N/Q)?[Y] ", genbuf, 3, LCECHO);
- if (genbuf[0] == 'q')
- return QUIT;
- if (genbuf[0] == 'n')
- return 0;
- }
-
- // no matter what, mark as read.
- fptr->filemode |= FILE_READ;
- // Race condition here...
- if (substitute_fileheader(currmaildir, fptr, fptr, arg->idc))
- return -1;
-
- if (!*fptr->filename)
- return -1;
-
- setuserfile(fname, fptr->filename);
- arg->mrd = 1;
- delete_it = NA;
- while (!done) {
- int more_result = more(fname, YEA);
-
- switch (more_result) {
- case RET_DOREPLY:
- mail_reply(arg->idc, fptr, currmaildir);
- return FULLUPDATE;
- case RET_DOREPLYALL:
- multi_reply(arg->idc, fptr, currmaildir);
- return FULLUPDATE;
- case RET_DORECOMMEND: // we don't accept this.
- return FULLUPDATE;
- case -1:
- return READ_SKIP;
- case 0:
- break;
- default:
- return more_result;
- }
-
- vs_footer(" 信件處理 ",
- " (R)回信 (x)站內轉寄 (y)回群組信 (d/D)刪信");
-
- switch (vkey()) {
- case 'r':
- case 'R':
- mail_reply(arg->idc, fptr, currmaildir);
- break;
- case 'y':
- multi_reply(arg->idc, fptr, currmaildir);
- break;
- case 'x':
- m_forward(arg->idc, fptr, currmaildir);
- break;
- case 'd':
- case 'D':
- delete_it = YEA;
- default:
- done = YEA;
- }
- }
- if (delete_it) {
- if(arg->delcnt==1000) {
- vmsg("一次最多刪 1000 封信");
- return 0;
- }
- clear();
- prints("刪除信件《%s》", fptr->title);
- getdata(1, 0, msg_sure_ny, genbuf, 2, LCECHO);
- if (genbuf[0] == 'y') {
- if(arg->delmsgs==NULL) {
- arg->delmsgs=(int*)malloc(sizeof(int)*1000);
- if(arg->delmsgs==NULL) {
- vmsg("失敗, 請洽站長");
- return 0;
- }
- }
- unlink(fname);
- arg->delmsgs[arg->delcnt++] = arg->idc;
-
- loadmailusage();
- }
- }
- clear();
- return 0;
-}
-
-int
-m_new(void)
-{
- struct ReadNewMailArg arg;
-
- if (!HasUserPerm(PERM_READMAIL))
- return DONOTHING;
-
- clear();
- setutmpmode(RMAIL);
- memset(&arg, 0, sizeof(arg));
- clear();
- curredit |= EDIT_MAIL;
- if (apply_record(currmaildir, read_new_mail, sizeof(fileheader_t), &arg) == -1) {
- if(arg.delmsgs)
- free(arg.delmsgs);
- vmsg("沒有新信件了");
- return -1;
- }
- curredit = 0;
- setmailalert();
- while (arg.delcnt--)
- delete_record(currmaildir, sizeof(fileheader_t), arg.delmsgs[arg.delcnt]);
- if(arg.delmsgs)
- free(arg.delmsgs);
- vmsg(arg.mrd ? "信已閱\畢" : "沒有新信件了");
- return -1;
-}
-
static void
mailtitle(void)
{
diff --git a/pttbbs/mbbsd/menu.c b/pttbbs/mbbsd/menu.c
index 11810efa..7a35b398 100644
--- a/pttbbs/mbbsd/menu.c
+++ b/pttbbs/mbbsd/menu.c
@@ -654,8 +654,7 @@ static const commands_t adminlist[] = {
/* mail menu */
static const commands_t maillist[] = {
- {m_new, PERM_READMAIL, "RNew 閱\讀新進郵件"},
- {m_read, PERM_READMAIL, "RRead 多功\能讀信選單"},
+ {m_read, PERM_READMAIL, "RRead 我的信箱"},
{m_send, PERM_LOGINOK, "RSend 站內寄信"},
{mail_list, PERM_LOGINOK, "RMail List 群組寄信"},
{setforward, PERM_LOGINOK, "FForward 設定信箱自動轉寄" },