Fix by spx for the problem where r538 caused some backwards compatibility issues.

This commit is contained in:
jsmorley 2010-09-15 10:05:09 +00:00
parent d9a89ccdec
commit 6fe8fd0aa7
5 changed files with 18 additions and 8 deletions

View File

@ -28,8 +28,8 @@ LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,3,0,537
PRODUCTVERSION 1,3,0,537
FILEVERSION 1,3,0,539
PRODUCTVERSION 1,3,0,539
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -45,12 +45,12 @@ BEGIN
BLOCK "040b04b0"
BEGIN
VALUE "FileDescription", "Rainmeter - A Customizable Resource Meter"
VALUE "FileVersion", "1, 3, 0, 537"
VALUE "FileVersion", "1, 3, 0, 539"
VALUE "InternalName", "Rainmeter"
VALUE "LegalCopyright", "Copyright (C) 2010 - Rainy"
VALUE "OriginalFilename", "Rainmeter.exe"
VALUE "ProductName", "Rainmeter"
VALUE "ProductVersion", "1, 3, 0, 537"
VALUE "ProductVersion", "1, 3, 0, 539"
END
END
BLOCK "VarFileInfo"

View File

@ -549,7 +549,7 @@ bool CConfigParser::ReplaceMeasures(std::wstring& result)
CMeasure* measure = GetMeasure(var);
if (measure)
{
std::wstring value = measure->GetStringValue(false, 1, 5, false);
std::wstring value = measure->GetStringValue(false, 1, -1, false);
// Measure found, replace it with the value
result.replace(result.begin() + pos, result.begin() + end + 1, value);

View File

@ -500,7 +500,7 @@ double CMeasure::GetValueRange()
**
** autoScale If true, scale the value automatically to some sensible range.
** scale The scale to use if autoScale is false.
** decimals Number of decimals used in the value.
** decimals Number of decimals used in the value. If -1, get rid of ".00000" for dynamic variables.
** percentual Return the value as % from the maximum value.
*/
const WCHAR* CMeasure::GetStringValue(bool autoScale, double scale, int decimals, bool percentual)
@ -524,6 +524,16 @@ const WCHAR* CMeasure::GetStringValue(bool autoScale, double scale, int decimals
val += (val >= 0) ? 0.5 : -0.5;
swprintf(buffer, L"%lli", (LONGLONG)val);
}
else if (decimals == -1)
{
swprintf(buffer, L"%.5f", GetValue() * (1.0 / scale));
size_t len = wcslen(buffer);
if (len >= 6 && wcscmp(buffer + len - 6, L".00000") == 0)
{
buffer[len - 6] = L'\0';
}
}
else
{
swprintf(format, L"%%.%if", decimals);

View File

@ -2619,7 +2619,7 @@ std::wstring CRainmeter::ParseCommand(const WCHAR* command, CMeterWindow* meterW
{
if (wcsicmp((*iter)->GetName(), measureName.c_str()) == 0)
{
std::wstring value = (*iter)->GetStringValue(false, 1, 5, false);
std::wstring value = (*iter)->GetStringValue(false, 1, -1, false);
strCommand.replace(start, (end - start) + 1, value);
start += value.length();
break;

View File

@ -1,3 +1,3 @@
#pragma once
const int revision_number = 537;
const int revision_number = 539;
const bool revision_beta = true;