xref: /reactos/sdk/lib/crt/direct/chdrive.c (revision c2c66aff)
1 /*
2  * COPYRIGHT:   See COPYING in the top level directory
3  * PROJECT:     ReactOS system libraries
4  * FILE:        lib/sdk/crt/direct/chdrive.c
5  * PURPOSE:     Change the current drive.
6  * PROGRAMER:   WINE
7  * UPDATE HISTORY:
8  *              25/11/05: Added license header
9  */
10 
11 #include <precomp.h>
12 
13 /*
14  * @implemented
15  *
16  *    _chdrive (MSVCRT.@)
17  *
18  * Change the current drive.
19  *
20  * PARAMS
21  *  newdrive [I] Drive number to change to (1 = 'A', 2 = 'B', ...)
22  *
23  * RETURNS
24  *  Success: 0. The current drive is set to newdrive.
25  *  Failure: -1. errno indicates the error.
26  *
27  * NOTES
28  *  See SetCurrentDirectoryA.
29  */
_chdrive(int newdrive)30 int _chdrive(int newdrive)
31 {
32   WCHAR buffer[] = L"A:";
33 
34   buffer[0] += newdrive - 1;
35   if (!SetCurrentDirectoryW( buffer ))
36   {
37     _dosmaperr(GetLastError());
38     if (newdrive <= 0)
39     {
40       _set_errno(EACCES);
41     }
42     return -1;
43   }
44   return 0;
45 }
46