summaryrefslogtreecommitdiff
path: root/quadnames.c
diff options
context:
space:
mode:
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