From c4351c9a00a4f7d96c1058d339d5f68270c25254 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Wed, 16 Jul 2014 14:30:42 +0200 Subject: Implement replacement/overwrite --- editor.c | 8 ++++++++ editor.h | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/editor.c b/editor.c index f3e1197..8033f23 100644 --- a/editor.c +++ b/editor.c @@ -414,6 +414,14 @@ bool editor_delete(Editor *ed, size_t pos, size_t len) { return true; } +bool editor_replace(Editor *ed, size_t pos, char *c) { + // TODO argument validation: pos etc. + size_t len = strlen(c); + editor_delete(ed, pos, len); + editor_insert(ed, pos, c); + return true; +} + void editor_snapshot(Editor *ed) { ed->current_action = NULL; } diff --git a/editor.h b/editor.h index 3704d37..b612629 100644 --- a/editor.h +++ b/editor.h @@ -9,8 +9,8 @@ typedef enum { typedef Iterate (*iterator_callback_t)(void *, size_t pos, const char *content, size_t len); - bool editor_insert(Editor*, size_t pos, char *c); +bool editor_replace(Editor*, size_t pos, char *c); bool editor_delete(Editor*, size_t pos, size_t len); bool editor_undo(Editor*); bool editor_redo(Editor*); -- cgit v1.2.3