commit 2d186fb20d8e553cddaf52837a3ba534bbdd064d
parent 9636ab1d6c1b86f2227871806773ef34a432e35b
Author: ssnf <ssnf@ssnf.xyz>
Date: Mon, 1 Sep 2025 12:53:02 +0000
strgets
Diffstat:
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;
}