aboutsummaryrefslogtreecommitdiff
path: root/src/sc_parse.c
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2014-06-22 16:17:49 +0200
committerThomas White <taw@bitwiz.org.uk>2014-06-22 16:17:49 +0200
commit0574767480272acc854a31d046cc92b5a5683d8a (patch)
treea63d89bd5e25d16ea453d2fd3b9a96559ece5882 /src/sc_parse.c
parentc8c48c4a22953c2da38e9947e56fbce0fde78cec (diff)
Insert text
Diffstat (limited to 'src/sc_parse.c')
-rw-r--r--src/sc_parse.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/sc_parse.c b/src/sc_parse.c
index 1d5c549..51f55de 100644
--- a/src/sc_parse.c
+++ b/src/sc_parse.c
@@ -379,6 +379,21 @@ SCBlock *sc_parse(const char *sc)
}
+void sc_insert_text(SCBlock *b1, int o1, const char *t)
+{
+ size_t len = strlen(b1->contents)+1+strlen(t);
+ char *cnew = realloc(b1->contents, len);
+ char *tmp = malloc(len);
+ char *p1 = g_utf8_offset_to_pointer(cnew, o1);
+ if ( (cnew == NULL) || (tmp == NULL) ) return;
+ strcpy(tmp, p1);
+ strcpy(p1, t);
+ strcpy(p1+strlen(t), tmp);
+ free(tmp);
+ b1->contents = cnew;
+}
+
+
static void delete_from_block(SCBlock *b, int o1, int o2)
{
if ( o1 == o2 ) return; /* nothing to delete */