summaryrefslogtreecommitdiffstats
path: root/mbbsd/edit.c
diff options
context:
space:
mode:
authorscw <scw@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-04-02 16:23:19 +0800
committerscw <scw@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-04-02 16:23:19 +0800
commiteb86d8ff553917f392c556ef3a4b846910b1a17a (patch)
tree31c589739ddd4ecd6f144790dafb6fea654685e6 /mbbsd/edit.c
parent09d73f6f75cb15e6882403ef143705da4fee64bf (diff)
downloadpttbbs-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.c12
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);
}