== Critical == [ ] == Non-critical [ ] optimization: already visited dirs, should not be visited again, same as with files. [ ] xmalloc: we abort if we cannot alloc memory, so do not test for null. [ ] test14: we should not skip hard links. we only need to cache the data and use it. Take care to not delete it! [ ] We nay have also hard linked directories. Deal with it! [ ] Add --exclude para and use the dev+inode to build a list to exclude dirs. [ ] Auto run cppcheck! [ ] 'level' should be int till the end. [ ] Hard links (t_014) may be not correct. I think we ignore links and for matching dirs this may be a problem. Think about. [ ] Sort dumping by size saved (option)? [ ] Dump also how much we can save by deleting. Isn't is already in can_save and already reported? [ ] Ignore empty dirs? [ ] Warn users in man, to never delete some dirs/files that appear on the left side. Only from the right. [ ] dev_ino: use blocks of structs. [ ] Fix man with regarding the example. [ ] Add -fno-guess-branch-probability when all braches are tagged. [ ] Add some progress bar? [ ] Maybe -v should be the default and -q (--quiet) to be added. [ ] When big files are hashed, print the file name? [ ] Lazy compute hash on files. Only if we have a match we will incrementally compute the checksum. [ ] Adapt man file to recent changes: flags etc. [ ] Ignore empty files. We have min_size. Should be default to 1? [ ] 1-bit fields are not printed as %hhu! [ ] Because we ignore !dir and !files, we may not have really identical directories. In one of them we may have a socket, for example. Add a reporting flag for this situation. Or, do not ignore other type of files. [ ] I must document a high level view over "algorithm". Even myself I do not remember what I am doing... [ ] Use fadvise to not cache data in RAM. [ ] Set read-ahead when reading full files. [ ] Use more threads [ ] Strange case: dir1 dir2 dir3=dir4 dir4=dir3 [ ] We could throw away unique files. [ ] Comparing in O(N*N) sucks! Where? [ ] Dump in stats also the max memory (peak) used. [ ] Maybe, for flag 'M', list files that were renamed (cmd line flag). [ ] Use a cache, specified by command line. Use inode and mtime as key?