summaryrefslogtreecommitdiff
path: root/src/libmain.c
diff options
context:
space:
mode:
authorpeter <peter@pmikkelsen.com>2026-08-20 16:33:48 +0000
committerpeter <peter@pmikkelsen.com>2026-08-20 16:33:48 +0000
commit6fcc413c96d99ecbf405021d36292f0bc646fecb (patch)
tree36abd3222aadbdc9f92fad2c8e7e152fcfdf0790 /src/libmain.c
parent3be992e3f45dcfd9f8a45fa447de3abb710819b7 (diff)
Test the aplwc_errstr and aplwc_errstr_rc functions
FossilOrigin-Name: c72c226a392ac25e688b131070bdfb2902b2a697766ecdfc0865b356cd3c2b2a
Diffstat (limited to 'src/libmain.c')
-rw-r--r--src/libmain.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/libmain.c b/src/libmain.c
index 5dce8a0..b96d0da 100644
--- a/src/libmain.c
+++ b/src/libmain.c
@@ -25,12 +25,26 @@ aplwc_destroy(struct aplwc *p)
}
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 };
static char buf[BUF_SIZE];
const char *err, *msg;
+ enum aplwc_rc rc;
char *p;
size_t len, i;
@@ -39,12 +53,13 @@ aplwc_errstr(struct aplwc *aplwc)
err = msg = NULL;
if(aplwc){
- err = rc_to_string(aplwc->last_error);
msg = aplwc->last_error_msg;
+ rc = aplwc->last_error;
+ }else{
+ rc = APLWC_RC_LAST+1;
}
- if(!err)
- err = "(unable to produce error string)";
+ err = aplwc_errstr_rc(rc);
for(i = 0, len = strlen(err); (i <= len) && (((p+i)-buf) < (BUF_SIZE-1)); i++)
p[i] = err[i];