From d91be95ecbeac1d45b2140b1c02ee581c44597d6 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sat, 5 Nov 2016 15:50:52 -0700 Subject: Expose slots function. * struct.c (struct_init): Register slots intrinsic. (slots): Pass correct name string to stype_handle. * txr.1: Slots function documented. --- struct.c | 3 ++- txr.1 | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/struct.c b/struct.c index fd37dd68..edc4038f 100644 --- a/struct.c +++ b/struct.c @@ -158,6 +158,7 @@ void struct_init(void) reg_fun(intern(lit("super-method"), user_package), func_n2(super_method)); reg_fun(intern(lit("uslot"), user_package), func_n1(uslot)); reg_fun(intern(lit("umethod"), user_package), func_n1v(umethod)); + reg_fun(intern(lit("slots"), user_package), func_n1(slots)); } static noreturn void no_such_struct(val ctx, val sym) @@ -1109,7 +1110,7 @@ val static_slot_p(val type, val sym) val slots(val stype) { - struct struct_type *st = stype_handle(&stype, lit("static-slot-p")); + struct struct_type *st = stype_handle(&stype, lit("slots")); return st->slots; } diff --git a/txr.1 b/txr.1 index cd44ca68..bc0ea7d7 100644 --- a/txr.1 +++ b/txr.1 @@ -22142,6 +22142,20 @@ isn't bound to a particular object. The binding of .code slot-name to a slot in the structure object occurs when the function is called. +.coNP Function @ slots +.synb +.mets (slots << type ) +.syne +.desc +The +.code slots +function returns a list of all of the slots of struct type +.metn type . + +The +.meta type +argument must be a structure type, or else a symbol +which names a structure type. .coNP Function @ slotp .synb .mets (slotp < type << name ) -- cgit v1.2.3