From 79ab1a4223d53bbdbffc55ae7f9740d953c57945 Mon Sep 17 00:00:00 2001 From: glenda Date: Sat, 22 Oct 2022 19:03:56 +0000 Subject: Prepare for a namespace implementation at some point --- quadnames.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'quadnames.c') diff --git a/quadnames.c b/quadnames.c index 814376e..a44c04d 100644 --- a/quadnames.c +++ b/quadnames.c @@ -23,6 +23,7 @@ Datum *geten(void); Datum *getself(void); Datum *getsession(void); void setsession(Datum *); +Datum *getthis(void); /* Array *runfile(Array *); in apl9.h */ Array *quadem(Array *); @@ -42,6 +43,8 @@ Array *quadread(Array *, Array *); Array *quadwrite(Array *, Array *); Array *quadpipe(Array *); Array *quadfd2path(Array *); +Array *quadns1(Array *); +Array *quadns2(Array *, Array *); static Rune *quadquotebuf = nil; static Array *session = nil; @@ -58,6 +61,7 @@ QuadnameDef quadnames[] = { {L"⎕EN", NameTag, geten, nil, nil, nil}, {L"⎕SELF", NameTag, getself, nil, nil, nil}, {L"⎕SESSION", NameTag, getsession, setsession, nil, nil}, + {L"⎕THIS", NameTag, getthis, nil, nil, nil}, {L"⎕RUN", FunctionTag, nil, nil, runfile, nil}, {L"⎕EM", FunctionTag, nil, nil, quadem, nil}, {L"⎕SIGNAL", FunctionTag, nil, nil, quadsignal1, quadsignal2}, @@ -74,6 +78,7 @@ QuadnameDef quadnames[] = { {L"⎕WRITE", FunctionTag, nil, nil, nil, quadwrite}, {L"⎕PIPE", FunctionTag, nil, nil, quadpipe, nil}, {L"⎕FD2PATH", FunctionTag, nil, nil, quadfd2path, nil}, + {L"⎕NS", FunctionTag, nil, nil, quadns1, quadns2}, {nil, 0, nil, nil, nil, nil} /* MUST BE LAST */ }; @@ -330,6 +335,16 @@ setsession(Datum *new) session = fnSame(new->array); } +/* ⎕THIS */ +Datum * +getthis(void) +{ + ThreadData *td = getthreaddata(); + Datum *d = allocdatum(ArrayTag, 0); + d->array = fnSame(td->ns); + return d; +} + /* ⎕RUN */ Array * runfile(Array *a) @@ -757,4 +772,18 @@ quadfd2path(Array *fd) free(buf); free(path); return res; +} + +/* ⎕NS */ +Array * +quadns1(Array *) +{ + throwerror(L"⎕NS", ENotImplemented); + return nil; +} + +Array *quadns2(Array *, Array *) +{ + throwerror(L"⎕NS", ENotImplemented); + return nil; } \ No newline at end of file -- cgit v1.2.3