2#include <winpr/wtypes.h>
12HRESULT PATH_CCH_ADD_SEPARATOR_EX(PWSTR pszPath,
size_t cchPath, WINPR_ATTR_UNUSED PWSTR* ppszEnd,
13 WINPR_ATTR_UNUSED
size_t* pcchRemaining)
15 WINPR_ASSERT(pszPath || (cchPath == 0));
19 const size_t pszPathLength = _wcsnlen(pszPath, cchPath);
21 if (pszPath[pszPathLength - 1] == CUR_PATH_SEPARATOR_CHR)
24 if (cchPath > (pszPathLength + 1))
26 pszPath[pszPathLength] = CUR_PATH_SEPARATOR_CHR;
27 pszPath[pszPathLength + 1] =
'\0';
32 return HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER);
37HRESULT PATH_CCH_ADD_SEPARATOR_EX(WINPR_ATTR_UNUSED PSTR pszPath, WINPR_ATTR_UNUSED
size_t cchPath,
38 WINPR_ATTR_UNUSED PSTR* ppszEnd,
39 WINPR_ATTR_UNUSED
size_t* pcchRemaining)
41 WINPR_ASSERT(pszPath || (cchPath == 0));
45 const size_t pszPathLength = strnlen(pszPath, cchPath);
47 if (pszPath[pszPathLength - 1] == CUR_PATH_SEPARATOR_CHR)
50 if (cchPath > (pszPathLength + 1))
52 pszPath[pszPathLength] = CUR_PATH_SEPARATOR_CHR;
53 pszPath[pszPathLength + 1] =
'\0';
58 return HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER);