Mercurial > hg > forks > geeqie
changeset 1928:51d96f795ecc
fixed filelist_sort_compare_filedata to not return 0 no different files
author | Vladimir Nadvornik <nadvornik@suse.cz> |
---|---|
date | Fri, 30 Sep 2011 23:57:31 +0200 |
parents | d1a5b8633919 |
children | 6d8d5ea87cc2 |
files | src/filedata.c |
diffstat | 1 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/filedata.c Fri Sep 30 23:02:26 2011 +0200 +++ b/src/filedata.c Fri Sep 30 23:57:31 2011 +0200 @@ -852,6 +852,7 @@ gint filelist_sort_compare_filedata(FileData *fa, FileData *fb) { + gint ret; if (!filelist_sort_ascend) { FileData *tmp = fa; @@ -875,7 +876,8 @@ break; #ifdef HAVE_STRVERSCMP case SORT_NUMBER: - return strverscmp(fa->name, fb->name); + ret = strverscmp(fa->name, fb->name); + if (ret != 0) return ret; break; #endif default: @@ -883,9 +885,16 @@ } if (options->file_sort.case_sensitive) - return strcmp(fa->collate_key_name, fb->collate_key_name); + ret = strcmp(fa->collate_key_name, fb->collate_key_name); else - return strcmp(fa->collate_key_name_nocase, fb->collate_key_name_nocase); + ret = strcmp(fa->collate_key_name_nocase, fb->collate_key_name_nocase); + + if (ret != 0) return ret; + + /* do not return 0 unless the files are really the same + file_data_pool ensures that original_path is unique + */ + return strcmp(fa->original_path, fb->original_path); } gint filelist_sort_compare_filedata_full(FileData *fa, FileData *fb, SortType method, gboolean ascend)