--- libmikmod-3.1.11/drivers/drv_raw.c.rawwriter_path 2004-01-21 18:43:52.000000000 +0100 +++ libmikmod-3.1.11/drivers/drv_raw.c 2005-11-29 04:13:31.000000000 +0100 @@ -42,9 +42,13 @@ #include <sys/stat.h> #endif +#include <stdlib.h> +#include <string.h> + #include "mikmod_internals.h" #define BUFFERSIZE 32768 +#define TMPDIR getenv("TMPDIR") #define FILENAME "music.raw" #ifndef O_BINARY @@ -76,14 +80,20 @@ static BOOL RAW_IsThere(void) static BOOL RAW_Init(void) { + if (!filename) { + filename=TMPDIR; + strcat(filename,"/"); + strcat(filename,FILENAME); + } + #if defined unix || (defined __APPLE__ && defined __MACH__) - if(!MD_Access(filename?filename:FILENAME)) { + if(!MD_Access(filename)) { _mm_errno=MMERR_OPENING_FILE; return 1; } #endif - if((rawout=open(filename?filename:FILENAME,O_RDWR|O_TRUNC|O_CREAT|O_BINARY + if((rawout=open(filename,O_RDWR|O_TRUNC|O_CREAT|O_BINARY #if !defined(macintosh) && !defined(__MWERKS__) ,S_IREAD|S_IWRITE #endif @@ -94,13 +104,13 @@ static BOOL RAW_Init(void) md_mode|=DMODE_SOFT_MUSIC|DMODE_SOFT_SNDFX; if (!(audiobuffer=(SBYTE*)_mm_malloc(BUFFERSIZE))) { - close(rawout);unlink(filename?filename:FILENAME); + close(rawout);unlink(filename); rawout=-1; return 1; } if ((VC_Init())) { - close(rawout);unlink(filename?filename:FILENAME); + close(rawout);unlink(filename); rawout=-1; return 1; } @@ -125,7 +135,7 @@ static void RAW_Update(void) static BOOL RAW_Reset(void) { close(rawout); - if((rawout=open(filename?filename:FILENAME,O_RDWR|O_TRUNC|O_CREAT|O_BINARY + if((rawout=open(filename,O_RDWR|O_TRUNC|O_CREAT|O_BINARY #if !defined(macintosh) && !defined(__MWERKS__) ,S_IREAD|S_IWRITE #endif