branch update for HEAD-2003021201
[reactos.git] / lib / msvcrt / mbstring / mbsnset.c
1 /*
2  * COPYRIGHT:   See COPYING in the top level directory
3  * PROJECT:     ReactOS system libraries
4  * FILE:        lib/msvcrt/mbstring/mbsnset.c 
5  * PURPOSE:     Fills a string with a multibyte character
6  * PROGRAMER:   Boudewijn Dekker
7  * UPDATE HISTORY:
8  *              12/04/99: Created
9  */
10 #include <msvcrt/mbstring.h>
11
12 size_t _mbclen2(const unsigned int s);
13
14 unsigned char * _mbsnset(unsigned char *src, unsigned int val, size_t count)
15 {
16         unsigned char *char_src = (unsigned char *)src;
17         unsigned short *short_src = (unsigned short *)src;
18
19         if ( _mbclen2(val) == 1 ) {
20         
21                 while(count > 0) {
22                         *char_src = val;
23                         char_src++;
24                         count--;
25                 }
26                 *char_src = 0;
27         }
28         else {
29                 while(count > 0) {
30                         *short_src = val;
31                         short_src++;
32                         count-=2;
33                 }
34                 *short_src = 0;
35         }
36
37         return src;
38 }
39
40 unsigned char * _mbsnbset(unsigned char *src, unsigned int val, size_t count)
41 {
42         unsigned char *char_src = (unsigned char *)src;
43         unsigned short *short_src = (unsigned short *)src;
44
45         if ( _mbclen2(val) == 1 ) {
46         
47                 while(count > 0) {
48                         *char_src = val;
49                         char_src++;
50                         count--;
51                 }
52                 *char_src = 0;
53         }
54         else {
55                 while(count > 0) {
56                         *short_src = val;
57                         short_src++;
58                         count-=2;
59                 }
60                 *short_src = 0;
61         }
62
63         return src;
64 }