From 66a8db9dc5d2eaa586f19aef47b06d7bc08a732f Mon Sep 17 00:00:00 2001 From: glx22 Date: Fri, 19 Apr 2019 18:48:01 +0200 Subject: Fix #7526, 5b77102b6: FiosItem::operator< must return false for equality (#7528) --- src/fios.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/fios.cpp b/src/fios.cpp index 76a2e7430..30a505ef7 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -52,16 +52,15 @@ extern void GetOldSaveGameName(const char *file, char *title, const char *last); */ bool FiosItem::operator< (const FiosItem &other) const { - bool r = false; + int r = false; if ((_savegame_sort_order & SORT_BY_NAME) == 0 && (*this).mtime != other.mtime) { - r = (*this).mtime < other.mtime; + r = (*this).mtime - other.mtime; } else { - r = strcasecmp((*this).title, other.title) < 0; + r = strcasecmp((*this).title, other.title); } - - if (_savegame_sort_order & SORT_DESCENDING) r = !r; - return r; + if (r == 0) return false; + return (_savegame_sort_order & SORT_DESCENDING) ? r > 0 : r < 0; } FileList::~FileList() -- cgit v1.2.3-70-g09d2