diff options
author | David Robillard <d@drobilla.net> | 2024-11-24 10:55:53 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2024-11-24 12:34:51 -0500 |
commit | 39e30fdc4016337c5e41413600e337879949fac5 (patch) | |
tree | b381767d823581fc58bf8173344eeed6686d01e3 /src/win32 | |
parent | d338f4afed7ddafa718cb58ef893ca074fa69f79 (diff) | |
download | zix-39e30fdc4016337c5e41413600e337879949fac5.tar.gz zix-39e30fdc4016337c5e41413600e337879949fac5.tar.bz2 zix-39e30fdc4016337c5e41413600e337879949fac5.zip |
Add zix_expand_environment_strings()
Diffstat (limited to 'src/win32')
-rw-r--r-- | src/win32/environment_win32.c | 22 |
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; +} |