From f5d445afa10ed7ba03b0ea9a5274f11904220700 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 20 Aug 2026 18:51:01 +0000 Subject: Move aplwc-repl into its own directory, and likewise for the aplwc library FossilOrigin-Name: 7e6b710fae494fadfe06bed16ae10bdda0f377067cb9411ed2b8bfc682d2fcbc --- src/lib/main.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/lib/main.c (limited to 'src/lib/main.c') diff --git a/src/lib/main.c b/src/lib/main.c new file mode 100644 index 0000000..d44d6de --- /dev/null +++ b/src/lib/main.c @@ -0,0 +1,54 @@ +#include "aplwc_internal.h" + +enum aplwc_rc +aplwc_new(struct aplwc **p, uint8_t *data, size_t size) +{ + struct memory m; + + m = memory_init(data, size); + + *p = memory_alloc_aplwc(&m); + if(*p == NULL) + return APLWC_OUT_OF_MEMORY; + (*p)->memory = m; + + return APLWC_OK; +} + +enum aplwc_rc +aplwc_destroy(struct aplwc *p) +{ + if(p) + memory_free_aplwc(&p->memory, p); + + return APLWC_OK; +} + +const char * +aplwc_errstr_rc(enum aplwc_rc rc) +{ + switch(rc){ + case APLWC_OK: + return ""; + case APLWC_OUT_OF_MEMORY: + return "Out of memory"; + default: + return "(unable to produce error string)"; + } +} + +const char * +aplwc_errstr(struct aplwc *aplwc) +{ + enum { BUF_SIZE = 256 }; + + const char *err; + enum aplwc_rc rc; + + err = NULL; + + rc = aplwc ? aplwc->last_error : APLWC_RC_LAST+1; + err = aplwc_errstr_rc(rc); + + return err; +} -- cgit v1.2.3