Преглед на файлове

Merge pull request #52087 from raulsntos/expose-simplify-path

Expose `String.SimplifyPath` in C#
Max Hilbrunner преди 4 години
родител
ревизия
ee4a8e6a85
променени са 2 файла, в които са добавени 17 реда и са изтрити 0 реда
  1. 11 0
      modules/mono/glue/GodotSharp/GodotSharp/Core/StringExtensions.cs
  2. 6 0
      modules/mono/glue/string_glue.cpp

+ 11 - 0
modules/mono/glue/GodotSharp/GodotSharp/Core/StringExtensions.cs

@@ -1102,6 +1102,17 @@ namespace Godot
             return 2.0f * inter / sum;
         }
 
+        /// <summary>
+        /// Returns a simplified canonical path.
+        /// </summary>
+        public static string SimplifyPath(this string instance)
+        {
+            return godot_icall_String_simplify_path(instance);
+        }
+
+        [MethodImpl(MethodImplOptions.InternalCall)]
+        internal extern static string godot_icall_String_simplify_path(string str);
+
         /// <summary>
         /// Split the string by a divisor string, return an array of the substrings.
         /// Example "One,Two,Three" will return ["One","Two","Three"] if split by ",".

+ 6 - 0
modules/mono/glue/string_glue.cpp

@@ -67,6 +67,11 @@ MonoString *godot_icall_String_sha256_text(MonoString *p_str) {
 	return GDMonoMarshal::mono_string_from_godot(ret);
 }
 
+MonoString *godot_icall_String_simplify_path(MonoString *p_str) {
+	String ret = GDMonoMarshal::mono_string_to_godot(p_str).simplify_path();
+	return GDMonoMarshal::mono_string_from_godot(ret);
+}
+
 void godot_register_string_icalls() {
 	GDMonoUtils::add_internal_call("Godot.StringExtensions::godot_icall_String_md5_buffer", godot_icall_String_md5_buffer);
 	GDMonoUtils::add_internal_call("Godot.StringExtensions::godot_icall_String_md5_text", godot_icall_String_md5_text);
@@ -74,6 +79,7 @@ void godot_register_string_icalls() {
 	GDMonoUtils::add_internal_call("Godot.StringExtensions::godot_icall_String_rfindn", godot_icall_String_rfindn);
 	GDMonoUtils::add_internal_call("Godot.StringExtensions::godot_icall_String_sha256_buffer", godot_icall_String_sha256_buffer);
 	GDMonoUtils::add_internal_call("Godot.StringExtensions::godot_icall_String_sha256_text", godot_icall_String_sha256_text);
+	GDMonoUtils::add_internal_call("Godot.StringExtensions::godot_icall_String_simplify_path", godot_icall_String_simplify_path);
 }
 
 #endif // MONO_GLUE_ENABLED