Introduction
Introduction Statistics Contact Development Disclaimer Help
tlbuf: when the last line lacks eol, append it - neatvi - [fork] simple vi-type…
git clone git://src.adamsgaard.dk/neatvi
Log
Files
Refs
README
---
commit d2e6b8054daf567c687f0cb4b526b4a6f439d7d5
parent 20cc8817475554d8448632970ff7c8d84ed2f9e2
Author: Ali Gholami Rudi <[email protected]>
Date: Mon, 6 Jun 2016 23:40:14 +0430
lbuf: when the last line lacks eol, append it
Diffstat:
M lbuf.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
---
diff --git a/lbuf.c b/lbuf.c
t@@ -133,7 +133,7 @@ static void lbuf_insertline(struct lbuf *lb, int pos, char…
/* low-level replacement */
static void lbuf_replace(struct lbuf *lb, char *s, int pos, int n_del)
{
- char *r;
+ char *r, *n;
int n_ins = 0;
int i;
for (i = 0; i < n_del; i++)
t@@ -141,12 +141,16 @@ static void lbuf_replace(struct lbuf *lb, char *s, int p…
memmove(lb->ln + pos, lb->ln + pos + n_del,
(lb->ln_n - pos - n_del) * sizeof(lb->ln[0]));
lb->ln_n -= n_del;
- while (s && (r = strchr(s, '\n'))) {
- char *n = malloc(r - s + 2);
- memcpy(n, s, r - s + 1);
+ while (s && *s) {
+ r = strchr(s, '\n');
+ if (!r) /* no eol */
+ r = strchr(s, '\0');
+ n = malloc(r - s + 2);
+ memcpy(n, s, r - s);
+ n[r - s + 0] = '\n';
n[r - s + 1] = '\0';
lbuf_insertline(lb, pos + n_ins++, n);
- s = r + 1;
+ s = *r ? r + 1 : r;
}
for (i = 0; i < LEN(lb->mark); i++) { /* updating marks */
if (!s && lb->mark[i] >= pos && lb->mark[i] < pos + n_del)
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.