move change_filename_ext to strutil.c, rename to (and remove old) change_filename_ext...
authorChris Taylor <chris@icculus.org>
Sun, 26 Feb 2006 02:29:42 +0000 (02:29 +0000)
committerChris Taylor <chris@icculus.org>
Sun, 26 Feb 2006 02:29:42 +0000 (02:29 +0000)
ChangeLog
include/strutil.h
main/bm.c
main/gamepal.c
main/gamesave.c
main/movie.c
main/piggy.c
misc/strutil.c

index 24d1644..f71e044 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2006-02-26  Chris Taylor  <chris@icculus.org>
+
+       * include/strutil.h, main/bm.c, main/gamepal.c, main/gamesave.c,
+       main/movie.c, main/piggy.c, misc/strutil.c:
+       move change_filename_ext to strutil.c, rename to (and remove old)
+       change_filename_extension, add an assert and make it use strrchr
+
 2006-02-25  Chris Taylor  <chris@icculus.org>
 
        * main/menu.c: complete removal of 7th option in Options menu,
index a902528..092e734 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: strutil.h,v 1.14 2004-12-20 07:12:25 btb Exp $ */
+/* $Id: strutil.h,v 1.15 2006-02-26 02:29:18 chris Exp $ */
 /*
 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
@@ -43,6 +43,9 @@ void strrev( char *s1 );
 // remove extension from filename, doesn't work with paths.
 void removeext(const char *filename, char *out);
 
+//give a filename a new extension, doesn't work with paths.
+extern void change_filename_extension( char *dest, char *src, char *new_ext );
+
 #if !defined(__MSDOS__) && !(defined(_WIN32) && !defined(_WIN32_WCE))
 void _splitpath(char *name, char *drive, char *path, char *base, char *ext);
 #endif
index 8517eb6..e6071c6 100644 (file)
--- a/main/bm.c
+++ b/main/bm.c
@@ -1,4 +1,4 @@
-/* $Id: bm.c,v 1.49 2005-03-31 09:38:53 chris Exp $ */
+/* $Id: bm.c,v 1.50 2006-02-26 02:29:06 chris Exp $ */
 /*
 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
@@ -490,8 +490,6 @@ void bm_read_extra_robots(char *fname,int type)
        cfclose(fp);
 }
 
-extern void change_filename_extension( char *dest, char *src, char *new_ext );
-
 int Robot_replacements_loaded = 0;
 
 void load_robot_replacements(char *level_name)
index add0ceb..3a6a030 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: gamepal.c,v 1.6 2005-07-30 01:50:17 chris Exp $ */
+/* $Id: gamepal.c,v 1.7 2006-02-26 02:29:06 chris Exp $ */
 /*
 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
@@ -47,25 +47,6 @@ char Current_level_palette[FILENAME_LEN];
 
 extern int Color_0_31_0, HUD_color;
 
-//give a filename a new extension
-void change_filename_ext( char *dest, char *src, char *ext )
-{
-       char *p;
-
-       strcpy (dest, src);
-
-       if (ext[0] == '.')
-               ext++;
-
-       p = strchr(dest,'.');
-       if (!p) {
-               p = dest + strlen(dest);
-               *p = '.';
-       }
-
-       strcpy(p+1,ext);
-}
-
 //background for boxed messages
 typedef struct bkg {
        short x, y, w, h;                       // The location of the menu.
index f9fdadd..607d0c9 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: gamesave.c,v 1.32 2005-06-22 09:42:04 chris Exp $ */
+/* $Id: gamesave.c,v 1.33 2006-02-26 02:29:06 chris Exp $ */
 /*
 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
@@ -23,7 +23,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
 #endif
 
 #ifdef RCS
-char gamesave_rcsid[] = "$Id: gamesave.c,v 1.32 2005-06-22 09:42:04 chris Exp $";
+char gamesave_rcsid[] = "$Id: gamesave.c,v 1.33 2006-02-26 02:29:06 chris Exp $";
 #endif
 
 #include <stdio.h>
@@ -172,29 +172,6 @@ int is_real_level(char *filename)
 }
 #endif
 
-void change_filename_extension( char *dest, char *src, char *new_ext )
-{
-       int i;
-
-       strcpy (dest, src);
-
-       if (new_ext[0]=='.')
-               new_ext++;
-
-       for (i=1; i<strlen(dest); i++ )
-               if (dest[i]=='.'||dest[i]==' '||dest[i]==0)
-                       break;
-
-       if (i < 123) {
-               dest[i]='.';
-               dest[i+1]=new_ext[0];
-               dest[i+2]=new_ext[1];
-               dest[i+3]=new_ext[2];
-               dest[i+4]=0;
-               return;
-       }
-}
-
 //--unused-- vms_angvec zero_angles={0,0,0};
 
 #define vm_angvec_zero(v) do {(v)->p=(v)->b=(v)->h=0;} while (0)
index 8809664..0d7ccc3 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: movie.c,v 1.39 2005-07-30 01:50:17 chris Exp $ */
+/* $Id: movie.c,v 1.40 2006-02-26 02:29:06 chris Exp $ */
 /*
 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
@@ -23,7 +23,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
 #endif
 
 #ifdef RCS
-static char rcsid[] = "$Id: movie.c,v 1.39 2005-07-30 01:50:17 chris Exp $";
+static char rcsid[] = "$Id: movie.c,v 1.40 2006-02-26 02:29:06 chris Exp $";
 #endif
 
 #include <string.h>
@@ -99,7 +99,6 @@ SDL_RWops *RoboFile;
 // Function Prototypes
 int RunMovie(char *filename, int highres_flag, int allow_abort,int dx,int dy);
 
-void change_filename_ext( char *dest, char *src, char *ext );
 void decode_text_line(char *p);
 void draw_subtitles(int frame_num);
 
@@ -509,7 +508,7 @@ int init_subtitles(char *filename)
 
        if (!ifile) {                                                           //no text version, try binary version
                char filename2[FILENAME_LEN];
-               change_filename_ext(filename2,filename,".TXB");
+               change_filename_extension(filename2, filename, ".TXB");
                ifile = cfopen(filename2,"rb");
                if (!ifile)
                        return 0;
index ca8265f..aa3099d 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: piggy.c,v 1.63 2005-08-02 06:13:56 chris Exp $ */
+/* $Id: piggy.c,v 1.64 2006-02-26 02:29:06 chris Exp $ */
 /*
 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
@@ -24,7 +24,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
 #endif
 
 #ifdef RCS
-static char rcsid[] = "$Id: piggy.c,v 1.63 2005-08-02 06:13:56 chris Exp $";
+static char rcsid[] = "$Id: piggy.c,v 1.64 2006-02-26 02:29:06 chris Exp $";
 #endif
 
 
@@ -1523,8 +1523,6 @@ void piggy_load_level_data()
 
 #ifdef EDITOR
 
-void change_filename_ext( char *dest, char *src, char *ext );
-
 void piggy_write_pigfile(char *filename)
 {
        FILE *pig_fp;
@@ -1562,9 +1560,9 @@ void piggy_write_pigfile(char *filename)
        bitmap_data_start += (Num_bitmap_files - 1) * sizeof(DiskBitmapHeader);
        data_offset = bitmap_data_start;
 
-       change_filename_ext(tname,filename,"lst");
+       change_filename_extension(tname,filename,"lst");
        fp1 = fopen( tname, "wt" );
-       change_filename_ext(tname,filename,"all");
+       change_filename_extension(tname,filename,"all");
        fp2 = fopen( tname, "wt" );
 
        for (i=1; i < Num_bitmap_files; i++ )   {
@@ -1848,7 +1846,6 @@ int piggy_is_substitutable_bitmap( char * name, char * subst_name )
  *  2) From descent.pig (for loading d1 levels)
  */
 
-extern void change_filename_extension( char *dest, char *src, char *new_ext );
 extern char last_palette_loaded_pig[];
 
 void free_bitmap_replacements()
index 64a4f25..de010b7 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: strutil.c,v 1.15 2004-12-20 07:12:25 btb Exp $ */
+/* $Id: strutil.c,v 1.16 2006-02-26 02:29:24 chris Exp $ */
 /*
 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
@@ -23,6 +23,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
 
 #include "u_mem.h"
 #include "error.h"
+#include "inferno.h"
 
 #ifdef macintosh
 # if defined(NDEBUG)
@@ -127,6 +128,26 @@ void removeext(const char *filename, char *out)
 }
 
 
+//give a filename a new extension, doesn't work with paths.
+void change_filename_extension( char *dest, char *src, char *ext )
+{
+       char *p;
+       
+       strcpy (dest, src);
+       
+       if (ext[0] == '.')
+               ext++;
+       
+       p = strrchr(dest, '.');
+       if (!p) {
+               p = dest + strlen(dest);
+               *p = '.';
+       }
+       
+       Assert((p + strlen(ext)) - dest < FILENAME_LEN);
+       strcpy(p+1,ext);
+}
+
 #if !defined(__MSDOS__) && !(defined(_WIN32) && !defined(_WIN32_WCE))
 void _splitpath(char *name, char *drive, char *path, char *base, char *ext)
 {