mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 14:27:16 +00:00
(svn r27063) -Fix [FS#6172]: Some lists did not use natural string sorting.
This commit is contained in:
parent
c00e48eedb
commit
861b9bc85e
@ -715,7 +715,7 @@ static int CDECL GRFSorter(GRFConfig * const *p1, GRFConfig * const *p2)
|
|||||||
const GRFConfig *c1 = *p1;
|
const GRFConfig *c1 = *p1;
|
||||||
const GRFConfig *c2 = *p2;
|
const GRFConfig *c2 = *p2;
|
||||||
|
|
||||||
return strcasecmp(c1->GetName(), c2->GetName());
|
return strnatcmp(c1->GetName(), c2->GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "cargotype.h"
|
#include "cargotype.h"
|
||||||
#include "station_gui.h"
|
#include "station_gui.h"
|
||||||
#include "strings_func.h"
|
#include "strings_func.h"
|
||||||
|
#include "string_func.h"
|
||||||
#include "window_func.h"
|
#include "window_func.h"
|
||||||
#include "viewport_func.h"
|
#include "viewport_func.h"
|
||||||
#include "widgets/dropdown_func.h"
|
#include "widgets/dropdown_func.h"
|
||||||
@ -222,7 +223,9 @@ protected:
|
|||||||
GetString(buf_cache, STR_STATION_NAME, lastof(buf_cache));
|
GetString(buf_cache, STR_STATION_NAME, lastof(buf_cache));
|
||||||
}
|
}
|
||||||
|
|
||||||
return strcmp(buf, buf_cache);
|
int r = strnatcmp(buf, buf_cache); // Sort by name (natural sorting).
|
||||||
|
if (r == 0) return (*a)->index - (*b)->index;
|
||||||
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Sort stations by their type */
|
/** Sort stations by their type */
|
||||||
@ -1186,7 +1189,7 @@ bool CargoSorter::SortStation(StationID st1, StationID st2) const
|
|||||||
SetDParam(0, st2);
|
SetDParam(0, st2);
|
||||||
GetString(buf2, STR_STATION_NAME, lastof(buf2));
|
GetString(buf2, STR_STATION_NAME, lastof(buf2));
|
||||||
|
|
||||||
int res = strcmp(buf1, buf2);
|
int res = strnatcmp(buf1, buf2); // Sort by name (natural sorting).
|
||||||
if (res == 0) {
|
if (res == 0) {
|
||||||
return this->SortId(st1, st2);
|
return this->SortId(st1, st2);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1864,7 +1864,7 @@ int CDECL StringIDSorter(const StringID *a, const StringID *b)
|
|||||||
GetString(stra, *a, lastof(stra));
|
GetString(stra, *a, lastof(stra));
|
||||||
GetString(strb, *b, lastof(strb));
|
GetString(strb, *b, lastof(strb));
|
||||||
|
|
||||||
return strcmp(stra, strb);
|
return strnatcmp(stra, strb);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user