From 21a046f93991e8192979d5eaea76b56ab5d46caf Mon Sep 17 00:00:00 2001
From: Bachir Lachguel <git@lachguel.com>
Date: Fri, 28 Mar 2025 09:18:47 +0100
Subject: [PATCH] Add libstring stuff !

---
 config/libstring.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/config/libstring.c b/config/libstring.c
index 3505064..12a5371 100644
--- a/config/libstring.c
+++ b/config/libstring.c
@@ -38,6 +38,31 @@ int main(void) {
   }
   string_print(string_final);
   free(string_final);
+
+  /**********************************************************************/
+
+  string_t *original = string_new("Hello world");
+  string_t *substring_old = string_new("world");
+  string_t *substring_new = string_new("Paris");
+
+  if (!original || !substring_old || !substring_new) {
+    printf("Invalid strings before substitution !");
+    return -2;
+  }
+
+  string_print(original);
+  string_t *new = string_replace(original, substring_old, substring_new);
+  if (!new) {
+    printf("Invalid strings after substitution !");
+    return -3;
+  }
+
+  free(original);
+  free(substring_old);
+  free(substring_new);
+
+  string_print(new);
+  free(new);
   return 0;
 }
 
@@ -288,9 +313,14 @@ string_t *string_replace(const string_t *str, const string_t *old,
     return string_clone(str);
   size_t len = str->len + n * (new->len - old->len);
   string_t *s = malloc(sizeof(string_t) + len);
+  // We add this check
+  if (!s) {
+    return s;
+  }
   s->len = len;
 
   char *t = s->buf;
+
   int curr = 0;
   offset = 0;
   while (n--) {
-- 
GitLab