19 template <
typename Character>
37template <
typename Character,
typename ResetPolicy>
39 component_buffers<Character>*
const components,
67template <
typename Character,
typename ResetPolicy,
typename BufferCountTransformer>
69 Character
const*
const path,
70 component_buffers<Character>*
const components,
72 BufferCountTransformer
const transform_buffer_count
92 Character
const* path_it =
path;
97 Character
const*
p = path_it;
98 while (
skip > 0 && *
p !=
'\0')
131 Character
const*
p = path_it;
132 Character
const* last_slash =
nullptr;
133 Character
const* last_dot =
nullptr;
134 for (; *
p !=
'\0'; ++
p)
152 else if (*
p ==
'/' || *
p ==
'\\')
166 size_t const length =
static_cast<size_t>(last_slash - path_it);
176 path_it = last_slash;
187 if (last_dot && last_dot >= path_it)
192 size_t const length =
static_cast<size_t>(last_dot - path_it);
204 size_t const length =
static_cast<size_t>(
p - last_dot);
220 size_t const length =
static_cast<size_t>(
p - path_it);
239template <
typename Character>
255 [](
size_t const n) {
return n; });
260 char const*
const path,
262 size_t const drive_count,
264 size_t const directory_count,
266 size_t const file_name_count,
267 char*
const extension,
268 size_t const extension_count
276 extension, extension_count
283 wchar_t const*
const path,
284 wchar_t*
const drive,
285 size_t const drive_count,
287 size_t const directory_count,
289 size_t const file_name_count,
290 wchar_t*
const extension,
291 size_t const extension_count
299 extension, extension_count
305template <
typename Character>
329 [](
size_t){
return static_cast<size_t>(-1); });
333 char const*
const path,
337 char*
const extension
344 wchar_t const*
const path,
345 wchar_t*
const drive,
348 wchar_t*
const extension
#define _RESET_STRING(_String, _Size)
GLenum GLenum GLuint components
GLuint GLsizei GLsizei * length
#define _VALIDATE_RETURN_ERRCODE(expr, errorcode)
#define _wsplitpath_s(f, d, dl, p, pl, n, nl, e, el)
#define _splitpath_s(f, d, dl, p, pl, n, nl, e, el)
int __cdecl _ismbblead(unsigned int)
#define _Out_writes_z_(s)
#define _Null_terminated_
#define UNREFERENCED_PARAMETER(P)
static void reset_buffer(struct DynamicBuffer *buffer)
component_buffers< Character > *const components throw()
static bool __cdecl needs_trail_byte(char const c)
void __cdecl _splitpath(char const *const path, char *const drive, char *const directory, char *const file_name, char *const extension)
static void __cdecl common_splitpath(_In_z_ Character const *const path, _Pre_maybenull_ _Post_z_ Character *const drive, _Pre_maybenull_ _Post_z_ Character *const directory, _Pre_maybenull_ _Post_z_ Character *const file_name, _Pre_maybenull_ _Post_z_ Character *const extension)
static void __cdecl reset_buffers(component_buffers< Character > *const components, ResetPolicy const reset_buffer)
static errno_t __cdecl common_splitpath_internal(Character const *const path, component_buffers< Character > *const components, ResetPolicy const reset_buffer, BufferCountTransformer const transform_buffer_count)
void __cdecl _wsplitpath(wchar_t const *const path, wchar_t *const drive, wchar_t *const directory, wchar_t *const file_name, wchar_t *const extension)
_Null_terminated_ _Maybenull_ Character * _drive
_Null_terminated_ _Maybenull_ Character * _directory
_Null_terminated_ _Maybenull_ Character * _extension
_Null_terminated_ _Maybenull_ Character * _file_name
size_t const buffer_count