Implemented _mbsupr.
diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c
index 2cedb28..9e7b29a 100644
--- a/dlls/msvcrt/mbcs.c
+++ b/dlls/msvcrt/mbcs.c
@@ -572,6 +572,28 @@
/*********************************************************************
+ * _mbsupr(MSVCRT.@)
+ */
+unsigned char * _mbsupr( unsigned char *string )
+{
+ unsigned char *p;
+
+ if(MSVCRT___mb_cur_max > 1)
+ {
+ FIXME("%s\n",string);
+ return string;
+ }
+ p = string;
+ while (*p)
+ {
+ *p= toupper(*p);
+ p++;
+ }
+ return string;
+}
+
+
+/*********************************************************************
* _mbsnbcpy(MSVCRT.@)
*/
unsigned char * _mbsnbcpy(unsigned char *dest,const unsigned char *src,MSVCRT_size_t n)
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index 5947622..8d3e3d5 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -392,7 +392,7 @@
@ cdecl _mbsstr(str str) strstr
@ stub _mbstok #(str str)
@ cdecl _mbstrlen(str) _mbstrlen
-@ stub _mbsupr #(str)
+@ cdecl _mbsupr(str) _mbsupr
@ cdecl _memccpy(ptr ptr long long) memccpy
@ forward -noimport _memicmp ntdll._memicmp
@ cdecl _mkdir(str) _mkdir