[Bf-committers] Small patch to make SND_Utils more cross-platform

Stealth Apprentice stealthapprentice at yahoo.com
Sun Feb 26 08:52:09 CET 2006


Hello, SND_Utils.cpp still uses the old integer based
file handles with open, read, fseek, close...

On Visual Studio 8, this causes lots of cross-linking
warnings.

Also, this code is presently #ifdef'd for windows as a
workaround for non-standard parameters for the open
function.

This small patch below updates this function to use
fopen/fread/fseek/fclose, and eliminates ALL of the
warnings.

It would be great for all the VS8 users if this could
be patched in to CVS, and it also eliminates a
platform ifdef, so it's a modest improvement, overall.

Thanks


/* loads a file */
void* SND_LoadSample(char *filename)
{
    FILE* file;
    int filelen, buffersize = BUFFERSIZE;
	void* data = NULL;

    file = fopen(filename, "rb");

	if (file == 0)
	{
		//printf("can't open file.\n");
		//printf("press q for quit.\n");
	}
	else
	{
		filelen = fseek(file, 0, SEEK_END);
		fseek(file, 0, SEEK_SET);
		
		if (filelen != 0)
		{
			data = malloc(buffersize);

			if (fread(data, 1, buffersize, file) != buffersize)
			{
				free(data);
				data = NULL;
			}
		}
		fclose(file);
		
	}
	return (data);
}



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


More information about the Bf-committers mailing list