From 9dd2b2c78d8d944011d610ae3d1939f973e95d0e Mon Sep 17 00:00:00 2001
From: Andreas Gattringer <gattringera@a772-cvl-ws23.biodiv.univie.ac.at>
Date: Fri, 17 Mar 2023 09:21:13 +0100
Subject: [PATCH] cats_strings: new helper function for safely accessing the
 nth string

---
 src/cats_strings/cats_strings.c | 11 +++++++++++
 src/cats_strings/cats_strings.h |  2 +-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/cats_strings/cats_strings.c b/src/cats_strings/cats_strings.c
index a8e7c8e..7364224 100644
--- a/src/cats_strings/cats_strings.c
+++ b/src/cats_strings/cats_strings.c
@@ -136,6 +136,17 @@ struct string_array *new_string_array()
         return result;
 }
 
+const char *get_nth_string_from_array(const struct string_array *array, int n)
+{
+        assert(array != NULL);
+        if (n < 0 && n >= array->count) {
+                log_message(LOG_ERROR, "%s: requested string index %d out of range [0, %d]", __func__ , n, array->count);
+                exit(EXIT_FAILURE);
+        }
+
+        return array->string[n];
+
+}
 
 struct string_array *new_string_array_init(const char *entry)
 {
diff --git a/src/cats_strings/cats_strings.h b/src/cats_strings/cats_strings.h
index f1a5b4b..8179efd 100644
--- a/src/cats_strings/cats_strings.h
+++ b/src/cats_strings/cats_strings.h
@@ -88,7 +88,7 @@ void string_array_add_double(struct string_array *array, double number, const ch
 
 void
 string_array_add_int_conditional(struct string_array *array, int32_t number, const char *format_string, bool condition);
-
+const char *get_nth_string_from_array(const struct string_array *array, int n);
 void print_string_array(const struct string_array *array);
 
 char *remove_0th_token(char *line, const char *sep);
-- 
GitLab