summaryrefslogtreecommitdiff
path: root/libgphoto2/gphoto2-abilities-list.c
diff options
context:
space:
mode:
authorMarcus Meissner <marcus@jet.franken.de>2008-03-31 21:33:29 +0000
committerMarcus Meissner <marcus@jet.franken.de>2008-03-31 21:33:29 +0000
commit28dc79ff6210980053467114d5a96c47572cfaf7 (patch)
tree0d9edbfd29d321a6670811b49f939abe0f95600f /libgphoto2/gphoto2-abilities-list.c
parentada7ba862204cda425ba041e4a5b0c24bc10ff9f (diff)
downloadlibgphoto2-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.c24
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);
}