summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/games.scm5
-rw-r--r--gnu/packages/patches/wesnoth-fix-std-bad-cast.patch67
3 files changed, 2 insertions, 71 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index d55276fb33..0205b8c3e0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1162,7 +1162,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/wavpack-CVE-2018-7253.patch		\
   %D%/packages/patches/wavpack-CVE-2018-7254.patch		\
   %D%/packages/patches/weechat-python.patch			\
-  %D%/packages/patches/wesnoth-fix-std-bad-cast.patch		\
   %D%/packages/patches/wicd-bitrate-none-fix.patch		\
   %D%/packages/patches/wicd-get-selected-profile-fix.patch	\
   %D%/packages/patches/wicd-urwid-1.3.patch			\
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index b2d106e907..bc4abd7b71 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1809,7 +1809,7 @@ falling, themeable graphics and sounds, and replays.")
 (define-public wesnoth
   (package
     (name "wesnoth")
-    (version "1.14.0")
+    (version "1.14.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
@@ -1818,8 +1818,7 @@ falling, themeable graphics and sounds, and replays.")
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "09niq53y17faizhmd98anx3dha7hvacvj9a0a64lg8wn915cm0bw"))
-              (patches (search-patches "wesnoth-fix-std-bad-cast.patch"))))
+                "1mzrnbv71b4s41c5x8clhb53l8lidiwzny1hl828228pvys5bxkb"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f)) ; no check target
diff --git a/gnu/packages/patches/wesnoth-fix-std-bad-cast.patch b/gnu/packages/patches/wesnoth-fix-std-bad-cast.patch
deleted file mode 100644
index 18328ed018..0000000000
--- a/gnu/packages/patches/wesnoth-fix-std-bad-cast.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 18e5ea50a7136cb3686c5a7c51c111ccce73dc54 Mon Sep 17 00:00:00 2001
-From: Iris Morelle <shadowm@wesnoth.org>
-Date: Sun, 6 May 2018 16:10:42 -0300
-Subject: [PATCH] i18n: Blind fix attempt for std::bad_cast being thrown on
- Windows
-
-Several reports on Steam and our forums point at std::bad_cast being
-thrown when accessing Preferences and the Multiplayer menu amongst
-others. It's possible that the locale configuration on those systems is
-not quite right, and compare() and icompare() are able to throw
-std::bad_cast when this happens as they both use std::use_facet().
-
-Note that much like the macOS/iOS version of icompare(), this stopgap
-patch doesn't attempt to provide any form of case-insensitive fallback
-and just uses a case-sensitive comparison instead.
----
- src/gettext_boost.cpp | 29 +++++++++++++++++++++++++++--
- 1 file changed, 27 insertions(+), 2 deletions(-)
-
-diff --git a/src/gettext_boost.cpp b/src/gettext_boost.cpp
-index 3cc7690d5ef..fb04ffeea90 100644
---- a/src/gettext_boost.cpp
-+++ b/src/gettext_boost.cpp
-@@ -423,7 +423,19 @@ void set_language(const std::string& language, const std::vector<std::string>* /
- int compare(const std::string& s1, const std::string& s2)
- {
- 	std::lock_guard<std::mutex> lock(get_mutex());
--	return std::use_facet<std::collate<char>>(get_manager().get_locale()).compare(s1.c_str(), s1.c_str() + s1.size(), s2.c_str(), s2.c_str() + s2.size());
-+
-+	try {
-+		return std::use_facet<std::collate<char>>(get_manager().get_locale()).compare(s1.c_str(), s1.c_str() + s1.size(), s2.c_str(), s2.c_str() + s2.size());
-+	} catch(const std::bad_cast&) {
-+		static bool bad_cast_once = false;
-+
-+		if(!bad_cast_once) {
-+			ERR_G << "locale set-up for compare() is broken, falling back to std::string::compare()\n";
-+			bad_cast_once = true;
-+		}
-+
-+		return s1.compare(s2);
-+	}
- }
- 
- int icompare(const std::string& s1, const std::string& s2)
-@@ -433,8 +445,21 @@ int icompare(const std::string& s1, const std::string& s2)
- 	return compare(s1, s2);
- #else
- 	std::lock_guard<std::mutex> lock(get_mutex());
--	return std::use_facet<bl::collator<char>>(get_manager().get_locale()).compare(
-+
-+	try {
-+		return std::use_facet<bl::collator<char>>(get_manager().get_locale()).compare(
- 			bl::collator_base::secondary, s1, s2);
-+	} catch(const std::bad_cast&) {
-+		static bool bad_cast_once = false;
-+
-+		if(!bad_cast_once) {
-+			ERR_G << "locale set-up for icompare() is broken, falling back to std::string::compare()\n";
-+			bad_cast_once = true;
-+		}
-+
-+		// FIXME: not even lazily case-insensitive
-+		return s1.compare(s2);
-+	}
- #endif
- }
-