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