diff options
author | Thomas White <taw@bitwiz.org.uk> | 2014-06-22 16:17:49 +0200 |
---|---|---|
committer | Thomas White <taw@bitwiz.org.uk> | 2014-06-22 16:17:49 +0200 |
commit | 0574767480272acc854a31d046cc92b5a5683d8a (patch) | |
tree | a63d89bd5e25d16ea453d2fd3b9a96559ece5882 /src/sc_parse.c | |
parent | c8c48c4a22953c2da38e9947e56fbce0fde78cec (diff) |
Insert text
Diffstat (limited to 'src/sc_parse.c')
-rw-r--r-- | src/sc_parse.c | 15 |
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 */ |