summaryrefslogtreecommitdiff
path: root/quadnames.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <petermikkelsen10@gmail.com>2024-02-19 10:13:26 +0000
committerPeter Mikkelsen <petermikkelsen10@gmail.com>2024-02-19 10:13:26 +0000
commitc67dae80fee02f8b4f1d5cbfe9ba486d5ef40a54 (patch)
tree6f2599f2d8ca63ca1d8ddf43d75da0275b6d5004 /quadnames.c
parent79ab1a4223d53bbdbffc55ae7f9740d953c57945 (diff)
Add a simple monadic ⎕C to make Karl's expression runHEADfront
Diffstat (limited to 'quadnames.c')
-rw-r--r--quadnames.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/quadnames.c b/quadnames.c
index a44c04d..f7eb78b 100644
--- a/quadnames.c
+++ b/quadnames.c
@@ -45,6 +45,7 @@ Array *quadpipe(Array *);
Array *quadfd2path(Array *);
Array *quadns1(Array *);
Array *quadns2(Array *, Array *);
+Array *quadc1(Array *);
static Rune *quadquotebuf = nil;
static Array *session = nil;
@@ -79,6 +80,7 @@ QuadnameDef quadnames[] = {
{L"⎕PIPE", FunctionTag, nil, nil, quadpipe, nil},
{L"⎕FD2PATH", FunctionTag, nil, nil, quadfd2path, nil},
{L"⎕NS", FunctionTag, nil, nil, quadns1, quadns2},
+ {L"⎕C", FunctionTag, nil, nil, quadc1, nil},
{nil, 0, nil, nil, nil, nil} /* MUST BE LAST */
};
@@ -786,4 +788,16 @@ Array *quadns2(Array *, Array *)
{
throwerror(L"⎕NS", ENotImplemented);
return nil;
+}
+
+Array *
+quadc1(Array *a)
+{
+ if(GetType(a) != AtypeRune)
+ throwerror(L"Must be character data", EDomain);
+
+ Array *res = duparray(a);
+ for(uvlong i = 0; i < res->size; i++)
+ res->runedata[i] = tolowerrune(res->runedata[i]);
+ return res;
} \ No newline at end of file