From e253e039c33d3abf192b8873b85a1b7a5266a6fc Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Thu, 2 Feb 2023 11:17:16 +0100 Subject: [PATCH] chore(package): ran fmt --- include/vieter_package.h | 11 +- src/package/vieter_package.c | 379 +++++++++++++------------- src/package/vieter_package_dynarray.c | 72 ++--- src/package/vieter_package_info.c | 131 ++++----- 4 files changed, 302 insertions(+), 291 deletions(-) diff --git a/include/vieter_package.h b/include/vieter_package.h index c9a941e..fb220c8 100644 --- a/include/vieter_package.h +++ b/include/vieter_package.h @@ -4,9 +4,9 @@ typedef struct vieter_package vieter_package; typedef enum vieter_package_error { - vieter_package_ok = 0, - vieter_package_unarchive_error = 1, - vieter_package_stat_error = 2 + vieter_package_ok = 0, + vieter_package_unarchive_error = 1, + vieter_package_stat_error = 2 } vieter_package_error; /* @@ -17,12 +17,13 @@ vieter_package *vieter_package_init(); /* * Parse package file into something usable by libvieter. */ -vieter_package_error vieter_package_read_archive(vieter_package *pkg, const char *pkg_path); +vieter_package_error vieter_package_read_archive(vieter_package *pkg, + const char *pkg_path); /* * Deallocate a package. */ -void vieter_package_free(vieter_package ** ptp); +void vieter_package_free(vieter_package **ptp); /* * Create string that will become the package's desc file. diff --git a/src/package/vieter_package.c b/src/package/vieter_package.c index d1ef6c4..4bb7622 100644 --- a/src/package/vieter_package.c +++ b/src/package/vieter_package.c @@ -1,245 +1,246 @@ -#include -#include #include #include +#include +#include -#include "vieter_package_internal.h" #include "sha256.h" +#include "vieter_package_internal.h" -#define ADD_STRING(section, field) if (pkg_info->field != 0) { \ - size_to_be_written = snprintf(aux, small_buff_size, section, pkg_info->field); \ - if (size_to_be_written > small_buff_size) { \ - aux = realloc(aux, size_to_be_written + 1); \ - small_buff_size = size_to_be_written + 1; \ - snprintf(aux, small_buff_size, section, pkg_info->field); \ - } \ - if (buff_size < strlen(description) + small_buff_size + 1) { \ - description = realloc(description, buff_size * 2); \ - buff_size *= 2; \ - } \ - strcat(description, aux); \ -} +#define ADD_STRING(section, field) \ + if (pkg_info->field != 0) { \ + size_to_be_written = \ + snprintf(aux, small_buff_size, section, pkg_info->field); \ + if (size_to_be_written > small_buff_size) { \ + aux = realloc(aux, size_to_be_written + 1); \ + small_buff_size = size_to_be_written + 1; \ + snprintf(aux, small_buff_size, section, pkg_info->field); \ + } \ + if (buff_size < strlen(description) + small_buff_size + 1) { \ + description = realloc(description, buff_size * 2); \ + buff_size *= 2; \ + } \ + strcat(description, aux); \ + } -#define ADD_ARRAY(section, field) i = 0; if (pkg_info->field != NULL) { \ - ADD_STRING(section, field->array[i]); i++; \ - while (pkg_info->field->array[i] != NULL) { \ - ADD_STRING("\n%s", field->array[i]); i++; \ - } \ -} +#define ADD_ARRAY(section, field) \ + i = 0; \ + if (pkg_info->field != NULL) { \ + ADD_STRING(section, field->array[i]); \ + i++; \ + while (pkg_info->field->array[i] != NULL) { \ + ADD_STRING("\n%s", field->array[i]); \ + i++; \ + } \ + } -static char *ignored_names[5] = { - ".BUILDINFO", - ".INSTALL", - ".MTREE", - ".PKGINFO", - ".CHANGELOG" -}; +static char *ignored_names[5] = {".BUILDINFO", ".INSTALL", ".MTREE", ".PKGINFO", + ".CHANGELOG"}; static size_t ignored_words_len = sizeof(ignored_names) / sizeof(char *); vieter_package *vieter_package_init() { - return calloc(sizeof(vieter_package_info), 1); + return calloc(sizeof(vieter_package_info), 1); } -vieter_package_error vieter_package_read_archive(vieter_package *pkg, const char *pkg_path) { - struct archive *a = archive_read_new(); - struct archive_entry *entry = archive_entry_new(); +vieter_package_error vieter_package_read_archive(vieter_package *pkg, + const char *pkg_path) { + struct archive *a = archive_read_new(); + struct archive_entry *entry = archive_entry_new(); - // These three are the most commonly used compression methods - archive_read_support_filter_zstd(a); - archive_read_support_filter_gzip(a); - archive_read_support_filter_xz(a); + // These three are the most commonly used compression methods + archive_read_support_filter_zstd(a); + archive_read_support_filter_gzip(a); + archive_read_support_filter_xz(a); - // Contents should always be a tarball - archive_read_support_format_tar(a); + // Contents should always be a tarball + archive_read_support_format_tar(a); - // TODO where does this 10240 come from? - int r = archive_read_open_filename(a, pkg_path, 10240); + // TODO where does this 10240 come from? + int r = archive_read_open_filename(a, pkg_path, 10240); - // Exit early if we weren't able to successfully open the archive for reading - if (r != ARCHIVE_OK) { - return vieter_package_unarchive_error; - } + // Exit early if we weren't able to successfully open the archive for reading + if (r != ARCHIVE_OK) { + return vieter_package_unarchive_error; + } - int compression_code = archive_filter_code(a, 0); - const char *path_name; + int compression_code = archive_filter_code(a, 0); + const char *path_name; - vieter_package_info *pkg_info; - vieter_package_dynarray *files = vieter_package_dynarray_init(16); - vieter_package_dynarray_add(files, "%FILES%"); + vieter_package_info *pkg_info; + vieter_package_dynarray *files = vieter_package_dynarray_init(16); + vieter_package_dynarray_add(files, "%FILES%"); - while (archive_read_next_header(a, &entry) == ARCHIVE_OK) { - path_name = archive_entry_pathname(entry); + while (archive_read_next_header(a, &entry) == ARCHIVE_OK) { + path_name = archive_entry_pathname(entry); - bool ignore = false; + bool ignore = false; - for (size_t i = 0; i < ignored_words_len; i++) { - if (strcmp(path_name, ignored_names[i]) == 0) { - ignore = true; - break; - } - } + for (size_t i = 0; i < ignored_words_len; i++) { + if (strcmp(path_name, ignored_names[i]) == 0) { + ignore = true; + break; + } + } - if (!ignore) { - vieter_package_dynarray_add(files, path_name); - } + if (!ignore) { + vieter_package_dynarray_add(files, path_name); + } - if (strcmp(path_name, ".PKGINFO") == 0) { - // Read data of file into memory buffer - int size = archive_entry_size(entry); - char *buf = malloc(size); - archive_read_data(a, buf, size); + if (strcmp(path_name, ".PKGINFO") == 0) { + // Read data of file into memory buffer + int size = archive_entry_size(entry); + char *buf = malloc(size); + archive_read_data(a, buf, size); - // Parse package vieter_package_info string into a struct - pkg_info = vieter_package_info_init(); - vieter_package_info_parse(pkg_info, buf); + // Parse package vieter_package_info string into a struct + pkg_info = vieter_package_info_init(); + vieter_package_info_parse(pkg_info, buf); - free(buf); - } else { - archive_read_data_skip(a); - } - } + free(buf); + } else { + archive_read_data_skip(a); + } + } - // Get size of file - struct stat stats; + // Get size of file + struct stat stats; - if (stat(pkg_path, &stats) != 0) { - // errno is set if stat() fails; the calling function should check - // the value of errno in case vieter_package_stat_error is returned - return vieter_package_stat_error; - } + if (stat(pkg_path, &stats) != 0) { + // errno is set if stat() fails; the calling function should check + // the value of errno in case vieter_package_stat_error is returned + return vieter_package_stat_error; + } - pkg_info->csize = stats.st_size; + pkg_info->csize = stats.st_size; - archive_read_free(a); + archive_read_free(a); - // Create final return value - pkg->path = strdup(pkg_path); - pkg->info = pkg_info; - pkg->files = files; - pkg->compression = compression_code; + // Create final return value + pkg->path = strdup(pkg_path); + pkg->info = pkg_info; + pkg->files = files; + pkg->compression = compression_code; - return vieter_package_ok; + return vieter_package_ok; } void vieter_package_sha256sum(vieter_package *pkg, char *res) { - FILE *f = fopen(pkg->path, "r"); - // Try to read 100KiB at a time - unsigned char *in = malloc(102400); - // Actual number of bytes read - size_t read_size; + FILE *f = fopen(pkg->path, "r"); + // Try to read 100KiB at a time + unsigned char *in = malloc(102400); + // Actual number of bytes read + size_t read_size; - SHA256_CTX *ctx = malloc(sizeof(SHA256_CTX)); - sha256_init(ctx); - while ((read_size = fread(in, 1, 102400, f)) != 0) { - sha256_update(ctx, in, read_size); - } - unsigned char hash[SHA256_BLOCK_SIZE]; + SHA256_CTX *ctx = malloc(sizeof(SHA256_CTX)); + sha256_init(ctx); + while ((read_size = fread(in, 1, 102400, f)) != 0) { + sha256_update(ctx, in, read_size); + } + unsigned char hash[SHA256_BLOCK_SIZE]; - sha256_final(ctx, hash); + sha256_final(ctx, hash); - fclose(f); - free(in); - free(ctx); + fclose(f); + free(in); + free(ctx); - // We need to convert the bytes in the hash to get a string representation of its hex values - // i.e. turn 1001 1111 into the string "9f" - // Each byte of the hash is going to turn into two bytes in the final string - // so we are going to convert each half byte into a char - unsigned int half_byte = 0; - int j = 0; + // We need to convert the bytes in the hash to get a string representation of + // its hex values i.e. turn 1001 1111 into the string "9f" Each byte of the + // hash is going to turn into two bytes in the final string so we are going to + // convert each half byte into a char + unsigned int half_byte = 0; + int j = 0; - // We advance 2 bytes in the string for every one byte of the hash - for (int i = 0; i < SHA256_BLOCK_SIZE; i++) { - // We transform the first half byte into the second character to keep - // each byte from becoming reversed in the final string - half_byte = hash[i] & 0b1111; - if (half_byte < 10) { - res[j+1] = half_byte + 48; - } else { - res[j+1] = half_byte + 87; - } - hash[i] = hash[i] >> 4; - half_byte = hash[i] & 0b1111; - if (half_byte < 10) { - res[j] = half_byte + 48; - } else { - res[j] = half_byte + 87; - } + // We advance 2 bytes in the string for every one byte of the hash + for (int i = 0; i < SHA256_BLOCK_SIZE; i++) { + // We transform the first half byte into the second character to keep + // each byte from becoming reversed in the final string + half_byte = hash[i] & 0b1111; + if (half_byte < 10) { + res[j + 1] = half_byte + 48; + } else { + res[j + 1] = half_byte + 87; + } + hash[i] = hash[i] >> 4; + half_byte = hash[i] & 0b1111; + if (half_byte < 10) { + res[j] = half_byte + 48; + } else { + res[j] = half_byte + 87; + } - j += 2; - } - res[j] = '\0'; + j += 2; + } + res[j] = '\0'; } - - char *vieter_package_to_description(vieter_package *pkg) { - vieter_package_info *pkg_info = pkg->info; + vieter_package_info *pkg_info = pkg->info; - size_t buff_size = 1024; - int small_buff_size = 128; - int size_to_be_written; - char *aux = malloc(sizeof(char) * small_buff_size); - char *description = malloc(sizeof(char) * buff_size); - // Helper variable for ADD_ARRAY macro - int i; + size_t buff_size = 1024; + int small_buff_size = 128; + int size_to_be_written; + char *aux = malloc(sizeof(char) * small_buff_size); + char *description = malloc(sizeof(char) * buff_size); + // Helper variable for ADD_ARRAY macro + int i; - // special case for FILENAME - // assuming .pkg.tar.zst; other formats are valid, this should account for that - size_to_be_written = snprintf(aux, small_buff_size, "%%FILENAME%%\n%s-%s-%s.pkg.tar.zst", pkg_info->name, - pkg_info->version, pkg_info->arch); + // special case for FILENAME + // assuming .pkg.tar.zst; other formats are valid, this should account for + // that + size_to_be_written = + snprintf(aux, small_buff_size, "%%FILENAME%%\n%s-%s-%s.pkg.tar.zst", + pkg_info->name, pkg_info->version, pkg_info->arch); - // We neither want to let an arbritrarily long input to overflow the buffer - // nor to truncate perfectly valid inputs - if (size_to_be_written > small_buff_size) { - aux = realloc(aux, size_to_be_written + 1); - small_buff_size = size_to_be_written + 1; - snprintf(aux, small_buff_size, "%%FILENAME%%\n%s-%s-%s.pkg.tar.zst", pkg_info->name, - pkg_info->version, pkg_info->arch); - } - strcpy(description, aux); + // We neither want to let an arbritrarily long input to overflow the buffer + // nor to truncate perfectly valid inputs + if (size_to_be_written > small_buff_size) { + aux = realloc(aux, size_to_be_written + 1); + small_buff_size = size_to_be_written + 1; + snprintf(aux, small_buff_size, "%%FILENAME%%\n%s-%s-%s.pkg.tar.zst", + pkg_info->name, pkg_info->version, pkg_info->arch); + } + strcpy(description, aux); - ADD_STRING("\n\n%%NAME%%\n%s", name); - ADD_STRING("\n\n%%BASE%%\n%s", base); - ADD_STRING("\n\n%%VERSION%%\n%s", version); - ADD_STRING("\n\n%%DESC%%\n%s", description); - ADD_ARRAY("\n\n%%GROUPS%%\n%s", groups); - ADD_STRING("\n\n%%CSIZE%%\n%ld", csize); - ADD_STRING("\n\n%%ISIZE%%\n%ld", size); + ADD_STRING("\n\n%%NAME%%\n%s", name); + ADD_STRING("\n\n%%BASE%%\n%s", base); + ADD_STRING("\n\n%%VERSION%%\n%s", version); + ADD_STRING("\n\n%%DESC%%\n%s", description); + ADD_ARRAY("\n\n%%GROUPS%%\n%s", groups); + ADD_STRING("\n\n%%CSIZE%%\n%ld", csize); + ADD_STRING("\n\n%%ISIZE%%\n%ld", size); - char checksum[SHA256_BLOCK_SIZE * 2 + 1]; - vieter_package_sha256sum(pkg, checksum); + char checksum[SHA256_BLOCK_SIZE * 2 + 1]; + vieter_package_sha256sum(pkg, checksum); - snprintf(aux, small_buff_size, "\n\n%%SHA256SUM%%\n%s", checksum); - if (buff_size < strlen(description) + small_buff_size + 1) { - description = realloc(description, buff_size * 2); - buff_size *= 2; - } - strcat(description, aux); + snprintf(aux, small_buff_size, "\n\n%%SHA256SUM%%\n%s", checksum); + if (buff_size < strlen(description) + small_buff_size + 1) { + description = realloc(description, buff_size * 2); + buff_size *= 2; + } + strcat(description, aux); - ADD_STRING("\n\n%%URL%%\n%s", url); - ADD_ARRAY("\n\n%%LICENSE%%\n%s", licenses); - ADD_STRING("\n\n%%ARCH%%\n%s", arch); - ADD_STRING("\n\n%%BUILDDATE%%\n%ld", build_date); - ADD_STRING("\n\n%%PACKAGER%%\n%s", packager); - ADD_ARRAY("\n\n%%REPLACES%%\n%s", replaces); - ADD_ARRAY("\n\n%%CONFLICTS%%\n%s", conflicts); - ADD_ARRAY("\n\n%%PROVIDES%%\n%s", provides); - ADD_ARRAY("\n\n%%DEPENDS%%\n%s", depends); - ADD_ARRAY("\n\n%%OPTDEPENDS%%\n%s", optdepends); - ADD_ARRAY("\n\n%%MAKEDEPENDS%%\n%s", makedepends); - ADD_ARRAY("\n\n%%CHECKDEPENDS%%\n%s", checkdepends); + ADD_STRING("\n\n%%URL%%\n%s", url); + ADD_ARRAY("\n\n%%LICENSE%%\n%s", licenses); + ADD_STRING("\n\n%%ARCH%%\n%s", arch); + ADD_STRING("\n\n%%BUILDDATE%%\n%ld", build_date); + ADD_STRING("\n\n%%PACKAGER%%\n%s", packager); + ADD_ARRAY("\n\n%%REPLACES%%\n%s", replaces); + ADD_ARRAY("\n\n%%CONFLICTS%%\n%s", conflicts); + ADD_ARRAY("\n\n%%PROVIDES%%\n%s", provides); + ADD_ARRAY("\n\n%%DEPENDS%%\n%s", depends); + ADD_ARRAY("\n\n%%OPTDEPENDS%%\n%s", optdepends); + ADD_ARRAY("\n\n%%MAKEDEPENDS%%\n%s", makedepends); + ADD_ARRAY("\n\n%%CHECKDEPENDS%%\n%s", checkdepends); - strcat(description, "\n\n"); + strcat(description, "\n\n"); - return description; + return description; } void vieter_package_free(vieter_package **ptp) { - FREE_STRING((*ptp)->path); - vieter_package_info_free((*ptp)->info); - vieter_package_dynarray_free((*ptp)->files); - free(*ptp); - *ptp = NULL; - + FREE_STRING((*ptp)->path); + vieter_package_info_free((*ptp)->info); + vieter_package_dynarray_free((*ptp)->files); + free(*ptp); + *ptp = NULL; } diff --git a/src/package/vieter_package_dynarray.c b/src/package/vieter_package_dynarray.c index 6da07ee..a29c843 100644 --- a/src/package/vieter_package_dynarray.c +++ b/src/package/vieter_package_dynarray.c @@ -1,56 +1,58 @@ #include "vieter_package_dynarray.h" vieter_package_dynarray *vieter_package_dynarray_init(size_t initial_capacity) { - vieter_package_dynarray *da = malloc(sizeof(vieter_package_dynarray)); - da->size = 0; - da->capacity = initial_capacity; + vieter_package_dynarray *da = malloc(sizeof(vieter_package_dynarray)); + da->size = 0; + da->capacity = initial_capacity; - return da; + return da; } void vieter_package_dynarray_add(vieter_package_dynarray *da, const char *s) { - // An empty vieter_package_dynarray does not have an allocated internal array yet - if (da->size == 0) { - da->array = malloc(sizeof(char*) * da->capacity); + // An empty vieter_package_dynarray does not have an allocated internal array + // yet + if (da->size == 0) { + da->array = malloc(sizeof(char *) * da->capacity); - // Initialise all char*'s to 0 so array[i] == NULL can be used to see if field is empty - memset(da->array, 0, sizeof(char*) * da->capacity); - } - // Double array size if it's full - else if (da->size == da->capacity) { - // if the realloc fails, access to memory in da->array is lost - da->array = realloc(da->array, sizeof(char*) * da->capacity * 2); - da->capacity *= 2; + // Initialise all char*'s to 0 so array[i] == NULL can be used to see if + // field is empty + memset(da->array, 0, sizeof(char *) * da->capacity); + } + // Double array size if it's full + else if (da->size == da->capacity) { + // if the realloc fails, access to memory in da->array is lost + da->array = realloc(da->array, sizeof(char *) * da->capacity * 2); + da->capacity *= 2; - // Same as the previous memset, but only for newly allocated pointers - memset(da->array + da->size, 0, sizeof(char*) * da->capacity / 2); - } - - da->array[da->size] = strdup(s); - da->size++; + // Same as the previous memset, but only for newly allocated pointers + memset(da->array + da->size, 0, sizeof(char *) * da->capacity / 2); + } + + da->array[da->size] = strdup(s); + da->size++; } void vieter_package_dynarray_free(vieter_package_dynarray *da) { - if (da == NULL) { - return; - } + if (da == NULL) { + return; + } - if (da->array != NULL) { - for (size_t i = 0; i < da->size; i++) { - free(da->array[i]); - } + if (da->array != NULL) { + for (size_t i = 0; i < da->size; i++) { + free(da->array[i]); + } - free(da->array); - } + free(da->array); + } - free(da); + free(da); } char **vieter_package_dynarray_convert(vieter_package_dynarray *da) { - char **array = da->array; + char **array = da->array; - da->array = NULL; - vieter_package_dynarray_free(da); + da->array = NULL; + vieter_package_dynarray_free(da); - return array; + return array; } diff --git a/src/package/vieter_package_info.c b/src/package/vieter_package_info.c index 5ed040e..1dfd0b7 100644 --- a/src/package/vieter_package_info.c +++ b/src/package/vieter_package_info.c @@ -2,78 +2,85 @@ #include "vieter_package_info.h" -#define PKG_INFO_STRING(key_ptr, field) if ((value_ptr = strstr(value_ptr, key_ptr)) != NULL) { \ - value_ptr += strlen(key_ptr);\ - tail_ptr = strchr(value_ptr, '\n');\ - tail_ptr[0] = '\0'; \ - pkg_info->field = strdup(value_ptr); \ - tail_ptr[0] = '\n'; \ -} value_ptr = tail_ptr; +#define PKG_INFO_STRING(key_ptr, field) \ + if ((value_ptr = strstr(value_ptr, key_ptr)) != NULL) { \ + value_ptr += strlen(key_ptr); \ + tail_ptr = strchr(value_ptr, '\n'); \ + tail_ptr[0] = '\0'; \ + pkg_info->field = strdup(value_ptr); \ + tail_ptr[0] = '\n'; \ + } \ + value_ptr = tail_ptr; -#define PKG_INFO_INT(key_ptr, field) value_ptr = strstr(value_ptr, key_ptr) + strlen(key_ptr);\ - tail_ptr = strchr(value_ptr, '\n');\ - tail_ptr[0] = '\0'; \ - pkg_info->field = atoi(value_ptr); \ - tail_ptr[0] = '\n'; \ - value_ptr = tail_ptr; +#define PKG_INFO_INT(key_ptr, field) \ + value_ptr = strstr(value_ptr, key_ptr) + strlen(key_ptr); \ + tail_ptr = strchr(value_ptr, '\n'); \ + tail_ptr[0] = '\0'; \ + pkg_info->field = atoi(value_ptr); \ + tail_ptr[0] = '\n'; \ + value_ptr = tail_ptr; -#define PKG_INFO_ARRAY(key_ptr, field) while((value_ptr = strstr(value_ptr, key_ptr)) != NULL){ \ - value_ptr = value_ptr + strlen(key_ptr);\ - tail_ptr = strchr(value_ptr, '\n'); \ - tail_ptr[0] = '\0'; \ - if(pkg_info->field == NULL) { pkg_info->field = vieter_package_dynarray_init(4); } \ - vieter_package_dynarray_add(pkg_info->field, value_ptr); \ - tail_ptr[0] = '\n'; \ - value_ptr = tail_ptr;\ -} value_ptr = tail_ptr; +#define PKG_INFO_ARRAY(key_ptr, field) \ + while ((value_ptr = strstr(value_ptr, key_ptr)) != NULL) { \ + value_ptr = value_ptr + strlen(key_ptr); \ + tail_ptr = strchr(value_ptr, '\n'); \ + tail_ptr[0] = '\0'; \ + if (pkg_info->field == NULL) { \ + pkg_info->field = vieter_package_dynarray_init(4); \ + } \ + vieter_package_dynarray_add(pkg_info->field, value_ptr); \ + tail_ptr[0] = '\n'; \ + value_ptr = tail_ptr; \ + } \ + value_ptr = tail_ptr; vieter_package_info *vieter_package_info_init() { - return calloc(1, sizeof(vieter_package_info)); + return calloc(1, sizeof(vieter_package_info)); } void vieter_package_info_free(vieter_package_info *pkg_info) { - FREE_STRING(pkg_info->name); - FREE_STRING(pkg_info->base); - FREE_STRING(pkg_info->version); - FREE_STRING(pkg_info->description); - FREE_STRING(pkg_info->url); - FREE_STRING(pkg_info->arch); - FREE_STRING(pkg_info->packager); - FREE_STRING(pkg_info->pgpsig); + FREE_STRING(pkg_info->name); + FREE_STRING(pkg_info->base); + FREE_STRING(pkg_info->version); + FREE_STRING(pkg_info->description); + FREE_STRING(pkg_info->url); + FREE_STRING(pkg_info->arch); + FREE_STRING(pkg_info->packager); + FREE_STRING(pkg_info->pgpsig); - vieter_package_dynarray_free(pkg_info->groups); - vieter_package_dynarray_free(pkg_info->licenses); - vieter_package_dynarray_free(pkg_info->replaces); - vieter_package_dynarray_free(pkg_info->depends); - vieter_package_dynarray_free(pkg_info->conflicts); - vieter_package_dynarray_free(pkg_info->provides); - vieter_package_dynarray_free(pkg_info->optdepends); - vieter_package_dynarray_free(pkg_info->makedepends); - vieter_package_dynarray_free(pkg_info->checkdepends); + vieter_package_dynarray_free(pkg_info->groups); + vieter_package_dynarray_free(pkg_info->licenses); + vieter_package_dynarray_free(pkg_info->replaces); + vieter_package_dynarray_free(pkg_info->depends); + vieter_package_dynarray_free(pkg_info->conflicts); + vieter_package_dynarray_free(pkg_info->provides); + vieter_package_dynarray_free(pkg_info->optdepends); + vieter_package_dynarray_free(pkg_info->makedepends); + vieter_package_dynarray_free(pkg_info->checkdepends); - free(pkg_info); + free(pkg_info); } -void vieter_package_info_parse(vieter_package_info *pkg_info, char *pkg_info_str) { - char *value_ptr = pkg_info_str, *tail_ptr; - - PKG_INFO_STRING("\npkgname = ", name); - PKG_INFO_STRING("\npkgbase = ", base); - PKG_INFO_STRING("\npkgver = ", version); - PKG_INFO_STRING("\npkgdesc = ", description); - PKG_INFO_STRING("\nurl = ", url); - PKG_INFO_INT("\nbuilddate = ", build_date); - PKG_INFO_STRING("\npackager = ", packager); - PKG_INFO_INT("\nsize = ", size); - PKG_INFO_STRING("\narch = ", arch); - PKG_INFO_ARRAY("\nlicense = ", licenses); - PKG_INFO_ARRAY("\nreplaces = ", replaces); - PKG_INFO_ARRAY("\ngroup = ", groups); - PKG_INFO_ARRAY("\nconflict = ", conflicts); - PKG_INFO_ARRAY("\nprovides = ", provides); - PKG_INFO_ARRAY("\ndepend = ", depends); - PKG_INFO_ARRAY("\noptdepend = ", optdepends); - PKG_INFO_ARRAY("\nmakedepend = ", makedepends); - PKG_INFO_ARRAY("\ncheckdepend = ", checkdepends); +void vieter_package_info_parse(vieter_package_info *pkg_info, + char *pkg_info_str) { + char *value_ptr = pkg_info_str, *tail_ptr; + PKG_INFO_STRING("\npkgname = ", name); + PKG_INFO_STRING("\npkgbase = ", base); + PKG_INFO_STRING("\npkgver = ", version); + PKG_INFO_STRING("\npkgdesc = ", description); + PKG_INFO_STRING("\nurl = ", url); + PKG_INFO_INT("\nbuilddate = ", build_date); + PKG_INFO_STRING("\npackager = ", packager); + PKG_INFO_INT("\nsize = ", size); + PKG_INFO_STRING("\narch = ", arch); + PKG_INFO_ARRAY("\nlicense = ", licenses); + PKG_INFO_ARRAY("\nreplaces = ", replaces); + PKG_INFO_ARRAY("\ngroup = ", groups); + PKG_INFO_ARRAY("\nconflict = ", conflicts); + PKG_INFO_ARRAY("\nprovides = ", provides); + PKG_INFO_ARRAY("\ndepend = ", depends); + PKG_INFO_ARRAY("\noptdepend = ", optdepends); + PKG_INFO_ARRAY("\nmakedepend = ", makedepends); + PKG_INFO_ARRAY("\ncheckdepend = ", checkdepends); }