30 lines
744 B
Text
30 lines
744 B
Text
|
Index: src/editpwin.c
|
||
|
--- src/editpwin.c.orig
|
||
|
+++ src/editpwin.c
|
||
|
@@ -776,15 +776,19 @@ void create_ss_frame(int gno, int setno)
|
||
|
*/
|
||
|
void do_ext_editor(int gno, int setno)
|
||
|
{
|
||
|
- char *fname, ebuf[256];
|
||
|
+ char fname[GR_MAXPATHLEN], ebuf[256];
|
||
|
FILE *cp;
|
||
|
- int save_autos;
|
||
|
+ int save_autos, fd;
|
||
|
|
||
|
- fname = tmpnam(NULL);
|
||
|
- cp = grace_openw(fname);
|
||
|
- if (cp == NULL) {
|
||
|
+ strlcpy(fname, P_tmpdir, sizeof fname);
|
||
|
+ strlcat(fname, "grace-XXXXXXXXXX", sizeof fname);
|
||
|
+ fd = mkstemp(fname);
|
||
|
+ if (fd == -1) {
|
||
|
+ errmsg("Could not create tmp file.");
|
||
|
return;
|
||
|
- }
|
||
|
+ } else
|
||
|
+ close(fd);
|
||
|
+ cp = filter_write(fname);
|
||
|
|
||
|
write_set(gno, setno, cp, sformat, FALSE);
|
||
|
grace_close(cp);
|