|
|
179894 |
Additionally include stdbool.h to fix issues with bool keyword usage.
|
|
|
179894 |
|
|
|
4cc9c6 |
commit 60854f40ea2d420867ed2f0f052ee7fca661dbff
|
|
|
4cc9c6 |
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
|
|
4cc9c6 |
Date: Thu Oct 15 15:14:22 2020 -0300
|
|
|
4cc9c6 |
|
|
|
4cc9c6 |
support: Add create_temp_file_in_dir
|
|
|
4cc9c6 |
|
|
|
4cc9c6 |
It allows created a temporary file in a specified directory.
|
|
|
4cc9c6 |
|
|
|
4cc9c6 |
diff --git a/support/support.h b/support/support.h
|
|
|
4cc9c6 |
index f50f8cc1496d657d..96833bd4e992e6d3 100644
|
|
|
4cc9c6 |
--- a/support/support.h
|
|
|
4cc9c6 |
+++ b/support/support.h
|
|
|
4cc9c6 |
@@ -23,6 +23,7 @@
|
|
|
4cc9c6 |
#ifndef SUPPORT_H
|
|
|
4cc9c6 |
#define SUPPORT_H
|
|
|
4cc9c6 |
|
|
|
4cc9c6 |
+#include <stdbool.h>
|
|
|
4cc9c6 |
#include <stddef.h>
|
|
|
4cc9c6 |
#include <sys/cdefs.h>
|
|
|
4cc9c6 |
/* For mode_t. */
|
|
|
4cc9c6 |
diff --git a/support/temp_file.c b/support/temp_file.c
|
|
|
4cc9c6 |
index 0bbc7f997264f758..5a2728c94a9c32ae 100644
|
|
|
4cc9c6 |
--- a/support/temp_file.c
|
|
|
4cc9c6 |
+++ b/support/temp_file.c
|
|
|
4cc9c6 |
@@ -60,14 +60,12 @@ add_temp_file (const char *name)
|
|
|
4cc9c6 |
}
|
|
|
4cc9c6 |
|
|
|
4cc9c6 |
int
|
|
|
4cc9c6 |
-create_temp_file (const char *base, char **filename)
|
|
|
4cc9c6 |
+create_temp_file_in_dir (const char *base, const char *dir, char **filename)
|
|
|
4cc9c6 |
{
|
|
|
4cc9c6 |
char *fname;
|
|
|
4cc9c6 |
int fd;
|
|
|
4cc9c6 |
|
|
|
4cc9c6 |
- fname = (char *) xmalloc (strlen (test_dir) + 1 + strlen (base)
|
|
|
4cc9c6 |
- + sizeof ("XXXXXX"));
|
|
|
4cc9c6 |
- strcpy (stpcpy (stpcpy (stpcpy (fname, test_dir), "/"), base), "XXXXXX");
|
|
|
4cc9c6 |
+ fname = xasprintf ("%s/%sXXXXXX", dir, base);
|
|
|
4cc9c6 |
|
|
|
4cc9c6 |
fd = mkstemp (fname);
|
|
|
4cc9c6 |
if (fd == -1)
|
|
|
4cc9c6 |
@@ -86,6 +84,12 @@ create_temp_file (const char *base, char **filename)
|
|
|
4cc9c6 |
return fd;
|
|
|
4cc9c6 |
}
|
|
|
4cc9c6 |
|
|
|
4cc9c6 |
+int
|
|
|
4cc9c6 |
+create_temp_file (const char *base, char **filename)
|
|
|
4cc9c6 |
+{
|
|
|
4cc9c6 |
+ return create_temp_file_in_dir (base, test_dir, filename);
|
|
|
4cc9c6 |
+}
|
|
|
4cc9c6 |
+
|
|
|
4cc9c6 |
char *
|
|
|
4cc9c6 |
support_create_temp_directory (const char *base)
|
|
|
4cc9c6 |
{
|
|
|
4cc9c6 |
diff --git a/support/temp_file.h b/support/temp_file.h
|
|
|
4cc9c6 |
index c7795cc577ca22a9..d64563f41f1f50cd 100644
|
|
|
4cc9c6 |
--- a/support/temp_file.h
|
|
|
4cc9c6 |
+++ b/support/temp_file.h
|
|
|
4cc9c6 |
@@ -32,6 +32,13 @@ void add_temp_file (const char *name);
|
|
|
4cc9c6 |
*FILENAME. */
|
|
|
4cc9c6 |
int create_temp_file (const char *base, char **filename);
|
|
|
4cc9c6 |
|
|
|
4cc9c6 |
+/* Create a temporary file in directory DIR. Return the opened file
|
|
|
4cc9c6 |
+ descriptor on success, or -1 on failure. Write the file name to
|
|
|
4cc9c6 |
+ *FILENAME if FILENAME is not NULL. In this case, the caller is
|
|
|
4cc9c6 |
+ expected to free *FILENAME. */
|
|
|
4cc9c6 |
+int create_temp_file_in_dir (const char *base, const char *dir,
|
|
|
4cc9c6 |
+ char **filename);
|
|
|
4cc9c6 |
+
|
|
|
4cc9c6 |
/* Create a temporary directory and schedule it for deletion. BASE is
|
|
|
4cc9c6 |
used as a prefix for the unique directory name, which the function
|
|
|
4cc9c6 |
returns. The caller should free this string. */
|