From ef172a1672c6a63aee5625578c444305b90e64c4 Mon Sep 17 00:00:00 2001 From: Chris Taylor Date: Sun, 26 Feb 2006 02:29:42 +0000 Subject: [PATCH] move change_filename_ext to strutil.c, rename to (and remove old) change_filename_extension, add an assert and make it use strrchr --- ChangeLog | 7 +++++++ include/strutil.h | 5 ++++- main/bm.c | 4 +--- main/gamepal.c | 21 +-------------------- main/gamesave.c | 27 ++------------------------- main/movie.c | 7 +++---- main/piggy.c | 11 ++++------- misc/strutil.c | 23 ++++++++++++++++++++++- 8 files changed, 44 insertions(+), 61 deletions(-) diff --git a/ChangeLog b/ChangeLog index 24d1644c..f71e0448 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2006-02-26 Chris Taylor + + * 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 * main/menu.c: complete removal of 7th option in Options menu, diff --git a/include/strutil.h b/include/strutil.h index a902528f..092e734b 100644 --- a/include/strutil.h +++ b/include/strutil.h @@ -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 diff --git a/main/bm.c b/main/bm.c index 8517eb67..e6071c6e 100644 --- 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) diff --git a/main/gamepal.c b/main/gamepal.c index add0ceb0..3a6a0301 100644 --- a/main/gamepal.c +++ b/main/gamepal.c @@ -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. diff --git a/main/gamesave.c b/main/gamesave.c index f9fdadd0..607d0c9b 100644 --- a/main/gamesave.c +++ b/main/gamesave.c @@ -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 @@ -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; ip=(v)->b=(v)->h=0;} while (0) diff --git a/main/movie.c b/main/movie.c index 88096649..0d7ccc3b 100644 --- a/main/movie.c +++ b/main/movie.c @@ -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 @@ -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; diff --git a/main/piggy.c b/main/piggy.c index ca8265f2..aa3099dd 100644 --- a/main/piggy.c +++ b/main/piggy.c @@ -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() diff --git a/misc/strutil.c b/misc/strutil.c index 64a4f257..de010b78 100644 --- a/misc/strutil.c +++ b/misc/strutil.c @@ -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) { -- 2.39.2