Pr feedback

This commit is contained in:
Pepe Rivera 2019-04-11 11:22:19 -07:00
commit ce347e6426
4 changed files with 159 additions and 159 deletions

View file

@ -29,9 +29,8 @@ unordered_map<wstring, wstring> CCalcEngine::s_engineStrings;
void CCalcEngine::LoadEngineStrings(CalculationManager::IResourceProvider& resourceProvider) void CCalcEngine::LoadEngineStrings(CalculationManager::IResourceProvider& resourceProvider)
{ {
for (size_t i = 0; i < g_sids.size(); i++) for (const auto& locKey : g_sids)
{ {
auto locKey = g_sids[i];
auto locString = resourceProvider.GetCEngineString(locKey); auto locString = resourceProvider.GetCEngineString(locKey);
if (!locString.empty()) if (!locString.empty())
{ {

View file

@ -861,7 +861,7 @@ void CCalcEngine::DisplayAnnounceBinaryOperator()
// Unary operator Function Name table Element // Unary operator Function Name table Element
// since unary operators button names aren't exactly friendly for history purpose, // since unary operators button names aren't exactly friendly for history purpose,
// we have this separate table to get its localized name and for its Inv function if it exists. // we have this separate table to get its localized name and for its Inv function if it exists.
typedef struct struct FunctionNameElement
{ {
wstring degreeString; // Used by default if there are no rad or grad specific strings. wstring degreeString; // Used by default if there are no rad or grad specific strings.
wstring inverseDegreeString; // Will fall back to degreeString if empty wstring inverseDegreeString; // Will fall back to degreeString if empty
@ -873,10 +873,10 @@ typedef struct
wstring inverseGradString; // Will fall back to gradString if empty wstring inverseGradString; // Will fall back to gradString if empty
bool hasAngleStrings = ((!radString.empty()) || (!inverseRadString.empty()) || (!gradString.empty()) || (!inverseGradString.empty())); bool hasAngleStrings = ((!radString.empty()) || (!inverseRadString.empty()) || (!gradString.empty()) || (!inverseGradString.empty()));
} UFNE; };
// Table for each unary operator // Table for each unary operator
static const std::unordered_map<int, UFNE> unaryOperatorStringTable = static const std::unordered_map<int, FunctionNameElement> unaryOperatorStringTable =
{ {
{ IDC_CHOP, { L"", SIDS_FRAC} }, { IDC_CHOP, { L"", SIDS_FRAC} },
@ -902,51 +902,52 @@ wstring_view CCalcEngine::OpCodeToUnaryString(int nOpCode, bool fInv, ANGLE_TYPE
{ {
// Try to lookup the ID in the UFNE table // Try to lookup the ID in the UFNE table
wstring ids = L""; wstring ids = L"";
auto pair = unaryOperatorStringTable.find(nOpCode);
if (pair != unaryOperatorStringTable.end()) if (auto pair = unaryOperatorStringTable.find(nOpCode); pair != unaryOperatorStringTable.end())
{ {
if (!pair->second.hasAngleStrings || ANGLE_DEG == angletype) const FunctionNameElement& element = pair->second;
if (!element.hasAngleStrings || ANGLE_DEG == angletype)
{ {
if (fInv) if (fInv)
{ {
ids = pair->second.inverseDegreeString; ids = element.inverseDegreeString;
} }
if (ids.empty()) if (ids.empty())
{ {
ids = pair->second.degreeString; ids = element.degreeString;
} }
} }
else if (ANGLE_RAD == angletype) else if (ANGLE_RAD == angletype)
{ {
if (fInv) if (fInv)
{ {
ids = pair->second.inverseRadString; ids = element.inverseRadString;
} }
if (ids.empty()) if (ids.empty())
{ {
ids = pair->second.radString; ids = element.radString;
} }
} }
else if (ANGLE_GRAD == angletype) else if (ANGLE_GRAD == angletype)
{ {
if (fInv) if (fInv)
{ {
ids = pair->second.inverseGradString; ids = element.inverseGradString;
} }
if (ids.empty()) if (ids.empty())
{ {
ids = pair->second.gradString; ids = element.gradString;
} }
} }
} }
// If we didn't find an ID in the table, use the op code.
if (!ids.empty()) if (!ids.empty())
{ {
return GetString(ids); return GetString(ids);
} }
// If we didn't find an ID in the table, use the op code.
return OpCodeToString(nOpCode); return OpCodeToString(nOpCode);
} }

View file

@ -13,157 +13,157 @@
* Created: 13-Feb-2008 * Created: 13-Feb-2008
* *
\****************************************************************************/ \****************************************************************************/
#define IDS_ERRORS_FIRST 99 inline constexpr auto IDS_ERRORS_FIRST = 99;
// This is the list of error strings corresponding to SCERR_DIVIDEZERO.. // This is the list of error strings corresponding to SCERR_DIVIDEZERO..
#define IDS_DIVBYZERO IDS_ERRORS_FIRST inline constexpr auto IDS_DIVBYZERO = IDS_ERRORS_FIRST;
#define IDS_DOMAIN IDS_ERRORS_FIRST+1 inline constexpr auto IDS_DOMAIN = IDS_ERRORS_FIRST + 1;
#define IDS_UNDEFINED IDS_ERRORS_FIRST+2 inline constexpr auto IDS_UNDEFINED = IDS_ERRORS_FIRST + 2;
#define IDS_POS_INFINITY IDS_ERRORS_FIRST+3 inline constexpr auto IDS_POS_INFINITY = IDS_ERRORS_FIRST + 3;
#define IDS_NEG_INFINITY IDS_ERRORS_FIRST+4 inline constexpr auto IDS_NEG_INFINITY = IDS_ERRORS_FIRST + 4;
#define IDS_NOMEM IDS_ERRORS_FIRST+6 inline constexpr auto IDS_NOMEM = IDS_ERRORS_FIRST + 6;
#define IDS_TOOMANY IDS_ERRORS_FIRST+7 inline constexpr auto IDS_TOOMANY = IDS_ERRORS_FIRST + 7;
#define IDS_OVERFLOW IDS_ERRORS_FIRST+8 inline constexpr auto IDS_OVERFLOW = IDS_ERRORS_FIRST + 8;
#define IDS_NORESULT IDS_ERRORS_FIRST+9 inline constexpr auto IDS_NORESULT = IDS_ERRORS_FIRST + 9;
#define IDS_INSUFFICIENT_DATA IDS_ERRORS_FIRST+10 inline constexpr auto IDS_INSUFFICIENT_DATA = IDS_ERRORS_FIRST + 10;
#define CSTRINGSENGMAX IDS_INSUFFICIENT_DATA+1 inline constexpr auto CSTRINGSENGMAX = IDS_INSUFFICIENT_DATA + 1;
// Arithmetic expression evaluator error strings // Arithmetic expression evaluator error strings
#define IDS_ERR_UNK_CH CSTRINGSENGMAX+1 inline constexpr auto IDS_ERR_UNK_CH = CSTRINGSENGMAX + 1;
#define IDS_ERR_UNK_FN CSTRINGSENGMAX+2 inline constexpr auto IDS_ERR_UNK_FN = CSTRINGSENGMAX + 2;
#define IDS_ERR_UNEX_NUM CSTRINGSENGMAX+3 inline constexpr auto IDS_ERR_UNEX_NUM = CSTRINGSENGMAX + 3;
#define IDS_ERR_UNEX_CH CSTRINGSENGMAX+4 inline constexpr auto IDS_ERR_UNEX_CH = CSTRINGSENGMAX + 4;
#define IDS_ERR_UNEX_SZ CSTRINGSENGMAX+5 inline constexpr auto IDS_ERR_UNEX_SZ = CSTRINGSENGMAX + 5;
#define IDS_ERR_MISMATCH_CLOSE CSTRINGSENGMAX+6 inline constexpr auto IDS_ERR_MISMATCH_CLOSE = CSTRINGSENGMAX + 6;
#define IDS_ERR_UNEX_END CSTRINGSENGMAX+7 inline constexpr auto IDS_ERR_UNEX_END = CSTRINGSENGMAX + 7;
#define IDS_ERR_SG_INV_ERROR CSTRINGSENGMAX+8 inline constexpr auto IDS_ERR_SG_INV_ERROR = CSTRINGSENGMAX + 8;
#define IDS_ERR_INPUT_OVERFLOW CSTRINGSENGMAX+9 inline constexpr auto IDS_ERR_INPUT_OVERFLOW = CSTRINGSENGMAX + 9;
#define IDS_ERR_OUTPUT_OVERFLOW CSTRINGSENGMAX+10 inline constexpr auto IDS_ERR_OUTPUT_OVERFLOW = CSTRINGSENGMAX + 10;
// Resource keys for CEngineStrings.resw // Resource keys for CEngineStrings.resw
#define SIDS_PLUS_MINUS L"0" inline constexpr auto SIDS_PLUS_MINUS = L"0";
#define SIDS_CLEAR L"1" inline constexpr auto SIDS_CLEAR = L"1";
#define SIDS_CE L"2" inline constexpr auto SIDS_CE = L"2";
#define SIDS_BACKSPACE L"3" inline constexpr auto SIDS_BACKSPACE = L"3";
#define SIDS_DECIMAL_SEPARATOR L"4" inline constexpr auto SIDS_DECIMAL_SEPARATOR = L"4";
#define SIDS_EMPTY_STRING L"5" inline constexpr auto SIDS_EMPTY_STRING = L"5";
#define SIDS_AND L"6" inline constexpr auto SIDS_AND = L"6";
#define SIDS_OR L"7" inline constexpr auto SIDS_OR = L"7";
#define SIDS_XOR L"8" inline constexpr auto SIDS_XOR = L"8";
#define SIDS_LSH L"9" inline constexpr auto SIDS_LSH = L"9";
#define SIDS_RSH L"10" inline constexpr auto SIDS_RSH = L"10";
#define SIDS_DIVIDE L"11" inline constexpr auto SIDS_DIVIDE = L"11";
#define SIDS_MULTIPLY L"12" inline constexpr auto SIDS_MULTIPLY = L"12";
#define SIDS_PLUS L"13" inline constexpr auto SIDS_PLUS = L"13";
#define SIDS_MINUS L"14" inline constexpr auto SIDS_MINUS = L"14";
#define SIDS_MOD L"15" inline constexpr auto SIDS_MOD = L"15";
#define SIDS_YROOT L"16" inline constexpr auto SIDS_YROOT = L"16";
#define SIDS_POW_HAT L"17" inline constexpr auto SIDS_POW_HAT = L"17";
#define SIDS_INT L"18" inline constexpr auto SIDS_INT = L"18";
#define SIDS_ROL L"19" inline constexpr auto SIDS_ROL = L"19";
#define SIDS_ROR L"20" inline constexpr auto SIDS_ROR = L"20";
#define SIDS_NOT L"21" inline constexpr auto SIDS_NOT = L"21";
#define SIDS_SIN L"22" inline constexpr auto SIDS_SIN = L"22";
#define SIDS_COS L"23" inline constexpr auto SIDS_COS = L"23";
#define SIDS_TAN L"24" inline constexpr auto SIDS_TAN = L"24";
#define SIDS_SINH L"25" inline constexpr auto SIDS_SINH = L"25";
#define SIDS_COSH L"26" inline constexpr auto SIDS_COSH = L"26";
#define SIDS_TANH L"27" inline constexpr auto SIDS_TANH = L"27";
#define SIDS_LN L"28" inline constexpr auto SIDS_LN = L"28";
#define SIDS_LOG L"29" inline constexpr auto SIDS_LOG = L"29";
#define SIDS_SQRT L"30" inline constexpr auto SIDS_SQRT = L"30";
#define SIDS_XPOW2 L"31" inline constexpr auto SIDS_XPOW2 = L"31";
#define SIDS_XPOW3 L"32" inline constexpr auto SIDS_XPOW3 = L"32";
#define SIDS_NFACTORIAL L"33" inline constexpr auto SIDS_NFACTORIAL = L"33";
#define SIDS_RECIPROCAL L"34" inline constexpr auto SIDS_RECIPROCAL = L"34";
#define SIDS_DMS L"35" inline constexpr auto SIDS_DMS = L"35";
#define SIDS_CUBEROOT L"36" inline constexpr auto SIDS_CUBEROOT = L"36";
#define SIDS_POWTEN L"37" inline constexpr auto SIDS_POWTEN = L"37";
#define SIDS_PERCENT L"38" inline constexpr auto SIDS_PERCENT = L"38";
#define SIDS_SCIENTIFIC_NOTATION L"39" inline constexpr auto SIDS_SCIENTIFIC_NOTATION = L"39";
#define SIDS_PI L"40" inline constexpr auto SIDS_PI = L"40";
#define SIDS_EQUAL L"41" inline constexpr auto SIDS_EQUAL = L"41";
#define SIDS_MC L"42" inline constexpr auto SIDS_MC = L"42";
#define SIDS_MR L"43" inline constexpr auto SIDS_MR = L"43";
#define SIDS_MS L"44" inline constexpr auto SIDS_MS = L"44";
#define SIDS_MPLUS L"45" inline constexpr auto SIDS_MPLUS = L"45";
#define SIDS_MMINUS L"46" inline constexpr auto SIDS_MMINUS = L"46";
#define SIDS_EXP L"47" inline constexpr auto SIDS_EXP = L"47";
#define SIDS_OPEN_PAREN L"48" inline constexpr auto SIDS_OPEN_PAREN = L"48";
#define SIDS_CLOSE_PAREN L"49" inline constexpr auto SIDS_CLOSE_PAREN = L"49";
#define SIDS_0 L"50" inline constexpr auto SIDS_0 = L"50";
#define SIDS_1 L"51" inline constexpr auto SIDS_1 = L"51";
#define SIDS_2 L"52" inline constexpr auto SIDS_2 = L"52";
#define SIDS_3 L"53" inline constexpr auto SIDS_3 = L"53";
#define SIDS_4 L"54" inline constexpr auto SIDS_4 = L"54";
#define SIDS_5 L"55" inline constexpr auto SIDS_5 = L"55";
#define SIDS_6 L"56" inline constexpr auto SIDS_6 = L"56";
#define SIDS_7 L"57" inline constexpr auto SIDS_7 = L"57";
#define SIDS_8 L"58" inline constexpr auto SIDS_8 = L"58";
#define SIDS_9 L"59" inline constexpr auto SIDS_9 = L"59";
#define SIDS_A L"60" inline constexpr auto SIDS_A = L"60";
#define SIDS_B L"61" inline constexpr auto SIDS_B = L"61";
#define SIDS_C L"62" inline constexpr auto SIDS_C = L"62";
#define SIDS_D L"63" inline constexpr auto SIDS_D = L"63";
#define SIDS_E L"64" inline constexpr auto SIDS_E = L"64";
#define SIDS_F L"65" inline constexpr auto SIDS_F = L"65";
#define SIDS_FRAC L"66" inline constexpr auto SIDS_FRAC = L"66";
#define SIDS_SIND L"67" inline constexpr auto SIDS_SIND = L"67";
#define SIDS_COSD L"68" inline constexpr auto SIDS_COSD = L"68";
#define SIDS_TAND L"69" inline constexpr auto SIDS_TAND = L"69";
#define SIDS_ASIND L"70" inline constexpr auto SIDS_ASIND = L"70";
#define SIDS_ACOSD L"71" inline constexpr auto SIDS_ACOSD = L"71";
#define SIDS_ATAND L"72" inline constexpr auto SIDS_ATAND = L"72";
#define SIDS_SINR L"73" inline constexpr auto SIDS_SINR = L"73";
#define SIDS_COSR L"74" inline constexpr auto SIDS_COSR = L"74";
#define SIDS_TANR L"75" inline constexpr auto SIDS_TANR = L"75";
#define SIDS_ASINR L"76" inline constexpr auto SIDS_ASINR = L"76";
#define SIDS_ACOSR L"77" inline constexpr auto SIDS_ACOSR = L"77";
#define SIDS_ATANR L"78" inline constexpr auto SIDS_ATANR = L"78";
#define SIDS_SING L"79" inline constexpr auto SIDS_SING = L"79";
#define SIDS_COSG L"80" inline constexpr auto SIDS_COSG = L"80";
#define SIDS_TANG L"81" inline constexpr auto SIDS_TANG = L"81";
#define SIDS_ASING L"82" inline constexpr auto SIDS_ASING = L"82";
#define SIDS_ACOSG L"83" inline constexpr auto SIDS_ACOSG = L"83";
#define SIDS_ATANG L"84" inline constexpr auto SIDS_ATANG = L"84";
#define SIDS_ASINH L"85" inline constexpr auto SIDS_ASINH = L"85";
#define SIDS_ACOSH L"86" inline constexpr auto SIDS_ACOSH = L"86";
#define SIDS_ATANH L"87" inline constexpr auto SIDS_ATANH = L"87";
#define SIDS_POWE L"88" inline constexpr auto SIDS_POWE = L"88";
#define SIDS_POWTEN2 L"89" inline constexpr auto SIDS_POWTEN2 = L"89";
#define SIDS_SQRT2 L"90" inline constexpr auto SIDS_SQRT2 = L"90";
#define SIDS_SQR L"91" inline constexpr auto SIDS_SQR = L"91";
#define SIDS_CUBE L"92" inline constexpr auto SIDS_CUBE = L"92";
#define SIDS_CUBERT L"93" inline constexpr auto SIDS_CUBERT = L"93";
#define SIDS_FACT L"94" inline constexpr auto SIDS_FACT = L"94";
#define SIDS_RECIPROC L"95" inline constexpr auto SIDS_RECIPROC = L"95";
#define SIDS_DEGREES L"96" inline constexpr auto SIDS_DEGREES = L"96";
#define SIDS_NEGATE L"97" inline constexpr auto SIDS_NEGATE = L"97";
#define SIDS_RSH2 L"98" inline constexpr auto SIDS_RSH2 = L"98";
#define SIDS_DIVIDEBYZERO L"99" inline constexpr auto SIDS_DIVIDEBYZERO = L"99";
#define SIDS_DOMAIN L"100" inline constexpr auto SIDS_DOMAIN = L"100";
#define SIDS_UNDEFINED L"101" inline constexpr auto SIDS_UNDEFINED = L"101";
#define SIDS_POS_INFINITY L"102" inline constexpr auto SIDS_POS_INFINITY = L"102";
#define SIDS_NEG_INFINITY L"103" inline constexpr auto SIDS_NEG_INFINITY = L"103";
#define SIDS_ABORTED L"104" inline constexpr auto SIDS_ABORTED = L"104";
#define SIDS_NOMEM L"105" inline constexpr auto SIDS_NOMEM = L"105";
#define SIDS_TOOMANY L"106" inline constexpr auto SIDS_TOOMANY = L"106";
#define SIDS_OVERFLOW L"107" inline constexpr auto SIDS_OVERFLOW = L"107";
#define SIDS_NORESULT L"108" inline constexpr auto SIDS_NORESULT = L"108";
#define SIDS_INSUFFICIENT_DATA L"109" inline constexpr auto SIDS_INSUFFICIENT_DATA = L"109";
// 110 is skipped by CSTRINGSENGMAX // 110 is skipped by CSTRINGSENGMAX
#define SIDS_ERR_UNK_CH L"111" inline constexpr auto SIDS_ERR_UNK_CH = L"111";
#define SIDS_ERR_UNK_FN L"112" inline constexpr auto SIDS_ERR_UNK_FN = L"112";
#define SIDS_ERR_UNEX_NUM L"113" inline constexpr auto SIDS_ERR_UNEX_NUM = L"113";
#define SIDS_ERR_UNEX_CH L"114" inline constexpr auto SIDS_ERR_UNEX_CH = L"114";
#define SIDS_ERR_UNEX_SZ L"115" inline constexpr auto SIDS_ERR_UNEX_SZ = L"115";
#define SIDS_ERR_MISMATCH_CLOSE L"116" inline constexpr auto SIDS_ERR_MISMATCH_CLOSE = L"116";
#define SIDS_ERR_UNEX_END L"117" inline constexpr auto SIDS_ERR_UNEX_END = L"117";
#define SIDS_ERR_SG_INV_ERROR L"118" inline constexpr auto SIDS_ERR_SG_INV_ERROR = L"118";
#define SIDS_ERR_INPUT_OVERFLOW L"119" inline constexpr auto SIDS_ERR_INPUT_OVERFLOW = L"119";
#define SIDS_ERR_OUTPUT_OVERFLOW L"120" inline constexpr auto SIDS_ERR_OUTPUT_OVERFLOW = L"120";
// Include the resource key ID from above into this vector to load it into memory for the engine to use // Include the resource key ID from above into this vector to load it into memory for the engine to use
__declspec(selectany) std::vector<std::wstring> g_sids = __declspec(selectany) std::vector<std::wstring> g_sids =

View file

@ -1,4 +1,4 @@
// Copyright (c) Microsoft Corporation. All rights reserved. // Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. // Licensed under the MIT License.
#include "pch.h" #include "pch.h"
@ -394,7 +394,7 @@ String^ UnitConverterViewModel::ConvertToLocalizedString(const std::wstring& str
void UnitConverterViewModel::DisplayPasteError() void UnitConverterViewModel::DisplayPasteError()
{ {
String^ errorMsg = AppResourceProvider::GetInstance().GetCEngineString(SIDS_DOMAIN); /*SIDS_DOMAIN is for "invalid input"*/ String^ errorMsg = AppResourceProvider::GetInstance().GetCEngineString(ref new String (SIDS_DOMAIN)); /*SIDS_DOMAIN is for "invalid input"*/
Value1 = errorMsg; Value1 = errorMsg;
Value2 = errorMsg; Value2 = errorMsg;
m_relocalizeStringOnSwitch = false; m_relocalizeStringOnSwitch = false;