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 */ 19 void _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 } 54