summaryrefslogtreecommitdiffstats
path: root/private/crt32/mbstring/mbsset.c
diff options
context:
space:
mode:
Diffstat (limited to 'private/crt32/mbstring/mbsset.c')
-rw-r--r--private/crt32/mbstring/mbsset.c76
1 files changed, 76 insertions, 0 deletions
diff --git a/private/crt32/mbstring/mbsset.c b/private/crt32/mbstring/mbsset.c
new file mode 100644
index 000000000..0884f0e6a
--- /dev/null
+++ b/private/crt32/mbstring/mbsset.c
@@ -0,0 +1,76 @@
+/***
+*mbsset.asm - Sets all charcaters of string to given character (MBCS)
+*
+* Copyright (c) 1985-1992, Microsoft Corporation. All rights reserved.
+*
+*Purpose:
+* Sets all charcaters of string to given character (MBCS)
+*
+*Revision History:
+* 11-19-92 KRS Ported from 16-bit sources.
+* 08-20-93 CFW Change short params to int for 32-bit tree.
+*
+*******************************************************************************/
+
+#ifdef _MBCS
+#include <cruntime.h>
+#include <mbdata.h>
+#include <mbctype.h>
+#include <mbstring.h>
+
+/***
+* mbsset - Sets all charcaters of string to given character (MBCS)
+*
+*Purpose:
+* Sets all of characters in string (except the terminating '/0'
+* character) equal to the supplied character. Handles MBCS
+* chars correctly.
+*
+*Entry:
+* unsigned char *string = string to modify
+* unsigned int val = value to fill string with
+*
+*Exit:
+* returns string = now filled with the specified char
+*
+*Uses:
+*
+*Exceptions:
+*
+*******************************************************************************/
+
+unsigned char * _CRTAPI1 _mbsset( string, val )
+unsigned char *string;
+unsigned int val;
+{
+ unsigned char *start = string;
+ unsigned char highval, lowval;
+
+ if (highval = (unsigned char) (val>>8)) {
+
+ /* 2-byte value */
+
+ lowval = (unsigned char)(val & 0x00ff);
+
+ while (*string) {
+
+ *string++ = highval;
+ if (*string)
+ *string++ = lowval;
+ else
+ /* don't orphan lead byte */
+ string[-1] = ' ';
+ }
+
+ }
+
+ else {
+ /* single byte value */
+
+ while (*string)
+ *string++ = (unsigned char)val;
+ }
+
+ return(start);
+}
+#endif /* _MBCS */