@@ -14,6 +14,7 @@ void goodTest0()
1414 len = 9 ;
1515 for (wchar_t wc; (ret = mbtowc (&wc, ptr, len)) > 0 ; len-=ret) { // GOOD
1616 wprintf (L" %lc" , wc);
17+ ptr += ret;
1718 }
1819}
1920void goodTest1 (const char * ptr)
@@ -23,6 +24,7 @@ void goodTest1(const char* ptr)
2324 len = strlen (ptr);
2425 for (wchar_t wc; (ret = mbtowc (&wc, ptr, len)) > 0 ; len-=ret) { // GOOD
2526 wprintf (L" %lc" , wc);
27+ ptr += ret;
2628 }
2729}
2830void goodTest2 (char * ptr)
@@ -32,6 +34,7 @@ void goodTest2(char* ptr)
3234 int len = 9 ;
3335 for (wchar_t wc; (ret = mbtowc (&wc, ptr, 16 )) > 0 ; len-=ret) { // GOOD
3436 wprintf (L" %lc" , wc);
37+ ptr += ret;
3538 }
3639}
3740
@@ -42,6 +45,7 @@ void goodTest3(const char* ptr)
4245 len = strlen (ptr);
4346 for (wchar_t wc; (ret = mbtowc (&wc, ptr, MB_CUR_MAX)) > 0 ; len-=ret) { // GOOD
4447 wprintf (L" %lc" , wc);
48+ ptr += ret;
4549 }
4650}
4751void goodTest4 (const char * ptr)
@@ -51,6 +55,7 @@ void goodTest4(const char* ptr)
5155 len = strlen (ptr);
5256 for (wchar_t wc; (ret = mbtowc (&wc, ptr, MB_LEN_MAX)) > 0 ; len-=ret) { // GOOD
5357 wprintf (L" %lc" , wc);
58+ ptr += ret;
5459 }
5560}
5661void badTest1 (const char * ptr)
@@ -60,6 +65,7 @@ void badTest1(const char* ptr)
6065 len = strlen (ptr);
6166 for (wchar_t wc; (ret = mbtowc (&wc, ptr, 4 )) > 0 ; len-=ret) { // BAD:we can get unpredictable results
6267 wprintf (L" %lc" , wc);
68+ ptr += ret;
6369 }
6470}
6571void badTest2 (const char * ptr)
@@ -69,6 +75,7 @@ void badTest2(const char* ptr)
6975 len = strlen (ptr);
7076 for (wchar_t wc; (ret = mbtowc (&wc, ptr, sizeof (wchar_t ))) > 0 ; len-=ret) { // BAD:we can get unpredictable results
7177 wprintf (L" %lc" , wc);
78+ ptr += ret;
7279 }
7380}
7481
@@ -89,11 +96,12 @@ void goodTest5(const char* ptr,wchar_t *wc,int wc_len)
8996 }
9097}
9198
92- void badTest3 (const char * ptr,wchar_t *wc, int wc_len)
99+ void badTest3 (const char * ptr,int wc_len)
93100{
94101 int ret;
95102 int len;
96103 len = wc_len;
104+ wchar_t *wc = new wchar_t [wc_len];
97105 while (*ptr && len > 0 ) {
98106 ret = mbtowc (wc, ptr, MB_CUR_MAX); // BAD
99107 if (ret <0 )
@@ -105,11 +113,12 @@ void badTest3(const char* ptr,wchar_t *wc,int wc_len)
105113 wc++;
106114 }
107115}
108- void badTest4 (const char * ptr,wchar_t *wc, int wc_len)
116+ void badTest4 (const char * ptr,int wc_len)
109117{
110118 int ret;
111119 int len;
112120 len = wc_len;
121+ wchar_t *wc = new wchar_t [wc_len];
113122 while (*ptr && len > 0 ) {
114123 ret = mbtowc (wc, ptr, 16 ); // BAD
115124 if (ret <0 )
@@ -121,11 +130,12 @@ void badTest4(const char* ptr,wchar_t *wc,int wc_len)
121130 wc++;
122131 }
123132}
124- void badTest5 (const char * ptr,wchar_t *wc, int wc_len)
133+ void badTest5 (const char * ptr,int wc_len)
125134{
126135 int ret;
127136 int len;
128137 len = wc_len;
138+ wchar_t *wc = new wchar_t [wc_len];
129139 while (*ptr && len > 0 ) {
130140 ret = mbtowc (wc, ptr, sizeof (wchar_t )); // BAD
131141 if (ret <0 )
@@ -138,11 +148,12 @@ void badTest5(const char* ptr,wchar_t *wc,int wc_len)
138148 }
139149}
140150
141- void badTest6 (const char * ptr,wchar_t *wc, int wc_len)
151+ void badTest6 (const char * ptr,int wc_len)
142152{
143153 int ret;
144154 int len;
145155 len = wc_len;
156+ wchar_t *wc = new wchar_t [wc_len];
146157 while (*ptr && wc_len > 0 ) {
147158 ret = mbtowc (wc, ptr, wc_len); // BAD
148159 if (ret <0 )
@@ -160,11 +171,12 @@ void badTest6(const char* ptr,wchar_t *wc,int wc_len)
160171 ptr+=ret;
161172 }
162173}
163- void badTest7 (const char * ptr,wchar_t *wc, int wc_len)
174+ void badTest7 (const char * ptr,int wc_len)
164175{
165176 int ret;
166177 int len;
167178 len = wc_len;
179+ wchar_t *wc = new wchar_t [wc_len];
168180 while (*ptr && wc_len > 0 ) {
169181 ret = mbtowc (wc, ptr, len); // BAD
170182 if (ret <0 )
0 commit comments