diff options
Diffstat (limited to 'src/strarray.c')
-rw-r--r-- | src/strarray.c | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/src/strarray.c b/src/strarray.c deleted file mode 100644 index 12ddbf8..0000000 --- a/src/strarray.c +++ /dev/null @@ -1,78 +0,0 @@ -// GPGEdit edits GPG encrypted files -// Copyright (C) 2018 Aaron Ball <nullspoon@oper.io> -// -// 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 <https://www.gnu.org/licenses/>. -#include "strarray.h" - - -// strarray_new: -// Pretty much useless constructor. Here mostly for consistency. This can -// easily be replaced with your own malloc statement provided index 0 is set to -// NULL. -// -// NOTE: If not using this, initialized memory *must* be allocated in the heap, -// as growing the string array requires reallocating the memory, which -// can't be done in the stack. -char** strarray_new() { - char** out = malloc(sizeof(char*)); - out[0] = NULL; - return out; -} - - -// strarray_add: -// Dynamically grows a string array (pointer to char array containing pointers -// to char arrays - sorry). Reallocates storage for the original array plus -// room for one additional pointer. Once data is copied in, the source array -// pointer is updated to point to the new storage. -// -// @strorig Source string array pointer -// @newstr New string to add to the string array. -void strarray_add(char*** strorig, char* newstr) { - int i = 0; - char** newstrarr; - - // Count the number of existing strings - while(*strorig[i] != NULL) - i++; - - // Reallocate old array + 1 - newstrarr = (char**) realloc(*strorig, sizeof(char*) * (i + 1)); - - // Append new string to the array - newstrarr[i] = malloc(strlen(newstr) + 1); - strcpy(newstrarr[i], newstr); - // Don't forget the null terminator! - newstrarr[i + 1] = NULL; - - // Repoint strorig to newstrarr memory - *strorig = newstrarr; -} - - -// strarray_release: -// Destructor for a string array. Frees each item in the array before freeing -// the array itself. -// -// @strarray Array to free -void strarray_release(char*** strarray) { - int i = 0; - - while(*strarray[i] != NULL) { - free(*strarray[i]); - i++; - } - free(*strarray); -} - |