aboutsummaryrefslogtreecommitdiff
path: root/src/os.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-02-25 14:11:54 -0500
committerGitHub <noreply@github.com>2019-02-25 14:11:54 -0500
commit6003b1ea7018fe6a7aa87622d1178e444e6d8abb (patch)
treef87768be86d630511e694ebd09173057c7b88a58 /src/os.cpp
parente5d4862e145c38ffc1111ee578ddcafc1e35ad57 (diff)
parent0d4db8828a9efc05b5c3622098a8337de0b62d1e (diff)
downloadzig-6003b1ea7018fe6a7aa87622d1178e444e6d8abb.tar.gz
zig-6003b1ea7018fe6a7aa87622d1178e444e6d8abb.zip
Merge pull request #2005 from ziglang/c-source
first class support for compiling C code
Diffstat (limited to 'src/os.cpp')
-rw-r--r--src/os.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/os.cpp b/src/os.cpp
index 95febca9bc..f52325af00 100644
--- a/src/os.cpp
+++ b/src/os.cpp
@@ -1232,6 +1232,18 @@ static Error os_buf_to_tmp_file_posix(Buf *contents, Buf *suffix, Buf *out_tmp_p
}
#endif
+Buf *os_tmp_filename(Buf *prefix, Buf *suffix) {
+ Buf *result = buf_create_from_buf(prefix);
+
+ const char base64[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
+ assert(array_length(base64) == 64 + 1);
+ for (size_t i = 0; i < 12; i += 1) {
+ buf_append_char(result, base64[rand() % 64]);
+ }
+ buf_append_buf(result, suffix);
+ return result;
+}
+
#if defined(ZIG_OS_WINDOWS)
static Error os_buf_to_tmp_file_windows(Buf *contents, Buf *suffix, Buf *out_tmp_path) {
char tmp_dir[MAX_PATH + 1];