From 521d01e8ad87e931af3e9a763cc84a6cf7fe5ee3 Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Sun, 5 Dec 2021 09:47:21 -0800 Subject: Feat: basic string and memory functions Continue filling out the basic standard lib functions. Included prototypes of the str* and mem* families. Plan to add e(str|mem) and n(str|mem) variants as well. --- src/base/io/getc.c | 4 ++-- src/base/io/read.c | 4 ++-- src/base/io/readuntil.c | 6 +++--- src/base/io/write.c | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src/base/io') diff --git a/src/base/io/getc.c b/src/base/io/getc.c index 68e1772..0f0d62e 100644 --- a/src/base/io/getc.c +++ b/src/base/io/getc.c @@ -23,7 +23,7 @@ loop: * get next buffer, try to keep io·BufUngets bytes * pre-catenated from the previous read to allow for ungets */ - mem·move(io->b-io·BufUngets, io->e-io·BufUngets, io·BufUngets); + mem·move(io->b-io·BufUngets, io·BufUngets, io->e-io·BufUngets); if(sys·read(io->fd, io->cap, io->b, &nr)){ io->state = io·BufNil; return io·BufEof; @@ -34,7 +34,7 @@ loop: } if(nr < io->cap){ - mem·move(io->e-i-io·BufUngets, io->b-io·BufUngets, i+io·BufUngets); + mem·move(io->e-i-io·BufUngets, i+io·BufUngets, io->b-io·BufUngets); io->g = io->e-i; } diff --git a/src/base/io/read.c b/src/base/io/read.c index d4f7bd9..a972c3e 100644 --- a/src/base/io/read.c +++ b/src/base/io/read.c @@ -35,13 +35,13 @@ io·read(io·Header *io, intptr len, void *buf) io->pos += nr; if(nr < io->cap){ io->g = io->e-nr; - mem·move(io->g, io->b, nr); + mem·move(io->g, nr, io->b); } ic -= nr; continue; } /* move our read bytes into the caller's buffer */ - mem·move(b, io->e+ic, n); + mem·move(b, n, io->e+ic); c -= n; ic += n; b += n; diff --git a/src/base/io/readuntil.c b/src/base/io/readuntil.c index d5c2ed6..3fe3925 100644 --- a/src/base/io/readuntil.c +++ b/src/base/io/readuntil.c @@ -27,14 +27,14 @@ io·readuntil(io·Header *io, int delim) } /* ok no luck, shift over the data and get more */ if(i < io->cap) - mem·move(io->b, b, i); + mem·move(io->b, i, b); io->g = io->b; /* write to the buffer while we search for delim */ b = (char *)io->b + i; while(i < io->cap){ if(sys·read(io->fd, io->cap-i, b, &j) || j == 0){ - mem·move(io->e-i, io->b, i); + mem·move(io->e-i, i, io->b); io->nread = +i; io->ilen = -i; io->g = io->e - i; @@ -47,7 +47,7 @@ io·readuntil(io·Header *io, int delim) /* finally have a hit. reset the world */ b = (char*)io->e - i; if(i < io->cap){ - mem·move(b, io->b, i); + mem·move(b, i, io->b); io->g = (uchar *)b; } j = (e - (char*)io->b) + 1; diff --git a/src/base/io/write.c b/src/base/io/write.c index 2f37200..554aa88 100644 --- a/src/base/io/write.c +++ b/src/base/io/write.c @@ -30,7 +30,7 @@ io·write(io·Header *io, intptr len, void *buf) return io·BufEof; } } - mem·move(io->e+o, b, n); + mem·move(io->e+o, n, b); o += n; c -= n; b += n; -- cgit v1.2.1