Mercurial > hg > batmud > maputils
changeset 2174:25a5dfffef42
Sort location entries in the list.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sat, 12 Oct 2019 19:53:19 +0300 |
parents | ed4135c0a0f5 |
children | 3a3282e8ae42 |
files | mkcitymap.c mkloc.c |
diffstat | 2 files changed, 18 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mkcitymap.c Sat Oct 12 19:44:52 2019 +0300 +++ b/mkcitymap.c Sat Oct 12 19:53:19 2019 +0300 @@ -154,9 +154,20 @@ } +static int compareLocation(const void *pp1, const void *pp2) +{ + const LocMarker + *vp1 = *(const LocMarker **) pp1, + *vp2 = *(const LocMarker **) pp2; + + if (vp1->flags == vp2->flags) + return th_strcasecmp(vp1->names[0].name, vp2->names[0].name); + else + return vp1->flags - vp2->flags; +} -void outputHTMLFooter(FILE *outFile, const MapLocations *locs) +void outputHTMLFooter(FILE *outFile, MapLocations *locs) { fprintf(outFile, "</pre>" @@ -164,6 +175,8 @@ "<div class=\"loctab\">\n" ); + qsort(locs->locations, locs->nlocations, sizeof(LocMarker *), compareLocation); + for (int n = 0; n < locs->nlocations; n++) { const LocMarker *marker = locs->locations[n];
--- a/mkloc.c Sat Oct 12 19:44:52 2019 +0300 +++ b/mkloc.c Sat Oct 12 19:53:19 2019 +0300 @@ -447,9 +447,11 @@ /* Quicksort comparision function for location names */ -int maplocCompare(const void *p1, const void *p2) +int maplocCompare(const void *pp1, const void *pp2) { - LocMarker *vp1 = *(LocMarker **) p1, *vp2 = *(LocMarker **) p2; + const LocMarker + *vp1 = *(const LocMarker **) pp1, + *vp2 = *(const LocMarker **) pp2; if (vp1->vsort.v_int == vp2->vsort.v_int) return strcmp(vp1->names[0].name, vp2->names[0].name);