11// Unicode support by Jim Park -- 08/22/2007
22
33#include <windows.h>
4- #include <stdio.h>
54#include "MyMath.h"
65#include "Math.h"
6+ #include "xprintf.h"
77
88// Converts String to Int (Dec, Hex) or Float value
99void StringToItem (TCHAR * & s , ExpressionItem * item , int options )
@@ -203,7 +203,7 @@ void itoa64(__int64 i, TCHAR *buffer)
203203
204204void FloatFormat (TCHAR * s , double value , int options )
205205{
206- TCHAR format [128 ];
206+ char format [32 ];
207207 int prec = options & 0xF ;
208208
209209 * s = 0 ;
@@ -219,22 +219,30 @@ void FloatFormat(TCHAR *s, double value, int options)
219219
220220 if (options & FF_NOEXP )
221221 {
222- _stprintf (format , _T ( "%%.%df" ) , prec );
222+ xsprintf (format , "%%.%df" , prec );
223223 }
224224 else if (options & FF_EXP )
225225 {
226- _stprintf (format , _T ( "%%.%de" ) , prec );
226+ xsprintf (format , "%%.%de" , prec );
227227 }
228228 else if (options & FF_LEXP )
229229 {
230- _stprintf (format , _T ( "%%.%dE" ) , prec );
230+ xsprintf (format , "%%.%dE" , prec );
231231 }
232232 else
233233 {
234- _stprintf (format , _T ( "%%.%dg" ) , prec );
234+ xsprintf (format , "%%.%dg" , prec );
235235 }
236236
237- _stprintf (s , format , value );
237+ #ifdef UNICODE
238+ char buffer [128 ];
239+ xsprintf (buffer , format , value );
240+ int cnt = strlen (buffer );
241+ for (int n = 0 ; n < cnt ; n ++ ) s [n ] = buffer [n ];
242+ s [cnt ] = 0 ;
243+ #else
244+ xsprintf (s , format , value );
245+ #endif
238246}
239247
240248int lstrcmpn (TCHAR * s1 , const TCHAR * s2 , int chars )
0 commit comments