diff options
author | Marcus Meissner <marcus@jet.franken.de> | 2008-03-31 21:33:29 +0000 |
---|---|---|
committer | Marcus Meissner <marcus@jet.franken.de> | 2008-03-31 21:33:29 +0000 |
commit | 28dc79ff6210980053467114d5a96c47572cfaf7 (patch) | |
tree | 0d9edbfd29d321a6670811b49f939abe0f95600f /libgphoto2/gphoto2-abilities-list.c | |
parent | ada7ba862204cda425ba041e4a5b0c24bc10ff9f (diff) | |
download | libgphoto2-28dc79ff6210980053467114d5a96c47572cfaf7.tar.gz |
use qsort() instead of bubble sort
git-svn-id: https://svn.code.sf.net/p/gphoto/code/trunk/libgphoto2@11063 67ed7778-7388-44ab-90cf-0a291f65f57c
Diffstat (limited to 'libgphoto2/gphoto2-abilities-list.c')
-rw-r--r-- | libgphoto2/gphoto2-abilities-list.c | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/libgphoto2/gphoto2-abilities-list.c b/libgphoto2/gphoto2-abilities-list.c index f6a1677c4..f9c32520b 100644 --- a/libgphoto2/gphoto2-abilities-list.c +++ b/libgphoto2/gphoto2-abilities-list.c @@ -583,28 +583,20 @@ gp_abilities_list_count (CameraAbilitiesList *list) return (list->count); } +static int +cmp_abilities (const void *a, const void *b) { + const CameraAbilities *ca = a; + const CameraAbilities *cb = b; + + return strcasecmp (ca->model, cb->model); +} static int gp_abilities_list_sort (CameraAbilitiesList *list) { - CameraAbilities t; - int x, y; - CHECK_NULL (list); - for (x = 0; x < list->count - 1; x++) - for (y = x + 1; y < list->count; y++) - if (strcasecmp (list->abilities[x].model, - list->abilities[y].model) > 0) { - memcpy (&t, &list->abilities[x], - sizeof (CameraAbilities)); - memcpy (&list->abilities[x], - &list->abilities[y], - sizeof (CameraAbilities)); - memcpy (&list->abilities[y], &t, - sizeof (CameraAbilities)); - } - + qsort (list->abilities, list->count, sizeof(CameraAbilities), cmp_abilities); return (GP_OK); } |