From cbe11fc7aa77043b5b9485b01c78f2e5a5e35d9a Mon Sep 17 00:00:00 2001
From: Perttu Ahola <celeron55@gmail.com>
Date: Tue, 27 Mar 2012 00:06:26 +0300
Subject: [PATCH] Do a dumb-ass static string copy for const-incorrect old
 versions of ov_fopen

---
 src/sound_openal.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/sound_openal.cpp b/src/sound_openal.cpp
index e635e0fa1..8d76b69e1 100644
--- a/src/sound_openal.cpp
+++ b/src/sound_openal.cpp
@@ -116,9 +116,14 @@ SoundBuffer* loadOggFile(const std::string &filepath)
 	char array[BUFFER_SIZE]; // Local fixed size array
 	vorbis_info *pInfo;
 	OggVorbis_File oggFile;
-
+	
+	// Do a dumb-ass static string copy for old versions of ov_fopen
+	// because they expect a non-const char*
+	char nonconst[10000];
+	snprintf(nonconst, 10000, "%s", filepath.c_str());
 	// Try opening the given file
-	if(ov_fopen(filepath.c_str(), &oggFile) != 0)
+	//if(ov_fopen(filepath.c_str(), &oggFile) != 0)
+	if(ov_fopen(nonconst, &oggFile) != 0)
 	{
 		infostream<<"Audio: Error opening "<<filepath<<" for decoding"<<std::endl;
 		return NULL;
-- 
GitLab