Browse Source

Merge pull request #53526 from KoBeWi/super_print

Rémi Verschelde 3 years ago
parent
commit
6b090e325a
3 changed files with 16 additions and 4 deletions
  1. 5 1
      core/string/print_string.cpp
  2. 10 2
      core/string/print_string.h
  3. 1 1
      modules/gdscript/gdscript_parser.cpp

+ 5 - 1
core/string/print_string.cpp

@@ -69,7 +69,7 @@ void remove_print_handler(PrintHandlerList *p_handler) {
 	ERR_FAIL_COND(l == nullptr);
 	ERR_FAIL_COND(l == nullptr);
 }
 }
 
 
-void print_line(String p_string) {
+void __print_line(String p_string) {
 	if (!_print_line_enabled) {
 	if (!_print_line_enabled) {
 		return;
 		return;
 	}
 	}
@@ -108,3 +108,7 @@ void print_verbose(String p_string) {
 		print_line(p_string);
 		print_line(p_string);
 	}
 	}
 }
 }
+
+String stringify_variants(Variant p_var) {
+	return p_var.operator String();
+}

+ 10 - 2
core/string/print_string.h

@@ -31,7 +31,7 @@
 #ifndef PRINT_STRING_H
 #ifndef PRINT_STRING_H
 #define PRINT_STRING_H
 #define PRINT_STRING_H
 
 
-#include "core/string/ustring.h"
+#include "core/variant/variant.h"
 
 
 extern void (*_print_func)(String);
 extern void (*_print_func)(String);
 
 
@@ -46,13 +46,21 @@ struct PrintHandlerList {
 	PrintHandlerList() {}
 	PrintHandlerList() {}
 };
 };
 
 
+String stringify_variants(Variant p_var);
+
+template <typename... Args>
+String stringify_variants(Variant p_var, Args... p_args) {
+	return p_var.operator String() + " " + stringify_variants(p_args...);
+}
+
 void add_print_handler(PrintHandlerList *p_handler);
 void add_print_handler(PrintHandlerList *p_handler);
 void remove_print_handler(PrintHandlerList *p_handler);
 void remove_print_handler(PrintHandlerList *p_handler);
 
 
 extern bool _print_line_enabled;
 extern bool _print_line_enabled;
 extern bool _print_error_enabled;
 extern bool _print_error_enabled;
-extern void print_line(String p_string);
+extern void __print_line(String p_string);
 extern void print_error(String p_string);
 extern void print_error(String p_string);
 extern void print_verbose(String p_string);
 extern void print_verbose(String p_string);
+#define print_line(...) __print_line(stringify_variants(__VA_ARGS__))
 
 
 #endif // PRINT_STRING_H
 #endif // PRINT_STRING_H

+ 1 - 1
modules/gdscript/gdscript_parser.cpp

@@ -4533,7 +4533,7 @@ void GDScriptParser::TreePrinter::print_tree(const GDScriptParser &p_parser) {
 	}
 	}
 	print_class(p_parser.get_tree());
 	print_class(p_parser.get_tree());
 
 
-	print_line(printed);
+	print_line(String(printed));
 }
 }
 
 
 #endif // DEBUG_ENABLED
 #endif // DEBUG_ENABLED