From 39f545e518d22b8f9e792902675e69e7592b806a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Mon, 21 Jul 2014 13:23:41 +0200 Subject: Add iterator functions to walk through text --- editor.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'editor.h') diff --git a/editor.h b/editor.h index 1273d6f..bde4da9 100644 --- a/editor.h +++ b/editor.h @@ -1,6 +1,13 @@ #include typedef struct Editor Editor; +typedef struct Piece Piece; + +typedef struct { + const char const *text; + /* const */ size_t len; + const Piece const *piece; +} Iterator; typedef bool (*iterator_callback_t)(void *, size_t pos, const char *content, size_t len); @@ -11,7 +18,10 @@ bool editor_replace(Editor*, size_t pos, char *c); void editor_snapshot(Editor*); bool editor_undo(Editor*); bool editor_redo(Editor*); -//char *editor_get(Editor*, size_t pos, size_t len); +Iterator editor_iterator_get(Editor*, size_t pos); +bool editor_iterator_valid(const Iterator*); +void editor_iterator_next(Iterator*); +void editor_iterator_prev(Iterator*); void editor_iterate(Editor*, void *, size_t pos, iterator_callback_t); bool editor_modified(Editor*); int editor_save(Editor*, const char *file); -- cgit v1.2.3