rev 732 - in trunk: . src
SVN User <[email protected]> Tue, 13 Jul 2004 00:52:55 -0400
| Newsgroups | gmane.comp.lang.prothon.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: mark
Date: 2004-07-13 00:52:52 -0400 (Tue, 13 Jul 2004)
New Revision: 732
Modified:
trunk/STATUS.txt
trunk/src/builtins-core.c
Log:
changed getAttr to tuple, added symbol support
Modified: trunk/STATUS.txt
===================================================================
--- trunk/STATUS.txt 2004-07-13 04:20:23 UTC (rev 731)
+++ trunk/STATUS.txt 2004-07-13 04:52:52 UTC (rev 732)
@@ -13,8 +13,6 @@
--- use special stdout for each Main
---- getAttr(name), setAttr(name, value), delAttr(name)
-
--- Module doc strings & Object doc strings
--- add sys.userHome path and name current one sys.prothonHome
Modified: trunk/src/builtins-core.c
===================================================================
--- trunk/src/builtins-core.c 2004-07-13 04:20:23 UTC (rev 731)
+++ trunk/src/builtins-core.c 2004-07-13 04:52:52 UTC (rev 732)
@@ -213,15 +213,24 @@
}
DEF(Object, getAttr, FPARM2(name, OBJ(NODEF), super, OBJ(NONE))) {
- obj_p res, super, p_proto = NULL;
- char* name;
- STRING_PARAM(1, name);
+ obj_p key, res, super, p_proto = NULL, tuple;
+ if (has_proto(ist, parms[1], OBJ(SYMBOL_PROTO)))
+ key = parms[1];
+ else {
+ char* name;
+ STRING_PARAM(1, name);
+ key = sym(ist, name);
+ }
super = parms[3];
if (super == OBJ(NONE)) super = NULL;
- res = get_proto_attr(ist, self, sym(ist, name), &p_proto, super);
+ res = get_proto_attr(ist, self, key, &p_proto, super);
if (!res) return OBJ(NONE);
if (!p_proto) p_proto = OBJ(NONE);
- return p_proto;
+ tuple = NEW_TUPLE(2);
+ list_append(ist, tuple, res);
+ list_append(ist, tuple, p_proto);
+ set_immutable(tuple);
+ return tuple;
}
DEF(Object, hasProto_QUES, FORM_RPARAM) {