From c67dae80fee02f8b4f1d5cbfe9ba486d5ef40a54 Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Mon, 19 Feb 2024 10:13:26 +0000 Subject: =?UTF-8?q?Add=20a=20simple=20monadic=20=E2=8E=95C=20to=20make=20K?= =?UTF-8?q?arl's=20expression=20run?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- quadnames.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'quadnames.c') 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 -- cgit v1.2.3