diff options
-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("�d�L���H�Τw�g�פJ�L..�Ъ`�N�j�p�g "); - continue; - } + { + isimported = 1; + strcat(genbuf, ".done"); + if(!(fp=fopen(genbuf, "r"))) + { + vmsg("�d�L���H�Τw�g�פJ�L..�Ъ`�N�j�p�g "); + 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("�d�L���H�Τw�g�פJ�L..�Ъ`�N�j�p�g "); - return 0; - } - sprintf(buf,"%s.done",genbuf); - rename(genbuf,buf); move(12,0); clrtobot(); + + if(!isimported) + { + if(!dashf(genbuf)) // avoid multi-login + { + vmsg("�Ф��n���զh��id��פJ"); + 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, "�z�����H�c�� %d (%dk), �즳 %d �פJ��@�� %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, "�z�����H�c�� %d (%dk), �즳 %d �פJ��@�� %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, "�}�ҫH�c�L�W��\n"); strcat(msg, buf); cuser.userlevel |= PERM_MAILLIMIT; - } - - if(cuser.firstlogin > man.firstlogin) d = man.firstlogin; - else d = cuser.firstlogin; - sprintf(buf, "�����U��� %s ", Cdatedate(&(man.firstlogin))); - strcat(msg,buf); - sprintf(buf, "���b�����U��� %s �N�� ",Cdatedate(&(cuser.firstlogin))); - strcat(msg,buf); - sprintf(buf, "�N�� %s\n", Cdatedate(&d) ); - strcat(msg,buf); - cuser.firstlogin = d; - - if(cuser.numlogins < man.numlogins) i = man.numlogins; - else i = cuser.numlogins; - - sprintf(buf, "���i������ %d ���b�� %d �N�� %d \n", man.numlogins, + } + + if(cuser.firstlogin > man.firstlogin) d = man.firstlogin; + else d = cuser.firstlogin; + sprintf(buf, "�����U��� %s ", Cdatedate(&(man.firstlogin))); + strcat(msg,buf); + sprintf(buf, "���b�����U��� %s �N�� ",Cdatedate(&(cuser.firstlogin))); + strcat(msg,buf); + sprintf(buf, "�N�� %s\n", Cdatedate(&d) ); + strcat(msg,buf); + cuser.firstlogin = d; + + if(cuser.numlogins < man.numlogins) i = man.numlogins; + else i = cuser.numlogins; + + sprintf(buf, "���i������ %d ���b�� %d �N�� %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 ���b�� %d �N�� %d\n", + if(cuser.numposts < man.numposts ) i = man.numposts; + else i = cuser.numposts; + sprintf(buf, "���峹���� %d ���b�� %d �N�� %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("�бN���ФW����L�u����! �A�~��");} - 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", |