Advance over * argument for precision.
Honor precision argument for strings.

diff --git a/dlls/msvcrt/wcs.c b/dlls/msvcrt/wcs.c
index 9eb1f9a..d400f1e 100644
--- a/dlls/msvcrt/wcs.c
+++ b/dlls/msvcrt/wcs.c
@@ -309,6 +309,9 @@
     if( len < 0 )
         len = strlenW( str );
 
+    if (flags->Precision && flags->Precision < len)
+      len = flags->Precision;
+
     r = pf_fill( out, len, flags, 1 );
 
     if( r>=0 )
@@ -328,6 +331,9 @@
     if( len < 0 )
         len = strlen( str );
 
+    if (flags->Precision && flags->Precision < len)
+      len = flags->Precision;
+
     r = pf_fill( out, len, flags, 1 );
 
     if( r>=0 )
@@ -461,7 +467,10 @@
         {
             p++;
             if( *p == '*' )
+            {
                 flags.Precision = va_arg( valist, int );
+                p++;
+            }
             else while( isdigit(*p) )
             {
                 flags.Precision *= 10;