diff --git a/common/include/strutil.h b/common/include/strutil.h index d20bb749b..596b1f478 100644 --- a/common/include/strutil.h +++ b/common/include/strutil.h @@ -29,6 +29,12 @@ extern char *d_strdup(const char *str) __attribute_malloc(); #define d_strdup strdup #endif +template +static inline int d_strnicmp(const char *s1, const char (&s2)[N]) +{ + return d_strnicmp(s1, s2, N - 1); +} + struct splitpath_t { const char *drive_start, *drive_end, *path_start, *path_end, *base_start, *base_end, *ext_start; diff --git a/similar/main/gamesave.cpp b/similar/main/gamesave.cpp index a8377fc1a..118623dcd 100644 --- a/similar/main/gamesave.cpp +++ b/similar/main/gamesave.cpp @@ -151,7 +151,7 @@ static int is_real_level(const char *filename) if (len < 6) return 0; - return !d_strnicmp(&filename[len-11], "level", 5); + return !d_strnicmp(&filename[len-11], "level"); } #endif diff --git a/similar/main/mission.cpp b/similar/main/mission.cpp index f8bd01755..c697716e6 100644 --- a/similar/main/mission.cpp +++ b/similar/main/mission.cpp @@ -536,7 +536,7 @@ static void add_missions_to_list(mission_list &mission_list, char *path, char *r add_missions_to_list(mission_list, path, rel_path, anarchy_mode); *(strrchr(path, '/')) = 0; } - else if ((ext = strrchr(*i, '.')) && (!d_strnicmp(ext, ".msn", 4) || !d_strnicmp(ext, ".mn2", 4))) + else if ((ext = strrchr(*i, '.')) && (!d_strnicmp(ext, ".msn") || !d_strnicmp(ext, ".mn2"))) if (read_mission_file(mission_list, rel_path, ML_MISSIONDIR)) { if (anarchy_mode || !mission_list.back().anarchy_only_flag) diff --git a/similar/main/multi.cpp b/similar/main/multi.cpp index 609a4d27d..e785096d7 100644 --- a/similar/main/multi.cpp +++ b/similar/main/multi.cpp @@ -1207,7 +1207,7 @@ static void multi_send_message_end() Network_message_reciever = 100; #endif - if (!d_strnicmp(Network_message.data(), "/Handicap: ", 11)) + if (!d_strnicmp(Network_message.data(), "/Handicap: ")) { mytempbuf=&Network_message[11]; StartingShields=atol (mytempbuf); @@ -1223,7 +1223,7 @@ static void multi_send_message_end() HUD_init_message(HM_MULTI, "Telling others of your handicap of %d!",StartingShields); StartingShields=i2f(StartingShields); } - else if (!d_strnicmp(Network_message.data(), "/move: ", 7)) + else if (!d_strnicmp(Network_message.data(), "/move: ")) { if ((Game_mode & GM_NETWORK) && (Game_mode & GM_TEAM)) { @@ -1279,7 +1279,7 @@ static void multi_send_message_end() } } - else if (!d_strnicmp(Network_message.data(), "/kick: ", 7) && (Game_mode & GM_NETWORK)) + else if (!d_strnicmp(Network_message.data(), "/kick: ") && (Game_mode & GM_NETWORK)) { unsigned name_index=7; if (strlen(Network_message.data()) > 7) @@ -1349,7 +1349,7 @@ static void multi_send_message_end() } } - else if (!d_strnicmp (Network_message.data(), "/killreactor", 12) && (Game_mode & GM_NETWORK) && !Control_center_destroyed) + else if (!d_stricmp (Network_message.data(), "/killreactor") && (Game_mode & GM_NETWORK) && !Control_center_destroyed) { if (!multi_i_am_master()) HUD_init_message(HM_MULTI, "Only %s can kill the reactor this way!", static_cast(Players[multi_who_is_master()].callsign)); diff --git a/similar/main/net_udp.cpp b/similar/main/net_udp.cpp index 3211f59ac..e836b4263 100644 --- a/similar/main/net_udp.cpp +++ b/similar/main/net_udp.cpp @@ -3153,7 +3153,7 @@ static int net_udp_game_param_handler( newmenu *menu,const d_event &event, param { char *slevel = menus[opt->level].text; #if defined(DXX_BUILD_DESCENT_I) - if (!d_strnicmp(slevel, "s", 1)) + if (tolower(static_cast(*slevel)) == 's') Netgame.levelnum = -atoi(slevel+1); else #endif diff --git a/similar/main/newmenu.cpp b/similar/main/newmenu.cpp index 64bc9562d..0cb1887b8 100644 --- a/similar/main/newmenu.cpp +++ b/similar/main/newmenu.cpp @@ -798,7 +798,7 @@ static window_event_result newmenu_mouse(window *wind,const d_event &event, newm if ((event.type == EVENT_MOUSE_BUTTON_UP) && (menu->citem>-1) && (menu->items[menu->citem].type==NM_TYPE_INPUT_MENU) && (menu->items[menu->citem].group==0)) { menu->items[menu->citem].group = 1; - if ( !d_strnicmp( menu->items[menu->citem].saved_text, TXT_EMPTY, strlen(TXT_EMPTY) ) ) { + if (!d_stricmp(menu->items[menu->citem].saved_text, TXT_EMPTY)) { menu->items[menu->citem].text[0] = 0; menu->items[menu->citem].value = -1; } else { @@ -981,7 +981,8 @@ static window_event_result newmenu_key_command(window *wind,const d_event &event case KEY_PADENTER: if ( (menu->citem>-1) && (item->type==NM_TYPE_INPUT_MENU) && (item->group==0)) { item->group = 1; - if ( !d_strnicmp( item->saved_text, TXT_EMPTY, strlen(TXT_EMPTY) ) ) { + if (!d_stricmp(item->saved_text, TXT_EMPTY)) + { item->text[0] = 0; item->value = -1; } else { diff --git a/similar/main/piggy.cpp b/similar/main/piggy.cpp index 39ba88d36..986abe491 100644 --- a/similar/main/piggy.cpp +++ b/similar/main/piggy.cpp @@ -565,12 +565,12 @@ int properties_init() if (MacPig) { // HACK HACK HACK!!!!! - if (!d_strnicmp(bmh.name, "cockpit", 7) || !d_strnicmp(bmh.name, "status", 6) || !d_strnicmp(bmh.name, "rearview", 8)) { + if (!d_strnicmp(bmh.name, "cockpit") || !d_strnicmp(bmh.name, "status") || !d_strnicmp(bmh.name, "rearview")) { temp_bitmap.bm_w = temp_bitmap.bm_rowsize = 640; if (GameBitmapFlags[i+1] & BM_FLAG_RLE) GameBitmapFlags[i+1] |= BM_FLAG_RLE_BIG; } - if (!d_strnicmp(bmh.name, "cockpit", 7) || !d_strnicmp(bmh.name, "rearview", 8)) + if (!d_strnicmp(bmh.name, "cockpit") || !d_strnicmp(bmh.name, "rearview")) temp_bitmap.bm_h = 480; }