From 339f332892fd09bba7218846a141c250ff4f429e Mon Sep 17 00:00:00 2001 From: Vinzenz Feenstra Date: Mon, 17 Feb 2014 21:46:25 +0100 Subject: [PATCH] Fix for Issue #108 Entering a somethign in the 'Path field' triggers the `_path_changed` signal being triggered. This in turn calls Globals::localize_path(const String& p_path) with the currently entered string. localize_path then is replacing backslashes with slashes and calls afterwards `String::simplify_path` String::simplify_path is checking wheter a string starts with: - res:// - local:// - user:// If any of those is true it removes this section. However, if any of the first letters of those are matching begins_with returns true, which is wrong. It should only return true if the whole string is matched at the beginning. This caused the whole desaster and lead localize_path into an endless loop because out of `u` suddenly became user:// which it then tried again to localize and so on. This fix, fixes the root of the problem which is begins_with which should not return true if not the whole search string was matched. Signed-off-by: Vinzenz Feenstra --- core/ustring.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/ustring.cpp b/core/ustring.cpp index 336d8eea0a7..b0f06c6ab67 100644 --- a/core/ustring.cpp +++ b/core/ustring.cpp @@ -2518,7 +2518,7 @@ bool String::begins_with(const char* p_string) const { } - return true; + return *p_string == 0; }