summaryrefslogtreecommitdiffstats
path: root/src/win32
diff options
context:
space:
mode:
Diffstat (limited to 'src/win32')
-rw-r--r--src/win32/environment_win32.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/win32/environment_win32.c b/src/win32/environment_win32.c
new file mode 100644
index 0000000..e7a0ee3
--- /dev/null
+++ b/src/win32/environment_win32.c
@@ -0,0 +1,22 @@
+// Copyright 2012-2024 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
+
+#include <zix/environment.h>
+
+#include <windows.h>
+
+char*
+zix_expand_environment_strings(ZixAllocator* const allocator,
+ const char* const string)
+{
+ const DWORD size = ExpandEnvironmentStrings(string, NULL, 0U);
+ if (!size) {
+ return NULL;
+ }
+
+ char* const out = (char*)zix_calloc(allocator, 1U, size + 1U);
+ if (out) {
+ ExpandEnvironmentStrings(string, out, size + 1U);
+ }
+ return out;
+}