From d3580f8c0b5c17150382c4b4456e0b1bfa81a50f Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 26 Feb 2020 16:09:32 -0500 Subject: Multiple things: * Add strdup_array() * Begin consolidating spm root information into SPM_Hierarchy * Begin consolidating metadata * Begin trimming repeated code (mostly file reading) * Store information about installed packages under [root]/var/db/records --- src/str.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/str.c') diff --git a/src/str.c b/src/str.c index 605bbee..79a7326 100644 --- a/src/str.c +++ b/src/str.c @@ -597,4 +597,28 @@ char *normalize_space(char *s) { return result; } +/** + * Duplicate an array of strings + * @param array + * @return + */ +char **strdup_array(char **array) { + char **result = NULL; + size_t elems = 0; + + // Guard + if (array == NULL) { + return NULL; + } + // Count elements in `array` + for (elems = 0; array[elems] != NULL; elems++); + + // Create new array + result = calloc(elems + 1, sizeof(char *)); + for (size_t i = 0; i < elems; i++) { + result[i] = strdup(array[i]); + } + + return result; +} -- cgit