diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-06-22 20:02:10 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-06-22 20:04:25 +0200 |
commit | 6cbc85c018187a2b28bf0607f52bc258cc273253 (patch) | |
tree | 1081a7da4afef0236e9ef963bf43cfd2f0d02fba /include | |
parent | 8edee9c4967ed9f3ce53cdc752cd2c02ca585bfe (diff) |
Cleanup: split fstree sort into 2 fstree independend functions
Make tree node list sort and recursive variant available and independend
of the fstree_t.
This is considered cleaner, since the fstree_t actually isn't needed for
any of this and we can just call the recusvie sort on the root instead,
and we can use the sort implementation directly for things like the
upcoming unit test.
Also this commit splits up the merge/sort implementation into a seperate
split and merge functions to make the code somewhat more readable.
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'include')
-rw-r--r-- | include/fstree.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/include/fstree.h b/include/fstree.h index f23ab70..74d1c7f 100644 --- a/include/fstree.h +++ b/include/fstree.h @@ -236,9 +236,6 @@ int fstree_from_file(fstree_t *fs, const char *filename, const char *rootdir); */ int fstree_from_dir(fstree_t *fs, const char *path); -/* Lexicographically sort all directory contents. */ -void fstree_sort(fstree_t *fs); - /* Add labels from an SELinux labeling file to all tree nodes. Returns 0 on success. Internally prints errors to stderr. */ int fstree_relabel_selinux(fstree_t *fs, const char *filename); @@ -257,4 +254,10 @@ char *fstree_get_path(tree_node_t *node); /* get a struct stat from a tree node */ void fstree_node_stat(fstree_t *fs, tree_node_t *node, struct stat *sb); +/* ASCIIbetically sort a linked list of tree nodes */ +tree_node_t *tree_node_list_sort(tree_node_t *head); + +/* ASCIIbetically sort all sub directories recursively */ +void tree_node_sort_recursive(tree_node_t *root); + #endif /* FSTREE_H */ |