agendafs

A filesystem for your calendar.

git clone git://mccd.space/agendafs
commit 33402cb90a1ece43ae700a126c14b25f7438dda0
parent d9d7036265971f7e2231ebb82c2ba0e1ea47daf8
Author: Marc Coquand <marc@coquand.email>
Date:   Thu,  3 Jul 2025 15:06:53 +0100

fix formatting, add some const and remove typedefs

Typedefs obscure

Diffstat:
M.clang-format | 1+
Mjournal_entry.c | 78++++++++++++++++++++++++++++++++++++++++++------------------------------------
Mjournal_entry.h | 10+++++-----
Mmain.c | 11+++++++----
Mtree.c | 21++++++++++-----------
Mtree.h | 18+++++++++---------
6 files changed, 74 insertions(+), 65 deletions(-)
diff --git a/.clang-format b/.clang-format
@@ -2,5 +2,6 @@ BasedOnStyle: LLVM
 UseTab: Always
 IndentWidth: 8
 TabWidth: 8
+ColumnLimit: 80
 BreakBeforeBraces: Stroustrup
 AlwaysBreakAfterReturnType: All
diff --git a/journal_entry.c b/journal_entry.c
@@ -39,14 +39,14 @@ create_file_node(struct journal_entry *entry)
 }
 
 struct journal_entry *
-get_entry(tree_node *node)
+get_entry(const struct tree_node *node)
 {
 	struct journal_entry *entry = node->data;
 	return entry;
 }
 
 char *
-get_node_filename(tree_node *node)
+get_node_filename(const struct tree_node *node)
 {
 	struct journal_entry *entry = node->data;
 	if (entry == NULL)
@@ -55,7 +55,7 @@ get_node_filename(tree_node *node)
 }
 
 icalcomponent *
-get_node_component(tree_node *node)
+get_node_component(const struct tree_node *node)
 {
 	struct journal_entry *entry = node->data;
 	if (entry == NULL)
@@ -87,17 +87,17 @@ get_parent_path(const char *path, char **buffer)
 	return result;
 }
 
-tree_node **
-get_node_children(tree_node *node)
+struct tree_node **
+get_node_children(const struct tree_node *node)
 {
-	tree_node **entries = node->children;
+	struct tree_node **entries = node->children;
 	return entries;
 }
 
 void
-detach_node_and_entry(tree_node *node)
+detach_node_and_entry(struct tree_node *node)
 {
-	tree_node *parent = node->parent;
+	struct tree_node *parent = node->parent;
 	if (!parent || !parent->data) {
 		return;
 	}
@@ -105,7 +105,7 @@ detach_node_and_entry(tree_node *node)
 	detach_tree_node(node);
 }
 
-tree_node *
+struct tree_node *
 get_node_by_uuid(const char *target_uuid)
 {
 	char *filename_original = NULL;
@@ -118,13 +118,14 @@ get_node_by_uuid(const char *target_uuid)
 	LOG("Looking for UID: '%s'", target_uuid);
 	LOG("Full filename: '%s'", filename_original);
 
-	tree_node *node = hashmap_get(entries_original_ics, filename_original);
+	struct tree_node *node =
+	    hashmap_get(entries_original_ics, filename_original);
 	free(filename_original);
 	LOG("Found it: %b", node != NULL);
 	return node;
 }
 bool
-is_root_node(tree_node *node)
+is_root_node(const struct tree_node *node)
 {
 	if (!node->data) {
 		return true;
@@ -203,7 +204,7 @@ remove_parent_child_relationship_from_component(icalcomponent *parent,
 }
 
 void
-add_child_to_node(tree_node *parent, tree_node *child)
+add_child_to_node(struct tree_node *parent, struct tree_node *child)
 {
 	// Root node, don't add relationship to component
 	if (is_root_node(parent)) {
@@ -232,8 +233,8 @@ free_segments(char **segments, size_t count)
 	free(segments);
 }
 
-struct tree_node *
-get_node_by_path(struct tree_node *root, const char *path)
+const struct tree_node *
+get_node_by_path(const struct tree_node *root, const char *path)
 {
 	if (strcmp(path, "/") == 0) {
 		LOG("Is ROOT %s", path);
@@ -246,11 +247,11 @@ get_node_by_path(struct tree_node *root, const char *path)
 		return fuse_tree_root;
 	LOG("Segments are defined");
 
-	tree_node *current = root;
+	const struct tree_node *current = root;
 
 	for (size_t i = 0; i < count && current; ++i) {
 		const char *segment = segments[i];
-		tree_node *next = NULL;
+		struct tree_node *next = NULL;
 		LOG("Segment: %s", segment);
 
 		for (size_t j = 0; j < current->child_count; ++j) {
@@ -315,7 +316,7 @@ get_entry_from_fuse_path(const char *path)
 		LOG("Invalid path: '%s'\n", path ? path : "NULL");
 		return NULL;
 	}
-	tree_node *node = get_node_by_path(fuse_tree_root, path);
+	const struct tree_node *node = get_node_by_path(fuse_tree_root, path);
 
 	if (!node || !node->data) {
 		LOG("No entry found for key: '%s'\n", path);
@@ -371,7 +372,7 @@ is_directory_component(icalcomponent *component)
 // We assume it to be a directory if it has a property directory property
 // so or is a parent node
 bool
-node_is_directory(tree_node *node)
+node_is_directory(const struct tree_node *node)
 {
 	if (is_root_node(node) || node_has_children(node)) {
 		return true;
@@ -461,7 +462,8 @@ parse_ics_to_journal_entry_component(const char *filename,
 }
 
 void
-move_node(tree_node *old_parent, tree_node *new_parent, tree_node *child)
+move_node(struct tree_node *old_parent, struct tree_node *new_parent,
+	  struct tree_node *child)
 {
 	struct journal_entry *child_entry = child->data;
 
@@ -594,7 +596,8 @@ load_journal_entries()
 				continue;
 			}
 
-			tree_node *new_node = create_file_node(new_entry);
+			struct tree_node *new_node =
+			    create_file_node(new_entry);
 
 			if (add_child(fuse_tree_root, new_node) != 0 ||
 			    hashmap_insert(entries_original_ics,
@@ -616,7 +619,8 @@ load_journal_entries()
 	char **keys = hashmap_get_keys(entries_original_ics, &n_keys);
 	for (size_t i = 0; i < n_keys; i++) {
 		const char *filename = keys[i];
-		tree_node *child = hashmap_get(entries_original_ics, filename);
+		struct tree_node *child =
+		    hashmap_get(entries_original_ics, filename);
 		struct journal_entry *entry = child->data;
 
 		const char *parent_uid = get_parent_uid(entry->component);
@@ -625,7 +629,7 @@ load_journal_entries()
 		if (parent_uid) {
 			LOG("Has parent");
 
-			tree_node *parent = get_node_by_uuid(parent_uid);
+			struct tree_node *parent = get_node_by_uuid(parent_uid);
 			if (parent) {
 				detach_tree_node(child);
 				add_child(parent, child);
@@ -687,7 +691,7 @@ get_last_modified(struct journal_entry *entry)
 }
 
 uid_t
-get_node_uid(tree_node *node)
+get_node_uid(struct tree_node *node)
 {
 	if (is_root_node(node)) {
 		return getuid();
@@ -696,7 +700,7 @@ get_node_uid(tree_node *node)
 }
 
 gid_t
-get_node_gid(tree_node *node)
+get_node_gid(const struct tree_node *node)
 {
 	if (is_root_node(node)) {
 		return getgid();
@@ -797,7 +801,7 @@ do_journal_entry_rename(const char *old, const char *new)
 	char *parent_path = NULL;
 	get_parent_path(new, &parent_path);
 	LOG("PARENT PATH: %s", parent_path);
-	tree_node *new_parent_node =
+	const struct tree_node *new_parent_node =
 	    get_node_by_path(fuse_tree_root, parent_path);
 	free(parent_path);
 
@@ -815,7 +819,7 @@ do_journal_entry_rename(const char *old, const char *new)
 		*dot = '\0';
 	}
 	LOG("Summary is now %s", new_summary);
-	tree_node *entry_node = get_node_by_path(fuse_tree_root, old);
+	struct tree_node *entry_node = get_node_by_path(fuse_tree_root, old);
 	if (!entry_node) {
 		free(new_copy);
 		free(new_summary);
@@ -823,7 +827,7 @@ do_journal_entry_rename(const char *old, const char *new)
 		return -EIO;
 	}
 
-	tree_node *old_parent_node = entry_node->parent;
+	struct tree_node *old_parent_node = entry_node->parent;
 
 	struct journal_entry *old_entry = entry_node->data;
 	if (!old_entry) {
@@ -989,11 +993,12 @@ create_entry_from_fuse(const char *fuse_path)
 	}
 	LOG("Inserting vjournal entry");
 
-	tree_node *new_node = create_file_node(new_entry);
+	struct tree_node *new_node = create_file_node(new_entry);
 	char *parent_path = NULL;
 	get_parent_path(fuse_path, &parent_path);
 	LOG("Parent path is %s", parent_path);
-	tree_node *parent = get_node_by_path(fuse_tree_root, parent_path);
+	struct tree_node *parent =
+	    get_node_by_path(fuse_tree_root, parent_path);
 	free(parent_path);
 
 	if (!parent) {
@@ -1044,12 +1049,13 @@ create_directory_from_fuse_path(const char *fuse_path)
 	}
 	LOG("Inserting vjournal directory");
 
-	tree_node *new_node = create_file_node(new_entry);
+	struct tree_node *new_node = create_file_node(new_entry);
 
 	char *parent_path = NULL;
 	get_parent_path(fuse_path, &parent_path);
 	LOG("Parent path is %s", parent_path);
-	tree_node *parent = get_node_by_path(fuse_tree_root, parent_path);
+	struct tree_node *parent =
+	    get_node_by_path(fuse_tree_root, parent_path);
 	free(parent_path);
 
 	if (!parent) {
@@ -1092,7 +1098,7 @@ update_or_create_fuse_entry_from_original(const char *filepath_original)
 		return;
 	}
 
-	tree_node *new_or_updated_node =
+	struct tree_node *new_or_updated_node =
 	    hashmap_get(entries_original_ics, filename_original);
 
 	if (new_or_updated_node) {
@@ -1112,7 +1118,7 @@ update_or_create_fuse_entry_from_original(const char *filepath_original)
 	    updated_entry->filename);
 	if (parent_uid) {
 		LOG("Has parent");
-		tree_node *parent = get_node_by_uuid(parent_uid);
+		struct tree_node *parent = get_node_by_uuid(parent_uid);
 		if (parent) {
 			move_node(new_or_updated_node->parent, parent,
 				  new_or_updated_node);
@@ -1135,7 +1141,7 @@ int
 delete_dir_from_fuse_path(const char *filepath)
 {
 	int res = 0;
-	tree_node *node = get_node_by_path(fuse_tree_root, filepath);
+	struct tree_node *node = get_node_by_path(fuse_tree_root, filepath);
 	if (!node) {
 		LOG("Node not found");
 		return -EIO;
@@ -1173,7 +1179,7 @@ int
 delete_from_fuse_path(const char *filepath)
 {
 	int res = 0;
-	tree_node *node = get_node_by_path(fuse_tree_root, filepath);
+	struct tree_node *node = get_node_by_path(fuse_tree_root, filepath);
 	if (!node) {
 		return -EIO;
 	}
@@ -1210,7 +1216,7 @@ update_delete_from_original_path(const char *filepath)
 	}
 
 	// TODO: Fix so it finds by actual UUID, not filepath
-	tree_node *node = get_node_by_uuid(filepath);
+	struct tree_node *node = get_node_by_uuid(filepath);
 
 	// TODO: Subdirectories SHOULD NOT BE REMOVED HERE
 	// Instead, update the children so they have a new parent
diff --git a/journal_entry.h b/journal_entry.h
@@ -86,13 +86,13 @@ struct tree_node *
 find_node_by_path(struct tree_node *root, const char *path);
 
 struct journal_entry *
-get_entry(struct tree_node *node);
+get_entry(const struct tree_node *node);
 
 int
 delete_dir_from_fuse_path(const char *filepath);
 
 bool
-node_is_directory(struct tree_node *node);
+node_is_directory(const struct tree_node *node);
 
 int
 delete_from_fuse_path(const char *filepath);
@@ -133,8 +133,8 @@ get_last_modified(struct journal_entry *entry);
 int
 build_today_hashmap();
 
-struct tree_node *
-get_node_by_path(struct tree_node *root, const char *path);
+const struct tree_node *
+get_node_by_path(const struct tree_node *root, const char *path);
 
 int
 build_notes_hashmap();
@@ -154,7 +154,7 @@ uid_t
 get_node_uid(struct tree_node *node);
 
 gid_t
-get_node_gid(struct tree_node *node);
+get_node_gid(const struct tree_node *node);
 
 void
 remove_file_extension(char *path);
diff --git a/main.c b/main.c
@@ -47,7 +47,7 @@ journal_getattr(const char *path, struct stat *stbuf, struct fuse_file_info *fi)
 		goto unlock_and_return;
 	}
 
-	tree_node *node = get_node_by_path(fuse_tree_root, path);
+	const struct tree_node *node = get_node_by_path(fuse_tree_root, path);
 	if (!node) {
 		LOG("Entry not found");
 		ret_code = -ENOENT;
@@ -111,7 +111,8 @@ journal_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
 	// If we are in the root directory, expose the "journal" directory
 	if (strcmp(path, "/") == 0) {
 		for (size_t i = 0; i < fuse_tree_root->child_count; i++) {
-			tree_node *node = fuse_tree_root->children[i];
+			const struct tree_node *node =
+			    fuse_tree_root->children[i];
 			struct journal_entry *entry = node->data;
 
 			struct stat st = {0};
@@ -130,10 +131,12 @@ journal_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
 		}
 	}
 	else {
-		tree_node *node = get_node_by_path(fuse_tree_root, path);
+		const struct tree_node *node =
+		    get_node_by_path(fuse_tree_root, path);
 		if (node) {
 			for (size_t i = 0; i < node->child_count; i++) {
-				tree_node *child = node->children[i];
+				const struct tree_node *child =
+				    node->children[i];
 				struct journal_entry *entry = child->data;
 
 				struct stat st = {0};
diff --git a/tree.c b/tree.c
@@ -1,14 +1,13 @@
-
 #include "tree.h"
 #include "util.h"
 #include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
 
-tree_node *
+struct tree_node *
 create_tree_node(void *data, void (*free_fn)(void *))
 {
-	tree_node *node = xmalloc(sizeof(tree_node));
+	struct tree_node *node = xmalloc(sizeof(struct tree_node));
 	if (!node)
 		return NULL;
 	node->data = data;
@@ -22,14 +21,14 @@ create_tree_node(void *data, void (*free_fn)(void *))
 }
 
 size_t
-add_child(tree_node *parent, tree_node *child)
+add_child(struct tree_node *parent, struct tree_node *child)
 {
 	if (parent->child_count == parent->child_capacity) {
 		size_t new_capacity =
 		    parent->child_capacity ? parent->child_capacity * 2 : 4;
 
 		parent->children = xreallocarray(parent->children, new_capacity,
-						 sizeof(tree_node *));
+						 sizeof(struct tree_node *));
 		parent->child_capacity = new_capacity;
 	}
 	parent->children[parent->child_count++] = child;
@@ -37,7 +36,7 @@ add_child(tree_node *parent, tree_node *child)
 	return 0;
 }
 void
-update_node_data(tree_node *node, void *data)
+update_node_data(struct tree_node *node, void *data)
 {
 	if (node->data && node->free_fn) {
 		node->free_fn(node->data);
@@ -46,14 +45,14 @@ update_node_data(tree_node *node, void *data)
 }
 
 bool
-node_has_children(tree_node *node)
+node_has_children(const struct tree_node *node)
 {
 	return node->child_count > 0;
 }
 
 // Free a node and all its children
 void
-free_tree(tree_node *node)
+free_tree(struct tree_node *node)
 {
 	if (!node)
 		return;
@@ -68,7 +67,7 @@ free_tree(tree_node *node)
 }
 
 void
-print_tree(tree_node *node, int depth, void (*print_data)(void *))
+print_tree(struct tree_node *node, int depth, void (*print_data)(void *))
 {
 	for (int i = 0; i < depth; i++)
 		printf("  ");
@@ -83,12 +82,12 @@ print_tree(tree_node *node, int depth, void (*print_data)(void *))
 }
 
 bool
-detach_tree_node(tree_node *node)
+detach_tree_node(struct tree_node *node)
 {
 	if (!node->parent)
 		return false;
 
-	tree_node *parent = node->parent;
+	struct tree_node *parent = node->parent;
 
 	// Find index of this node in parent->children
 	size_t index = (size_t)-1;
diff --git a/tree.h b/tree.h
@@ -4,7 +4,7 @@
 #include <stdbool.h>
 #include <stdlib.h>
 
-typedef struct tree_node {
+struct tree_node {
 	void *data;
 
 	struct tree_node *parent;
@@ -13,29 +13,29 @@ typedef struct tree_node {
 	size_t child_capacity;
 
 	void (*free_fn)(void *);
-} tree_node;
+};
 
-tree_node *
+struct tree_node *
 create_tree_node(void *data, void (*free_fn)(void *));
 
 bool
-node_has_children(tree_node *node);
+node_has_children(const struct tree_node *node);
 
 void
-update_node_data(tree_node *node, void *data);
+update_node_data(struct tree_node *node, void *data);
 
 // detach from parent
 bool
-detach_tree_node(tree_node *node);
+detach_tree_node(struct tree_node *node);
 
 size_t
-add_child(tree_node *parent, tree_node *child);
+add_child(struct tree_node *parent, struct tree_node *child);
 
 void
-free_tree(tree_node *node);
+free_tree(struct tree_node *node);
 
 void
-print_tree(tree_node *node, int depth, void (*print_data)(void *));
+print_tree(struct tree_node *node, int depth, void (*print_data)(void *));
 
 #endif