diff options
Diffstat (limited to 'mbbsd/edit.c')
-rw-r--r-- | mbbsd/edit.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/mbbsd/edit.c b/mbbsd/edit.c index 8cd5ebc7..6b30ea4e 100644 --- a/mbbsd/edit.c +++ b/mbbsd/edit.c @@ -1000,14 +1000,18 @@ write_file(char *fpath, int saveheader, int *islocal) } if (!aborted) { + int tempfd; + if (saveheader && !(curredit & EDIT_MAIL) && check_quote()) return KEEP_EDITING; - if (!*fpath) { - sethomepath(fpath, cuser->userid); - strcpy(fpath, tempnam(fpath, "ve_")); + if (*fpath) { + tempfd = open(fpath, O_WRONLY | O_CREAT | O_TRUNC, 0600); + }else{ + setuserfile(fpath, "ve_XXXXXX"); + tempfd = mkstemp(fpath); } - if ((fp = fopen(fpath, "w")) == NULL) { + if ((fp = fdopen(tempfd, "w")) == NULL) { indigestion(5); abort_bbs(0); } |