From f916f46b0153b1ebccd2d02a9e5a541c9e9c0959 Mon Sep 17 00:00:00 2001 From: Martin Jobst Date: Thu, 21 Mar 2024 17:33:25 +0100 Subject: [PATCH] Add missing STRING_TO_CHAR function --- src/core/datatypes/convert/StringToConvertFunctions.h | 4 ++++ tests/core/datatypes/convert/convert_functionstests.cpp | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/core/datatypes/convert/StringToConvertFunctions.h b/src/core/datatypes/convert/StringToConvertFunctions.h index 61d95c10b..074c617c4 100644 --- a/src/core/datatypes/convert/StringToConvertFunctions.h +++ b/src/core/datatypes/convert/StringToConvertFunctions.h @@ -96,6 +96,10 @@ inline const CIEC_LREAL func_STRING_AS_LREAL(const CIEC_STRING &paVal){ return func_STRING_AS_X_helper(paVal); } +inline const CIEC_CHAR func_STRING_TO_CHAR(const CIEC_STRING &paVal){ + return paVal.length() > 0 ? paVal[1] : 0_CHAR; +} + #ifdef FORTE_USE_WSTRING_DATATYPE inline const CIEC_WSTRING func_STRING_TO_WSTRING(const CIEC_STRING &paVal){ return func_STRING_AS_X_helper(paVal); diff --git a/tests/core/datatypes/convert/convert_functionstests.cpp b/tests/core/datatypes/convert/convert_functionstests.cpp index d22ff41fb..ecc006082 100644 --- a/tests/core/datatypes/convert/convert_functionstests.cpp +++ b/tests/core/datatypes/convert/convert_functionstests.cpp @@ -427,7 +427,13 @@ BOOST_AUTO_TEST_SUITE(convert_functions) BOOST_TEST( static_cast(timeInNs) == static_cast(INT64_C(172800000000000) + INT64_C(18000000000000) + INT64_C(2580000000000) + INT64_C(12000000000) + INT64_C(44000000) + INT64_C(27000) + INT64_C(31))); } - + + BOOST_AUTO_TEST_CASE(CONVERT_STRING_TO_CHAR) { + BOOST_TEST(static_cast(func_STRING_TO_CHAR(""_STRING)) == '\0'); + BOOST_TEST(static_cast(func_STRING_TO_CHAR("a"_STRING)) == 'a'); + BOOST_TEST(static_cast(func_STRING_TO_CHAR("abc"_STRING)) == 'a'); + } + /**** BYTE_BCD_TO_* ****/ BOOST_AUTO_TEST_CASE(BYTE_BCD_TO_USINT) { using SourceType = CIEC_BYTE;