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.  */