mirror of
https://github.com/reactos/reactos.git
synced 2025-07-14 23:24:32 +00:00
69 lines
1.2 KiB
C
69 lines
1.2 KiB
C
/* $Id: makepath.c,v 1.7 2001/09/09 12:13:15 hbirr Exp $
|
|
*/
|
|
#include <msvcrt/stdlib.h>
|
|
#include <msvcrt/string.h>
|
|
|
|
void _makepath(char *path, const char *drive, const char *dir, const char *fname, const char *ext)
|
|
{
|
|
int dir_len;
|
|
|
|
if ((drive != NULL) && (*drive))
|
|
{
|
|
strcpy(path, drive);
|
|
strcat(path, ":");
|
|
}
|
|
else
|
|
(*path)=0;
|
|
|
|
if (dir != NULL)
|
|
{
|
|
strcat(path, dir);
|
|
dir_len = strlen(dir);
|
|
if (dir_len && *(dir + dir_len - 1) != '\\')
|
|
strcat(path, "\\");
|
|
}
|
|
|
|
if (fname != NULL)
|
|
{
|
|
strcat(path, fname);
|
|
if (ext != NULL && *ext != 0)
|
|
{
|
|
if (*ext != '.')
|
|
strcat(path, ".");
|
|
strcat(path, ext);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void _wmakepath(wchar_t *path, const wchar_t *drive, const wchar_t *dir, const wchar_t *fname, const wchar_t *ext)
|
|
{
|
|
int dir_len;
|
|
|
|
if ((drive != NULL) && (*drive))
|
|
{
|
|
wcscpy(path, drive);
|
|
wcscat(path, L":");
|
|
}
|
|
else
|
|
(*path)=0;
|
|
|
|
if (dir != NULL)
|
|
{
|
|
wcscat(path, dir);
|
|
dir_len = wcslen(dir);
|
|
if (dir_len && *(dir + dir_len - 1) != L'\\')
|
|
wcscat(path, L"\\");
|
|
}
|
|
|
|
if (fname != NULL)
|
|
{
|
|
wcscat(path, fname);
|
|
if (ext != NULL && *ext != 0)
|
|
{
|
|
if (*ext != L'.')
|
|
wcscat(path, L".");
|
|
wcscat(path, ext);
|
|
}
|
|
}
|
|
}
|