mirror of
				https://github.com/theoludwig/libcproject.git
				synced 2025-05-21 23:21:15 +02:00 
			
		
		
		
	fix: handle EXIT_FAILURE by printing error message with perror
This commit is contained in:
		@@ -1,6 +1,7 @@
 | 
				
			|||||||
#ifndef __LIBCPROJECT_ARRAY_LIST__
 | 
					#ifndef __LIBCPROJECT_ARRAY_LIST__
 | 
				
			||||||
#define __LIBCPROJECT_ARRAY_LIST__
 | 
					#define __LIBCPROJECT_ARRAY_LIST__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
#include <stdbool.h>
 | 
					#include <stdbool.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
#ifndef __LIBCPROJECT_CHARACTER__
 | 
					#ifndef __LIBCPROJECT_CHARACTER__
 | 
				
			||||||
#define __LIBCPROJECT_CHARACTER__
 | 
					#define __LIBCPROJECT_CHARACTER__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
#include <stdbool.h>
 | 
					#include <stdbool.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,7 @@
 | 
				
			|||||||
string_t convert_character_to_string(const char character) {
 | 
					string_t convert_character_to_string(const char character) {
 | 
				
			||||||
  string_t string = malloc(sizeof(char) * 2);
 | 
					  string_t string = malloc(sizeof(char) * 2);
 | 
				
			||||||
  if (string == NULL) {
 | 
					  if (string == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (convert_character_to_string)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  string[0] = character;
 | 
					  string[0] = character;
 | 
				
			||||||
@@ -44,6 +45,7 @@ string_t convert_number_to_string(const long long integer) {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
  string_t string = malloc(sizeof(char) * length);
 | 
					  string_t string = malloc(sizeof(char) * length);
 | 
				
			||||||
  if (string == NULL) {
 | 
					  if (string == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (convert_number_to_string)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  current = mathematics_absolute_value(integer);
 | 
					  current = mathematics_absolute_value(integer);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
#ifndef __LIBCPROJECT_CONVERT__
 | 
					#ifndef __LIBCPROJECT_CONVERT__
 | 
				
			||||||
#define __LIBCPROJECT_CONVERT__
 | 
					#define __LIBCPROJECT_CONVERT__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
#ifndef __LIBCPROJECT_HASH_MAP__
 | 
					#ifndef __LIBCPROJECT_HASH_MAP__
 | 
				
			||||||
#define __LIBCPROJECT_HASH_MAP__
 | 
					#define __LIBCPROJECT_HASH_MAP__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
#include <stdbool.h>
 | 
					#include <stdbool.h>
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,7 @@
 | 
				
			|||||||
struct linked_list *linked_list_initialization() {
 | 
					struct linked_list *linked_list_initialization() {
 | 
				
			||||||
  struct linked_list *list = malloc(sizeof(*list));
 | 
					  struct linked_list *list = malloc(sizeof(*list));
 | 
				
			||||||
  if (list == NULL) {
 | 
					  if (list == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (linked_list_initialization)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  list->head = NULL;
 | 
					  list->head = NULL;
 | 
				
			||||||
@@ -11,8 +12,14 @@ struct linked_list *linked_list_initialization() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct linked_list_node *linked_list_add_in_head(struct linked_list *list, void *new_data) {
 | 
					struct linked_list_node *linked_list_add_in_head(struct linked_list *list, void *new_data) {
 | 
				
			||||||
 | 
					  if (list == NULL) {
 | 
				
			||||||
 | 
					    errno = EINVAL;
 | 
				
			||||||
 | 
					    perror("Error (linked_list_add_in_head)");
 | 
				
			||||||
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  struct linked_list_node *node_new = malloc(sizeof(*node_new));
 | 
					  struct linked_list_node *node_new = malloc(sizeof(*node_new));
 | 
				
			||||||
  if (list == NULL || node_new == NULL) {
 | 
					  if (node_new == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (linked_list_add_in_head)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  node_new->data = new_data;
 | 
					  node_new->data = new_data;
 | 
				
			||||||
@@ -24,6 +31,8 @@ struct linked_list_node *linked_list_add_in_head(struct linked_list *list, void
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void linked_list_delete_in_head(struct linked_list *list) {
 | 
					void linked_list_delete_in_head(struct linked_list *list) {
 | 
				
			||||||
  if (list == NULL) {
 | 
					  if (list == NULL) {
 | 
				
			||||||
 | 
					    errno = EINVAL;
 | 
				
			||||||
 | 
					    perror("Error (linked_list_delete_in_head)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  if (list->head != NULL) {
 | 
					  if (list->head != NULL) {
 | 
				
			||||||
@@ -35,11 +44,17 @@ void linked_list_delete_in_head(struct linked_list *list) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct linked_list_node *linked_list_add_after_last(struct linked_list *list, void *new_data) {
 | 
					struct linked_list_node *linked_list_add_after_last(struct linked_list *list, void *new_data) {
 | 
				
			||||||
 | 
					  if (list == NULL) {
 | 
				
			||||||
 | 
					    errno = EINVAL;
 | 
				
			||||||
 | 
					    perror("Error (linked_list_add_after_last)");
 | 
				
			||||||
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  if (list->head == NULL) {
 | 
					  if (list->head == NULL) {
 | 
				
			||||||
    return linked_list_add_in_head(list, new_data);
 | 
					    return linked_list_add_in_head(list, new_data);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  struct linked_list_node *node_new = malloc(sizeof(*node_new));
 | 
					  struct linked_list_node *node_new = malloc(sizeof(*node_new));
 | 
				
			||||||
  if (list == NULL || node_new == NULL) {
 | 
					  if (node_new == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (linked_list_add_after_last)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  node_new->data = new_data;
 | 
					  node_new->data = new_data;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
#ifndef __LIBCPROJECT_LINKED_LIST__
 | 
					#ifndef __LIBCPROJECT_LINKED_LIST__
 | 
				
			||||||
#define __LIBCPROJECT_LINKED_LIST__
 | 
					#define __LIBCPROJECT_LINKED_LIST__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
#include <stdbool.h>
 | 
					#include <stdbool.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#define MATHEMATICS_FLOAT_PRECISION 0.00000001
 | 
					#define MATHEMATICS_FLOAT_PRECISION 0.00000001
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
#include <stdbool.h>
 | 
					#include <stdbool.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "types.h"
 | 
					#include "types.h"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										13
									
								
								lib/queue.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								lib/queue.c
									
									
									
									
									
								
							@@ -3,6 +3,7 @@
 | 
				
			|||||||
struct queue *queue_initialization() {
 | 
					struct queue *queue_initialization() {
 | 
				
			||||||
  struct queue *queue = malloc(sizeof(*queue));
 | 
					  struct queue *queue = malloc(sizeof(*queue));
 | 
				
			||||||
  if (queue == NULL) {
 | 
					  if (queue == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (queue_initialization)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  queue->first = NULL;
 | 
					  queue->first = NULL;
 | 
				
			||||||
@@ -11,8 +12,14 @@ struct queue *queue_initialization() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void queue_push(struct queue *queue, void *data) {
 | 
					void queue_push(struct queue *queue, void *data) {
 | 
				
			||||||
 | 
					  if (queue == NULL) {
 | 
				
			||||||
 | 
					    errno = EINVAL;
 | 
				
			||||||
 | 
					    perror("Error (queue_push)");
 | 
				
			||||||
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  struct queue_node *node_new = malloc(sizeof(*node_new));
 | 
					  struct queue_node *node_new = malloc(sizeof(*node_new));
 | 
				
			||||||
  if (queue == NULL || node_new == NULL) {
 | 
					  if (node_new == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (queue_push)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  node_new->data = data;
 | 
					  node_new->data = data;
 | 
				
			||||||
@@ -31,6 +38,8 @@ void queue_push(struct queue *queue, void *data) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void *queue_pop(struct queue *queue) {
 | 
					void *queue_pop(struct queue *queue) {
 | 
				
			||||||
  if (queue == NULL) {
 | 
					  if (queue == NULL) {
 | 
				
			||||||
 | 
					    errno = EINVAL;
 | 
				
			||||||
 | 
					    perror("Error (queue_pop)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  struct queue_node *node = queue->first;
 | 
					  struct queue_node *node = queue->first;
 | 
				
			||||||
@@ -46,6 +55,8 @@ void *queue_pop(struct queue *queue) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void queue_free(struct queue *queue) {
 | 
					void queue_free(struct queue *queue) {
 | 
				
			||||||
  if (queue == NULL) {
 | 
					  if (queue == NULL) {
 | 
				
			||||||
 | 
					    errno = EINVAL;
 | 
				
			||||||
 | 
					    perror("Error (queue_free)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  struct queue_node *node = queue->first;
 | 
					  struct queue_node *node = queue->first;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
#ifndef __LIBCPROJECT_QUEUE__
 | 
					#ifndef __LIBCPROJECT_QUEUE__
 | 
				
			||||||
#define __LIBCPROJECT_QUEUE__
 | 
					#define __LIBCPROJECT_QUEUE__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										13
									
								
								lib/stack.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								lib/stack.c
									
									
									
									
									
								
							@@ -3,6 +3,7 @@
 | 
				
			|||||||
struct stack *stack_initialization() {
 | 
					struct stack *stack_initialization() {
 | 
				
			||||||
  struct stack *stack = malloc(sizeof(*stack));
 | 
					  struct stack *stack = malloc(sizeof(*stack));
 | 
				
			||||||
  if (stack == NULL) {
 | 
					  if (stack == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (stack_initialization)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  stack->first = NULL;
 | 
					  stack->first = NULL;
 | 
				
			||||||
@@ -11,8 +12,14 @@ struct stack *stack_initialization() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void stack_push(struct stack *stack, void *data) {
 | 
					void stack_push(struct stack *stack, void *data) {
 | 
				
			||||||
 | 
					  if (stack == NULL) {
 | 
				
			||||||
 | 
					    errno = EINVAL;
 | 
				
			||||||
 | 
					    perror("Error (stack_push)");
 | 
				
			||||||
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  struct stack_node *node_new = malloc(sizeof(*node_new));
 | 
					  struct stack_node *node_new = malloc(sizeof(*node_new));
 | 
				
			||||||
  if (stack == NULL || data == NULL) {
 | 
					  if (data == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (stack_push)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  node_new->data = data;
 | 
					  node_new->data = data;
 | 
				
			||||||
@@ -23,6 +30,8 @@ void stack_push(struct stack *stack, void *data) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void *stack_pop(struct stack *stack) {
 | 
					void *stack_pop(struct stack *stack) {
 | 
				
			||||||
  if (stack == NULL) {
 | 
					  if (stack == NULL) {
 | 
				
			||||||
 | 
					    errno = EINVAL;
 | 
				
			||||||
 | 
					    perror("Error (stack_pop)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  struct stack_node *node = stack->first;
 | 
					  struct stack_node *node = stack->first;
 | 
				
			||||||
@@ -38,6 +47,8 @@ void *stack_pop(struct stack *stack) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void stack_free(struct stack *stack) {
 | 
					void stack_free(struct stack *stack) {
 | 
				
			||||||
  if (stack == NULL) {
 | 
					  if (stack == NULL) {
 | 
				
			||||||
 | 
					    errno = EINVAL;
 | 
				
			||||||
 | 
					    perror("Error (stack_free)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  struct stack_node *node = stack->first;
 | 
					  struct stack_node *node = stack->first;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
#ifndef __LIBCPROJECT_STACK__
 | 
					#ifndef __LIBCPROJECT_STACK__
 | 
				
			||||||
#define __LIBCPROJECT_STACK__
 | 
					#define __LIBCPROJECT_STACK__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -67,6 +67,7 @@ string_t string_copy(const string_t string) {
 | 
				
			|||||||
  size_t source_length = string_get_length(string);
 | 
					  size_t source_length = string_get_length(string);
 | 
				
			||||||
  string_t copy = malloc(sizeof(char) * (source_length + 1));
 | 
					  string_t copy = malloc(sizeof(char) * (source_length + 1));
 | 
				
			||||||
  if (copy == NULL) {
 | 
					  if (copy == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (string_copy)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  size_t index;
 | 
					  size_t index;
 | 
				
			||||||
@@ -150,6 +151,7 @@ string_t* string_split(const string_t string, char separator, size_t* result_siz
 | 
				
			|||||||
  string_t current = malloc(sizeof(char) * (string_length + 1));
 | 
					  string_t current = malloc(sizeof(char) * (string_length + 1));
 | 
				
			||||||
  string_t* result = NULL;
 | 
					  string_t* result = NULL;
 | 
				
			||||||
  if (current == NULL) {
 | 
					  if (current == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (string_split)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  while (index_string < string_length) {
 | 
					  while (index_string < string_length) {
 | 
				
			||||||
@@ -157,6 +159,7 @@ string_t* string_split(const string_t string, char separator, size_t* result_siz
 | 
				
			|||||||
      current[index_current] = '\0';
 | 
					      current[index_current] = '\0';
 | 
				
			||||||
      result = realloc(result, sizeof(string_t) * (index_result + 1));
 | 
					      result = realloc(result, sizeof(string_t) * (index_result + 1));
 | 
				
			||||||
      if (result == NULL) {
 | 
					      if (result == NULL) {
 | 
				
			||||||
 | 
					        perror("Error (string_split)");
 | 
				
			||||||
        exit(EXIT_FAILURE);
 | 
					        exit(EXIT_FAILURE);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      result[index_result] = string_copy(current);
 | 
					      result[index_result] = string_copy(current);
 | 
				
			||||||
@@ -168,10 +171,10 @@ string_t* string_split(const string_t string, char separator, size_t* result_siz
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    index_string++;
 | 
					    index_string++;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					 | 
				
			||||||
  current[index_current] = '\0';
 | 
					  current[index_current] = '\0';
 | 
				
			||||||
  result = realloc(result, sizeof(string_t) * (index_result + 1));
 | 
					  result = realloc(result, sizeof(string_t) * (index_result + 1));
 | 
				
			||||||
  if (result == NULL) {
 | 
					  if (result == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (string_split)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  result[index_result] = string_copy(current);
 | 
					  result[index_result] = string_copy(current);
 | 
				
			||||||
@@ -188,6 +191,7 @@ string_t string_join(string_t* array, const char separator, size_t array_length)
 | 
				
			|||||||
  size_t string_length = total_length + (array_length - 1);
 | 
					  size_t string_length = total_length + (array_length - 1);
 | 
				
			||||||
  string_t string = malloc(sizeof(char) * (string_length + 1));
 | 
					  string_t string = malloc(sizeof(char) * (string_length + 1));
 | 
				
			||||||
  if (string == NULL) {
 | 
					  if (string == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (string_join)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  size_t current_index = 0;
 | 
					  size_t current_index = 0;
 | 
				
			||||||
@@ -214,6 +218,7 @@ string_t string_concatenate(string_t string1, string_t string2) {
 | 
				
			|||||||
  size_t result_length = string1_length + string2_length;
 | 
					  size_t result_length = string1_length + string2_length;
 | 
				
			||||||
  string_t result = malloc(sizeof(char) * (result_length + 1));
 | 
					  string_t result = malloc(sizeof(char) * (result_length + 1));
 | 
				
			||||||
  if (result == NULL) {
 | 
					  if (result == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (string_concatenate)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  size_t index_string1 = 0;
 | 
					  size_t index_string1 = 0;
 | 
				
			||||||
@@ -293,6 +298,7 @@ string_t string_get_formatted_number(const long long number, string_t separator)
 | 
				
			|||||||
  size_t formatted_length = number_string_length + (number_string_length - 1) / 3;
 | 
					  size_t formatted_length = number_string_length + (number_string_length - 1) / 3;
 | 
				
			||||||
  string_t result = malloc(sizeof(char) * (formatted_length + 1));
 | 
					  string_t result = malloc(sizeof(char) * (formatted_length + 1));
 | 
				
			||||||
  if (result == NULL) {
 | 
					  if (result == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (string_get_formatted_number)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  size_t count = 0;
 | 
					  size_t count = 0;
 | 
				
			||||||
@@ -336,6 +342,7 @@ string_t string_get_last_occurence_of_character(const string_t string, char char
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
  string_t result = malloc(sizeof(char) * (string_length - index_last_occurrence + 1));
 | 
					  string_t result = malloc(sizeof(char) * (string_length - index_last_occurrence + 1));
 | 
				
			||||||
  if (result == NULL) {
 | 
					  if (result == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (string_get_last_occurence_of_character)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  size_t index_result = 0;
 | 
					  size_t index_result = 0;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
#ifndef __LIBCPROJECT_STRING__
 | 
					#ifndef __LIBCPROJECT_STRING__
 | 
				
			||||||
#define __LIBCPROJECT_STRING__
 | 
					#define __LIBCPROJECT_STRING__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
#include <stdbool.h>
 | 
					#include <stdbool.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,6 +5,7 @@ string_t terminal_input() {
 | 
				
			|||||||
  size_t length = 1;
 | 
					  size_t length = 1;
 | 
				
			||||||
  string_t string = malloc(length * sizeof(char));
 | 
					  string_t string = malloc(length * sizeof(char));
 | 
				
			||||||
  if (string == NULL) {
 | 
					  if (string == NULL) {
 | 
				
			||||||
 | 
					    perror("Error (terminal_input)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  *string = '\0';
 | 
					  *string = '\0';
 | 
				
			||||||
@@ -12,6 +13,7 @@ string_t terminal_input() {
 | 
				
			|||||||
    length++;
 | 
					    length++;
 | 
				
			||||||
    string = realloc(string, length * sizeof(char));
 | 
					    string = realloc(string, length * sizeof(char));
 | 
				
			||||||
    if (string == NULL) {
 | 
					    if (string == NULL) {
 | 
				
			||||||
 | 
					      perror("Error (terminal_input)");
 | 
				
			||||||
      exit(EXIT_FAILURE);
 | 
					      exit(EXIT_FAILURE);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    character_append(string, character);
 | 
					    character_append(string, character);
 | 
				
			||||||
@@ -54,6 +56,8 @@ void terminal_print_string(void* value) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void terminal_print_stack(struct stack* stack, void (*print_element)(void*)) {
 | 
					void terminal_print_stack(struct stack* stack, void (*print_element)(void*)) {
 | 
				
			||||||
  if (stack == NULL) {
 | 
					  if (stack == NULL) {
 | 
				
			||||||
 | 
					    errno = EINVAL;
 | 
				
			||||||
 | 
					    perror("Error (terminal_print_stack)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  struct stack_node* node_current = stack->first;
 | 
					  struct stack_node* node_current = stack->first;
 | 
				
			||||||
@@ -68,6 +72,8 @@ void terminal_print_stack(struct stack* stack, void (*print_element)(void*)) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void terminal_print_queue(struct queue* queue, void (*print_element)(void*)) {
 | 
					void terminal_print_queue(struct queue* queue, void (*print_element)(void*)) {
 | 
				
			||||||
  if (queue == NULL) {
 | 
					  if (queue == NULL) {
 | 
				
			||||||
 | 
					    errno = EINVAL;
 | 
				
			||||||
 | 
					    perror("Error (terminal_print_queue)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  struct queue_node* node_current = queue->first;
 | 
					  struct queue_node* node_current = queue->first;
 | 
				
			||||||
@@ -82,6 +88,8 @@ void terminal_print_queue(struct queue* queue, void (*print_element)(void*)) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void terminal_print_linked_list(struct linked_list* linked_list, void (*print_element)(void*)) {
 | 
					void terminal_print_linked_list(struct linked_list* linked_list, void (*print_element)(void*)) {
 | 
				
			||||||
  if (linked_list == NULL) {
 | 
					  if (linked_list == NULL) {
 | 
				
			||||||
 | 
					    errno = EINVAL;
 | 
				
			||||||
 | 
					    perror("Error (terminal_print_linked_list)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  struct linked_list_node* node_current = linked_list->head;
 | 
					  struct linked_list_node* node_current = linked_list->head;
 | 
				
			||||||
@@ -96,6 +104,8 @@ void terminal_print_linked_list(struct linked_list* linked_list, void (*print_el
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void terminal_print_hash_map(struct hash_map* hash_map, void (*print_element)(void*)) {
 | 
					void terminal_print_hash_map(struct hash_map* hash_map, void (*print_element)(void*)) {
 | 
				
			||||||
  if (hash_map == NULL) {
 | 
					  if (hash_map == NULL) {
 | 
				
			||||||
 | 
					    errno = EINVAL;
 | 
				
			||||||
 | 
					    perror("Error (terminal_print_hash_map)");
 | 
				
			||||||
    exit(EXIT_FAILURE);
 | 
					    exit(EXIT_FAILURE);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  printf("{\n");
 | 
					  printf("{\n");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
#ifndef __LIBCPROJECT_TERMINAL__
 | 
					#ifndef __LIBCPROJECT_TERMINAL__
 | 
				
			||||||
#define __LIBCPROJECT_TERMINAL__
 | 
					#define __LIBCPROJECT_TERMINAL__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
#include <stdbool.h>
 | 
					#include <stdbool.h>
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user