From 77e20a0c2188ab260e571a0406959113faa3e850 Mon Sep 17 00:00:00 2001
From: ShadowNinja <shadowninja@minetest.net>
Date: Thu, 15 Jan 2015 16:14:40 -0500
Subject: [PATCH] Fix unescape_string removing all backslashes

---
 src/util/string.h | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/util/string.h b/src/util/string.h
index 3cb0f7bec..fa298bfaa 100644
--- a/src/util/string.h
+++ b/src/util/string.h
@@ -398,8 +398,7 @@ inline std::string wrap_rows(const std::string &from,
 
 
 /**
- * Removes all backslashes from a string that had been escaped (FormSpec strings)
- *
+ * Removes backslashes from an escaped string (FormSpec strings)
  */
 template <typename T>
 inline std::basic_string<T> unescape_string(std::basic_string<T> &s)
@@ -407,8 +406,11 @@ inline std::basic_string<T> unescape_string(std::basic_string<T> &s)
 	std::basic_string<T> res;
 
 	for (size_t i = 0; i < s.length(); i++) {
-		if (s[i] != '\\')
-			res += s[i];
+		if (s[i] == '\\')
+			i++;
+		if (i >= s.length())
+			break;
+		res += s[i];
 	}
 
 	return res;
-- 
GitLab