sbase

suckless unix tools
git clone git://git.suckless.org/sbase
Log | Files | Refs | README | LICENSE

commit 54a0fc3ecc34511bcba021bfedac10d965a3efe7
parent 09dc00f9951a5e8b07eb79f0cf6e090d6ef9532d
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date:   Mon, 27 Nov 2023 08:32:24 +0100

ed: Fix makeline

Strings without newlines created problems in the function
and the global field was not updated, making that new lines
added were marked as global being processed in the current
global command.

Diffstat:
Med.c | 5+++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/ed.c b/ed.c @@ -185,19 +185,20 @@ makeline(char *s, int *off) if (lastidx >= idxsize) { lp = NULL; if (idxsize <= SIZE_MAX - NUMLINES) - lp = reallocarray(zero, idxsize + NUMLINES, sizeof(*lp)); + lp = reallocarray(zero, idxsize + NUMLINES, sizeof(*lp)); if (!lp) error("out of memory"); idxsize += NUMLINES; zero = lp; } lp = zero + lastidx; + lp->global = 0; if (!s) { lp->seek = -1; len = 0; } else { - while ((c = *s++) != '\n') + while ((c = *s++) && c != '\n') /* nothing */; len = s - begin; if ((lp->seek = lseek(scratch, 0, SEEK_END)) < 0 ||