static RmOff rm_pp_handler_other_lint(const RmSession *session) { RmOff num_handled = 0; RmFileTables *tables = session->tables; for(RmOff type = 0; type < RM_LINT_TYPE_DUPE_CANDIDATE; ++type) { if(type == RM_LINT_TYPE_EMPTY_DIR) { tables->other_lint[type] = g_list_sort( tables->other_lint[type], (GCompareFunc)rm_pp_cmp_reverse_alphabetical); } GList *list = tables->other_lint[type]; for(GList *iter = list; iter; iter = iter->next) { RmFile *file = iter->data; rm_assert_gentle(file); rm_assert_gentle(type == file->lint_type); num_handled++; rm_fmt_write(file, session->formats, -1); } if(!session->cfg->cache_file_structs) { g_list_free_full(list, (GDestroyNotify)rm_file_destroy); } else { g_list_free(list); } } return num_handled; }
static void rm_tm_write_unfinished_cksums(RmTreeMerger *self, RmDirectory *directory) { for(GList *iter = directory->known_files.head; iter; iter = iter->next) { RmFile *file = iter->data; file->lint_type = RM_LINT_TYPE_UNIQUE_FILE; rm_fmt_write(file, self->session->formats, -1); } /* Recursively propagate to children */ for(GList *iter = directory->children.head; iter; iter = iter->next) { RmDirectory *child = iter->data; rm_tm_write_unfinished_cksums(self, child); } }