aboutsummaryrefslogtreecommitdiff
path: root/vis.c
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2015-11-23 10:48:41 +0100
committerMarc André Tanner <mat@brain-dump.org>2015-11-23 14:18:27 +0100
commitc1584693cbb2d9ea2f2cfb4fc528da30b2554a91 (patch)
tree0cadc0bccd9ac91d9118c0e061e2566c7054e70b /vis.c
parent0613073092b9f4172b5b87e9c7f243ff6d61f723 (diff)
downloadvis-c1584693cbb2d9ea2f2cfb4fc528da30b2554a91.tar.gz
vis-c1584693cbb2d9ea2f2cfb4fc528da30b2554a91.tar.xz
vis: improve replacement of combining characters
Diffstat (limited to 'vis.c')
-rw-r--r--vis.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/vis.c b/vis.c
index c84b415..03dcc61 100644
--- a/vis.c
+++ b/vis.c
@@ -435,14 +435,9 @@ void vis_insert_key(Vis *vis, const char *data, size_t len) {
}
void vis_replace(Vis *vis, size_t pos, const char *data, size_t len) {
- size_t chars = 0;
- for (size_t i = 0; i < len; i++) {
- if (ISUTF8(data[i]))
- chars++;
- }
-
Text *txt = vis->win->file->text;
Iterator it = text_iterator_get(txt, pos);
+ int chars = text_char_count(data, len);
for (char c; chars-- > 0 && text_iterator_byte_get(&it, &c) && c != '\r' && c != '\n'; )
text_iterator_char_next(&it, NULL);