From b7906ec96cf9a9ba0bba25f90ee79d135d751480 Mon Sep 17 00:00:00 2001 From: Edwin Groothuis Date: Tue, 2 Oct 2007 21:39:28 +0000 Subject: [PATCH] [PATCH] games/einstein: Fix build with AMD64/GCC4.2 - Unbreak - Fix build with AMD64 and GCC4.2 PR: ports/116832 Submitted by: Martin Wilke --- games/einstein/Makefile | 12 ++------- games/einstein/files/patch-formatter.cpp | 31 ++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 10 deletions(-) create mode 100644 games/einstein/files/patch-formatter.cpp diff --git a/games/einstein/Makefile b/games/einstein/Makefile index 52164a16661d..6988ac1a33f3 100644 --- a/games/einstein/Makefile +++ b/games/einstein/Makefile @@ -7,7 +7,7 @@ PORTNAME= einstein PORTVERSION= 2.0 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= games MASTER_SITES= http://games.flowix.com/files/einstein/ DISTNAME= ${PORTNAME}-${PORTVERSION}-src @@ -18,15 +18,7 @@ COMMENT= Remake of old DOS game Sherlock, which was inspired by Albert Einstein' USE_SDL= sdl ttf mixer WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} -.include - -.if ${OSVERSION} >= 700042 -.if ${ARCH} == "amd64" || ${ARCH} == "sparc64" -BROKEN= Does not compile with GCC 4.2 -.endif -.endif - post-install: @${CAT} ${PKGMESSAGE} -.include +.include diff --git a/games/einstein/files/patch-formatter.cpp b/games/einstein/files/patch-formatter.cpp new file mode 100644 index 000000000000..0507fbd646a2 --- /dev/null +++ b/games/einstein/files/patch-formatter.cpp @@ -0,0 +1,31 @@ +diff -urN einstein-2.0.orig/formatter.cpp einstein-2.0/formatter.cpp +--- formatter.cpp 2005-08-13 22:40:58.000000000 -0400 ++++ formatter.cpp 2006-08-15 11:18:28.000000000 -0400 +@@ -58,7 +58,7 @@ + if ((c.type == INT_ARG) || (c.type == STRING_ARG) || + (c.type == FLOAT_ARG) || (c.type == DOUBLE_ARG)) + { +- int no = (int)c.data; ++ long int no = (long int)c.data; + args[no - 1] = c.type; + } + } +@@ -123,7 +123,7 @@ + std::wstring Formatter::format(std::vector &argValues) const + { + std::wstring s; +- int no; ++ long int no; + + for (int i = 0; i < commandsCnt; i++) { + Command *cmd = &commands[i]; +@@ -135,8 +135,8 @@ + + case STRING_ARG: + case INT_ARG: +- no = (int)cmd->data - 1; +- if (no < (int)argValues.size()) ++ no = (long int)cmd->data - 1; ++ if (no < (long int)argValues.size()) + s += argValues[no]->format(cmd); + break;