ohmu
·
2026-10-15
1#pragma once
2
3#include "common/FFstrbuf.h"
4#include <wchar.h>
5
6void ffStrbufSetNWS(FFstrbuf* result, uint32_t length, const wchar_t* source);
7void ffStrbufAppendNWS(FFstrbuf* result, uint32_t length, const wchar_t* source);
8
9static inline void ffStrbufSetWS(FFstrbuf* result, const wchar_t* source) {
10 if (!source) {
11 return ffStrbufClear(result);
12 }
13 return ffStrbufSetNWS(result, (uint32_t) wcslen(source), source);
14}
15
16static inline void ffStrbufAppendWS(FFstrbuf* result, const wchar_t* source) {
17 if (!source) {
18 return;
19 }
20 return ffStrbufAppendNWS(result, (uint32_t) wcslen(source), source);
21}
22
23static inline void ffStrbufInitNWS(FFstrbuf* result, uint32_t length, const wchar_t* source) {
24 ffStrbufInit(result);
25 return ffStrbufSetNWS(result, length, source);
26}
27
28static inline void ffStrbufInitWS(FFstrbuf* result, const wchar_t* source) {
29 if (!source) {
30 return ffStrbufInit(result);
31 }
32 return ffStrbufInitNWS(result, (uint32_t) wcslen(source), source);
33}
34
35static inline FFstrbuf ffStrbufCreateNWS(uint32_t length, const wchar_t* source) {
36 FFstrbuf result;
37 ffStrbufInitNWS(&result, length, source);
38 return result;
39}
40
41static inline FFstrbuf ffStrbufCreateWS(const wchar_t* source) {
42 if (!source) {
43 return ffStrbufCreate();
44 }
45 return ffStrbufCreateNWS((uint32_t) wcslen(source), source);
46}