builds godot
remove hex decode function: is core now
bendn 2023-04-06
parent 699bf97 · commit ca07b8a
-rw-r--r--patches/hex_decode.patch154
1 files changed, 0 insertions, 154 deletions
diff --git a/patches/hex_decode.patch b/patches/hex_decode.patch
deleted file mode 100644
index b4daf3d..0000000
--- a/patches/hex_decode.patch
+++ /dev/null
@@ -1,154 +0,0 @@
-diff --git a/core/string/ustring.cpp b/core/string/ustring.cpp
-index 6a59942a56..773445edb6 100644
---- a/core/string/ustring.cpp
-+++ b/core/string/ustring.cpp
-@@ -1644,6 +1644,35 @@ String String::hex_encode_buffer(const uint8_t *p_buffer, int p_len) {
- return ret;
- }
-
-+Vector<uint8_t> String::hex_decode() const {
-+ ERR_FAIL_COND_V_MSG(length() % 2 != 0, Vector<uint8_t>(), "Hexadecimal string of uneven length.");
-+
-+#define HEX_TO_BYTE(m_output, m_index) \
-+ uint8_t m_output; \
-+ c = operator[](m_index); \
-+ if (is_digit(c)) { \
-+ m_output = c - '0'; \
-+ } else if (c >= 'a' && c <= 'f') { \
-+ m_output = c - 'a' + 10; \
-+ } else if (c >= 'A' && c <= 'F') { \
-+ m_output = c - 'A' + 10; \
-+ } else { \
-+ ERR_FAIL_V_MSG(Vector<uint8_t>(), "Invalid hexadecimal character \"" + chr(c) + "\" at index " + m_index + "."); \
-+ }
-+
-+ Vector<uint8_t> out;
-+ int len = length() / 2;
-+ out.resize(len);
-+ for (int i = 0; i < len; i++) {
-+ char32_t c;
-+ HEX_TO_BYTE(first, i * 2);
-+ HEX_TO_BYTE(second, i * 2 + 1);
-+ out.write[i] = first * 16 + second;
-+ }
-+ return out;
-+#undef HEX_TO_BYTE
-+}
-+
- void String::print_unicode_error(const String &p_message, bool p_critical) const {
- if (p_critical) {
- print_error(vformat("Unicode parsing error, some characters were replaced with spaces: %s", p_message));
-diff --git a/core/string/ustring.h b/core/string/ustring.h
-index 28e3af92c5..90034b1b07 100644
---- a/core/string/ustring.h
-+++ b/core/string/ustring.h
-@@ -321,6 +321,8 @@ public:
- static String chr(char32_t p_char);
- static String md5(const uint8_t *p_md5);
- static String hex_encode_buffer(const uint8_t *p_buffer, int p_len);
-+ Vector<uint8_t> hex_decode() const;
-+
- bool is_numeric() const;
-
- double to_float() const;
-diff --git a/core/variant/variant_call.cpp b/core/variant/variant_call.cpp
-index ae15158836..13e9da37f2 100644
---- a/core/variant/variant_call.cpp
-+++ b/core/variant/variant_call.cpp
-@@ -1734,6 +1734,7 @@ static void _register_variant_builtin_methods() {
- bind_string_method(to_utf8_buffer, sarray(), varray());
- bind_string_method(to_utf16_buffer, sarray(), varray());
- bind_string_method(to_utf32_buffer, sarray(), varray());
-+ bind_string_method(hex_decode, sarray(), varray());
- bind_string_method(to_wchar_buffer, sarray(), varray());
-
- bind_static_method(String, num_scientific, sarray("number"), varray());
-diff --git a/doc/classes/String.xml b/doc/classes/String.xml
-index 1f4ffa417d..854bb2b2f8 100644
---- a/doc/classes/String.xml
-+++ b/doc/classes/String.xml
-@@ -313,6 +313,24 @@
- [b]Note:[/b] Strings with equal hash values are [i]not[/i] guaranteed to be the same, as a result of hash collisions. On the countrary, strings with different hash values are guaranteed to be different.
- </description>
- </method>
-+ <method name="hex_decode" qualifiers="const">
-+ <return type="PackedByteArray" />
-+ <description>
-+ Decodes a hexadecimal string as a [PackedByteArray].
-+ [codeblocks]
-+ [gdscript]
-+ var text = "hello world"
-+ var encoded = text.to_utf8_buffer().hex_encode()
-+ print(buf.hex_decode().get_string_from_utf8())
-+ [/gdscript]
-+ [csharp]
-+ var text = "hello world";
-+ var encoded = text.ToUtf8Buffer().HexEncode();
-+ GD.Print(buf.HexDecode().GetStringFromUtf8());
-+ [/csharp]
-+ [/codeblocks]
-+ </description>
-+ </method>
- <method name="hex_to_int" qualifiers="const">
- <return type="int" />
- <description>
-diff --git a/doc/classes/StringName.xml b/doc/classes/StringName.xml
-index 2140c53e20..c41fcac033 100644
---- a/doc/classes/StringName.xml
-+++ b/doc/classes/StringName.xml
-@@ -296,6 +296,24 @@
- [b]Note:[/b] Strings with equal hash values are [i]not[/i] guaranteed to be the same, as a result of hash collisions. On the countrary, strings with different hash values are guaranteed to be different.
- </description>
- </method>
-+ <method name="hex_decode" qualifiers="const">
-+ <return type="PackedByteArray" />
-+ <description>
-+ Decodes a hexadecimal string as a [PackedByteArray].
-+ [codeblocks]
-+ [gdscript]
-+ var text = "hello world"
-+ var encoded = text.to_utf8_buffer().hex_encode()
-+ print(buf.hex_decode().get_string_from_utf8())
-+ [/gdscript]
-+ [csharp]
-+ var text = "hello world";
-+ var encoded = text.ToUtf8Buffer().HexEncode();
-+ GD.Print(buf.HexDecode().GetStringFromUtf8());
-+ [/csharp]
-+ [/codeblocks]
-+ </description>
-+ </method>
- <method name="hex_to_int" qualifiers="const">
- <return type="int" />
- <description>
-diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/StringExtensions.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/StringExtensions.cs
-index df67e075ac..d53bb9f536 100644
---- a/modules/mono/glue/GodotSharp/GodotSharp/Core/StringExtensions.cs
-+++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/StringExtensions.cs
-@@ -728,6 +728,26 @@ namespace Godot
- return hash;
- }
-
-+ /// <summary>
-+ /// Decodes a hexadecimal string.
-+ /// </summary>
-+ /// <param name="instance">The hexadecimal string.</param>
-+ /// <returns>The byte array representation of this string.</returns>
-+ public static byte[] HexDecode(this string instance)
-+ {
-+ if (instance.Length % 2 != 0)
-+ {
-+ throw new ArgumentException("Hexadecimal string of uneven length.", nameof(instance));
-+ }
-+ int len = instance.Length / 2;
-+ byte[] ret = new byte[len];
-+ for (int i = 0; i < len; i++)
-+ {
-+ ret[i] = (byte)int.Parse(instance.AsSpan(i * 2, 2), NumberStyles.AllowHexSpecifier);
-+ }
-+ return ret;
-+ }
-+
- /// <summary>
- /// Returns a hexadecimal representation of this byte as a string.
- /// </summary>