/* * Copyright (C) 2023 Johnny Richard * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "list.h" #include #include #include #include static list_t * list_alloc(void) { list_t *list = (list_t *)malloc(sizeof(list_t)); if (list == NULL) { fprintf(stderr, "list_alloc: Out of memory %s\n", strerror(errno)); exit(EXIT_FAILURE); } return list; } list_t * list_new(void) { return NULL; } void list_prepend(list_t **list, void *data) { list_t *new_list = list_alloc(); new_list->data = data; new_list->next = *list; *list = new_list; } size_t list_get_size(list_t *list) { size_t size = 0; while (list != NULL) { list = list->next; size++; } return size; } void list_destroy(list_t *list) { while (list != NULL) { list_t *previous = list; list = list->next; free(previous); } }