diff --git a/ChangeLog b/ChangeLog index 19599349d..ca1be2215 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-12-19 Bradley Bell + + * include/strutil.h, misc/strutil.c, main/bmread.c: implement + removeext, use it in ds_load instead of splitpath + 2004-12-19 Chris Taylor * main/editor/eobject.c, main/editor/kgame.c, diff --git a/include/strutil.h b/include/strutil.h index cb90721f2..a902528f3 100644 --- a/include/strutil.h +++ b/include/strutil.h @@ -1,4 +1,4 @@ -/* $Id: strutil.h,v 1.13 2004-08-06 20:28:57 schaffner Exp $ */ +/* $Id: strutil.h,v 1.14 2004-12-20 07:12:25 btb Exp $ */ /* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO @@ -40,6 +40,9 @@ void strlwr( char *s1 ); void strrev( char *s1 ); #endif +// remove extension from filename, doesn't work with paths. +void removeext(const char *filename, char *out); + #if !defined(__MSDOS__) && !(defined(_WIN32) && !defined(_WIN32_WCE)) void _splitpath(char *name, char *drive, char *path, char *base, char *ext); #endif diff --git a/main/bmread.c b/main/bmread.c index a2489ea49..2cde37e57 100644 --- a/main/bmread.c +++ b/main/bmread.c @@ -1,4 +1,4 @@ -/* $Id: bmread.c,v 1.8 2004-10-23 21:20:19 schaffner Exp $ */ +/* $Id: bmread.c,v 1.9 2004-12-20 07:12:25 btb Exp $ */ /* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO @@ -326,8 +326,8 @@ int ds_load( char * filename ) { } #endif - _splitpath( filename, NULL, NULL, fname, NULL ); - _makepath( rawname, NULL, NULL,fname, (digi_sample_rate==SAMPLE_RATE_22K)?".R22":".RAW" ); + removeext(filename, fname); + sprintf(rawname, "%s.%s", fname, (digi_sample_rate==SAMPLE_RATE_22K) ? ".r22" : ".raw"); i=piggy_find_sound( fname ); if (i!=255) { diff --git a/misc/strutil.c b/misc/strutil.c index ff18ecef2..64a4f2574 100644 --- a/misc/strutil.c +++ b/misc/strutil.c @@ -1,4 +1,4 @@ -/* $Id: strutil.c,v 1.14 2004-12-17 14:17:03 btb Exp $ */ +/* $Id: strutil.c,v 1.15 2004-12-20 07:12:25 btb Exp $ */ /* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO @@ -111,6 +111,22 @@ void strrev( char *s1 ) } #endif + +// remove extension from filename, doesn't work with paths. +void removeext(const char *filename, char *out) +{ + char *p; + + if ((p = strrchr(filename, '.'))) + { + strncpy(out, filename, p - filename); + out[p - filename] = 0; + } + else + strcpy(out, filename); +} + + #if !defined(__MSDOS__) && !(defined(_WIN32) && !defined(_WIN32_WCE)) void _splitpath(char *name, char *drive, char *path, char *base, char *ext) {