From: Michael Jeanson Date: Fri, 9 Oct 2015 16:15:12 +0000 (-0400) Subject: Port: Add compat for mkdtemp X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=2bb37f0657cb8a273013673bb19f429301ae1fb1 Port: Add compat for mkdtemp Signed-off-by: Michael Jeanson Signed-off-by: Jérémie Galarneau --- diff --git a/configure.ac b/configure.ac index e7ac7936..ed4b38b2 100644 --- a/configure.ac +++ b/configure.ac @@ -95,7 +95,7 @@ AC_CHECK_FUNCS([ \ gettimeofday munmap strtoul ftruncate gethostbyname \ localtime_r memset mkdir rmdir setenv socket \ strchr strdup strerror strndup strrchr strtoull tzset \ - strnlen \ + strnlen mkdtemp \ ]) # Check for MinGW32. diff --git a/include/Makefile.am b/include/Makefile.am index 30c4cdff..981ad91e 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -74,5 +74,6 @@ noinst_HEADERS = \ babeltrace/compat/glib.h \ babeltrace/compat/send.h \ babeltrace/compat/fcntl.h \ + babeltrace/compat/stdlib.h \ babeltrace/endian.h \ babeltrace/mmap-align.h diff --git a/include/babeltrace/compat/stdlib.h b/include/babeltrace/compat/stdlib.h new file mode 100644 index 00000000..57f942d9 --- /dev/null +++ b/include/babeltrace/compat/stdlib.h @@ -0,0 +1,60 @@ +#ifndef _BABELTRACE_COMPAT_STDLIB_H +#define _BABELTRACE_COMPAT_STDLIB_H + +/* + * babeltrace/compat/stdlib.h + * + * Copyright (C) 2015 Michael Jeanson + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include + +#ifdef HAVE_MKDTEMP +static inline +char *bt_mkdtemp(char *template) +{ + return mkdtemp(template); +} +#else +static inline +char *bt_mkdtemp(char *template) +{ + char *ret; + + ret = mktemp(template); + if (!ret) { + goto end; + } + + if(mkdir(template, 0700)) { + ret = NULL; + goto end; + } + + ret = template; +end: + return ret; +} +#endif + + +#endif /* _BABELTRACE_COMPAT_STDLIB_H */ diff --git a/tests/lib/test_ctf_writer.c b/tests/lib/test_ctf_writer.c index 6d5b42db..a5b22d23 100644 --- a/tests/lib/test_ctf_writer.c +++ b/tests/lib/test_ctf_writer.c @@ -31,7 +31,7 @@ #include #include #include -#include +#include #include #include #include @@ -2690,7 +2690,7 @@ int main(int argc, char **argv) plan_no_plan(); - if (!mkdtemp(trace_path)) { + if (!bt_mkdtemp(trace_path)) { perror("# perror"); }