diff options
| author | Autumn | 2026-08-23 15:46:04 +0100 |
|---|---|---|
| committer | Autumn | 2026-08-23 15:47:06 +0100 |
| commit | a4bb8fb6a067dfc3f7126d535ccf320be80e81a8 (patch) | |
| tree | 1f450d82b58beef62eeebc89fdf70f17cbea0ea8 | |
| parent | 24c2030e6d01218d1c65cd9f47b57b39b2d00c66 (diff) | |
[bunnytask] improve to-do loading
| -rw-r--r-- | main.ha | 12 | ||||
| -rw-r--r-- | todo/load.ha | 18 |
2 files changed, 19 insertions, 11 deletions
@@ -16,19 +16,9 @@ export fn main() void = { const todo_files = config.files; // load todos - let todos: []str = []; + let todos = todo::loadall(todo_files)!; defer strings::freeall(todos); - // TODO simplify this - for (let file .. todo_files) { - match (todo::open(file)) { - case let todo_items: []str => - for (let todo .. todo_items) append(todos, todo)!; - free(todo_items); - case let err: fs::error => fmt::fatalf("Error opening {}: {}", file, fs::strerror(err)); - }; - }; - // print todos fmt::println("To-dos:")!; diff --git a/todo/load.ha b/todo/load.ha new file mode 100644 index 0000000..4931c74 --- /dev/null +++ b/todo/load.ha @@ -0,0 +1,18 @@ +use fmt; +use fs; + +export fn loadall(files: []str) ([]str | nomem) = { + + let tasks: []str = []; + + for (let file .. files) { + match (open(file)) { + case let file_tasks: []str => + for (let task .. file_tasks) append(tasks, task)?; + free(file_tasks); + case let err: fs::error => fmt::fatalf("Error opening {}: {}", file, fs::strerror(err)); + }; + }; + + return tasks; +}; |
