From 7675bc7df6f24a61533e7d6536a7766ec7c08721 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=CC=84vels=20Nadtoc=CC=8Cajevs?= <7645683+bruvzg@users.noreply.github.com> Date: Mon, 24 Mar 2025 09:27:22 +0200 Subject: [PATCH] [RTL] Fix `float` and `int` matching in FX environment. --- scene/gui/rich_text_label.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index 2359e135da..19d59e53c9 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -6954,10 +6954,10 @@ Dictionary RichTextLabel::parse_expressions_for_values(Vector p_expressi nodepath.compile("^\\$"); RegEx boolean = RegEx(); boolean.compile("^(true|false)$"); - RegEx decimal = RegEx(); - decimal.compile("^-?^.?\\d+(\\.\\d+?)?$"); RegEx numerical = RegEx(); - numerical.compile("^\\d+$"); + numerical.compile("^[-+]?\\d+$"); + RegEx decimal = RegEx(); + decimal.compile("^[+-]?\\d*(\\.\\d*)?([eE][+-]?\\d+)?$"); for (int j = 0; j < values.size(); j++) { if (color.search(values[j]).is_valid()) { @@ -6973,10 +6973,10 @@ Dictionary RichTextLabel::parse_expressions_for_values(Vector p_expressi } else if (values[j] == "false") { a.append(false); } - } else if (decimal.search(values[j]).is_valid()) { - a.append(values[j].to_float()); } else if (numerical.search(values[j]).is_valid()) { a.append(values[j].to_int()); + } else if (decimal.search(values[j]).is_valid()) { + a.append(values[j].to_float()); } else { a.append(values[j]); }