diff --git a/src/CalcManager/CEngine/CalcInput.cpp b/src/CalcManager/CEngine/CalcInput.cpp index 01ecddcc..df5439b3 100644 --- a/src/CalcManager/CEngine/CalcInput.cpp +++ b/src/CalcManager/CEngine/CalcInput.cpp @@ -1,7 +1,12 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. +#ifdef _WIN32 +#include "pch.h" +#else #include "pch_cross_platform.h" +#endif + #include "Header Files/CalcEngine.h" using namespace std; diff --git a/src/CalcManager/CEngine/CalcUtils.cpp b/src/CalcManager/CEngine/CalcUtils.cpp index 04882a4f..ce5eb73a 100644 --- a/src/CalcManager/CEngine/CalcUtils.cpp +++ b/src/CalcManager/CEngine/CalcUtils.cpp @@ -1,7 +1,12 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. +#ifdef _WIN32 +#include "pch.h" +#else #include "pch_cross_platform.h" +#endif + #include "Header Files/CalcEngine.h" #include "Header Files/CalcUtils.h" diff --git a/src/CalcManager/CEngine/History.cpp b/src/CalcManager/CEngine/History.cpp index 56d1fc18..6c86ea68 100644 --- a/src/CalcManager/CEngine/History.cpp +++ b/src/CalcManager/CEngine/History.cpp @@ -1,7 +1,12 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. +#ifdef _WIN32 +#include "pch.h" +#else #include "pch_cross_platform.h" +#endif + #include "Header Files/CalcEngine.h" #include "Command.h" #include "CalculatorVector.h" diff --git a/src/CalcManager/CEngine/Number.cpp b/src/CalcManager/CEngine/Number.cpp index 7590e6d1..dd57685f 100644 --- a/src/CalcManager/CEngine/Number.cpp +++ b/src/CalcManager/CEngine/Number.cpp @@ -1,6 +1,11 @@ // Copyright (c) Microsoft Corporation. All rights reserved. +#ifdef _WIN32 +#include "pch.h" +#else #include "pch_cross_platform.h" +#endif + #include "Header Files/Number.h" using namespace std; @@ -59,6 +64,13 @@ namespace CalcEngine bool Number::IsZero() const { - return all_of(m_mantissa.begin(), m_mantissa.end(), [](auto &&i) { return i == 0; }); + for (auto const& digit : Mantissa()) + { + if (digit != 0) + { + return false; + } + } + return true; } } diff --git a/src/CalcManager/CEngine/Rational.cpp b/src/CalcManager/CEngine/Rational.cpp index 64288ede..bcfed0e5 100644 --- a/src/CalcManager/CEngine/Rational.cpp +++ b/src/CalcManager/CEngine/Rational.cpp @@ -1,6 +1,11 @@ // Copyright (c) Microsoft Corporation. All rights reserved. +#ifdef _WIN32 +#include "pch.h" +#else #include "pch_cross_platform.h" +#endif + #include "Header Files/Rational.h" using namespace std; diff --git a/src/CalcManager/CEngine/RationalMath.cpp b/src/CalcManager/CEngine/RationalMath.cpp index cda098b3..cf5f3e49 100644 --- a/src/CalcManager/CEngine/RationalMath.cpp +++ b/src/CalcManager/CEngine/RationalMath.cpp @@ -1,7 +1,12 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. +#ifdef _WIN32 +#include "pch.h" +#else #include "pch_cross_platform.h" +#endif + #include "Header Files/RationalMath.h" using namespace std; diff --git a/src/CalcManager/CEngine/calc.cpp b/src/CalcManager/CEngine/calc.cpp index c79c5964..92a551e2 100644 --- a/src/CalcManager/CEngine/calc.cpp +++ b/src/CalcManager/CEngine/calc.cpp @@ -1,7 +1,12 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. +#ifdef _WIN32 +#include "pch.h" +#else #include "pch_cross_platform.h" +#endif + #include "Header Files/CalcEngine.h" #include "CalculatorResource.h" diff --git a/src/CalcManager/CEngine/scicomm.cpp b/src/CalcManager/CEngine/scicomm.cpp index e5984453..2db42f70 100644 --- a/src/CalcManager/CEngine/scicomm.cpp +++ b/src/CalcManager/CEngine/scicomm.cpp @@ -12,7 +12,13 @@ * * Author: \****************************************************************************/ + +#ifdef _WIN32 +#include "pch.h" +#else #include "pch_cross_platform.h" +#endif + #include "Header Files/CalcEngine.h" #include "Header Files/CalcUtils.h" diff --git a/src/CalcManager/CEngine/scidisp.cpp b/src/CalcManager/CEngine/scidisp.cpp index f495b803..de4fd715 100644 --- a/src/CalcManager/CEngine/scidisp.cpp +++ b/src/CalcManager/CEngine/scidisp.cpp @@ -12,7 +12,13 @@ * * Author: \****************************************************************************/ + +#ifdef _WIN32 +#include "pch.h" +#else #include "pch_cross_platform.h" +#endif + #include "Header Files/CalcEngine.h" using namespace std; diff --git a/src/CalcManager/CEngine/scifunc.cpp b/src/CalcManager/CEngine/scifunc.cpp index b094e5d0..15bd19eb 100644 --- a/src/CalcManager/CEngine/scifunc.cpp +++ b/src/CalcManager/CEngine/scifunc.cpp @@ -16,7 +16,13 @@ /*** ***/ /*** ***/ /**************************************************************************/ + +#ifdef _WIN32 +#include "pch.h" +#else #include "pch_cross_platform.h" +#endif + #include "Header Files/CalcEngine.h" using namespace std; diff --git a/src/CalcManager/CEngine/sciset.cpp b/src/CalcManager/CEngine/sciset.cpp index 44a4f644..9ae245d6 100644 --- a/src/CalcManager/CEngine/sciset.cpp +++ b/src/CalcManager/CEngine/sciset.cpp @@ -1,7 +1,12 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. +#ifdef _WIN32 +#include "pch.h" +#else #include "pch_cross_platform.h" +#endif + #include "Header Files/CalcEngine.h" using namespace CalcEngine; diff --git a/src/CalcManager/Header Files/CalcEngine.h b/src/CalcManager/Header Files/CalcEngine.h index 0ad8252f..48597f1c 100644 --- a/src/CalcManager/Header Files/CalcEngine.h +++ b/src/CalcManager/Header Files/CalcEngine.h @@ -14,6 +14,11 @@ * \****************************************************************************/ +#ifndef _WIN32 +#include "win_data_types_cross_platform.h" +#include "sal_cross_platform.h" +#endif + #include "CCommand.h" #include "EngineStrings.h" #include "../Command.h" diff --git a/src/CalcManager/Ratpack/ratpak.h b/src/CalcManager/Ratpack/ratpak.h index 75ac28de..82947971 100644 --- a/src/CalcManager/Ratpack/ratpak.h +++ b/src/CalcManager/Ratpack/ratpak.h @@ -17,6 +17,13 @@ // //----------------------------------------------------------------------------- +#ifndef _WIN32 +#include "win_data_types_cross_platform.h" +#include "sal_cross_platform.h" +#endif + +#include +#include #include "CalcErr.h" static constexpr uint32_t BASEXPWR = 31L;// Internal log2(BASEX) diff --git a/src/CalcManager/pch_cross_platform.h b/src/CalcManager/pch_cross_platform.h index d7f50364..5c0c7138 100644 --- a/src/CalcManager/pch_cross_platform.h +++ b/src/CalcManager/pch_cross_platform.h @@ -12,4 +12,7 @@ // #include #include // #include + #include "winerror_cross_platform.h" +#include "win_data_types_cross_platform.h" +#include "sal_cross_platform.h" diff --git a/src/CalcManager/sal_cross_platform.h b/src/CalcManager/sal_cross_platform.h index 42b51ef7..cc650f17 100644 --- a/src/CalcManager/sal_cross_platform.h +++ b/src/CalcManager/sal_cross_platform.h @@ -7,3 +7,4 @@ #define _In_ #define _Out_ #define _Inout_ +#define __in_opt diff --git a/src/CalcManager/win_data_types_cross_platform.h b/src/CalcManager/win_data_types_cross_platform.h new file mode 100644 index 00000000..daa99bd6 --- /dev/null +++ b/src/CalcManager/win_data_types_cross_platform.h @@ -0,0 +1,23 @@ +#pragma once + +#include + +typedef uint64_t ULONGLONG; +typedef int INT; +typedef char CHAR; +typedef long LONG; +typedef unsigned int UINT_PTR; +typedef unsigned long ULONG_PTR; +typedef unsigned int ULONG32; +typedef unsigned long DWORD; +typedef unsigned long ULONG; +typedef unsigned short USHORT; +typedef wchar_t WCHAR; +typedef unsigned short WORD; +typedef UINT_PTR WPARAM; +typedef ULONG_PTR DWORD_PTR; + +#define LOWORD(dw) ((WORD)(((DWORD_PTR)(dw)) & 0xffff)) +#define HIWORD(dw) ((WORD)((((DWORD_PTR)(dw)) >> 16) & 0xffff)) +#define LODWORD(qw) ((DWORD)(qw)) +#define HIDWORD(qw) ((DWORD)(((qw) >> 32) & 0xffffffff)) diff --git a/src/CalcManager/winerror_cross_platform.h b/src/CalcManager/winerror_cross_platform.h index faa66de3..6961e77f 100644 --- a/src/CalcManager/winerror_cross_platform.h +++ b/src/CalcManager/winerror_cross_platform.h @@ -2,7 +2,8 @@ #include -#define HRESULT int32_t +typedef int32_t HRESULT; + #define E_ACCESSDENIED 0x80070005 #define E_FAIL 0x80004005 #define E_INVALIDARG 0x80070057 @@ -14,3 +15,4 @@ #define S_FALSE 0x1 #define SUCCEEDED(hr) (((HRESULT)(hr)) >= 0) +#define FAILED(hr) (((HRESULT)(hr)) < 0)