summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-06-22 20:02:10 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-06-22 20:04:25 +0200
commit6cbc85c018187a2b28bf0607f52bc258cc273253 (patch)
tree1081a7da4afef0236e9ef963bf43cfd2f0d02fba /include
parent8edee9c4967ed9f3ce53cdc752cd2c02ca585bfe (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.h9
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 */