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