소스 검색

Expose `String.SimplifyPath` in C#

(cherry picked from commit 126b1ea1493f603684a361f92865d4c80bca0ed4)
Raul Santos 4 년 전
부모
커밋
6a7ca43297
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

@@ -1126,6 +1126,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