# HG changeset patch # User nadvornik # Date 1252352885 0 # Node ID 30d649102a9fdc8e287efb1f26f01bc65cae1f40 # Parent 7f91f906f9c23104168ef50d9aa08a07c749af5b fixes sidecar file grouping files with a number in extension were listed twice, it caused problems later diff -r 7f91f906f9c2 -r 30d649102a9f src/filedata.c --- a/src/filedata.c Mon Sep 07 08:24:09 2009 +0000 +++ b/src/filedata.c Mon Sep 07 19:48:05 2009 +0000 @@ -367,7 +367,7 @@ file_data_disconnect_sidecar_file(fd, sfd); } - if (sfd) file_data_check_sidecars(sfd, FALSE); /* this will group the sidecars back together */ + if (sfd) file_data_check_sidecars(sfd, NULL); /* this will group the sidecars back together */ file_data_send_notification(fd, NOTIFY_REREAD); } else @@ -444,7 +444,7 @@ GList *list = NULL; sl = path_from_utf8(path); - + extl = strrchr(sl, '.'); if (extl) { @@ -455,13 +455,25 @@ for (i = 0; i < (1 << ext_len); i++) { struct stat st; + gboolean skip = FALSE; for (j = 0; j < ext_len; j++) { if (i & (1 << (ext_len - 1 - j))) + { extl[j] = g_ascii_tolower(extl[j]); + /* make sure the result does not contain duplicates */ + if (extl[j] == g_ascii_toupper(extl[j])) + { + /* no change, probably a number, we have already tested this combination */ + skip = TRUE; + break; + } + } else extl[j] = g_ascii_toupper(extl[j]); } + if (skip) continue; + if (stat(sl, &st) == 0) { list = g_list_prepend(list, file_data_new_local(sl, &st, FALSE, FALSE));