flags |= read_byte(f) << 8;
file = receive_file_entry(flist, flags, f);
- if (S_ISREG(file->mode))
+ if (S_ISREG(file->mode) || S_ISLNK(file->mode))
stats.total_size += file->length;
flist->files[flist->count++] = file;
memset(file, 0, file_struct_len);
/* In an empty entry, dir.depth is an offset to the next non-empty
* entry. Likewise for length in the opposite direction. We assume
- * that we're alone for now since flist_find() will collate adjacent
- * items for any entries that are encountered during the find. */
+ * that we're alone for now since flist_find() will adjust the counts
+ * it runs into that aren't up-to-date. */
file->length = file->dir.depth = 1;
}