aboutsummaryrefslogtreecommitdiff
path: root/lib/cleanpath.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cleanpath.c')
-rw-r--r--lib/cleanpath.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/cleanpath.c b/lib/cleanpath.c
index 5f7db0e..468c610 100644
--- a/lib/cleanpath.c
+++ b/lib/cleanpath.c
@@ -103,16 +103,22 @@ char *cleanpath_read(struct CleanPath *path) {
char *result;
size_t result_len;
size_t part_count;
+ size_t empty;
result = calloc(path->data_len, sizeof(char));
if (result == NULL) {
goto cleanpath_read__failure;
}
+ // Update number of elements in the path post-filter
+ empty = 0;
for (part_count = 0; path->part[part_count] != NULL; part_count++) {
- if (!strlen(path->part[part_count]))
+ if (!strlen(path->part[part_count])) {
+ empty++;
continue;
+ }
}
+ path->part_nelem = part_count - empty;
for (size_t i = 0; i < part_count; i++) {
// Ignore filtered paths