Get rid of superfluous macros around memcmp and strcpy

This commit is contained in:
libretroadmin 2025-08-04 19:29:34 +02:00
parent 563b687db8
commit 03dbcc53e7
14 changed files with 162 additions and 168 deletions

View File

@ -161,7 +161,7 @@ static void rcheevos_filter_url_param(char* url, char* param)
if (start[param_len] == '=' && memcmp(start, param, param_len) == 0) if (start[param_len] == '=' && memcmp(start, param, param_len) == 0)
{ {
if (next) if (next)
strcpy_literal(start, next + 1); strcpy(start, next + 1);
else if (start > url) else if (start > url)
start[-1] = '\0'; start[-1] = '\0';
else else

View File

@ -604,7 +604,7 @@ static bool d3d9_cg_renderchain_init_shader_fvf(
for (count = 0; count < MAXD3DDECLLENGTH; count++) for (count = 0; count < MAXD3DDECLLENGTH; count++)
{ {
if (string_is_equal_fast(&decl_end, &decl[count], sizeof(decl_end))) if (memcmp(&decl_end, &decl[count], sizeof(decl_end)) == 0)
break; break;
} }

View File

@ -4316,8 +4316,8 @@ static void vulkan_draw_quad(vk_t *vk, const struct vk_draw_quad *quad)
return; return;
if ( if (
string_is_equal_fast(quad->mvp, (memcmp(quad->mvp,
&vk->tracker.mvp, sizeof(*quad->mvp)) &vk->tracker.mvp, sizeof(*quad->mvp) == 0))
|| quad->texture->view != vk->tracker.view || quad->texture->view != vk->tracker.view
|| quad->sampler != vk->tracker.sampler) || quad->sampler != vk->tracker.sampler)
{ {

View File

@ -248,14 +248,14 @@ static void video_shader_replace_wildcards(char *s, size_t len, char *in_preset_
fill_pathname_parent_dir_name(content_dir_name, fill_pathname_parent_dir_name(content_dir_name,
rarch_path_basename, rarch_path_basename,
sizeof(content_dir_name)); sizeof(content_dir_name));
if (string_is_not_equal_fast(content_dir_name, "", sizeof(""))) if (memcmp(content_dir_name, "", sizeof("")) != 0)
strlcpy(content_dir_name, strlcpy(content_dir_name,
path_basename_nocompression(content_dir_name), path_basename_nocompression(content_dir_name),
sizeof(content_dir_name)); sizeof(content_dir_name));
if (string_is_not_equal_fast(content_dir_name, "", sizeof(""))) if (memcmp(content_dir_name, "", sizeof("")) != 0)
path_remove_extension(content_dir_name); path_remove_extension(content_dir_name);
if (string_is_not_equal_fast(content_dir_name, "", sizeof(""))) if (memcmp(content_dir_name, "", sizeof("")) != 0)
_len = strlcpy(replace_text, content_dir_name, sizeof(replace_text)); _len = strlcpy(replace_text, content_dir_name, sizeof(replace_text));
else else
replace_text[0] = '\0'; replace_text[0] = '\0';
@ -344,13 +344,13 @@ static void video_shader_replace_wildcards(char *s, size_t len, char *in_preset_
char preset_dir_name[DIR_MAX_LENGTH]; char preset_dir_name[DIR_MAX_LENGTH];
fill_pathname_parent_dir_name(preset_dir_name, fill_pathname_parent_dir_name(preset_dir_name,
in_preset_path, sizeof(preset_dir_name)); in_preset_path, sizeof(preset_dir_name));
if (string_is_not_equal_fast(preset_dir_name, "", sizeof(""))) if (memcmp(preset_dir_name, "", sizeof("")) != 0)
strlcpy(preset_dir_name, strlcpy(preset_dir_name,
path_basename_nocompression(preset_dir_name), path_basename_nocompression(preset_dir_name),
sizeof(preset_dir_name)); sizeof(preset_dir_name));
if (string_is_not_equal_fast(preset_dir_name, "", sizeof(""))) if (memcmp(preset_dir_name, "", sizeof("")) != 0)
path_remove_extension(preset_dir_name); path_remove_extension(preset_dir_name);
if (string_is_not_equal_fast(preset_dir_name, "", sizeof(""))) if (memcmp(preset_dir_name, "", sizeof("")) != 0)
_len = strlcpy(replace_text, _len = strlcpy(replace_text,
preset_dir_name, sizeof(replace_text)); preset_dir_name, sizeof(replace_text));
else else
@ -363,9 +363,9 @@ static void video_shader_replace_wildcards(char *s, size_t len, char *in_preset_
strlcpy(preset_name, strlcpy(preset_name,
path_basename_nocompression(in_preset_path), path_basename_nocompression(in_preset_path),
sizeof(preset_name)); sizeof(preset_name));
if (string_is_not_equal_fast(preset_name, "", sizeof(""))) if (memcmp(preset_name, "", sizeof("")) != 0)
path_remove_extension(preset_name); path_remove_extension(preset_name);
if (string_is_not_equal_fast(preset_name, "", sizeof(""))) if (memcmp(preset_name, "", sizeof("")) != 0)
_len = strlcpy(replace_text, _len = strlcpy(replace_text,
preset_name, sizeof(replace_text)); preset_name, sizeof(replace_text));
else else

View File

@ -144,8 +144,8 @@ static bool guid_is_xinput_device(const GUID* product_guid)
for (i = 0; i < ARRAY_SIZE(common_xinput_guids); ++i) for (i = 0; i < ARRAY_SIZE(common_xinput_guids); ++i)
{ {
if (string_is_equal_fast(product_guid, if (memcmp(product_guid,
&common_xinput_guids[i], sizeof(GUID))) &common_xinput_guids[i], sizeof(GUID)) == 0)
return true; return true;
} }

View File

@ -355,7 +355,7 @@ static int sevenzip_parse_file_init(file_archive_transfer_t *state,
if (filestream_read(state->archive_file, magic_buf, SEVENZIP_MAGIC_LEN) != SEVENZIP_MAGIC_LEN) if (filestream_read(state->archive_file, magic_buf, SEVENZIP_MAGIC_LEN) != SEVENZIP_MAGIC_LEN)
goto error; goto error;
if (string_is_not_equal_fast(magic_buf, SEVENZIP_MAGIC, SEVENZIP_MAGIC_LEN)) if (memcmp(magic_buf, SEVENZIP_MAGIC, SEVENZIP_MAGIC_LEN) != 0)
goto error; goto error;
sevenzip_context = (struct sevenzip_context_t*)sevenzip_stream_new(); sevenzip_context = (struct sevenzip_context_t*)sevenzip_stream_new();

View File

@ -1142,7 +1142,7 @@ size_t fill_pathname_abbreviate_special(char *s,
if (!PATH_CHAR_IS_SLASH(*in_path)) if (!PATH_CHAR_IS_SLASH(*in_path))
{ {
strcpy_literal(s, PATH_DEFAULT_SLASH()); strcpy(s, PATH_DEFAULT_SLASH());
s++; s++;
len--; len--;
} }

View File

@ -1205,8 +1205,7 @@ bool rpng_start(rpng_t *rpng)
if (rpng->buff_end - rpng->buff_data < 8) if (rpng->buff_end - rpng->buff_data < 8)
return false; return false;
if (string_is_not_equal_fast( if (memcmp(rpng->buff_data, png_magic, sizeof(png_magic)) != 0)
rpng->buff_data, png_magic, sizeof(png_magic)))
return false; return false;
rpng->buff_data += 8; rpng->buff_data += 8;

View File

@ -37,13 +37,8 @@ RETRO_BEGIN_DECLS
#define STRLEN_CONST(x) ((sizeof((x))-1)) #define STRLEN_CONST(x) ((sizeof((x))-1))
#define strcpy_literal(a, b) strcpy(a, b)
#define string_is_not_equal(a, b) !string_is_equal((a), (b)) #define string_is_not_equal(a, b) !string_is_equal((a), (b))
#define string_is_not_equal_fast(a, b, size) (memcmp(a, b, size) != 0)
#define string_is_equal_fast(a, b, size) (memcmp(a, b, size) == 0)
#define TOLOWER(c) ((c) | (lr_char_props[(unsigned char)(c)] & 0x20)) #define TOLOWER(c) ((c) | (lr_char_props[(unsigned char)(c)] & 0x20))
#define TOUPPER(c) ((c) & ~(lr_char_props[(unsigned char)(c)] & 0x20)) #define TOUPPER(c) ((c) & ~(lr_char_props[(unsigned char)(c)] & 0x20))
@ -83,16 +78,16 @@ static INLINE bool string_starts_with(const char *str, const char *prefix)
return (str && prefix) ? !strncmp(prefix, str, strlen(prefix)) : false; return (str && prefix) ? !strncmp(prefix, str, strlen(prefix)) : false;
} }
static INLINE bool string_ends_with_size(const char *str, const char *suffix, static INLINE bool string_ends_with_size(const char *s, const char *suffix,
size_t str_len, size_t suffix_len) size_t len, size_t suffix_len)
{ {
return (str_len < suffix_len) ? false : return (len < suffix_len) ? false :
!memcmp(suffix, str + (str_len - suffix_len), suffix_len); !memcmp(suffix, s + (len - suffix_len), suffix_len);
} }
static INLINE bool string_ends_with(const char *str, const char *suffix) static INLINE bool string_ends_with(const char *s, const char *suffix)
{ {
return str && suffix && string_ends_with_size(str, suffix, strlen(str), strlen(suffix)); return s && suffix && string_ends_with_size(s, suffix, strlen(s), strlen(suffix));
} }
/** /**

View File

@ -161,10 +161,10 @@ END_TEST
START_TEST (test_string_comparison) START_TEST (test_string_comparison)
{ {
ck_assert(string_is_not_equal_fast("foo", "bar", 3)); ck_assert(memcmp("foo", "bar", 3) != 0);
ck_assert(string_is_equal_fast("foo2", "foo2", 4)); ck_assert(memcmp("foo2", "foo2", 4) == 0);
ck_assert(!string_is_equal_fast("foo1", "foo2", 4)); ck_assert(memcmp("foo1", "foo2", 4) != 0);
ck_assert(string_is_equal_fast("foo1", "foo2", 3)); ck_assert(memcmp("foo1", "foo2", 3) == 0);
} }
END_TEST END_TEST

View File

@ -274,7 +274,7 @@ static void query_raise_unknown_function(
); );
if (len < ((ssize_t)_len - __len - 3)) if (len < ((ssize_t)_len - __len - 3))
strncpy(s + __len, name, len); strncpy(s + __len, name, len);
strcpy_literal(s + __len + len, "'"); strcpy(s + __len + len, "'");
*error = s; *error = s;
} }

View File

@ -149,7 +149,7 @@ void runahead_set_load_content_info(void *data,
static void strcat_alloc(char **dst, const char *s) static void strcat_alloc(char **dst, const char *s)
{ {
size_t _len; size_t _len;
char *src = *dst; char *src = *dst;
if (!src) if (!src)
{ {
@ -157,27 +157,27 @@ static void strcat_alloc(char **dst, const char *s)
{ {
size_t __len = strlen(s); size_t __len = strlen(s);
if (__len != 0) if (__len != 0)
src = strldup(s, __len + 1); src = strldup(s, __len + 1);
else else
src = NULL; src = NULL;
} }
else else
src = (char*)calloc(1,1); src = (char*)calloc(1,1);
*dst = src; *dst = src;
return; return;
} }
if (!s) if (!s)
return; return;
_len = strlen(src); _len = strlen(src);
if (!(src = (char*)realloc(src, _len + strlen(s) + 1))) if (!(src = (char*)realloc(src, _len + strlen(s) + 1)))
return; return;
*dst = src; *dst = src;
strcpy_literal(src + _len, s); strcpy(src + _len, s);
} }
void runahead_secondary_core_destroy(void *data) void runahead_secondary_core_destroy(void *data)

View File

@ -209,20 +209,20 @@ static int intfstream_get_serial(intfstream_t *fd, char *s, size_t len, const ch
size_t system_len = strlen(system_name); size_t system_len = strlen(system_name);
if (string_starts_with_size(system_name, "Sony", STRLEN_CONST("Sony"))) if (string_starts_with_size(system_name, "Sony", STRLEN_CONST("Sony")))
{ {
if (STRLEN_CONST("Sony - PlayStation Portable") == system_len && if ( STRLEN_CONST("Sony - PlayStation Portable") == system_len
string_is_equal_fast(system_name, "Sony - PlayStation Portable", system_len)) && memcmp(system_name, "Sony - PlayStation Portable", system_len) == 0)
{ {
if (detect_psp_game(fd, s, len, filename) != 0) if (detect_psp_game(fd, s, len, filename) != 0)
return 1; return 1;
} }
else if (STRLEN_CONST("Sony - PlayStation") == system_len && else if ( STRLEN_CONST("Sony - PlayStation") == system_len
string_is_equal_fast(system_name, "Sony - PlayStation", system_len)) && memcmp(system_name, "Sony - PlayStation", system_len) == 0)
{ {
if (detect_ps1_game(fd, s, len, filename) != 0) if (detect_ps1_game(fd, s, len, filename) != 0)
return 1; return 1;
} }
else if (STRLEN_CONST("Sony - PlayStation 2") == system_len && else if ( STRLEN_CONST("Sony - PlayStation 2") == system_len
string_is_equal_fast(system_name, "Sony - PlayStation 2", system_len)) && memcmp(system_name, "Sony - PlayStation 2", system_len) == 0)
{ {
if (detect_ps2_game(fd, s, len, filename) != 0) if (detect_ps2_game(fd, s, len, filename) != 0)
return 1; return 1;
@ -230,14 +230,14 @@ static int intfstream_get_serial(intfstream_t *fd, char *s, size_t len, const ch
} }
else if (string_starts_with_size(system_name, "Nintendo", STRLEN_CONST("Nintendo"))) else if (string_starts_with_size(system_name, "Nintendo", STRLEN_CONST("Nintendo")))
{ {
if (STRLEN_CONST("Nintendo - GameCube") == system_len && if ( STRLEN_CONST("Nintendo - GameCube") == system_len
string_is_equal_fast(system_name, "Nintendo - GameCube", system_len)) && memcmp(system_name, "Nintendo - GameCube", system_len) == 0)
{ {
if (detect_gc_game(fd, s, len, filename) != 0) if (detect_gc_game(fd, s, len, filename) != 0)
return 1; return 1;
} }
else if (STRLEN_CONST("Nintendo - Wii") == system_len && else if ( STRLEN_CONST("Nintendo - Wii") == system_len
string_is_equal_fast(system_name, "Nintendo - Wii", system_len)) && memcmp(system_name, "Nintendo - Wii", system_len) == 0)
{ {
if (detect_wii_game(fd, s, len, filename) != 0) if (detect_wii_game(fd, s, len, filename) != 0)
return 1; return 1;
@ -245,20 +245,20 @@ static int intfstream_get_serial(intfstream_t *fd, char *s, size_t len, const ch
} }
else if (string_starts_with_size(system_name, "Sega", STRLEN_CONST("Sega"))) else if (string_starts_with_size(system_name, "Sega", STRLEN_CONST("Sega")))
{ {
if (STRLEN_CONST("Sega - Mega-CD - Sega CD") == system_len && if ( STRLEN_CONST("Sega - Mega-CD - Sega CD") == system_len
string_is_equal_fast(system_name, "Sega - Mega-CD - Sega CD", system_len)) && memcmp(system_name, "Sega - Mega-CD - Sega CD", system_len) == 0)
{ {
if (detect_scd_game(fd, s, len, filename) != 0) if (detect_scd_game(fd, s, len, filename) != 0)
return 1; return 1;
} }
else if (STRLEN_CONST("Sega - Saturn") == system_len && else if ( STRLEN_CONST("Sega - Saturn") == system_len
string_is_equal_fast(system_name, "Sega - Saturn", system_len)) && memcmp(system_name, "Sega - Saturn", system_len) == 0)
{ {
if (detect_sat_game(fd, s, len, filename) != 0) if (detect_sat_game(fd, s, len, filename) != 0)
return 1; return 1;
} }
else if (STRLEN_CONST("Sega - Dreamcast") == system_len && else if ( STRLEN_CONST("Sega - Dreamcast") == system_len
string_is_equal_fast(system_name, "Sega - Dreamcast", system_len)) && memcmp(system_name, "Sega - Dreamcast", system_len) == 0)
{ {
if (detect_dc_game(fd, s, len, filename) != 0) if (detect_dc_game(fd, s, len, filename) != 0)
return 1; return 1;

View File

@ -207,33 +207,33 @@ int detect_ps1_game(intfstream_t *fd, char *s, size_t len, const char *filename)
{ {
strncpy(raw_game_id, &disc_data[pos], 12); strncpy(raw_game_id, &disc_data[pos], 12);
raw_game_id[12] = '\0'; raw_game_id[12] = '\0';
if ( string_is_equal_fast(raw_game_id, "S", STRLEN_CONST("S")) if ( memcmp(raw_game_id, "S", STRLEN_CONST("S") == 0)
|| string_is_equal_fast(raw_game_id, "E", STRLEN_CONST("E"))) || memcmp(raw_game_id, "E", STRLEN_CONST("E")) == 0)
{ {
if ( string_is_equal_fast(raw_game_id, "SCUS_", STRLEN_CONST("SCUS_")) if ( memcmp(raw_game_id, "SCUS_", STRLEN_CONST("SCUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SLUS_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SLUS_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SLES_", STRLEN_CONST("SLES_")) || memcmp(raw_game_id, "SLES_", STRLEN_CONST("SLES_") == 0)
|| string_is_equal_fast(raw_game_id, "SCED_", STRLEN_CONST("SCED_")) || memcmp(raw_game_id, "SCED_", STRLEN_CONST("SCED_") == 0)
|| string_is_equal_fast(raw_game_id, "SLPS_", STRLEN_CONST("SLPS_")) || memcmp(raw_game_id, "SLPS_", STRLEN_CONST("SLPS_") == 0)
|| string_is_equal_fast(raw_game_id, "SLPM_", STRLEN_CONST("SLPM_")) || memcmp(raw_game_id, "SLPM_", STRLEN_CONST("SLPM_") == 0)
|| string_is_equal_fast(raw_game_id, "SCPS_", STRLEN_CONST("SCPS_")) || memcmp(raw_game_id, "SCPS_", STRLEN_CONST("SCPS_") == 0)
|| string_is_equal_fast(raw_game_id, "SLED_", STRLEN_CONST("SLED_")) || memcmp(raw_game_id, "SLED_", STRLEN_CONST("SLED_") == 0)
|| string_is_equal_fast(raw_game_id, "SIPS_", STRLEN_CONST("SIPS_")) || memcmp(raw_game_id, "SIPS_", STRLEN_CONST("SIPS_") == 0)
|| string_is_equal_fast(raw_game_id, "ESPM_", STRLEN_CONST("ESPM_")) || memcmp(raw_game_id, "ESPM_", STRLEN_CONST("ESPM_") == 0)
|| string_is_equal_fast(raw_game_id, "SCES_", STRLEN_CONST("SCES_")) || memcmp(raw_game_id, "SCES_", STRLEN_CONST("SCES_") == 0)
|| string_is_equal_fast(raw_game_id, "SLKA_", STRLEN_CONST("SLKA_")) || memcmp(raw_game_id, "SLKA_", STRLEN_CONST("SLKA_") == 0)
|| string_is_equal_fast(raw_game_id, "SCAJ_", STRLEN_CONST("SCAJ_")) || memcmp(raw_game_id, "SCAJ_", STRLEN_CONST("SCAJ_") == 0)
) )
{ {
raw_game_id[4] = '-'; raw_game_id[4] = '-';
if (string_is_equal_fast(&raw_game_id[8], ".", STRLEN_CONST("."))) if (memcmp(&raw_game_id[8], ".", STRLEN_CONST(".")) == 0)
{ {
raw_game_id[8] = raw_game_id[9]; raw_game_id[8] = raw_game_id[9];
raw_game_id[9] = raw_game_id[10]; raw_game_id[9] = raw_game_id[10];
} }
/* A few games have their serial in the form of xx.xxx */ /* A few games have their serial in the form of xx.xxx */
/* Tanaka Torahiko no Ultra-ryuu Shougi - Ibisha Anaguma-hen (Japan) -> SLPS_02.261 */ /* Tanaka Torahiko no Ultra-ryuu Shougi - Ibisha Anaguma-hen (Japan) -> SLPS_02.261 */
else if (string_is_equal_fast(&raw_game_id[7], ".", STRLEN_CONST("."))) else if (memcmp(&raw_game_id[7], ".", STRLEN_CONST(".")) == 0)
{ {
raw_game_id[7] = raw_game_id[8]; raw_game_id[7] = raw_game_id[8];
raw_game_id[8] = raw_game_id[9]; raw_game_id[8] = raw_game_id[9];
@ -247,7 +247,7 @@ int detect_ps1_game(intfstream_t *fd, char *s, size_t len, const char *filename)
return true; return true;
} }
} }
else if (string_is_equal_fast(raw_game_id, "LSP-", STRLEN_CONST("LSP-"))) else if (memcmp(raw_game_id, "LSP-", STRLEN_CONST("LSP-")) == 0)
{ {
raw_game_id[10] = '\0'; raw_game_id[10] = '\0';
@ -256,7 +256,7 @@ int detect_ps1_game(intfstream_t *fd, char *s, size_t len, const char *filename)
free(disc_data); free(disc_data);
return true; return true;
} }
else if (string_is_equal_fast(raw_game_id, "PSX.EXE", STRLEN_CONST("PSX.EXE"))) else if (memcmp(raw_game_id, "PSX.EXE", STRLEN_CONST("PSX.EXE")) == 0)
{ {
raw_game_id[7] = '\0'; raw_game_id[7] = '\0';
@ -308,76 +308,76 @@ int detect_ps2_game(intfstream_t *fd, char *s, size_t len, const char *filename)
{ {
strncpy(raw_game_id, &disc_data[pos], 12); strncpy(raw_game_id, &disc_data[pos], 12);
raw_game_id[12] = '\0'; raw_game_id[12] = '\0';
if ( string_is_equal_fast(raw_game_id, "S", STRLEN_CONST("S")) if ( memcmp(raw_game_id, "S", STRLEN_CONST("S") == 0)
|| string_is_equal_fast(raw_game_id, "P", STRLEN_CONST("P")) || memcmp(raw_game_id, "P", STRLEN_CONST("P") == 0)
|| string_is_equal_fast(raw_game_id, "T", STRLEN_CONST("T")) || memcmp(raw_game_id, "T", STRLEN_CONST("T") == 0)
|| string_is_equal_fast(raw_game_id, "C", STRLEN_CONST("C")) || memcmp(raw_game_id, "C", STRLEN_CONST("C") == 0)
|| string_is_equal_fast(raw_game_id, "H", STRLEN_CONST("H")) || memcmp(raw_game_id, "H", STRLEN_CONST("H") == 0)
|| string_is_equal_fast(raw_game_id, "A", STRLEN_CONST("A")) || memcmp(raw_game_id, "A", STRLEN_CONST("A") == 0)
|| string_is_equal_fast(raw_game_id, "V", STRLEN_CONST("A")) || memcmp(raw_game_id, "V", STRLEN_CONST("A") == 0)
|| string_is_equal_fast(raw_game_id, "L", STRLEN_CONST("A")) || memcmp(raw_game_id, "L", STRLEN_CONST("A") == 0)
|| string_is_equal_fast(raw_game_id, "M", STRLEN_CONST("A")) || memcmp(raw_game_id, "M", STRLEN_CONST("A") == 0)
|| string_is_equal_fast(raw_game_id, "N", STRLEN_CONST("A")) || memcmp(raw_game_id, "N", STRLEN_CONST("A") == 0)
|| string_is_equal_fast(raw_game_id, "U", STRLEN_CONST("A")) || memcmp(raw_game_id, "U", STRLEN_CONST("A") == 0)
|| string_is_equal_fast(raw_game_id, "W", STRLEN_CONST("A")) || memcmp(raw_game_id, "W", STRLEN_CONST("A") == 0)
|| string_is_equal_fast(raw_game_id, "G", STRLEN_CONST("A")) || memcmp(raw_game_id, "G", STRLEN_CONST("A") == 0)
|| string_is_equal_fast(raw_game_id, "K", STRLEN_CONST("A")) || memcmp(raw_game_id, "K", STRLEN_CONST("A") == 0)
|| string_is_equal_fast(raw_game_id, "R", STRLEN_CONST("A")) || memcmp(raw_game_id, "R", STRLEN_CONST("A") == 0)
) )
{ {
if ( string_is_equal_fast(raw_game_id, "SLPM_", STRLEN_CONST("SLUS_")) if ( memcmp(raw_game_id, "SLPM_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SLES_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SLES_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SCES_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SCES_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SLUS_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SLUS_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SLPS_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SLPS_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SCED_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SCED_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SCUS_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SCUS_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SCPS_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SCPS_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SCAJ_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SCAJ_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SLKA_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SLKA_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SCKA_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SCKA_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SLAJ_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SLAJ_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "TCPS_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "TCPS_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "KOEI_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "KOEI_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "PBPX_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "PBPX_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "PCPX_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "PCPX_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "PAPX_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "PAPX_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SCCS_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SCCS_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "ALCH_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "ALCH_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "TCES_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "TCES_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "CPCS_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "CPCS_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SLED_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SLED_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "TLES_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "TLES_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "GUST_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "GUST_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "CF00_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "CF00_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SCPN_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SCPN_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SCPM_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SCPM_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "PSXC_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "PSXC_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SLPN_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SLPN_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "ULKS_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "ULKS_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "LDTL_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "LDTL_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "PKP2_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "PKP2_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "WLFD_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "WLFD_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "CZP2_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "CZP2_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "HAKU_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "HAKU_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "SRPM_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "SRPM_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "MTP2_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "MTP2_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "NMP2_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "NMP2_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "ARZE_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "ARZE_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "VUGJ_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "VUGJ_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "ARP2_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "ARP2_", STRLEN_CONST("SLUS_") == 0)
|| string_is_equal_fast(raw_game_id, "ROSE_", STRLEN_CONST("SLUS_")) || memcmp(raw_game_id, "ROSE_", STRLEN_CONST("SLUS_") == 0)
) )
{ {
raw_game_id[4] = '-'; raw_game_id[4] = '-';
if (string_is_equal_fast(&raw_game_id[8], ".", STRLEN_CONST("."))) if (memcmp(&raw_game_id[8], ".", STRLEN_CONST(".")) == 0)
{ {
raw_game_id[8] = raw_game_id[9]; raw_game_id[8] = raw_game_id[9];
raw_game_id[9] = raw_game_id[10]; raw_game_id[9] = raw_game_id[10];
} }
/* A few games have their serial in the form of xx.xxx */ /* A few games have their serial in the form of xx.xxx */
/* Tanaka Torahiko no Ultra-ryuu Shougi - Ibisha Anaguma-hen (Japan) -> SLPS_02.261 */ /* Tanaka Torahiko no Ultra-ryuu Shougi - Ibisha Anaguma-hen (Japan) -> SLPS_02.261 */
else if (string_is_equal_fast(&raw_game_id[7], ".", STRLEN_CONST("."))) else if (memcmp(&raw_game_id[7], ".", STRLEN_CONST(".")) == 0)
{ {
raw_game_id[7] = raw_game_id[8]; raw_game_id[7] = raw_game_id[8];
raw_game_id[8] = raw_game_id[9]; raw_game_id[8] = raw_game_id[9];
@ -437,39 +437,39 @@ int detect_psp_game(intfstream_t *fd, char *s, size_t len, const char *filename)
{ {
strncpy(s, &disc_data[pos], 10); strncpy(s, &disc_data[pos], 10);
s[10] = '\0'; s[10] = '\0';
if ( string_is_equal_fast(s, "U", STRLEN_CONST("U")) if ( memcmp(s, "U", STRLEN_CONST("U") == 0)
|| string_is_equal_fast(s, "N", STRLEN_CONST("N"))) || memcmp(s, "N", STRLEN_CONST("N")) == 0)
{ {
if ( if (
( string_is_equal_fast(s, "ULES-", STRLEN_CONST("ULES-"))) ( memcmp(s, "ULES-", STRLEN_CONST("ULES-")) == 0)
|| (string_is_equal_fast(s, "ULUS-", STRLEN_CONST("ULUS-"))) || (memcmp(s, "ULUS-", STRLEN_CONST("ULUS-")) == 0)
|| (string_is_equal_fast(s, "ULJS-", STRLEN_CONST("ULJS-"))) || (memcmp(s, "ULJS-", STRLEN_CONST("ULJS-")) == 0)
|| (string_is_equal_fast(s, "ULEM-", STRLEN_CONST("ULEM-"))) || (memcmp(s, "ULEM-", STRLEN_CONST("ULEM-")) == 0)
|| (string_is_equal_fast(s, "ULUM-", STRLEN_CONST("ULUM-"))) || (memcmp(s, "ULUM-", STRLEN_CONST("ULUM-")) == 0)
|| (string_is_equal_fast(s, "ULJM-", STRLEN_CONST("ULJM-"))) || (memcmp(s, "ULJM-", STRLEN_CONST("ULJM-")) == 0)
|| (string_is_equal_fast(s, "UCES-", STRLEN_CONST("UCES-"))) || (memcmp(s, "UCES-", STRLEN_CONST("UCES-")) == 0)
|| (string_is_equal_fast(s, "UCUS-", STRLEN_CONST("UCUS-"))) || (memcmp(s, "UCUS-", STRLEN_CONST("UCUS-")) == 0)
|| (string_is_equal_fast(s, "UCJS-", STRLEN_CONST("UCJS-"))) || (memcmp(s, "UCJS-", STRLEN_CONST("UCJS-")) == 0)
|| (string_is_equal_fast(s, "UCAS-", STRLEN_CONST("UCAS-"))) || (memcmp(s, "UCAS-", STRLEN_CONST("UCAS-")) == 0)
|| (string_is_equal_fast(s, "UCKS-", STRLEN_CONST("UCKS-"))) || (memcmp(s, "UCKS-", STRLEN_CONST("UCKS-")) == 0)
|| (string_is_equal_fast(s, "ULKS-", STRLEN_CONST("ULKS-"))) || (memcmp(s, "ULKS-", STRLEN_CONST("ULKS-")) == 0)
|| (string_is_equal_fast(s, "ULAS-", STRLEN_CONST("ULAS-"))) || (memcmp(s, "ULAS-", STRLEN_CONST("ULAS-")) == 0)
|| (string_is_equal_fast(s, "NPEH-", STRLEN_CONST("NPEH-"))) || (memcmp(s, "NPEH-", STRLEN_CONST("NPEH-")) == 0)
|| (string_is_equal_fast(s, "NPUH-", STRLEN_CONST("NPUH-"))) || (memcmp(s, "NPUH-", STRLEN_CONST("NPUH-")) == 0)
|| (string_is_equal_fast(s, "NPJH-", STRLEN_CONST("NPJH-"))) || (memcmp(s, "NPJH-", STRLEN_CONST("NPJH-")) == 0)
|| (string_is_equal_fast(s, "NPHH-", STRLEN_CONST("NPHH-"))) || (memcmp(s, "NPHH-", STRLEN_CONST("NPHH-")) == 0)
|| (string_is_equal_fast(s, "NPEG-", STRLEN_CONST("NPEG-"))) || (memcmp(s, "NPEG-", STRLEN_CONST("NPEG-")) == 0)
|| (string_is_equal_fast(s, "NPUG-", STRLEN_CONST("NPUG-"))) || (memcmp(s, "NPUG-", STRLEN_CONST("NPUG-")) == 0)
|| (string_is_equal_fast(s, "NPJG-", STRLEN_CONST("NPJG-"))) || (memcmp(s, "NPJG-", STRLEN_CONST("NPJG-")) == 0)
|| (string_is_equal_fast(s, "NPHG-", STRLEN_CONST("NPHG-"))) || (memcmp(s, "NPHG-", STRLEN_CONST("NPHG-")) == 0)
|| (string_is_equal_fast(s, "NPEZ-", STRLEN_CONST("NPEZ-"))) || (memcmp(s, "NPEZ-", STRLEN_CONST("NPEZ-")) == 0)
|| (string_is_equal_fast(s, "NPUZ-", STRLEN_CONST("NPUZ-"))) || (memcmp(s, "NPUZ-", STRLEN_CONST("NPUZ-")) == 0)
|| (string_is_equal_fast(s, "NPJZ-", STRLEN_CONST("NPJZ-"))) || (memcmp(s, "NPJZ-", STRLEN_CONST("NPJZ-")) == 0)
) )
{ {
cue_append_multi_disc_suffix(s, filename); cue_append_multi_disc_suffix(s, filename);
@ -497,8 +497,8 @@ size_t detect_gc_game(intfstream_t *fd, char *s, size_t len, const char *filenam
if (intfstream_read(fd, raw_game_id, 4) <= 0) if (intfstream_read(fd, raw_game_id, 4) <= 0)
return 0; return 0;
if ( string_is_equal_fast(raw_game_id, "RVZ", STRLEN_CONST("RVZ")) if ( memcmp(raw_game_id, "RVZ", STRLEN_CONST("RVZ") == 0)
|| string_is_equal_fast(raw_game_id, "WIA", STRLEN_CONST("WIA"))) || memcmp(raw_game_id, "WIA", STRLEN_CONST("WIA")) == 0)
{ {
if (intfstream_seek(fd, 0x0058, SEEK_SET) < 0) if (intfstream_seek(fd, 0x0058, SEEK_SET) < 0)
return 0; return 0;
@ -930,7 +930,7 @@ int detect_dc_game(intfstream_t *fd, char *s, size_t len, const char *filename)
{ {
/* For 8 chars serials in 'MK-xxxxx' format, we need to remove 'MK-' to match Redump database /* For 8 chars serials in 'MK-xxxxx' format, we need to remove 'MK-' to match Redump database
* Sega GT being the only exception (MK-51053), we have to check if it's not that game first */ * Sega GT being the only exception (MK-51053), we have to check if it's not that game first */
if (string_is_not_equal_fast(raw_game_id, "MK-51053", STRLEN_CONST("MK-51053"))) if (memcmp(raw_game_id, "MK-51053", STRLEN_CONST("MK-51053")) != 0)
{ {
strncpy(s, raw_game_id + 3, 5); strncpy(s, raw_game_id + 3, 5);
s[5] = '\0'; s[5] = '\0';
@ -975,7 +975,7 @@ size_t detect_wii_game(intfstream_t *fd, char *s, size_t len, const char *filena
if (intfstream_read(fd, raw_game_id, 6) <= 0) if (intfstream_read(fd, raw_game_id, 6) <= 0)
return 0; return 0;
if (string_is_equal_fast(raw_game_id, "WBFS", STRLEN_CONST("WBFS"))) if (memcmp(raw_game_id, "WBFS", STRLEN_CONST("WBFS")) == 0)
{ {
if (intfstream_seek(fd, 0x0200, SEEK_SET) < 0) if (intfstream_seek(fd, 0x0200, SEEK_SET) < 0)
return 0; return 0;
@ -983,8 +983,8 @@ size_t detect_wii_game(intfstream_t *fd, char *s, size_t len, const char *filena
return 0; return 0;
} }
if ( string_is_equal_fast(raw_game_id, "RVZ", STRLEN_CONST("RVZ")) if ( memcmp(raw_game_id, "RVZ", STRLEN_CONST("RVZ") == 0)
|| string_is_equal_fast(raw_game_id, "WIA", STRLEN_CONST("WIA"))) || memcmp(raw_game_id, "WIA", STRLEN_CONST("WIA")) == 0)
{ {
if (intfstream_seek(fd, 0x0058, SEEK_SET) < 0) if (intfstream_seek(fd, 0x0058, SEEK_SET) < 0)
return 0; return 0;