diff options
Diffstat (limited to 'src/common/sort.c')
-rw-r--r-- | src/common/sort.c | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/src/common/sort.c b/src/common/sort.c deleted file mode 100644 index 3e24706..0000000 --- a/src/common/sort.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * blogc: A blog compiler. - * Copyright (C) 2014-2019 Rafael G. Martins <rafael@rafaelmartins.eng.br> - * - * This program can be distributed under the terms of the BSD License. - * See the file LICENSE. - */ - -#include <stdbool.h> -#include "utils.h" -#include "sort.h" - - -bc_slist_t* -bc_slist_sort(bc_slist_t *l, bc_sort_func_t cmp) -{ - if (l == NULL) { - return NULL; - } - - bool swapped = false; - bc_slist_t *lptr = NULL; - bc_slist_t *rptr = NULL; - - do { - swapped = false; - lptr = l; - - while (lptr->next != rptr) { - if (0 < cmp(lptr->data, lptr->next->data)) { - void *tmp = lptr->data; - lptr->data = lptr->next->data; - lptr->next->data = tmp; - swapped = true; - } - - lptr = lptr->next; - } - - rptr = lptr; - } while(swapped); - - return l; -} |