#include AplwcRc aplwc_new(Aplwc **p, uint8_t *data, size_t size) { Memory m = memory_init(data, size); *p = memory_alloc_aplwc(&m); if(*p == NULL) RETURN_ERROR(*p, OUT_OF_MEMORY, ""); (*p)->memory = m; return APLWC_OK; } AplwcRc aplwc_destroy(Aplwc *p) { if(p) memory_free_aplwc(&p->memory, p); return APLWC_OK; } const char * aplwc_errstr(Aplwc *aplwc) { static char buf[256]; buf[0] = 0; const char *err = NULL; const char *msg = NULL; if(aplwc){ err = rc_to_string(aplwc->last_error); msg = aplwc->last_error_msg; } if(!err) err = "(unable to produce error string)"; if(msg && (strlen(msg) > 0)) snprintf(buf, sizeof(buf), "%s: %s", err, msg); else snprintf(buf, sizeof(buf), "%s", err); return buf; }