plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

commit 2d186fb20d8e553cddaf52837a3ba534bbdd064d
parent 9636ab1d6c1b86f2227871806773ef34a432e35b
Author: ssnf <ssnf@ssnf.xyz>
Date:   Mon,  1 Sep 2025 12:53:02 +0000

strgets

Diffstat:
Msrc/libstr/Strgets.c | 22++++++++--------------
1 file changed, 8 insertions(+), 14 deletions(-)

diff --git a/src/libstr/Strgets.c b/src/libstr/Strgets.c @@ -1,25 +1,19 @@ #include "std.h" -#include <bio.h> - int Strgets(String *p, int fd) { - Biobuf b; - ulong n; - char *s; + long n; + char c; Strzero(p); - Binit(&b, fd, OREAD); - n = 0; - s = Brdstr(&b, '\n', 1); - if (s) { - free(p->s); - n = Blinelen(&b) + 1; - *p = Strn(s, n - 1); - p->size = n; + for (n = 0; read(fd, &c, 1); ++n) { + if (c == '\n') { + ++n; + break; + } + Straddc(p, c); } - Bterm(&b); return n; }