6830367dfc8491cb35671e25ca0b2700a7f2fc72
[reactos.git] / reactos / lib / sdk / crt / stdlib / mbtowc.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS system libraries
4 * FILE: lib/crt/??????
5 * PURPOSE: Unknown
6 * PROGRAMER: Unknown
7 * UPDATE HISTORY:
8 * 25/11/05: Added license header
9 */
10
11 #include <precomp.h>
12
13
14 /*
15 * @implemented
16 */
17
18 int mbtowc (wchar_t *charptr, const char *address, size_t number)
19 {
20 int bytes;
21
22 if (address == 0)
23 return 0;
24
25 if ((bytes = mblen (address, number)) < 0)
26 return bytes;
27
28 if (charptr) {
29 switch (bytes) {
30 case 0:
31 if (number > 0)
32 *charptr = (wchar_t) '\0';
33 break;
34 case 1:
35 *charptr = (wchar_t) ((unsigned char) address[0]);
36 break;
37 case 2:
38 *charptr = (wchar_t) (((unsigned char) address[0] << 8)
39 | (unsigned char) address[1]);
40 break;
41 }
42 }
43
44 return bytes;
45 }