mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
Fixed bug in _makepath().
Patch by Hartmut Birr. svn path=/trunk/; revision=2073
This commit is contained in:
parent
e6063f185b
commit
20a0131534
2 changed files with 54 additions and 74 deletions
|
@ -1,30 +1,34 @@
|
||||||
#include <crtdll/stdlib.h>
|
#include <crtdll/stdlib.h>
|
||||||
#include <crtdll/string.h>
|
#include <crtdll/string.h>
|
||||||
|
|
||||||
void _makepath( char *path, const char *drive, const char *dir, const char *fname, const char *ext )
|
void _makepath(char *path, const char *drive, const char *dir, const char *fname, const char *ext)
|
||||||
{
|
{
|
||||||
int dir_len;
|
int dir_len;
|
||||||
if ( drive != NULL && (*drive)) {
|
|
||||||
strcpy(path,drive);
|
|
||||||
strcat(path,":");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
(*path)=0;
|
|
||||||
|
|
||||||
if ( dir != NULL ) {
|
if ((drive != NULL) && (*drive))
|
||||||
strcat(path,dir);
|
{
|
||||||
if ( *dir != '\\' )
|
strcpy(path, drive);
|
||||||
strcat(path,"\\");
|
strcat(path, ":");
|
||||||
dir_len = strlen(dir);
|
}
|
||||||
if ( dir_len && *(dir + dir_len - 1) != '\\' )
|
else
|
||||||
strcat(path,"\\");
|
(*path)=0;
|
||||||
}
|
|
||||||
if ( fname != NULL ) {
|
if (dir != NULL)
|
||||||
strcat(path,fname);
|
{
|
||||||
if ( ext != NULL ) {
|
strcat(path, dir);
|
||||||
if ( *ext != '.')
|
dir_len = strlen(dir);
|
||||||
strcat(path,".");
|
if (dir_len && *(dir + dir_len - 1) != '\\')
|
||||||
strcat(path,ext);
|
strcat(path, "\\");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fname != NULL)
|
||||||
|
{
|
||||||
|
strcat(path, fname);
|
||||||
|
if (ext != NULL)
|
||||||
|
{
|
||||||
|
if (*ext != '.')
|
||||||
|
strcat(path, ".");
|
||||||
|
strcat(path, ext);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,58 +1,34 @@
|
||||||
#include <msvcrt/stdlib.h>
|
#include <msvcrt/stdlib.h>
|
||||||
#include <msvcrt/string.h>
|
#include <msvcrt/string.h>
|
||||||
|
|
||||||
void _makepath( char *path, const char *drive, const char *dir, const char *fname, const char *ext )
|
void _makepath(char *path, const char *drive, const char *dir, const char *fname, const char *ext)
|
||||||
{
|
{
|
||||||
int dir_len;
|
int dir_len;
|
||||||
if ( drive != NULL && (*drive)) {
|
|
||||||
strcpy(path,drive);
|
|
||||||
strcat(path,":");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
(*path)=0;
|
|
||||||
|
|
||||||
if ( dir != NULL ) {
|
if ((drive != NULL) && (*drive))
|
||||||
strcat(path,dir);
|
{
|
||||||
if ( *dir != '\\' )
|
strcpy(path, drive);
|
||||||
strcat(path,"\\");
|
strcat(path, ":");
|
||||||
dir_len = strlen(dir);
|
}
|
||||||
if ( dir_len && *(dir + dir_len - 1) != '\\' )
|
else
|
||||||
strcat(path,"\\");
|
(*path)=0;
|
||||||
}
|
|
||||||
if ( fname != NULL ) {
|
if (dir != NULL)
|
||||||
strcat(path,fname);
|
{
|
||||||
if ( ext != NULL ) {
|
strcat(path, dir);
|
||||||
if ( *ext != '.')
|
dir_len = strlen(dir);
|
||||||
strcat(path,".");
|
if (dir_len && *(dir + dir_len - 1) != '\\')
|
||||||
strcat(path,ext);
|
strcat(path, "\\");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
if (fname != NULL)
|
||||||
|
{
|
||||||
void _wmakepath( wchar_t *path, const wchar_t *drive, const wchar_t *dir, const wchar_t *fname, const wchar_t *ext )
|
strcat(path, fname);
|
||||||
{
|
if (ext != NULL)
|
||||||
int dir_len;
|
{
|
||||||
if ( drive != NULL && (*drive)) {
|
if (*ext != '.')
|
||||||
wcscpy(path,drive);
|
strcat(path, ".");
|
||||||
wcscat(path,L":");
|
strcat(path, ext);
|
||||||
}
|
|
||||||
else
|
|
||||||
(*path)=0;
|
|
||||||
|
|
||||||
if ( dir != NULL ) {
|
|
||||||
wcscat(path,dir);
|
|
||||||
if ( *dir != L'\\' )
|
|
||||||
wcscat(path,L"\\");
|
|
||||||
dir_len = wcslen(dir);
|
|
||||||
if ( dir_len && *(dir + dir_len - 1) != L'\\' )
|
|
||||||
wcscat(path,L"\\");
|
|
||||||
}
|
|
||||||
if ( fname != NULL ) {
|
|
||||||
wcscat(path,fname);
|
|
||||||
if ( ext != NULL ) {
|
|
||||||
if ( *ext != L'.')
|
|
||||||
wcscat(path,L".");
|
|
||||||
wcscat(path,ext);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue