mirror of
https://github.com/reactos/reactos.git
synced 2025-06-19 03:55:21 +00:00
Create a branch for audio work
svn path=/branches/audio-bringup/; revision=49478
This commit is contained in:
parent
26c20f3857
commit
5eb25b5c24
20759 changed files with 0 additions and 1141005 deletions
69
lib/sdk/crt/string/splitp.c
Normal file
69
lib/sdk/crt/string/splitp.c
Normal file
|
@ -0,0 +1,69 @@
|
|||
#include <precomp.h>
|
||||
#include <tchar.h>
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
void _tsplitpath(const _TCHAR* path, _TCHAR* drive, _TCHAR* dir, _TCHAR* fname, _TCHAR* ext)
|
||||
{
|
||||
_TCHAR* tmp_drive = NULL;
|
||||
_TCHAR* tmp_dir = NULL;
|
||||
_TCHAR* tmp_ext = NULL;
|
||||
|
||||
tmp_drive = (_TCHAR*)_tcschr(path,':');
|
||||
if (drive)
|
||||
{
|
||||
if (tmp_drive)
|
||||
{
|
||||
_tcsncpy(drive,tmp_drive-1,2);
|
||||
*(drive+2) = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
*drive = 0;
|
||||
}
|
||||
}
|
||||
if (!tmp_drive)
|
||||
{
|
||||
tmp_drive = (_TCHAR*)path - 1;
|
||||
}
|
||||
|
||||
tmp_dir = (_TCHAR*)_tcsrchr(path,'\\');
|
||||
if (dir)
|
||||
{
|
||||
if (tmp_dir)
|
||||
{
|
||||
_tcsncpy(dir,tmp_drive+1,tmp_dir-tmp_drive);
|
||||
*(dir+(tmp_dir-tmp_drive)) = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
*dir =0;
|
||||
}
|
||||
}
|
||||
|
||||
/* If the dot is before the last dir separator, it's part
|
||||
* of a directory name, not the start of the extension */
|
||||
if (!tmp_ext || tmp_ext < tmp_dir)
|
||||
{
|
||||
tmp_ext = (_TCHAR*)path+_tcslen(path);
|
||||
}
|
||||
if (ext)
|
||||
{
|
||||
_tcscpy(ext,tmp_ext);
|
||||
}
|
||||
|
||||
if (fname)
|
||||
{
|
||||
if (tmp_dir)
|
||||
{
|
||||
_tcsncpy(fname,tmp_dir+1,tmp_ext-tmp_dir-1);
|
||||
*(fname+(tmp_ext-tmp_dir-1)) = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
_tcsncpy(fname,tmp_drive+1,tmp_ext-tmp_drive-1);
|
||||
*(fname+(tmp_ext-path))=0;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue