diff options
author | Nicholas Noll <nbnoll@eml.cc> | 2020-06-18 19:45:40 -0700 |
---|---|---|
committer | Nicholas Noll <nbnoll@eml.cc> | 2020-06-18 19:45:40 -0700 |
commit | 425ef692da7e74112f88f0b368f3286dba84f846 (patch) | |
tree | d45729e90010e8d8c539031c3b72165f6884575d /sys/cmd/rc/util.c | |
parent | 0522b4bf4e125b7ceb67f7177db692aed3a0ebf9 (diff) |
feat: working parser for rc shell language
Diffstat (limited to 'sys/cmd/rc/util.c')
-rw-r--r-- | sys/cmd/rc/util.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/sys/cmd/rc/util.c b/sys/cmd/rc/util.c new file mode 100644 index 0000000..02b3611 --- /dev/null +++ b/sys/cmd/rc/util.c @@ -0,0 +1,40 @@ +#include "rc.h" + +void * +emalloc(uintptr n) +{ + void *p = malloc(n); + if (!p) + panic("can't malloc %d bytes", n); + + return p; +} + +void * +erealloc(void *p, uintptr n) +{ + void *new = realloc(p, n); + if (!new) + panic("can't realloc %d bytes", n); + + return new; +} + +void +efree(void *p) +{ + if (p) + free(p); + else + pfmt(errio, "free <nil>\n"); +} + +void +panic(char *s, int n) +{ + pfmt(errio, "rc: "); + pfmt(errio, s, n); + pchr(errio, '\n'); + flush(&errio); + abort(); +} |