summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpeter <peter@pmikkelsen.com>2026-09-05 17:54:12 +0000
committerpeter <peter@pmikkelsen.com>2026-09-05 17:54:12 +0000
commitd2cfbd1dcc42f2b5e5f1cb04c20691a20039ad6e (patch)
tree76cf5025c4ec05417f237fae6ae32bcf5d6d29e0
parent90ac0b93420cdd61a5f1073f7412274eb93c89fd (diff)
Full coverage of lib/module.c
FossilOrigin-Name: 818662a4d9afe9f6b48df33c01d51ecc42bebcdf246c0cf376aa3352873a55be
-rw-r--r--src/lib/aplwc_internal.h2
-rw-r--r--src/lib/main.c2
-rw-r--r--src/lib/module.c24
-rwxr-xr-xtests/scripts/bad/4.aplwc4
-rwxr-xr-xtests/scripts/good/3.aplwc4
5 files changed, 16 insertions, 20 deletions
diff --git a/src/lib/aplwc_internal.h b/src/lib/aplwc_internal.h
index d72c289..d97cbf7 100644
--- a/src/lib/aplwc_internal.h
+++ b/src/lib/aplwc_internal.h
@@ -141,7 +141,5 @@ enum aplwc_rc check_tokens(struct token_list *);
/* module.c */
enum aplwc_rc load_module(struct aplwc *, struct string *, struct token_list *);
-struct aplwc_module *module_lookup(struct aplwc *, struct string *);
-struct string *module_imports_syms(struct module_imports *);
#endif /* APLWC_INTERNAL_H */
diff --git a/src/lib/main.c b/src/lib/main.c
index bba93d3..afb99e9 100644
--- a/src/lib/main.c
+++ b/src/lib/main.c
@@ -59,7 +59,7 @@ aplwc_destroy(struct aplwc *p)
return;
memory_destroy(p);
- if(p->fns.dealloc)
+ if(ALWAYS(p->fns.dealloc))
p->fns.dealloc(p);
}
diff --git a/src/lib/module.c b/src/lib/module.c
index 32b693c..51bbfdd 100644
--- a/src/lib/module.c
+++ b/src/lib/module.c
@@ -33,12 +33,16 @@ read_keyword_decl(struct aplwc_module *module, size_t offset)
static int
read_function_decl(struct aplwc_module *module, size_t offset)
{
- int len;
+ int len, ok;
- for(len = 1; (offset + len) < module->tokens->length; len++)
- if(module->tokens->tokens[offset+len].tag == TOKEN_TAG_DEL)
+ ok = 0;
+ for(len = 1; (offset + len) < module->tokens->length; len++){
+ if(module->tokens->tokens[offset+len].tag == TOKEN_TAG_DEL){
+ ok = 1;
break;
- return len;
+ }
+ }
+ return ok ? len : -1;
}
static int
@@ -104,15 +108,3 @@ end:
MEMPTRS_EXIT(aplwc);
return rc;
}
-
-struct aplwc_module *
-module_lookup(struct aplwc *aplwc, struct string *name)
-{
- struct aplwc_module *m;
-
- for(m = aplwc->modules; m; m = m->link){
- if(string_compare(m->name, name) == 0)
- break;
- }
- return m;
-}
diff --git a/tests/scripts/bad/4.aplwc b/tests/scripts/bad/4.aplwc
index af9da70..8934275 100755
--- a/tests/scripts/bad/4.aplwc
+++ b/tests/scripts/bad/4.aplwc
@@ -1 +1,3 @@
-#!/usr/bin/env aplwc-repl \ No newline at end of file
+#!/usr/bin/env aplwc-repl
+
+∇ foo
diff --git a/tests/scripts/good/3.aplwc b/tests/scripts/good/3.aplwc
new file mode 100755
index 0000000..f94a4c6
--- /dev/null
+++ b/tests/scripts/good/3.aplwc
@@ -0,0 +1,4 @@
+#!/usr/bin/env aplwc-repl
+
+
+:keyword 1 2 \ No newline at end of file