===> Generating patch
===> Viewing diff with more
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/Makefile ./Makefile
--- /usr/ports/games/maelstrom/Makefile	2013-01-14 17:55:35.000000000 +0100
+++ ./Makefile	2013-03-16 12:41:50.000000000 +0100
@@ -1,27 +1,38 @@
-# New ports collection makefile for:	Maelstrom
-# Date created:				13 May 1998
-# Whom:					Andrey Zakhvatov
-#
+# Created by: Andrey Zakhvatov
 # $FreeBSD: head/games/maelstrom/Makefile 300896 2012-07-14 13:54:48Z beat $
-#
 
 PORTNAME=	maelstrom
 PORTVERSION=	3.0.6
-PORTREVISION=	8
+PORTREVISION=	9
 CATEGORIES=	games
-MASTER_SITES=	http://slouken.libsdl.org/projects/Maelstrom/src/
+MASTER_SITES=	http://slouken.libsdl.org/projects/Maelstrom/src/ \
+		SF/nemysisfreebsdp/:icons
 DISTNAME=	Maelstrom-${PORTVERSION}
+DISTFILES=	Maelstrom-${DISTVERSION}${EXTRACT_SUFX} \
+		${PORTNAME}.png:icons
 DIST_SUBDIR=	${PORTNAME}
+EXTRACT_ONLY=	Maelstrom-${DISTVERSION}${EXTRACT_SUFX}
 
-MAINTAINER=	ports@FreeBSD.org
+MAINTAINER=	nemysis@gmx.ch
 COMMENT=	Asteroids-style game for X Window System
 
+LICENSE=	GPLv2
+
 USE_SDL=	sdl net
 USE_XORG=	xpm
 GNU_CONFIGURE=	yes
 MAKE_JOBS_SAFE=	yes
 
-.if !defined(NOPORTDOCS)
+DATADIR=	${PREFIX}/share/Maelstrom
+DOCSDIR=	${PREFIX}/share/doc/Maelstrom
+PORTDOCS=	*
+
+DESKTOP_ENTRIES="Maelstrom" "${COMMENT}" ${PORTNAME} \
+		"Maelstrom" "Game;ArcadeGame;" false
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MDOCS}
 INSTALL_TARGET=	install install_gamedocs
 .endif
 
@@ -30,5 +41,6 @@
 	${CHMOD} 2755 ${PREFIX}/bin/Maelstrom
 	${CHMOD} 664 ${PREFIX}/share/Maelstrom/Maelstrom-Scores
 	${CHOWN} root:games ${PREFIX}/share/Maelstrom/Maelstrom-Scores
+	${INSTALL_DATA} ${_DISTDIR}/${PORTNAME}.png ${PREFIX}/share/pixmaps/
 
 .include <bsd.port.mk>
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/distinfo ./distinfo
--- /usr/ports/games/maelstrom/distinfo	2013-01-14 17:55:35.000000000 +0100
+++ ./distinfo	2013-03-15 16:36:14.000000000 +0100
@@ -1,2 +1,4 @@
 SHA256 (maelstrom/Maelstrom-3.0.6.tar.gz) = e7983c2c7376cdcca1944db1706d92aedd529638cf13358c88a60df982ba7b46
 SIZE (maelstrom/Maelstrom-3.0.6.tar.gz) = 1013073
+SHA256 (maelstrom/maelstrom.png) = 814b1b6f6aacc5faf2befa52df0b97ff89efc8d5bffb3146c0cd6e354fda7799
+SIZE (maelstrom/maelstrom.png) = 2058
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-Makefile.in ./files/patch-Makefile.in
--- /usr/ports/games/maelstrom/files/patch-Makefile.in	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-Makefile.in	2013-03-16 13:25:13.000000000 +0100
@@ -0,0 +1,13 @@
+--- Makefile.in.orig	2002-10-20 06:19:42.000000000 +0200
++++ Makefile.in	2013-03-16 13:24:43.000000000 +0100
+@@ -444,8 +444,8 @@
+ 	chmod 666 $(target)/Maelstrom-Scores
+ 
+ install_gamedocs:
+-	sh mkinstalldirs $(target)/
+-	cp -rv README* COPYING* Docs*	$(target)/
++	sh mkinstalldirs $(prefix)/share/doc/Maelstrom/
++	cp -rv README* COPYING* Docs/* $(prefix)/share/doc/Maelstrom/
+ 
+ # Rule to build tar-gzipped distribution package
+ $(PACKAGE)-$(VERSION).tar.gz: dist
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-ab ./files/patch-ab
--- /usr/ports/games/maelstrom/files/patch-ab	2013-01-14 17:55:35.000000000 +0100
+++ ./files/patch-ab	1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
---- configure.orig	Mon Mar 13 20:58:01 2000
-+++ configure	Mon Mar 13 20:58:05 2000
-@@ -1633,6 +1633,9 @@
-         ac_default_prefix=/boot/beos
-         GAME_INSTALLDIR="\$(prefix)/games/$PACKAGE"
-         ;;
-+    *-*-freebsd*)
-+	GAME_INSTALLDIR="\$(prefix)/share/$PACKAGE"
-+	;;
-     *)
-         GAME_INSTALLDIR="\$(prefix)/games/$PACKAGE"
-         ;;
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-ac ./files/patch-ac
--- /usr/ports/games/maelstrom/files/patch-ac	2013-01-14 17:55:35.000000000 +0100
+++ ./files/patch-ac	1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
---- Makefile.in.orig	Mon Mar 13 21:21:22 2000
-+++ Makefile.in	Mon Mar 13 21:34:53 2000
-@@ -446,8 +446,8 @@
- 	chmod 666 $(target)/Maelstrom-Scores
- 
- install_gamedocs:
--	sh mkinstalldirs $(target)/
--	cp -rv README* COPYING* Docs*	$(target)/
-+	sh mkinstalldirs $(prefix)/share/doc/Maelstrom/
-+	cp -rv README* COPYING* Docs/*	$(prefix)/share/doc/Maelstrom/
- 
- # Rule to build tar-gzipped distribution package
- $(PACKAGE)-$(VERSION).tar.gz: dist
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-ad ./files/patch-ad
--- /usr/ports/games/maelstrom/files/patch-ad	2013-01-14 17:55:35.000000000 +0100
+++ ./files/patch-ad	1970-01-01 01:00:00.000000000 +0100
@@ -1,381 +0,0 @@
-diff -ur Maelstrom-3.0.6-orig/controls.cpp Maelstrom-3.0.6/controls.cpp
---- controls.cpp	2001-03-25 03:04:28 +0900
-+++ controls.cpp	2003-05-21 11:25:53 +0900
-@@ -83,7 +83,7 @@
- 	if ( fname ) {
- 		*fname = datafile;
- 	}
--	sprintf(datafile,  "%s"DIR_SEP"%s", home, MAELSTROM_DATA);
-+	snprintf(datafile, sizeof(datafile), "%s"DIR_SEP"%s", home, MAELSTROM_DATA);
- 	if ( (data=fopen(datafile, mode)) == NULL )
- 		return(NULL);
- 	return(data);
-diff -ur Maelstrom-3.0.6-orig/dialog.h Maelstrom-3.0.6/dialog.h
---- dialog.h	2001-07-21 00:08:10 +0900
-+++ dialog.h	2003-05-21 11:24:33 +0900
-@@ -92,7 +92,7 @@
- 		va_list ap;
- 
- 		va_start(ap, fmt);
--		vsprintf(errbuf, fmt, ap);
-+		vsnprintf(errbuf, sizeof(errbuf), fmt, ap);
- 		va_end(ap);
- 		errstr = errbuf;
-         }
-@@ -878,7 +878,7 @@
- 		if ( entry->text ) {
- 			Fontserv->FreeText(entry->text);
- 		}
--		sprintf(buf, "%d", *entry->variable);
-+		snprintf(buf, sizeof(buf), "%d", *entry->variable);
- 
- 		if ( entry->hilite ) {
- 			clear = Fg;
-diff -ur Maelstrom-3.0.6-orig/load.cpp Maelstrom-3.0.6/load.cpp
---- load.cpp	2000-02-15 11:47:39 +0900
-+++ load.cpp	2003-05-21 11:26:18 +0900
-@@ -81,7 +81,7 @@
- 	SDL_Surface *bmp, *title;
- 	
- 	/* Open the title file -- we know its colormap is our global one */
--	sprintf(file, "Images"DIR_SEP"Maelstrom_Titles#%d.bmp", title_id);
-+	snprintf(file, sizeof(file), "Images"DIR_SEP"Maelstrom_Titles#%d.bmp", title_id);
- 	bmp = SDL_LoadBMP(path.Path(file));
- 	if ( bmp == NULL ) {
- 		return(NULL);
-@@ -103,7 +103,7 @@
- 	Uint16 w, h;
- 	
- 	/* Open the cicn sprite file.. */
--	sprintf(file, "Images"DIR_SEP"Maelstrom_Icon#%hd.cicn", cicn_id);
-+	snprintf(file, sizeof(file), "Images"DIR_SEP"Maelstrom_Icon#%hd.cicn", cicn_id);
- 	if ( (cicn_src=SDL_RWFromFile(path.Path(file), "r")) == NULL ) {
- 		error("GetCIcon(%hd): Can't open CICN %s: ",
- 					cicn_id, path.Path(file));
-diff -ur Maelstrom-3.0.6-orig/maclib/Mac_FontServ.h Maelstrom-3.0.6/maclib/Mac_FontServ.h
---- maclib/Mac_FontServ.h	1999-12-03 02:15:33 +0900
-+++ maclib/Mac_FontServ.h	2003-05-21 11:28:43 +0900
-@@ -135,7 +135,7 @@
- 		va_list ap;
- 
- 		va_start(ap, fmt);
--		vsprintf(errbuf, fmt, ap);
-+		vsnprintf(errbuf, sizeof(errbuf), fmt, ap);
- 		va_end(ap);
- 		errstr = errbuf;
- 	}
-diff -ur Maelstrom-3.0.6-orig/maclib/Mac_Resource.h Maelstrom-3.0.6/maclib/Mac_Resource.h
---- maclib/Mac_Resource.h	1999-12-04 03:01:47 +0900
-+++ maclib/Mac_Resource.h	2003-05-21 11:28:35 +0900
-@@ -96,7 +96,7 @@
- 		va_list ap;
- 
- 		va_start(ap, fmt);
--		vsprintf(errbuf, fmt, ap);
-+		vsnprintf(errbuf, sizeof(errbuf), fmt, ap);
- 		va_end(ap);
- 		errstr = errbuf;
- 	}
-diff -ur Maelstrom-3.0.6-orig/maclib/Mac_Sound.h Maelstrom-3.0.6/maclib/Mac_Sound.h
---- maclib/Mac_Sound.h	2002-10-20 11:53:34 +0900
-+++ maclib/Mac_Sound.h	2003-05-21 11:28:27 +0900
-@@ -199,7 +199,7 @@
- 		va_list ap;
- 
- 		va_start(ap, fmt);
--		vsprintf(errbuf, fmt, ap);
-+		vsnprintf(errbuf, sizeof(errbuf), fmt, ap);
- 		va_end(ap);
- 		errstr = errbuf;
- 	}
-diff -ur Maelstrom-3.0.6-orig/maclib/Mac_Wave.h Maelstrom-3.0.6/maclib/Mac_Wave.h
---- maclib/Mac_Wave.h	2000-01-26 01:44:10 +0900
-+++ maclib/Mac_Wave.h	2003-05-21 11:28:20 +0900
-@@ -108,7 +108,7 @@
- 		va_list ap;
- 
- 		va_start(ap, fmt);
--		vsprintf(errbuf, fmt, ap);
-+		vsnprintf(errbuf, sizeof(errbuf), fmt, ap);
- 		va_end(ap);
- 		errstr = errbuf;
- 	}
-diff -ur Maelstrom-3.0.6-orig/maclib/macres.cpp Maelstrom-3.0.6/maclib/macres.cpp
---- maclib/macres.cpp	2000-01-26 01:44:20 +0900
-+++ maclib/macres.cpp	2003-05-21 11:30:01 +0900
-@@ -58,8 +58,8 @@
- 				ids[j], res->ResourceName(types[i], ids[j]));
- 			if ( argv[2] ) {
- 				char path[23];
--				sprintf(path,"%s/%s:%hu", argv[2],
--							types[i], ids[j]);
-+				snprintf(path, sizeof(path), "%s/%s:%hu",
-+					 argv[2], types[i], ids[j]);
- 				FILE *output;
- 				Mac_ResData *D;
-             			if ( (output=fopen(path, "w")) != NULL ) {
-diff -ur Maelstrom-3.0.6-orig/maclib/snd2wav.cpp Maelstrom-3.0.6/maclib/snd2wav.cpp
---- maclib/snd2wav.cpp	2001-03-28 12:54:50 +0900
-+++ maclib/snd2wav.cpp	2003-05-21 11:29:23 +0900
-@@ -82,7 +82,7 @@
- 			continue;
- 		}
- 		wave.Load(snd, rate);
--		sprintf(wavname, "snd_%d.wav", ids[i]);
-+		snprintf(wavname, sizeof(wavname), "snd_%d.wav", ids[i]);
- 		wave.Save(wavname);
- 	}
- 	delete macx;
-diff -ur Maelstrom-3.0.6-orig/main.cpp Maelstrom-3.0.6/main.cpp
---- main.cpp	2002-10-20 11:53:32 +0900
-+++ main.cpp	2003-05-21 11:27:02 +0900
-@@ -445,7 +445,7 @@
- 		DrawText(xOff+309-7, yOff+240-6, text, geneva, STYLE_BOLD,
- 							0x00, 0x00, 0x00);
- 	}
--	sprintf(text, "%d", gSoundLevel);
-+	snprintf(text, sizeof(text), "%d", gSoundLevel);
- 	DrawText(xOff+309-7, yOff+240-6, text, geneva, STYLE_BOLD,
- 						30000>>8, 30000>>8, 0xFF);
- 	screen->Update();
-@@ -547,11 +547,11 @@
- 		}
- 		DrawText(xOff+5, botDiv+42+(index*18), hScores[index].name,
- 						font, STYLE_BOLD, R, G, B);
--		sprintf(buffer, "%u", hScores[index].score);
-+		snprintf(buffer, sizeof(buffer), "%u", hScores[index].score);
- 		sw = fontserv->TextWidth(buffer, font, STYLE_BOLD);
- 		DrawText(sRt-sw, botDiv+42+(index*18), buffer, 
- 						font, STYLE_BOLD, R, G, B);
--		sprintf(buffer, "%u", hScores[index].wave);
-+		snprintf(buffer, sizeof(buffer), "%u", hScores[index].wave);
- 		sw = fontserv->TextWidth(buffer, font, STYLE_BOLD);
- 		DrawText(wRt-sw, botDiv+42+(index*18), buffer, 
- 						font, STYLE_BOLD, R, G, B);
-@@ -560,7 +560,7 @@
- 
- 	DrawText(xOff+5, botDiv+46+(10*18)+3, "Last Score: ", 
- 					bigfont, STYLE_NORM, 0xFF, 0xFF, 0xFF);
--	sprintf(buffer, "%d", GetScore());
-+	snprintf(buffer, sizeof(buffer), "%d", GetScore());
- 	sw = fontserv->TextWidth("Last Score: ", bigfont, STYLE_NORM);
- 	DrawText(xOff+5+sw, botDiv+46+(index*18)+3, buffer, 
- 					bigfont, STYLE_NORM, 0xFF, 0xFF, 0xFF);
-diff -ur Maelstrom-3.0.6-orig/myerror.cpp Maelstrom-3.0.6/myerror.cpp
---- myerror.cpp	1998-07-14 10:50:17 +0900
-+++ myerror.cpp	2003-05-21 11:23:33 +0900
-@@ -16,7 +16,7 @@
- 	va_list ap;
- 
- 	va_start(ap, fmt);
--	vsprintf(mesg, fmt, ap);
-+	vsnprintf(mesg, sizeof(mesg), fmt, ap);
- 	fputs(mesg, stderr);
- 	va_end(ap);
- }
-@@ -27,7 +27,7 @@
- 	va_list ap;
- 
- 	va_start(ap, fmt);
--	vsprintf(mesg, fmt, ap);
-+	vsnprintf(mesg, sizeof(mesg), fmt, ap);
- 	fputs(mesg, stdout);
- 	va_end(ap);
- }
-@@ -37,7 +37,7 @@
- 	char buffer[BUFSIZ];
- 
- 	if ( *msg ) {
--		sprintf(buffer, "%s: %s\n", msg, strerror(errno));
-+		snprintf(buffer, sizeof(buffer), "%s: %s\n", msg, strerror(errno));
- 		error(buffer);
- 	} else
- 		error((char *)strerror(errno));
-diff -ur Maelstrom-3.0.6-orig/netlogic/game.cpp Maelstrom-3.0.6/netlogic/game.cpp
---- netlogic/game.cpp	2001-07-23 11:24:03 +0900
-+++ netlogic/game.cpp	2003-05-21 11:33:19 +0900
-@@ -232,7 +232,7 @@
- 
- 			lastDisplayed = gDisplayed;
- 			screen->FillRect(0, 0, SCREEN_WIDTH, 12, ourBlack);
--			sprintf(caption,
-+			snprintf(caption, sizeof(caption),
- 				"You are player %d --- displaying player %d",
- 						gOurPlayer+1, gDisplayed+1);
- 			DrawText(SPRITES_WIDTH, 11, caption, geneva,
-@@ -357,7 +357,7 @@
- 				/* -- Erase old and draw new score */
- 				screen->FillRect(45, gStatusLine+1,
- 					score_width, text_height, ourBlack);
--				sprintf(numbuf, "%d", Score);
-+				snprintf(numbuf, sizeof(numbuf), "%d", Score);
- 				score_width = DrawText(45, gStatusLine+11, 
- 						numbuf, geneva, STYLE_BOLD,
- 							0xFF, 0xFF, 0xFF);
-@@ -380,7 +380,7 @@
- 		if (lastWave != gWave) {
- 			screen->FillRect(255, gStatusLine+1,
- 					wave_width, text_height, ourBlack);
--			sprintf(numbuf, "%d", gWave);
-+			snprintf(numbuf, sizeof(numbuf), "%d", gWave);
- 			wave_width = DrawText(255, gStatusLine+11, 
- 					numbuf, geneva, STYLE_BOLD,
- 							0xFF, 0xFF, 0xFF);
-@@ -391,7 +391,7 @@
- 		if (lastLives != Lives) {
- 			screen->FillRect(319, gStatusLine+1,
- 					lives_width, text_height, ourBlack);
--			sprintf(numbuf, "%-3.1d", Lives);
-+			snprintf(numbuf, sizeof(numbuf), "%-3.1d", Lives);
- 			lives_width = DrawText(319, gStatusLine+11,
- 					numbuf, geneva, STYLE_BOLD,
- 							0xFF, 0xFF, 0xFF);
-@@ -402,7 +402,7 @@
- 		if (lastBonus != Bonus) {
- 			screen->FillRect(384, gStatusLine+1,
- 					bonus_width, text_height, ourBlack);
--			sprintf(numbuf, "%-7.1d", Bonus);
-+			snprintf(numbuf, sizeof(numbuf), "%-7.1d", Bonus);
- 			bonus_width = DrawText(384, gStatusLine+11,
- 					numbuf, geneva, STYLE_BOLD,
- 							0xFF, 0xFF, 0xFF);
-@@ -414,7 +414,7 @@
- 			if (lastFrags != Frags) {
- 				screen->FillRect(fragoff, gStatusLine+1,
- 					frags_width, text_height, ourBlack);
--				sprintf(numbuf, "%-3.1d", Frags);
-+				snprintf(numbuf, sizeof(numbuf), "%-3.1d", Frags);
- 				frags_width = DrawText(fragoff, gStatusLine+11,
- 						numbuf, geneva, STYLE_BOLD,
- 							0xFF, 0xFF, 0xFF);
-@@ -747,10 +747,11 @@
- 		for ( i=0; i<gNumPlayers; ++i ) {
- 			char buffer[BUFSIZ], num1[12], num2[12];
- 
--			sprintf(num1, "%7.1d", final[i].Score);
--			sprintf(num2, "%3.1d", final[i].Frags);
--			sprintf(buffer, "Player %d: %-.7s Points, %-.3s Frags",
--						final[i].Player, num1, num2);
-+			snprintf(num1, sizeof(num1), "%7.1d", final[i].Score);
-+			snprintf(num2, sizeof(num2), "%3.1d", final[i].Frags);
-+			snprintf(buffer, sizeof(buffer),
-+				 "Player %d: %-.7s Points, %-.3s Frags",
-+				 final[i].Player, num1, num2);
- 			DrawText(160, 380+i*newyork_height, buffer,
- 				newyork, STYLE_NORM, 30000>>8, 30000>>8, 0xFF);
- 		}
-@@ -898,7 +899,7 @@
- 	
- 
- 	/* -- Draw the wave completed message */
--	sprintf(numbuf, "Wave %d completed.", gWave);
-+	snprintf(numbuf, sizeof(numbuf), "Wave %d completed.", gWave);
- 	sw = fontserv->TextWidth(numbuf, geneva, STYLE_BOLD);
- 	x = (SCREEN_WIDTH - sw) / 2;
- 	DrawText(x,  150, numbuf, geneva, STYLE_BOLD, 0xFF, 0xFF, 0x00);
-@@ -935,7 +936,7 @@
- 		if (OurShip->GetBonusMult() != 1) {
- 			SDL_Surface *sprite;
- 
--			sprintf(numbuf, "%-5.1d", OurShip->GetBonus());
-+			snprintf(numbuf, sizeof(numbuf), "%-5.1d", OurShip->GetBonus());
- 			DrawText(x, 200, numbuf, geneva, STYLE_BOLD,
- 							0xFF, 0xFF, 0xFF);
- 			x += 75;
-@@ -951,10 +952,10 @@
- 	Delay(SOUND_DELAY);
- 	sound->PlaySound(gFunk, 5);
- 
--	sprintf(numbuf, "%-5.1d", OurShip->GetBonus());
-+	snprintf(numbuf, sizeof(numbuf), "%-5.1d", OurShip->GetBonus());
- 	bonus_width = DrawText(x, 200, numbuf, geneva, STYLE_BOLD,
- 							0xFF, 0xFF, 0xFF);
--	sprintf(numbuf, "%-5.1d", OurShip->GetScore());
-+	snprintf(numbuf, sizeof(numbuf), "%-5.1d", OurShip->GetScore());
- 	score_width = DrawText(xt, 220, numbuf, geneva, STYLE_BOLD,
- 							0xFF, 0xFF, 0xFF);
- 	screen->Update();
-@@ -997,12 +998,12 @@
- 	
- 			screen->FillRect(x, 200-text_height+2,
- 					bonus_width, text_height, ourBlack);
--			sprintf(numbuf, "%-5.1d", OurShip->GetBonus());
-+			snprintf(numbuf, sizeof(numbuf), "%-5.1d", OurShip->GetBonus());
- 			bonus_width = DrawText(x, 200, numbuf,
- 					geneva, STYLE_BOLD, 0xFF, 0xFF, 0xFF);
- 			screen->FillRect(xt, 220-text_height+2,
- 					score_width, text_height, ourBlack);
--			sprintf(numbuf, "%-5.1d", OurShip->GetScore());
-+			snprintf(numbuf, sizeof(numbuf), "%-5.1d", OurShip->GetScore());
- 			score_width = DrawText(xt, 220, numbuf,
- 					geneva, STYLE_BOLD, 0xFF, 0xFF, 0xFF);
- 
-@@ -1015,7 +1016,7 @@
- 	HandleEvents(10);
- 
- 	/* -- Draw the "next wave" message */
--	sprintf(numbuf, "Prepare for Wave %d...", gWave+1);
-+	snprintf(numbuf, sizeof(numbuf), "Prepare for Wave %d...", gWave+1);
- 	sw = fontserv->TextWidth(numbuf, geneva, STYLE_BOLD);
- 	x = (SCREEN_WIDTH - sw)/2;
- 	DrawText(x, 259, numbuf, geneva, STYLE_BOLD, 0xFF, 0xFF, 0x00);
-diff -ur Maelstrom-3.0.6-orig/netlogic/netplay.cpp Maelstrom-3.0.6/netlogic/netplay.cpp
---- netlogic/netplay.cpp	2002-10-20 13:11:52 +0900
-+++ netlogic/netplay.cpp	2003-05-21 11:31:43 +0900
-@@ -670,7 +670,9 @@
- 		strcpy(message, "Waiting for players:");
- 		for ( i=0; i<gNumPlayers; ++i ) {
- 			if ( ! acked[i] )
--				sprintf(&message[strlen(message)], " %d", i+1);
-+				snprintf(&message[strlen(message)],
-+					 sizeof(message)-strlen(message),
-+					 " %d", i+1);
- 		}
- 		Message(message);
- 
-@@ -725,7 +727,7 @@
- 			/* Check the player... */
- 			if ( (i != gOurPlayer) && (netbuf[1] == gOurPlayer) ) {
- 				/* Print message, sleep 3 seconds absolutely */
--				sprintf(message, 
-+			  snprintf(message, sizeof(message),
- 	"Error: Another player (%d) thinks they are player 1!\r\n", i+1);
- 				ErrorMessage(message);
- 				/* Suck up retransmission packets */
-diff -ur Maelstrom-3.0.6-orig/netscore.cpp Maelstrom-3.0.6/netscore.cpp
---- netscore.cpp	2001-07-23 12:25:17 +0900
-+++ netscore.cpp	2003-05-21 11:27:18 +0900
-@@ -59,7 +59,7 @@
- 
- 	/* Send the scores */
- 	crc = get_checksum(key, KEY_LEN);
--	sprintf(netbuf, SCOREFMT, crc, high.name, high.score, high.wave);
-+	snprintf(netbuf, sizeof(netbuf), SCOREFMT, crc, high.name, high.score, high.wave);
- 	SDLNet_TCP_Send(remote, netbuf, strlen(netbuf));
- 	n = SDLNet_TCP_Recv(remote, netbuf, 1024);
- 	if ( n > 0 ) {
-diff -ur Maelstrom-3.0.6-orig/screenlib/SDL_FrameBuf.cpp Maelstrom-3.0.6/screenlib/SDL_FrameBuf.cpp
---- screenlib/SDL_FrameBuf.cpp	2001-07-23 06:03:13 +0900
-+++ screenlib/SDL_FrameBuf.cpp	2003-05-21 11:31:01 +0900
-@@ -628,7 +628,7 @@
- 
- 		found = 0;
- 		for ( which=0; !found; ++which ) {
--			sprintf(file, "%s%d.bmp", prefix, which);
-+			snprintf(file, sizeof(file), "%s%d.bmp", prefix, which);
- 			if ( ((fp=fopen(file, "r")) == NULL) &&
- 			     ((fp=fopen(file, "w")) != NULL) ) {
- 				found = 1;
-diff -ur Maelstrom-3.0.6-orig/screenlib/SDL_FrameBuf.h Maelstrom-3.0.6/screenlib/SDL_FrameBuf.h
---- screenlib/SDL_FrameBuf.h	2000-09-25 02:55:39 +0900
-+++ screenlib/SDL_FrameBuf.h	2003-05-21 11:27:41 +0900
-@@ -165,7 +165,7 @@
- 		va_list ap;
- 
- 		va_start(ap, fmt);
--		vsprintf(errbuf, fmt, ap);
-+		vsnprintf(errbuf, sizeof(errbuf), fmt, ap);
- 		va_end(ap);
- 		errstr = errbuf;
-         }
-
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-buttonlist.h ./files/patch-buttonlist.h
--- /usr/ports/games/maelstrom/files/patch-buttonlist.h	2013-01-14 17:55:35.000000000 +0100
+++ ./files/patch-buttonlist.h	2013-03-16 11:48:16.000000000 +0100
@@ -1,5 +1,5 @@
---- buttonlist.h.orig	Wed Jan 26 01:41:32 2000
-+++ buttonlist.h	Sun Aug 22 19:24:13 2004
+--- buttonlist.h.orig	2000-01-25 17:41:32.000000000 +0100
++++ buttonlist.h	2013-03-16 11:40:09.000000000 +0100
 @@ -16,7 +16,7 @@
  
  	void Add_Button(Uint16 x, Uint16 y, Uint16 width, Uint16 height, 
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-configure ./files/patch-configure
--- /usr/ports/games/maelstrom/files/patch-configure	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-configure	2013-03-16 13:28:38.000000000 +0100
@@ -0,0 +1,12 @@
+--- configure.orig	2002-10-20 05:43:07.000000000 +0200
++++ configure	2013-03-16 13:28:11.000000000 +0100
+@@ -3231,6 +3231,9 @@
+         ac_default_prefix=/boot/beos
+         GAME_INSTALLDIR="\$(prefix)/games/$PACKAGE"
+         ;;
++    *-*-freebsd*)
++	GAME_INSTALLDIR="\$(prefix)/share/$PACKAGE"
++	;;
+     *)
+         GAME_INSTALLDIR="\$(prefix)/games/$PACKAGE"
+         ;;
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-controls.cpp ./files/patch-controls.cpp
--- /usr/ports/games/maelstrom/files/patch-controls.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-controls.cpp	2013-03-16 13:30:35.000000000 +0100
@@ -0,0 +1,11 @@
+--- controls.cpp.orig	2001-03-24 19:04:28.000000000 +0100
++++ controls.cpp	2013-03-16 13:30:14.000000000 +0100
+@@ -83,7 +83,7 @@
+ 	if ( fname ) {
+ 		*fname = datafile;
+ 	}
+-	sprintf(datafile,  "%s"DIR_SEP"%s", home, MAELSTROM_DATA);
++	snprintf(datafile, sizeof(datafile), "%s"DIR_SEP"%s", home, MAELSTROM_DATA);
+ 	if ( (data=fopen(datafile, mode)) == NULL )
+ 		return(NULL);
+ 	return(data);
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-dialog.h ./files/patch-dialog.h
--- /usr/ports/games/maelstrom/files/patch-dialog.h	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-dialog.h	2013-03-16 11:50:15.000000000 +0100
@@ -0,0 +1,20 @@
+--- dialog.h.orig	2001-07-20 17:08:10.000000000 +0200
++++ dialog.h	2013-03-16 10:15:10.000000000 +0100
+@@ -92,7 +92,7 @@
+ 		va_list ap;
+ 
+ 		va_start(ap, fmt);
+-		vsprintf(errbuf, fmt, ap);
++		vsnprintf(errbuf, sizeof(errbuf), fmt, ap);
+ 		va_end(ap);
+ 		errstr = errbuf;
+         }
+@@ -878,7 +878,7 @@
+ 		if ( entry->text ) {
+ 			Fontserv->FreeText(entry->text);
+ 		}
+-		sprintf(buf, "%d", *entry->variable);
++		snprintf(buf, sizeof(buf), "%d", *entry->variable);
+ 
+ 		if ( entry->hilite ) {
+ 			clear = Fg;
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-load.cpp ./files/patch-load.cpp
--- /usr/ports/games/maelstrom/files/patch-load.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-load.cpp	2013-03-16 11:50:51.000000000 +0100
@@ -0,0 +1,20 @@
+--- load.cpp.orig	2000-02-15 03:47:39.000000000 +0100
++++ load.cpp	2013-03-16 10:17:30.000000000 +0100
+@@ -81,7 +81,7 @@
+ 	SDL_Surface *bmp, *title;
+ 	
+ 	/* Open the title file -- we know its colormap is our global one */
+-	sprintf(file, "Images"DIR_SEP"Maelstrom_Titles#%d.bmp", title_id);
++	snprintf(file, sizeof(file), "Images"DIR_SEP"Maelstrom_Titles#%d.bmp", title_id);
+ 	bmp = SDL_LoadBMP(path.Path(file));
+ 	if ( bmp == NULL ) {
+ 		return(NULL);
+@@ -103,7 +103,7 @@
+ 	Uint16 w, h;
+ 	
+ 	/* Open the cicn sprite file.. */
+-	sprintf(file, "Images"DIR_SEP"Maelstrom_Icon#%hd.cicn", cicn_id);
++	snprintf(file, sizeof(file), "Images"DIR_SEP"Maelstrom_Icon#%hd.cicn", cicn_id);
+ 	if ( (cicn_src=SDL_RWFromFile(path.Path(file), "r")) == NULL ) {
+ 		error("GetCIcon(%hd): Can't open CICN %s: ",
+ 					cicn_id, path.Path(file));
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-maclib-Mac_FontServ.h ./files/patch-maclib-Mac_FontServ.h
--- /usr/ports/games/maelstrom/files/patch-maclib-Mac_FontServ.h	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-maclib-Mac_FontServ.h	2013-03-16 11:55:43.000000000 +0100
@@ -0,0 +1,11 @@
+--- maclib/Mac_FontServ.h.orig	1999-12-02 18:15:33.000000000 +0100
++++ maclib/Mac_FontServ.h	2013-03-16 10:18:56.000000000 +0100
+@@ -135,7 +135,7 @@
+ 		va_list ap;
+ 
+ 		va_start(ap, fmt);
+-		vsprintf(errbuf, fmt, ap);
++		vsnprintf(errbuf, sizeof(errbuf), fmt, ap);
+ 		va_end(ap);
+ 		errstr = errbuf;
+ 	}
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-maclib-Mac_Resource.h ./files/patch-maclib-Mac_Resource.h
--- /usr/ports/games/maelstrom/files/patch-maclib-Mac_Resource.h	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-maclib-Mac_Resource.h	2013-03-16 11:56:23.000000000 +0100
@@ -0,0 +1,11 @@
+--- maclib/Mac_Resource.h.orig	1999-12-03 19:01:47.000000000 +0100
++++ maclib/Mac_Resource.h	2013-03-16 10:47:19.000000000 +0100
+@@ -96,7 +96,7 @@
+ 		va_list ap;
+ 
+ 		va_start(ap, fmt);
+-		vsprintf(errbuf, fmt, ap);
++		vsnprintf(errbuf, sizeof(errbuf), fmt, ap);
+ 		va_end(ap);
+ 		errstr = errbuf;
+ 	}
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-maclib-Mac_Sound.h ./files/patch-maclib-Mac_Sound.h
--- /usr/ports/games/maelstrom/files/patch-maclib-Mac_Sound.h	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-maclib-Mac_Sound.h	2013-03-16 11:57:01.000000000 +0100
@@ -0,0 +1,11 @@
+--- maclib/Mac_Sound.h.orig	2002-10-20 04:53:34.000000000 +0200
++++ maclib/Mac_Sound.h	2013-03-16 10:48:58.000000000 +0100
+@@ -199,7 +199,7 @@
+ 		va_list ap;
+ 
+ 		va_start(ap, fmt);
+-		vsprintf(errbuf, fmt, ap);
++		vsnprintf(errbuf, sizeof(errbuf), fmt, ap);
+ 		va_end(ap);
+ 		errstr = errbuf;
+ 	}
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-maclib-Mac_Wave.h ./files/patch-maclib-Mac_Wave.h
--- /usr/ports/games/maelstrom/files/patch-maclib-Mac_Wave.h	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-maclib-Mac_Wave.h	2013-03-16 11:57:40.000000000 +0100
@@ -0,0 +1,11 @@
+--- maclib/Mac_Wave.h.orig	2000-01-25 17:44:10.000000000 +0100
++++ maclib/Mac_Wave.h	2013-03-16 10:50:39.000000000 +0100
+@@ -108,7 +108,7 @@
+ 		va_list ap;
+ 
+ 		va_start(ap, fmt);
+-		vsprintf(errbuf, fmt, ap);
++		vsnprintf(errbuf, sizeof(errbuf), fmt, ap);
+ 		va_end(ap);
+ 		errstr = errbuf;
+ 	}
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-maclib-macres.cpp ./files/patch-maclib-macres.cpp
--- /usr/ports/games/maelstrom/files/patch-maclib-macres.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-maclib-macres.cpp	2013-03-16 11:58:47.000000000 +0100
@@ -0,0 +1,13 @@
+--- maclib/macres.cpp.orig	2000-01-25 17:44:20.000000000 +0100
++++ maclib/macres.cpp	2013-03-16 10:55:45.000000000 +0100
+@@ -58,8 +58,8 @@
+ 				ids[j], res->ResourceName(types[i], ids[j]));
+ 			if ( argv[2] ) {
+ 				char path[23];
+-				sprintf(path,"%s/%s:%hu", argv[2],
+-							types[i], ids[j]);
++				snprintf(path, sizeof(path), "%s/%s:%hu",
++					argv[2], types[i], ids[j]);
+ 				FILE *output;
+ 				Mac_ResData *D;
+             			if ( (output=fopen(path, "w")) != NULL ) {
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-maclib-snd2wav.cpp ./files/patch-maclib-snd2wav.cpp
--- /usr/ports/games/maelstrom/files/patch-maclib-snd2wav.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-maclib-snd2wav.cpp	2013-03-16 11:59:19.000000000 +0100
@@ -0,0 +1,11 @@
+--- maclib/snd2wav.cpp.orig	2001-03-28 05:54:50.000000000 +0200
++++ maclib/snd2wav.cpp	2013-03-16 10:58:23.000000000 +0100
+@@ -82,7 +82,7 @@
+ 			continue;
+ 		}
+ 		wave.Load(snd, rate);
+-		sprintf(wavname, "snd_%d.wav", ids[i]);
++		snprintf(wavname, sizeof(wavname), "snd_%d.wav", ids[i]);
+ 		wave.Save(wavname);
+ 	}
+ 	delete macx;
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-main.cpp ./files/patch-main.cpp
--- /usr/ports/games/maelstrom/files/patch-main.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-main.cpp	2013-03-16 11:51:42.000000000 +0100
@@ -0,0 +1,34 @@
+--- main.cpp.orig	2002-10-20 04:53:32.000000000 +0200
++++ main.cpp	2013-03-16 11:03:28.000000000 +0100
+@@ -445,7 +445,7 @@
+ 		DrawText(xOff+309-7, yOff+240-6, text, geneva, STYLE_BOLD,
+ 							0x00, 0x00, 0x00);
+ 	}
+-	sprintf(text, "%d", gSoundLevel);
++	snprintf(text, sizeof(text), "%d", gSoundLevel);
+ 	DrawText(xOff+309-7, yOff+240-6, text, geneva, STYLE_BOLD,
+ 						30000>>8, 30000>>8, 0xFF);
+ 	screen->Update();
+@@ -547,11 +547,11 @@
+ 		}
+ 		DrawText(xOff+5, botDiv+42+(index*18), hScores[index].name,
+ 						font, STYLE_BOLD, R, G, B);
+-		sprintf(buffer, "%u", hScores[index].score);
++		snprintf(buffer, sizeof(buffer), "%u", hScores[index].score);
+ 		sw = fontserv->TextWidth(buffer, font, STYLE_BOLD);
+ 		DrawText(sRt-sw, botDiv+42+(index*18), buffer, 
+ 						font, STYLE_BOLD, R, G, B);
+-		sprintf(buffer, "%u", hScores[index].wave);
++		snprintf(buffer, sizeof(buffer), "%u", hScores[index].wave);
+ 		sw = fontserv->TextWidth(buffer, font, STYLE_BOLD);
+ 		DrawText(wRt-sw, botDiv+42+(index*18), buffer, 
+ 						font, STYLE_BOLD, R, G, B);
+@@ -560,7 +560,7 @@
+ 
+ 	DrawText(xOff+5, botDiv+46+(10*18)+3, "Last Score: ", 
+ 					bigfont, STYLE_NORM, 0xFF, 0xFF, 0xFF);
+-	sprintf(buffer, "%d", GetScore());
++	snprintf(buffer, sizeof(buffer), "%d", GetScore());
+ 	sw = fontserv->TextWidth("Last Score: ", bigfont, STYLE_NORM);
+ 	DrawText(xOff+5+sw, botDiv+46+(index*18)+3, buffer, 
+ 					bigfont, STYLE_NORM, 0xFF, 0xFF, 0xFF);
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-myerror.cpp ./files/patch-myerror.cpp
--- /usr/ports/games/maelstrom/files/patch-myerror.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-myerror.cpp	2013-03-16 12:25:28.000000000 +0100
@@ -0,0 +1,29 @@
+--- myerror.cpp.orig	1998-07-14 03:50:17.000000000 +0200
++++ myerror.cpp	2013-03-16 12:24:50.000000000 +0100
+@@ -16,7 +16,7 @@
+ 	va_list ap;
+ 
+ 	va_start(ap, fmt);
+-	vsprintf(mesg, fmt, ap);
++	vsnprintf(mesg, sizeof(mesg), fmt, ap);
+ 	fputs(mesg, stderr);
+ 	va_end(ap);
+ }
+@@ -27,7 +27,7 @@
+ 	va_list ap;
+ 
+ 	va_start(ap, fmt);
+-	vsprintf(mesg, fmt, ap);
++	vsnprintf(mesg, sizeof(mesg), fmt, ap);
+ 	fputs(mesg, stdout);
+ 	va_end(ap);
+ }
+@@ -37,7 +37,7 @@
+ 	char buffer[BUFSIZ];
+ 
+ 	if ( *msg ) {
+-		sprintf(buffer, "%s: %s\n", msg, strerror(errno));
++		snprintf(buffer, sizeof(buffer), "%s: %s\n", msg, strerror(errno));
+ 		error(buffer);
+ 	} else
+ 		error((char *)strerror(errno));
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-netlogic-game.cpp ./files/patch-netlogic-game.cpp
--- /usr/ports/games/maelstrom/files/patch-netlogic-game.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-netlogic-game.cpp	2013-03-16 13:13:53.000000000 +0100
@@ -0,0 +1,127 @@
+--- netlogic/game.cpp.orig	2001-07-23 04:24:03.000000000 +0200
++++ netlogic/game.cpp	2013-03-16 13:13:14.000000000 +0100
+@@ -232,7 +232,7 @@
+ 
+ 			lastDisplayed = gDisplayed;
+ 			screen->FillRect(0, 0, SCREEN_WIDTH, 12, ourBlack);
+-			sprintf(caption,
++			snprintf(caption, sizeof(caption),
+ 				"You are player %d --- displaying player %d",
+ 						gOurPlayer+1, gDisplayed+1);
+ 			DrawText(SPRITES_WIDTH, 11, caption, geneva,
+@@ -357,7 +357,7 @@
+ 				/* -- Erase old and draw new score */
+ 				screen->FillRect(45, gStatusLine+1,
+ 					score_width, text_height, ourBlack);
+-				sprintf(numbuf, "%d", Score);
++				snprintf(numbuf, sizeof(numbuf), "%d", Score);
+ 				score_width = DrawText(45, gStatusLine+11, 
+ 						numbuf, geneva, STYLE_BOLD,
+ 							0xFF, 0xFF, 0xFF);
+@@ -380,7 +380,7 @@
+ 		if (lastWave != gWave) {
+ 			screen->FillRect(255, gStatusLine+1,
+ 					wave_width, text_height, ourBlack);
+-			sprintf(numbuf, "%d", gWave);
++			snprintf(numbuf, sizeof(numbuf), "%d", gWave);
+ 			wave_width = DrawText(255, gStatusLine+11, 
+ 					numbuf, geneva, STYLE_BOLD,
+ 							0xFF, 0xFF, 0xFF);
+@@ -391,7 +391,7 @@
+ 		if (lastLives != Lives) {
+ 			screen->FillRect(319, gStatusLine+1,
+ 					lives_width, text_height, ourBlack);
+-			sprintf(numbuf, "%-3.1d", Lives);
++			snprintf(numbuf, sizeof(numbuf), "%-3.1d", Lives);
+ 			lives_width = DrawText(319, gStatusLine+11,
+ 					numbuf, geneva, STYLE_BOLD,
+ 							0xFF, 0xFF, 0xFF);
+@@ -402,7 +402,7 @@
+ 		if (lastBonus != Bonus) {
+ 			screen->FillRect(384, gStatusLine+1,
+ 					bonus_width, text_height, ourBlack);
+-			sprintf(numbuf, "%-7.1d", Bonus);
++			snprintf(numbuf, sizeof(numbuf), "%-7.1d", Bonus);
+ 			bonus_width = DrawText(384, gStatusLine+11,
+ 					numbuf, geneva, STYLE_BOLD,
+ 							0xFF, 0xFF, 0xFF);
+@@ -414,7 +414,7 @@
+ 			if (lastFrags != Frags) {
+ 				screen->FillRect(fragoff, gStatusLine+1,
+ 					frags_width, text_height, ourBlack);
+-				sprintf(numbuf, "%-3.1d", Frags);
++				snprintf(numbuf, sizeof(numbuf), "%-3.1d", Frags);
+ 				frags_width = DrawText(fragoff, gStatusLine+11,
+ 						numbuf, geneva, STYLE_BOLD,
+ 							0xFF, 0xFF, 0xFF);
+@@ -747,10 +747,11 @@
+ 		for ( i=0; i<gNumPlayers; ++i ) {
+ 			char buffer[BUFSIZ], num1[12], num2[12];
+ 
+-			sprintf(num1, "%7.1d", final[i].Score);
+-			sprintf(num2, "%3.1d", final[i].Frags);
+-			sprintf(buffer, "Player %d: %-.7s Points, %-.3s Frags",
+-						final[i].Player, num1, num2);
++			snprintf(num1, sizeof(num1), "%7.1d", final[i].Score);
++			snprintf(num2, sizeof(num2), "%3.1d", final[i].Frags);
++			snprintf(buffer, sizeof(buffer),
++				 "Player %d: %-.7s Points, %-.3s Frags",
++				 final[i].Player, num1, num2);
+ 			DrawText(160, 380+i*newyork_height, buffer,
+ 				newyork, STYLE_NORM, 30000>>8, 30000>>8, 0xFF);
+ 		}
+@@ -898,7 +899,7 @@
+ 	
+ 
+ 	/* -- Draw the wave completed message */
+-	sprintf(numbuf, "Wave %d completed.", gWave);
++	snprintf(numbuf, sizeof(numbuf), "Wave %d completed.", gWave);
+ 	sw = fontserv->TextWidth(numbuf, geneva, STYLE_BOLD);
+ 	x = (SCREEN_WIDTH - sw) / 2;
+ 	DrawText(x,  150, numbuf, geneva, STYLE_BOLD, 0xFF, 0xFF, 0x00);
+@@ -935,7 +936,7 @@
+ 		if (OurShip->GetBonusMult() != 1) {
+ 			SDL_Surface *sprite;
+ 
+-			sprintf(numbuf, "%-5.1d", OurShip->GetBonus());
++			snprintf(numbuf, sizeof(numbuf), "%-5.1d", OurShip->GetBonus());
+ 			DrawText(x, 200, numbuf, geneva, STYLE_BOLD,
+ 							0xFF, 0xFF, 0xFF);
+ 			x += 75;
+@@ -951,10 +952,10 @@
+ 	Delay(SOUND_DELAY);
+ 	sound->PlaySound(gFunk, 5);
+ 
+-	sprintf(numbuf, "%-5.1d", OurShip->GetBonus());
++	snprintf(numbuf, sizeof(numbuf), "%-5.1d", OurShip->GetBonus());
+ 	bonus_width = DrawText(x, 200, numbuf, geneva, STYLE_BOLD,
+ 							0xFF, 0xFF, 0xFF);
+-	sprintf(numbuf, "%-5.1d", OurShip->GetScore());
++	snprintf(numbuf, sizeof(numbuf), "%-5.1d", OurShip->GetScore());
+ 	score_width = DrawText(xt, 220, numbuf, geneva, STYLE_BOLD,
+ 							0xFF, 0xFF, 0xFF);
+ 	screen->Update();
+@@ -997,12 +998,12 @@
+ 	
+ 			screen->FillRect(x, 200-text_height+2,
+ 					bonus_width, text_height, ourBlack);
+-			sprintf(numbuf, "%-5.1d", OurShip->GetBonus());
++			snprintf(numbuf, sizeof(numbuf), "%-5.1d", OurShip->GetBonus());
+ 			bonus_width = DrawText(x, 200, numbuf,
+ 					geneva, STYLE_BOLD, 0xFF, 0xFF, 0xFF);
+ 			screen->FillRect(xt, 220-text_height+2,
+ 					score_width, text_height, ourBlack);
+-			sprintf(numbuf, "%-5.1d", OurShip->GetScore());
++			snprintf(numbuf, sizeof(numbuf), "%-5.1d", OurShip->GetScore());
+ 			score_width = DrawText(xt, 220, numbuf,
+ 					geneva, STYLE_BOLD, 0xFF, 0xFF, 0xFF);
+ 
+@@ -1015,7 +1016,7 @@
+ 	HandleEvents(10);
+ 
+ 	/* -- Draw the "next wave" message */
+-	sprintf(numbuf, "Prepare for Wave %d...", gWave+1);
++	snprintf(numbuf, sizeof(numbuf), "Prepare for Wave %d...", gWave+1);
+ 	sw = fontserv->TextWidth(numbuf, geneva, STYLE_BOLD);
+ 	x = (SCREEN_WIDTH - sw)/2;
+ 	DrawText(x, 259, numbuf, geneva, STYLE_BOLD, 0xFF, 0xFF, 0x00);
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-netlogic-netplay.cpp ./files/patch-netlogic-netplay.cpp
--- /usr/ports/games/maelstrom/files/patch-netlogic-netplay.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-netlogic-netplay.cpp	2013-03-16 13:17:09.000000000 +0100
@@ -0,0 +1,22 @@
+--- netlogic/netplay.cpp.orig	2002-10-20 06:11:52.000000000 +0200
++++ netlogic/netplay.cpp	2013-03-16 13:16:57.000000000 +0100
+@@ -670,7 +670,9 @@
+ 		strcpy(message, "Waiting for players:");
+ 		for ( i=0; i<gNumPlayers; ++i ) {
+ 			if ( ! acked[i] )
+-				sprintf(&message[strlen(message)], " %d", i+1);
++				snprintf(&message[strlen(message)],
++					 sizeof(message)-strlen(message),
++					 " %d", i+1);
+ 		}
+ 		Message(message);
+ 
+@@ -725,7 +727,7 @@
+ 			/* Check the player... */
+ 			if ( (i != gOurPlayer) && (netbuf[1] == gOurPlayer) ) {
+ 				/* Print message, sleep 3 seconds absolutely */
+-				sprintf(message, 
++			  snprintf(message, sizeof(message),
+ 	"Error: Another player (%d) thinks they are player 1!\r\n", i+1);
+ 				ErrorMessage(message);
+ 				/* Suck up retransmission packets */
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-netscore.cpp ./files/patch-netscore.cpp
--- /usr/ports/games/maelstrom/files/patch-netscore.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-netscore.cpp	2013-03-16 11:52:54.000000000 +0100
@@ -0,0 +1,11 @@
+--- netscore.cpp.orig	2001-07-23 05:25:17.000000000 +0200
++++ netscore.cpp	2013-03-16 11:30:57.000000000 +0100
+@@ -59,7 +59,7 @@
+ 
+ 	/* Send the scores */
+ 	crc = get_checksum(key, KEY_LEN);
+-	sprintf(netbuf, SCOREFMT, crc, high.name, high.score, high.wave);
++	snprintf(netbuf, sizeof(netbuf), SCOREFMT, crc, high.name, high.score, high.wave);
+ 	SDLNet_TCP_Send(remote, netbuf, strlen(netbuf));
+ 	n = SDLNet_TCP_Recv(remote, netbuf, 1024);
+ 	if ( n > 0 ) {
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-screenlib-SDL_FrameBuf.cpp ./files/patch-screenlib-SDL_FrameBuf.cpp
--- /usr/ports/games/maelstrom/files/patch-screenlib-SDL_FrameBuf.cpp	2013-01-14 17:55:35.000000000 +0100
+++ ./files/patch-screenlib-SDL_FrameBuf.cpp	2013-03-16 12:03:21.000000000 +0100
@@ -1,5 +1,14 @@
---- screenlib/SDL_FrameBuf.cpp.old	2006-10-25 22:37:21.000000000 +0200
-+++ screenlib/SDL_FrameBuf.cpp	2006-10-25 22:38:26.000000000 +0200
+--- screenlib/SDL_FrameBuf.cpp.orig	2001-07-22 23:03:13.000000000 +0200
++++ screenlib/SDL_FrameBuf.cpp	2013-03-16 11:45:02.000000000 +0100
+@@ -628,7 +628,7 @@
+ 
+ 		found = 0;
+ 		for ( which=0; !found; ++which ) {
+-			sprintf(file, "%s%d.bmp", prefix, which);
++			snprintf(file, sizeof(file), "%s%d.bmp", prefix, which);
+ 			if ( ((fp=fopen(file, "r")) == NULL) &&
+ 			     ((fp=fopen(file, "w")) != NULL) ) {
+ 				found = 1;
 @@ -847,10 +847,8 @@
  			/* Update the dirty rectangle map with the new list */
  			for ( i=0; i<dirtymaplen; ++i ) {
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/files/patch-screenlib-SDL_FrameBuf.h ./files/patch-screenlib-SDL_FrameBuf.h
--- /usr/ports/games/maelstrom/files/patch-screenlib-SDL_FrameBuf.h	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-screenlib-SDL_FrameBuf.h	2013-03-16 12:04:01.000000000 +0100
@@ -0,0 +1,11 @@
+--- screenlib/SDL_FrameBuf.h.orig	2000-09-24 19:55:39.000000000 +0200
++++ screenlib/SDL_FrameBuf.h	2013-03-16 11:33:01.000000000 +0100
+@@ -165,7 +165,7 @@
+ 		va_list ap;
+ 
+ 		va_start(ap, fmt);
+-		vsprintf(errbuf, fmt, ap);
++		vsnprintf(errbuf, sizeof(errbuf), fmt, ap);
+ 		va_end(ap);
+ 		errstr = errbuf;
+         }
diff -ruN --exclude=CVS /usr/ports/games/maelstrom/pkg-plist ./pkg-plist
--- /usr/ports/games/maelstrom/pkg-plist	2013-01-14 17:55:35.000000000 +0100
+++ ./pkg-plist	2013-03-15 16:37:05.000000000 +0100
@@ -1,58 +1,39 @@
 bin/Maelstrom
 bin/Maelstrom-netd
-%%PORTDOCS%%share/doc/Maelstrom/Ambrosia_Software,_Inc._FAQ
-%%PORTDOCS%%share/doc/Maelstrom/COPYING
-%%PORTDOCS%%share/doc/Maelstrom/COPYING.GPL
-%%PORTDOCS%%share/doc/Maelstrom/Maelstrom-Announce
-%%PORTDOCS%%share/doc/Maelstrom/Maelstrom.FAQ
-%%PORTDOCS%%share/doc/Maelstrom/MaelstromGPL_press_release
-%%PORTDOCS%%share/doc/Maelstrom/Makefile
-%%PORTDOCS%%share/doc/Maelstrom/Makefile.in
-%%PORTDOCS%%share/doc/Maelstrom/Networking.Paper
-%%PORTDOCS%%share/doc/Maelstrom/Porting.Paper
-%%PORTDOCS%%share/doc/Maelstrom/Quotes
-%%PORTDOCS%%share/doc/Maelstrom/README
-%%PORTDOCS%%share/doc/Maelstrom/README.joystick
-%%PORTDOCS%%share/doc/Maelstrom/README.network
-%%PORTDOCS%%share/doc/Maelstrom/README.options
-%%PORTDOCS%%share/doc/Maelstrom/RSA.README
-%%PORTDOCS%%share/doc/Maelstrom/Technical_Notes-v1.0
-%%PORTDOCS%%share/doc/Maelstrom/Technical_Notes-v1.1
-%%PORTDOCS%%share/doc/Maelstrom/Technical_Notes-v2.0
-share/Maelstrom/Images/Maelstrom_Icon#100.cicn
-share/Maelstrom/Images/Maelstrom_Icon#101.cicn
-share/Maelstrom/Images/Maelstrom_Icon#102.cicn
-share/Maelstrom/Images/Maelstrom_Icon#103.cicn
-share/Maelstrom/Images/Maelstrom_Icon#104.cicn
-share/Maelstrom/Images/Maelstrom_Icon#110.cicn
-share/Maelstrom/Images/Maelstrom_Icon#128.cicn
-share/Maelstrom/Images/Maelstrom_Icon#129.cicn
-share/Maelstrom/Images/Maelstrom_Icon#130.cicn
-share/Maelstrom/Images/Maelstrom_Icon#131.cicn
-share/Maelstrom/Images/Maelstrom_Icon#132.cicn
-share/Maelstrom/Images/Maelstrom_Icon#133.cicn
-share/Maelstrom/Images/Maelstrom_Icon#134.cicn
-share/Maelstrom/Images/Maelstrom_Icon#135.cicn
-share/Maelstrom/Images/Maelstrom_Icon#136.cicn
-share/Maelstrom/Images/Maelstrom_Icon#137.cicn
-share/Maelstrom/Images/Maelstrom_Titles#100.bmp
-share/Maelstrom/Images/Maelstrom_Titles#101.bmp
-share/Maelstrom/Images/Maelstrom_Titles#102.bmp
-share/Maelstrom/Images/Maelstrom_Titles#128.bmp
-share/Maelstrom/Images/Maelstrom_Titles#129.bmp
-share/Maelstrom/Images/Maelstrom_Titles#130.bmp
-share/Maelstrom/Images/Maelstrom_Titles#133.bmp
-share/Maelstrom/Images/Maelstrom_Titles#134.bmp
-share/Maelstrom/Images/Maelstrom_Titles#135.bmp
-share/Maelstrom/Images/Maelstrom_Titles#999.bmp
-share/Maelstrom/Images/Makefile
-share/Maelstrom/Images/Makefile.in
-share/Maelstrom/Maelstrom-Scores
-share/Maelstrom/Maelstrom_Fonts
-share/Maelstrom/Maelstrom_Sounds
-share/Maelstrom/Maelstrom_Sprites
-share/Maelstrom/icon.bmp
-share/Maelstrom/icon.xpm
-@dirrm share/Maelstrom/Images
-@dirrm share/Maelstrom
-%%PORTDOCS%%@dirrm share/doc/Maelstrom
+%%DATADIR%%/Images/Maelstrom_Icon#100.cicn
+%%DATADIR%%/Images/Maelstrom_Icon#101.cicn
+%%DATADIR%%/Images/Maelstrom_Icon#102.cicn
+%%DATADIR%%/Images/Maelstrom_Icon#103.cicn
+%%DATADIR%%/Images/Maelstrom_Icon#104.cicn
+%%DATADIR%%/Images/Maelstrom_Icon#110.cicn
+%%DATADIR%%/Images/Maelstrom_Icon#128.cicn
+%%DATADIR%%/Images/Maelstrom_Icon#129.cicn
+%%DATADIR%%/Images/Maelstrom_Icon#130.cicn
+%%DATADIR%%/Images/Maelstrom_Icon#131.cicn
+%%DATADIR%%/Images/Maelstrom_Icon#132.cicn
+%%DATADIR%%/Images/Maelstrom_Icon#133.cicn
+%%DATADIR%%/Images/Maelstrom_Icon#134.cicn
+%%DATADIR%%/Images/Maelstrom_Icon#135.cicn
+%%DATADIR%%/Images/Maelstrom_Icon#136.cicn
+%%DATADIR%%/Images/Maelstrom_Icon#137.cicn
+%%DATADIR%%/Images/Maelstrom_Titles#100.bmp
+%%DATADIR%%/Images/Maelstrom_Titles#101.bmp
+%%DATADIR%%/Images/Maelstrom_Titles#102.bmp
+%%DATADIR%%/Images/Maelstrom_Titles#128.bmp
+%%DATADIR%%/Images/Maelstrom_Titles#129.bmp
+%%DATADIR%%/Images/Maelstrom_Titles#130.bmp
+%%DATADIR%%/Images/Maelstrom_Titles#133.bmp
+%%DATADIR%%/Images/Maelstrom_Titles#134.bmp
+%%DATADIR%%/Images/Maelstrom_Titles#135.bmp
+%%DATADIR%%/Images/Maelstrom_Titles#999.bmp
+%%DATADIR%%/Images/Makefile
+%%DATADIR%%/Images/Makefile.in
+%%DATADIR%%/Maelstrom-Scores
+%%DATADIR%%/Maelstrom_Fonts
+%%DATADIR%%/Maelstrom_Sounds
+%%DATADIR%%/Maelstrom_Sprites
+%%DATADIR%%/icon.bmp
+%%DATADIR%%/icon.xpm
+share/pixmaps/maelstrom.png
+@dirrm %%DATADIR%%/Images
+@dirrm %%DATADIR%%
===> Done