Add convenience d_strnicmp for literal right side

This commit is contained in:
Kp 2015-01-12 00:26:03 +00:00
parent fc30cdcc9b
commit b6a3735f53
7 changed files with 18 additions and 11 deletions

View file

@ -29,6 +29,12 @@ extern char *d_strdup(const char *str) __attribute_malloc();
#define d_strdup strdup
#endif
template <std::size_t N>
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;

View file

@ -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

View file

@ -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)

View file

@ -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<const char *>(Players[multi_who_is_master()].callsign));

View file

@ -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<unsigned>(*slevel)) == 's')
Netgame.levelnum = -atoi(slevel+1);
else
#endif

View file

@ -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 {

View file

@ -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;
}