-void
-do_capture_progress(struct add_image_params *params, int status,
- const struct wim_inode *inode)
-{
- switch (status) {
- case WIMLIB_SCAN_DENTRY_OK:
- if (!(params->add_flags & WIMLIB_ADD_FLAG_VERBOSE))
- return;
- case WIMLIB_SCAN_DENTRY_UNSUPPORTED:
- case WIMLIB_SCAN_DENTRY_EXCLUDED:
- case WIMLIB_SCAN_DENTRY_EXCLUDED_SYMLINK:
- if (!(params->add_flags & WIMLIB_ADD_FLAG_EXCLUDE_VERBOSE))
- return;
- }
- params->progress.scan.status = status;
- if (status == WIMLIB_SCAN_DENTRY_OK && inode->i_nlink == 1) {
- const struct wim_lookup_table_entry *lte;
- for (unsigned i = 0; i <= inode->i_num_ads; i++) {
- lte = inode_stream_lte_resolved(inode, i);
- if (lte != NULL)
- params->progress.scan.num_bytes_scanned += lte->size;
- }
- if (inode->i_attributes & FILE_ATTRIBUTE_DIRECTORY)
- params->progress.scan.num_dirs_scanned++;
- else
- params->progress.scan.num_nondirs_scanned++;
- }
- if (params->progress_func) {
- params->progress_func(WIMLIB_PROGRESS_MSG_SCAN_DENTRY,
- ¶ms->progress);
- }
-}
-
-/* Return true if the image capture configuration file indicates we should
- * exclude the filename @path from capture.