coan 4.2.4
|
#include "file_tree.h"
#include "filesys.h"
#include "platform.h"
#include "report.h"
#include "swiss_army.h"
Go to the source code of this file.
Data Structures | |
struct | file_tree |
Defines | |
#define | PARENT_PENDING ((void *)-1) |
#define | IS_UNLINKED(ftree) ((ftree)->parent == PARENT_PENDING) |
#define | IS_ROOT(ftree) ((ftree)->parent == NULL) |
#define | IS_FILE(ftree) ((ftree)->children == NULL) |
#define | IS_DIR(ftree) (!IS_FILE(ftree)) |
#define | COUNT_FILES(flags) (((flags) & FT_COUNT_FILES) == FT_COUNT_FILES) |
#define | COUNT_FILES_ONLY(flags) (((flags) & FT_COUNT_ALL) == FT_COUNT_FILES) |
#define | COUNT_DIRS(flags) (((flags) & FT_COUNT_DIRS) == FT_COUNT_DIRS) |
#define | COUNT_DIRS_ONLY(flags) (((flags) & FT_COUNT_ALL) == FT_COUNT_DIRS) |
#define | COUNT_ALL(flags) (((flags) & FT_COUNT_ALL) == FT_COUNT_ALL) |
#define | COUNT_CHILDREN(flags) (((flags) & FT_COUNT_CHILDREN) == FT_COUNT_CHILDREN) |
Functions | |
static bool | null_filter (char const *leafname) |
static void | null_callback (file_tree_h ft, char const *name, file_tree_traverse_state_t context) |
static file_tree_h | new_node (char const *leafname, size_t len) |
static file_tree_h | new_file_node (char const *leafname, file_filter_t filter) |
static file_tree_h | get_parent (file_tree_h child) |
static void | link_in (file_tree_h parent, file_tree_h child) |
static void | file_tree_add_symlink (file_tree_h root, fs_dir_t parent, char const *symlink, file_tree_callback_t callback) |
static file_tree_h | new_dir_node (file_tree_h root, char const *leafname, fs_dir_t dir, file_filter_t filter, file_tree_callback_t callback) |
static file_tree_h | get_root (file_tree_h ft) |
static file_tree_h | seek_child (file_tree_h node, char const *childname) |
static file_tree_h | seek (file_tree_h ft, char const **path) |
static file_tree_h | deepen (file_tree_h ft, char const **path) |
static void | traverse (file_tree_h ft, file_tree_callback_t callback, char *path_start, char *path_end) |
static void | file_tree_add_canon (file_tree_h root, char const *path, file_tree_callback_t callback) |
static void | file_tree_init (file_tree_h ft) |
static void | file_tree_copy_init (file_tree_h dest, file_tree_const_h src) |
static void | file_tree_finis (file_tree_h ft) |
heap_str | file_tree_name (file_tree_const_h ft) |
file_tree_h | file_tree_new (void) |
file_tree_h | file_tree_copy (file_tree_const_h src) |
void | file_tree_swap (file_tree_h lhs, file_tree_h rhs) |
void | file_tree_assign (file_tree_h dest, file_tree_const_h src) |
bool | file_tree_equal (file_tree_const_h lhs, file_tree_const_h rhs) |
bool | file_tree_set_filter (file_tree_h ft, file_filter_t filter) |
void | file_tree_dispose (file_tree_h ft) |
void | file_tree_add (file_tree_h root, char const *path, file_tree_callback_t callback) |
void | file_tree_traverse (file_tree_h ft, file_tree_callback_t callback) |
bool | file_tree_is_empty (file_tree_const_h ft) |
size_t | file_tree_count (file_tree_const_h ft, unsigned flags, file_tree_count_t *counter) |
file_tree_const_h | file_tree_child (file_tree_const_h ft, size_t which) |
This file implements the File Tree component
Definition in file file_tree.c.