ReactOS 0.4.15-dev-8227-g32d615f
wmakpath.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS CRT library
3 * LICENSE: See COPYING in the top level directory
4 * FILE: lib/sdk/crt/stdlib/wmakpath.c
5 * PURPOSE: Creates a unicode path
6 * PROGRAMMERS: Wine team
7 * Copyright 1996,1998 Marcus Meissner
8 * Copyright 1996 Jukka Iivonen
9 * Copyright 1997,2000 Uwe Bonnes
10 * Copyright 2000 Jon Griffiths
11 *
12 */
13
14#include <precomp.h>
15
16/*
17 * @implemented
18 */
19void _wmakepath(wchar_t* path, const wchar_t* drive, const wchar_t* dir, const wchar_t* fname, const wchar_t* ext)
20{
21 wchar_t *p = path;
22
23 if ( !path )
24 return;
25
26 if (drive && drive[0])
27 {
28 *p++ = drive[0];
29 *p++ = ':';
30 }
31 if (dir && dir[0])
32 {
33 size_t len = strlenW(dir);
34 memmove(p, dir, len * sizeof(wchar_t));
35 p += len;
36 if (p[-1] != '/' && p[-1] != '\\')
37 *p++ = '\\';
38 }
39 if (fname && fname[0])
40 {
41 size_t len = strlenW(fname);
42 memmove(p, fname, len * sizeof(wchar_t));
43 p += len;
44 }
45 if (ext && ext[0])
46 {
47 if (ext[0] != '.')
48 *p++ = '.';
49 strcpyW(p, ext);
50 }
51 else
52 *p = '\0';
53}
unsigned int dir
Definition: maze.c:112
static const WCHAR *const ext[]
Definition: module.c:53
GLfloat GLfloat p
Definition: glext.h:8902
GLenum GLsizei len
Definition: glext.h:6722
#define memmove(s1, s2, n)
Definition: mkisofs.h:881
#define strlenW(s)
Definition: unicode.h:34
#define strcpyW(d, s)
Definition: unicode.h:35
void _wmakepath(wchar_t *path, const wchar_t *drive, const wchar_t *dir, const wchar_t *fname, const wchar_t *ext)
Definition: wmakpath.c:19