diff options
Diffstat (limited to 'mbbsd/lovepaper.c')
-rw-r--r-- | mbbsd/lovepaper.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/mbbsd/lovepaper.c b/mbbsd/lovepaper.c index 3003cdb2..93b3a4db 100644 --- a/mbbsd/lovepaper.c +++ b/mbbsd/lovepaper.c @@ -6,6 +6,7 @@ int x_love(void) { char buf1[200], title[TTLEN + 1]; + char fpath[PATHLEN]; char receiver[61], path[STRLEN] = "home/"; int x, y = 0, tline = 0, poem = 0; FILE *fp, *fpo; @@ -96,15 +97,22 @@ x_love(void) return -2; } curredit &= ~EDIT_MAIL; - sethomepath(buf1, receiver); - stampfile(buf1, &mhdr); - Rename(path, buf1); - strlcpy(mhdr.title, save_title, sizeof(mhdr.title)); - strlcpy(mhdr.owner, cuser.userid, sizeof(mhdr.owner)); - sethomedir(path, receiver); - if (append_record(path, &mhdr, sizeof(mhdr)) == -1) - return -1; - sendalert(receiver, ALERT_NEW_MAIL); + + sethomefile(fpath, receiver, FN_OVERRIDES); + x = file_exist_record(fpath, cuser.userid); + sethomefile(fpath, receiver, FN_REJECT); + + if (x || !file_exist_record(fpath, cuser.userid)) {/* if friend or not rejected */ + sethomepath(buf1, receiver); + stampfile(buf1, &mhdr); + Rename(path, buf1); + strlcpy(mhdr.title, save_title, sizeof(mhdr.title)); + strlcpy(mhdr.owner, cuser.userid, sizeof(mhdr.owner)); + sethomedir(path, receiver); + if (append_record(path, &mhdr, sizeof(mhdr)) == -1) + return -1; + sendalert(receiver, ALERT_NEW_MAIL); + } hold_mail(buf1, receiver); return 1; } else { |