aboutsummaryrefslogblamecommitdiff
path: root/editors/imhex/files/patch-plugins_builtin_source_content_tools__entries.cpp
blob: 4392233ab87e7fce19ac7682bc4f256bab32241a (plain) (tree)
























                                                                                                                                           
--- plugins/builtin/source/content/tools_entries.cpp.orig	2023-05-21 08:44:41 UTC
+++ plugins/builtin/source/content/tools_entries.cpp
@@ -1501,9 +1501,6 @@ namespace hex::plugin::builtin {
                 enum class InputType { infinity, notANumber, quietNotANumber, signalingNotANumber, regular, invalid };
                 std::string specialNumbers[] = {"inf", "Inf", "INF", "nan", "Nan", "NAN", "qnan", "Qnan", "QNAN", "snan", "Snan", "SNAN"};
 
-                // We allow any input in order to accept infinities and NaNs, all invalid entries
-                // are detected by from_chars. You can also enter -0 or -inf.
-                std::from_chars_result res;
                 if (ImGui::InputText("##resultFloat", decimalFloatingPointNumberString, flags)) {
                     // Always obtain sign first.
                     if (decimalFloatingPointNumberString[0] == '-') {
@@ -1531,11 +1528,7 @@ namespace hex::plugin::builtin {
 
                     if (inputType == InputType::regular) {
                         decimalStrView = decimalFloatingPointNumberString;
-                        res = std::from_chars(decimalStrView.data(), decimalStrView.data() + decimalStrView.size(), resultFloat);
-                        // this is why we use from_chars
-                        if (res.ec != std::errc()) {
-                            inputType = InputType::invalid;
-                        }
+                        resultFloat = std::strtold(decimalStrView.data(), nullptr);
                     } else if (inputType == InputType::infinity) {
                         resultFloat = std::numeric_limits<long double>::infinity();
                         resultFloat *= (signBits == 1 ? -1 : 1);