Merge pull request #4494 from fr500/master

better filename matching
This commit is contained in:
Twinaphex 2017-01-24 12:10:03 +01:00 committed by GitHub
commit 8b02d2bd36
2 changed files with 28 additions and 5 deletions

View File

@ -3138,7 +3138,7 @@ static int action_ok_netplay_connect_room(const char *path,
netplay_room_list[idx - 1].port);
RARCH_LOG("Connecting to: %s with game: %s/%08x\n",
netplay_room_list[idx - 1].address,
tmp_hostname,
netplay_room_list[idx - 1].gamename,
netplay_room_list[idx - 1].gamecrc);

View File

@ -88,6 +88,23 @@ static void netplay_crc_scan_callback(void *task_data,
free(state);
}
char *filename_remove_ext(const char* str)
{
char *ret;
char *lastdot;
if (str == NULL)
return NULL;
if ((ret = malloc (strlen (str) + 1)) == NULL)
return NULL;
strcpy (ret, str);
lastdot = strrchr (ret, '.');
if (lastdot != NULL)
*lastdot = '\0';
return ret;
}
static void task_netplay_crc_scan_handler(retro_task_t *task)
{
size_t i, j;
@ -127,7 +144,7 @@ static void task_netplay_crc_scan_handler(retro_task_t *task)
{
if (string_is_equal(playlist->entries[j].crc32, state->crc))
{
printf("CRC Match %s\n", state->crc);
printf("CRC Match %s\n", playlist->entries[j].crc32);
strlcpy(state->path, playlist->entries[j].path, sizeof(state->path));
state->found = true;
task_set_data(task, state);
@ -160,10 +177,14 @@ static void task_netplay_crc_scan_handler(retro_task_t *task)
for (j = 0; j < playlist->size; j++)
{
/*printf("State: %s Entry: %s\n", state->path, playlist->entries[j].path);*/
if (strstr(playlist->entries[j].path, state->path))
const char* buf = path_basename(playlist->entries[j].path);
char* entry = filename_remove_ext(buf);
#if 1
printf("%s %s\n", entry, state->path);
#endif
if (string_is_equal(entry, state->path))
{
printf("Filename Match %s\n", state->path);
printf("Filename Match %s\n", playlist->entries[j].path);
strlcpy(state->path, playlist->entries[j].path, sizeof(state->path));
state->found = true;
task_set_data(task, state);
@ -172,8 +193,10 @@ static void task_netplay_crc_scan_handler(retro_task_t *task)
task_set_finished(task, true);
string_list_free(state->lpl_list);
free(playlist);
free(entry);
return;
}
free(entry);
task_set_progress(task, (int)(j/playlist->size*100.0));
}