Fix string buffer issue with replay time display.
Unclean method of appending a string to a buffer would break with some compiler optimization settings.
This commit is contained in:
parent
5f6012802f
commit
5c3b6a2cc4
1 changed files with 17 additions and 10 deletions
|
@ -173,19 +173,26 @@ printTimeStr(char* pStrBuffer,double _Time, bool ShowDecimal=true)
|
||||||
{
|
{
|
||||||
if (_Time<0)
|
if (_Time<0)
|
||||||
_Time = 0;
|
_Time = 0;
|
||||||
unsigned int Time = (unsigned int) (_Time*10);
|
unsigned int Time = _Time*10;
|
||||||
int h = Time/36000;
|
unsigned int h = Time/36000;
|
||||||
int m = (Time % 36000)/600;
|
unsigned int m = (Time % 36000)/600;
|
||||||
int s = (Time % 600)/10;
|
unsigned int s = (Time % 600)/10;
|
||||||
int d = Time % 10;
|
unsigned int d = Time % 10;
|
||||||
|
|
||||||
|
int len;
|
||||||
if (h>0)
|
if (h>0)
|
||||||
sprintf(pStrBuffer,"%u:%02u",h,m);
|
len = sprintf(pStrBuffer,"%u:%02u:%02u",h,m,s);
|
||||||
else
|
else
|
||||||
sprintf(pStrBuffer,"%u",m);
|
len = sprintf(pStrBuffer,"%u:%02u",m,s);
|
||||||
|
|
||||||
|
if (len < 0)
|
||||||
|
{
|
||||||
|
*pStrBuffer = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (ShowDecimal)
|
if (ShowDecimal)
|
||||||
sprintf(pStrBuffer,"%s:%02u.%u",pStrBuffer,s,d);
|
sprintf(&pStrBuffer[len],".%u",d);
|
||||||
else
|
|
||||||
sprintf(pStrBuffer,"%s:%02u",pStrBuffer,s);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Start replay session
|
/** Start replay session
|
||||||
|
|
Loading…
Add table
Reference in a new issue