summaryrefslogtreecommitdiff
path: root/quadnames.c
diff options
context:
space:
mode:
authorglenda <glenda@9front>2022-10-22 19:03:56 +0000
committerglenda <glenda@9front>2022-10-22 19:03:56 +0000
commit79ab1a4223d53bbdbffc55ae7f9740d953c57945 (patch)
tree65104abcf220f4774ab2b84a0d772c891a9dff17 /quadnames.c
parent6a0d0638cdf510a9033fcd1e1a66daf636197a6f (diff)
Prepare for a namespace implementation at some point
Diffstat (limited to 'quadnames.c')
-rw-r--r--quadnames.c29
1 files changed, 29 insertions, 0 deletions
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