diff options
author | scw <scw@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-04-02 16:23:19 +0800 |
---|---|---|
committer | scw <scw@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-04-02 16:23:19 +0800 |
commit | eb86d8ff553917f392c556ef3a4b846910b1a17a (patch) | |
tree | 31c589739ddd4ecd6f144790dafb6fea654685e6 /mbbsd/edit.c | |
parent | 09d73f6f75cb15e6882403ef143705da4fee64bf (diff) | |
download | pttbbs-eb86d8ff553917f392c556ef3a4b846910b1a17a.tar pttbbs-eb86d8ff553917f392c556ef3a4b846910b1a17a.tar.gz pttbbs-eb86d8ff553917f392c556ef3a4b846910b1a17a.tar.bz2 pttbbs-eb86d8ff553917f392c556ef3a4b846910b1a17a.tar.lz pttbbs-eb86d8ff553917f392c556ef3a4b846910b1a17a.tar.xz pttbbs-eb86d8ff553917f392c556ef3a4b846910b1a17a.tar.zst pttbbs-eb86d8ff553917f392c556ef3a4b846910b1a17a.zip |
Fix warning, including:
Prototype differance of crypt() on linux.
Adding _ISOC99_SOURCE to get declaration of snprintf() on linux.
Including strings.h to get declaration of strcasecmp() on linux.
Using mkstemp() instead of tempnam().
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1679 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
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); } |