58 lines
1.5 KiB
Plaintext
58 lines
1.5 KiB
Plaintext
--- src/user.c.orig Mon May 25 07:16:07 1998
|
|
+++ src/user.c Tue Apr 25 19:13:52 2000
|
|
@@ -497,13 +497,24 @@ void execute_menu_command (char *s)
|
|
int do_quote;
|
|
char prompt [80] = "";
|
|
int col;
|
|
+#ifdef __OpenBSD__
|
|
+ char *file_name;
|
|
+#else
|
|
char *file_name = tmpnam (0);
|
|
+#endif
|
|
|
|
#ifdef OS2_NT
|
|
/* OS/2 and NT requires the command to end in .cmd */
|
|
file_name = copy_strings (file_name, ".cmd", NULL);
|
|
#endif
|
|
+#ifdef __OpenBSD__
|
|
+#define TEMPFILE "/tmp/mcXXXXXXXXXX"
|
|
+ file_name = xmalloc (sizeof(TEMPFILE), TEMPFILE);
|
|
+ strcpy (file_name, TEMPFILE);
|
|
+ if ((cmd_file_fd = mkstemp (file_name)) == -1) {
|
|
+#else
|
|
if ((cmd_file_fd = open (file_name, O_RDWR | O_CREAT | O_TRUNC | O_EXCL, 0600)) == -1){
|
|
+#endif
|
|
message (1, MSG_ERROR, _(" Can't create temporary command file \n %s "),
|
|
unix_error_string (errno));
|
|
return;
|
|
@@ -513,6 +524,9 @@ void execute_menu_command (char *s)
|
|
if (!commands){
|
|
fclose (cmd_file);
|
|
unlink (file_name);
|
|
+#ifdef __OpenBSD__
|
|
+ free (file_name);
|
|
+#endif
|
|
return;
|
|
}
|
|
commands++;
|
|
@@ -536,6 +550,9 @@ void execute_menu_command (char *s)
|
|
/* User canceled */
|
|
fclose (cmd_file);
|
|
unlink (file_name);
|
|
+#ifdef __OpenBSD__
|
|
+ free (file_name);
|
|
+#endif
|
|
return;
|
|
}
|
|
if (do_quote) {
|
|
@@ -579,6 +596,9 @@ void execute_menu_command (char *s)
|
|
chmod (file_name, S_IRWXU);
|
|
execute (file_name);
|
|
unlink (file_name);
|
|
+#ifdef __OpenBSD__
|
|
+ free (file_name);
|
|
+#endif
|
|
}
|
|
|
|
/*
|