From 1e5777edf56976799bee0cdbd167a7dd8f76d1ce Mon Sep 17 00:00:00 2001 From: Aric Stewart <aric@codeweavers.com> Date: Thu, 20 Sep 2001 19:05:58 +0000 Subject: [PATCH] The behavior for wsprintfA is different that for wsprintf16 in how it handles NULLs being passed as character parameters. --- dlls/user/wsprintf.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/dlls/user/wsprintf.c b/dlls/user/wsprintf.c index 1911e0cf0ee..ddf2f1351ba 100644 --- a/dlls/user/wsprintf.c +++ b/dlls/user/wsprintf.c @@ -312,6 +312,7 @@ static INT16 wvsnprintf16( LPSTR buffer, UINT16 maxlen, LPCSTR spec, case WPR_WCHAR: /* No Unicode in Win16 */ case WPR_CHAR: *p= cur_arg.char_view; + /* wsprintf16 (unlike wsprintf) ignores null characters */ if (*p != '\0') p++; else if (format.width > 1) *p++ = ' '; else len = 0; @@ -400,16 +401,10 @@ INT WINAPI wvsnprintfA( LPSTR buffer, UINT maxlen, LPCSTR spec, va_list args ) switch(format.type) { case WPR_WCHAR: - *p = argData.wchar_view; - if (*p != '\0') p++; - else if (format.width > 1) *p++ = ' '; - else len = 0; + *p++ = argData.wchar_view; break; case WPR_CHAR: - *p = argData.char_view; - if (*p != '\0') p++; - else if (format.width > 1) *p++ = ' '; - else len = 0; + *p++ = argData.char_view; break; case WPR_STRING: memcpy( p, argData.lpcstr_view, len ); @@ -501,16 +496,10 @@ INT WINAPI wvsnprintfW( LPWSTR buffer, UINT maxlen, LPCWSTR spec, va_list args ) switch(format.type) { case WPR_WCHAR: - *p = argData.wchar_view; - if (*p != '\0') p++; - else if (format.width > 1) *p++ = ' '; - else len = 0; + *p++ = argData.wchar_view; break; case WPR_CHAR: - *p = argData.char_view; - if (*p != '\0') p++; - else if (format.width > 1) *p++ = ' '; - else len = 0; + *p++ = argData.char_view; break; case WPR_STRING: { -- GitLab