games-emulation/desmume: Fix building with GCC-7
authorPeter Levine <plevine457@gmail.com>
Sun, 25 Mar 2018 06:16:42 +0000 (02:16 -0400)
committerAndreas Sturmlechner <asturm@gentoo.org>
Wed, 4 Apr 2018 21:37:58 +0000 (23:37 +0200)
Closes: https://bugs.gentoo.org/646352
Closes: https://github.com/gentoo/gentoo/pull/7606
Package-Manager: Portage-2.3.16, Repoman-2.3.6

games-emulation/desmume/desmume-0.9.11-r1.ebuild
games-emulation/desmume/files/desmume-0.9.11-gcc7.patch [new file with mode: 0644]

index cddcc940a3145374a5a8d49084503fd099034882..d1546468ae81f1435519c2db96b005cecebe7cf1 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -31,4 +31,5 @@ DOCS=( AUTHORS ChangeLog README README.LIN )
 PATCHES=(
        "${FILESDIR}/${P}-fix-pointer-conversion-warning.diff"
        "${FILESDIR}/${P}-gcc6.patch"
+       "${FILESDIR}/${P}-gcc7.patch"
 )
diff --git a/games-emulation/desmume/files/desmume-0.9.11-gcc7.patch b/games-emulation/desmume/files/desmume-0.9.11-gcc7.patch
new file mode 100644 (file)
index 0000000..8b8a67f
--- /dev/null
@@ -0,0 +1,21 @@
+Bug: https://bugs.gentoo.org/646352
+Patch: https://sources.debian.org/data/main/d/desmume/0.9.11-3/debian/patches/gcc7_fixes.patch
+
+From e1f7039f1b06add4fb75b2f8774000b8f05574af Mon Sep 17 00:00:00 2001
+From: rogerman <rogerman@users.sf.net>
+Date: Mon, 17 Aug 2015 21:15:04 +0000
+Subject: Fix bug with libfat string handling.
+
+diff --git a/src/utils/libfat/directory.cpp b/src/utils/libfat/directory.cpp
+index 765d7ae5..b6d7f01f 100644
+--- a/src/utils/libfat/directory.cpp
++++ b/src/utils/libfat/directory.cpp
+@@ -139,7 +139,7 @@ static size_t _FAT_directory_mbstoucs2 (ucs2_t* dst, const char* src, size_t len
+       int bytes;
+       size_t count = 0;
+-      while (count < len-1 && src != '\0') {
++      while (count < len-1 && *src != '\0') {
+               bytes = mbrtowc (&tempChar, src, MB_CUR_MAX, &ps);
+               if (bytes > 0) {
+                       *dst = (ucs2_t)tempChar;