diff options
author | ptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-06-30 02:13:15 +0800 |
---|---|---|
committer | ptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-06-30 02:13:15 +0800 |
commit | 4ab8e75a6bec8ba4cac7a59c682a7852f4d41b30 (patch) | |
tree | 74a460d1c36ffed57c5312e200da0ccc912a5ccb | |
parent | 4960c6f354132ea0fa0b19382fd8a80fab2b80da (diff) | |
download | pttbbs-4ab8e75a6bec8ba4cac7a59c682a7852f4d41b30.tar pttbbs-4ab8e75a6bec8ba4cac7a59c682a7852f4d41b30.tar.gz pttbbs-4ab8e75a6bec8ba4cac7a59c682a7852f4d41b30.tar.bz2 pttbbs-4ab8e75a6bec8ba4cac7a59c682a7852f4d41b30.tar.lz pttbbs-4ab8e75a6bec8ba4cac7a59c682a7852f4d41b30.tar.xz pttbbs-4ab8e75a6bec8ba4cac7a59c682a7852f4d41b30.tar.zst pttbbs-4ab8e75a6bec8ba4cac7a59c682a7852f4d41b30.zip |
allow merge mail 2 times
git-svn-id: http://opensvn.csie.org/pttbbs/branches/ptt.fpg@2105 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | mbbsd/merge.c | 102 |
1 files changed, 56 insertions, 46 deletions
diff --git a/mbbsd/merge.c b/mbbsd/merge.c index 2cc7f5b1..5431408c 100644 --- a/mbbsd/merge.c +++ b/mbbsd/merge.c @@ -9,7 +9,7 @@ int m_fpg() { char genbuf[256], buf[256], userid[25], passbuf[24], msg[2048]=""; - int count=0, i; + int count=0, i, isimported=0; FILE *fp; ACCT man; time_t d; @@ -38,10 +38,16 @@ m_fpg() if(bad_user_id(userid)) continue; sprintf(genbuf, "/home/bbs/fpg/home/%c/%s.ACT",userid[0], userid); if(!(fp=fopen(genbuf, "r"))) - { - vmsg("查無此人或已經匯入過..請注意大小寫 "); - continue; - } + { + isimported = 1; + strcat(genbuf, ".done"); + if(!(fp=fopen(genbuf, "r"))) + { + vmsg("查無此人或已經匯入過..請注意大小寫 "); + isimported = 0; + continue; + } + } count = fread(&man, sizeof(man), 1, fp); fclose(fp); }while(!count); @@ -62,15 +68,18 @@ m_fpg() return 0; } } while(!checkpasswd(man.passwd, passbuf)); - if(!dashf(genbuf)) // avoid multi-login - { - vmsg("查無此人或已經匯入過..請注意大小寫 "); - return 0; - } - sprintf(buf,"%s.done",genbuf); - rename(genbuf,buf); move(12,0); clrtobot(); + + if(!isimported) + { + if(!dashf(genbuf)) // avoid multi-login + { + vmsg("請不要嘗試多重id踹匯入"); + return 0; + } + sprintf(buf,"%s.done",genbuf); + rename(genbuf,buf); #ifdef MERGEMONEY int price[10] = {74, 21, 29, 48, 67, 11, 9, 43, 57, 72}; unsigned lmarket=0; @@ -92,48 +101,49 @@ m_fpg() strcat(msg, buf); #endif - i = cuser.exmailbox + man.mailk + man.keepmail; - if (i > 1000) i = 1000; - sprintf(buf, "您的花園信箱有 %d (%dk), 原有 %d 匯入後共有 %d\n", - man.keepmail, man.mailk, cuser.exmailbox, cuser.exmailbox ); - strcat(msg, buf); - cuser.exmailbox = i; + i = cuser.exmailbox + man.mailk + man.keepmail; + if (i > 1000) i = 1000; + sprintf(buf, "您的花園信箱有 %d (%dk), 原有 %d 匯入後共有 %d\n", + man.keepmail, man.mailk, cuser.exmailbox, i); + strcat(msg, buf); + cuser.exmailbox = i; - if(man.userlevel & PERM_MAILLIMIT) - { + if(man.userlevel & PERM_MAILLIMIT) + { sprintf(buf, "開啟信箱無上限\n"); strcat(msg, buf); cuser.userlevel |= PERM_MAILLIMIT; - } - - if(cuser.firstlogin > man.firstlogin) d = man.firstlogin; - else d = cuser.firstlogin; - sprintf(buf, "花園註冊日期 %s ", Cdatedate(&(man.firstlogin))); - strcat(msg,buf); - sprintf(buf, "此帳號註冊日期 %s 將取 ",Cdatedate(&(cuser.firstlogin))); - strcat(msg,buf); - sprintf(buf, "將取 %s\n", Cdatedate(&d) ); - strcat(msg,buf); - cuser.firstlogin = d; - - if(cuser.numlogins < man.numlogins) i = man.numlogins; - else i = cuser.numlogins; - - sprintf(buf, "花園進站次數 %d 此帳號 %d 將取 %d \n", man.numlogins, + } + + if(cuser.firstlogin > man.firstlogin) d = man.firstlogin; + else d = cuser.firstlogin; + sprintf(buf, "花園註冊日期 %s ", Cdatedate(&(man.firstlogin))); + strcat(msg,buf); + sprintf(buf, "此帳號註冊日期 %s 將取 ",Cdatedate(&(cuser.firstlogin))); + strcat(msg,buf); + sprintf(buf, "將取 %s\n", Cdatedate(&d) ); + strcat(msg,buf); + cuser.firstlogin = d; + + if(cuser.numlogins < man.numlogins) i = man.numlogins; + else i = cuser.numlogins; + + sprintf(buf, "花園進站次數 %d 此帳號 %d 將取 %d \n", man.numlogins, cuser.numlogins, i); - strcat(msg,buf); - cuser.numlogins = i; + strcat(msg,buf); + cuser.numlogins = i; - if(cuser.numposts < man.numposts ) i = man.numposts; - else i = cuser.numposts; - sprintf(buf, "花園文章次數 %d 此帳號 %d 將取 %d\n", + if(cuser.numposts < man.numposts ) i = man.numposts; + else i = cuser.numposts; + sprintf(buf, "花園文章次數 %d 此帳號 %d 將取 %d\n", man.numposts,cuser.numposts,i); - strcat(msg,buf); - cuser.numposts = i; - outs(msg); - while(search_ulistn(usernum,2)) + strcat(msg,buf); + cuser.numposts = i; + outs(msg); + while(search_ulistn(usernum,2)) {vmsg("請將重覆上站其他線關閉! 再繼續");} - passwd_update(usernum, &cuser); + passwd_update(usernum, &cuser); + } sethomeman(genbuf, cuser.userid); mkdir(genbuf, 0600); sprintf(buf, "tar zxvf home/%c/%s.tgz>/dev/null", |