Index: xotcl/ChangeLog =================================================================== diff -u -rf96ac77c8c5b62caa84916a9b0f136e0cd85ec21 -r894d9fdf1f31a1e18c1942007edebd85ebc5ae59 --- xotcl/ChangeLog (.../ChangeLog) (revision f96ac77c8c5b62caa84916a9b0f136e0cd85ec21) +++ xotcl/ChangeLog (.../ChangeLog) (revision 894d9fdf1f31a1e18c1942007edebd85ebc5ae59) @@ -1,20 +1,33 @@ -2004-06-20 Gustaf.Neumann@wu-wien.ac.at +2004-07-01 Gustaf.Neumann@wu-wien.ac.at + * xotcl.c: allow literal %self, %proc, %1 etc. as arguments of the forwarder: + arguments in the definition of a forwarder proc + starting with two %-characters are changed into arguments starting + with one % + * xotcl.c: forced options to be placed in forward definition after + before + * xotcl.c: new info option for Object and Class: + info forward ?-definition? ?pattern? + list the defined forwarder for the class/object. + * Serializer.xotcl; Added handling of the forwarders to the serializer. + Therefore forwarders are kept in the serialized state. + +2004-06-29 Gustaf.Neumann@wu-wien.ac.at * changed name of delegator methods to forward/instforward * removed most of the switches of the forwarder. We have now - obj forward ?? ?options? - where might contain + obj forward ?options? ?arglist? + where arglist might contain * %self for inserting the forwarding object * %proc for inserting the forwarding method * %1 for using the first argument of the invocation - option might contain: + options might contain: -inscope: evalute method in obj scope -methodprefix: prefix, to be added in front of called method (to avoid name clashes with methods like "set", "mixin" etc.) -default list-of-methods: to be used in connection with %1, when there are not enough arguments in the actual call. -2004-06-240 Gustaf.Neumann@wu-wien.ac.at +2004-06-24 Gustaf.Neumann@wu-wien.ac.at * fixed coredump for delegation to object without method specified (many thanks fot Bryan Schofield for the bug report) Index: xotcl/Makefile =================================================================== diff -u -r0c17e1f4acbae0016b3f20cd4cc431d03d4ac999 -r894d9fdf1f31a1e18c1942007edebd85ebc5ae59 --- xotcl/Makefile (.../Makefile) (revision 0c17e1f4acbae0016b3f20cd4cc431d03d4ac999) +++ xotcl/Makefile (.../Makefile) (revision 894d9fdf1f31a1e18c1942007edebd85ebc5ae59) @@ -12,7 +12,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: Makefile,v 1.7 2004/06/25 07:36:46 neumann Exp $ +# RCS: @(#) $Id: Makefile,v 1.8 2004/07/01 10:39:34 neumann Exp $ #======================================================================== # Add additional lines to handle any additional AC_SUBST cases that @@ -29,7 +29,7 @@ src_generic_dir = ${srcdir}/generic PLATFORM_DIR = $(srcdir)/unix TCL_LIB_SPEC = -L/home/neumann/tcl8.4.5/unix -ltcl8.4 -TK_LIB_SPEC = -L/usr/lib -ltk8.4 +TK_LIB_SPEC = -L/usr/lib -ltk8.3 subdirs = library/store/XOTclSdbm/ library/store/XOTclGdbm/ library/xml/TclExpat-1.1/ libdirs = comm lib serialize actiweb rdf registry store xml patterns @@ -101,10 +101,10 @@ exec_prefix = /usr bindir = ${exec_prefix}/bin -libdir = ${exec_prefix}/lib -datadir = ${prefix}/share +libdir = /usr/lib +datadir = /usr/share mandir = ${prefix}/man -includedir = ${prefix}/include +includedir = /usr/include DESTDIR = @@ -123,7 +123,7 @@ PACKAGE_NAME = xotcl PACKAGE_VERSION = 1.2.1 CC = gcc -pipe -CFLAGS_DEFAULT = -O +CFLAGS_DEFAULT = -O -g CFLAGS_WARNING = -Wall -Wconversion -Wno-implicit-int CLEANFILES = *.o *.a *.so *~ core gmon.out config.* EXEEXT = @@ -138,7 +138,7 @@ SHLIB_CFLAGS = -fPIC SHLIB_LD = gcc -pipe -shared SHLIB_LD_FLAGS = -SHLIB_LD_LIBS = ${LIBS} -L/home/neumann/tcl8.4.5/unix -ltclstub8.4 -L/usr/lib -ltkstub8.4 +SHLIB_LD_LIBS = ${LIBS} -L/home/neumann/tcl8.4.5/unix -ltclstub8.4 -L/usr/lib -ltkstub8.3 STLIB_LD = ${AR} cr TCL_DEFS = -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DTCL_THREADS=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_READDIR_R=1 -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_TYPE=long\ long -DHAVE_STRUCT_STAT64=1 -DHAVE_TYPE_OFF64_T=1 -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_STRTOLL=1 -DHAVE_STRTOULL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_LANGINFO=1 -DPEEK_XCLOSEIM=1 -DHAVE_SYS_IOCTL_H=1 TCL_BIN_DIR = /home/neumann/tcl8.4.5/unix Index: xotcl/configure =================================================================== diff -u -rcbbcdfc2c1fcbf6d16a0fe9a1f3f8408ae0cbdee -r894d9fdf1f31a1e18c1942007edebd85ebc5ae59 --- xotcl/configure (.../configure) (revision cbbcdfc2c1fcbf6d16a0fe9a1f3f8408ae0cbdee) +++ xotcl/configure (.../configure) (revision 894d9fdf1f31a1e18c1942007edebd85ebc5ae59) @@ -310,7 +310,7 @@ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CYGPATH EXEEXT PKG_LIB_FILE PKG_STUB_LIB_FILE PKG_STUB_SOURCES PKG_STUB_OBJECTS PKG_TCL_SOURCES PKG_HEADERS PKG_INCLUDES PKG_LIBS PKG_CFLAGS subdirs XOTCL_VERSION XOTCL_MAJOR_VERSION XOTCL_MINOR_VERSION XOTCL_RELEASE_LEVEL TCL_VERSION TCL_BIN_DIR TCL_SRC_DIR TCL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_LIBS TCL_DEFS TCL_EXTRA_CFLAGS TCL_LD_FLAGS TCL_SHLIB_LD_LIBS TK_VERSION TK_BIN_DIR TK_SRC_DIR TK_LIB_FILE TK_LIB_FLAG TK_LIB_SPEC TK_STUB_LIB_FILE TK_STUB_LIB_FLAG TK_STUB_LIB_SPEC TK_LIBS TK_XINCLUDES CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SET_MAKE RANLIB ac_ct_RANLIB EGREP MATH_LIBS PKG_SOURCES PKG_OBJECTS TCL_TOP_DIR_NATIVE TCL_GENERIC_DIR_NATIVE TCL_UNIX_DIR_NATIVE TCL_WIN_DIR_NATIVE TCL_BMAP_DIR_NATIVE TCL_TOOL_DIR_NATIVE TCL_PLATFORM_DIR_NATIVE TCL_INCLUDES CLEANFILES TCL_THREADS SHARED_BUILD AR LIBOBJS DL_LIBS CFLAGS_DEBUG CFLAGS_OPTIMIZE CFLAGS_WARNING EXTRA_CFLAGS STLIB_LD SHLIB_LD SHLIB_CFLAGS SHLIB_LD_FLAGS SHLIB_LD_LIBS LDFLAGS_DEBUG LDFLAGS_OPTIMIZE LD_LIBRARY_PATH_VAR TCL_DBGX CFLAGS_DEFAULT LDFLAGS_DEFAULT MAKE_LIB MAKE_SHARED_LIB MAKE_STATIC_LIB MAKE_STUB_LIB RANLIB_STUB TCLSH_PROG SHARED_LIB_SUFFIX UNSHARED_LIB_SUFFIX XOTCL_BUILD_LIB_SPEC XOTCL_LIB_SPEC XOTCL_BUILD_STUB_LIB_SPEC XOTCL_STUB_LIB_SPEC XOTCL_BUILD_STUB_LIB_PATH XOTCL_STUB_LIB_PATH XOTCL_SRC_DIR XOTCLSH XOWISH test_actiweb libdirs_actiweb apps_actiweb TEA_PLATFORM CONFIG_CLEAN_FILES LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CYGPATH EXEEXT PKG_LIB_FILE PKG_STUB_LIB_FILE PKG_STUB_SOURCES PKG_STUB_OBJECTS PKG_TCL_SOURCES PKG_HEADERS PKG_INCLUDES PKG_LIBS PKG_CFLAGS subdirs XOTCL_VERSION XOTCL_MAJOR_VERSION XOTCL_MINOR_VERSION XOTCL_RELEASE_LEVEL TCL_VERSION TCL_BIN_DIR TCL_SRC_DIR TCL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_LIBS TCL_DEFS TCL_EXTRA_CFLAGS TCL_LD_FLAGS TCL_SHLIB_LD_LIBS TK_VERSION TK_BIN_DIR TK_SRC_DIR TK_LIB_FILE TK_LIB_FLAG TK_LIB_SPEC TK_STUB_LIB_FILE TK_STUB_LIB_FLAG TK_STUB_LIB_SPEC TK_LIBS TK_XINCLUDES CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SET_MAKE RANLIB ac_ct_RANLIB EGREP MATH_LIBS PKG_SOURCES PKG_OBJECTS TCL_TOP_DIR_NATIVE TCL_GENERIC_DIR_NATIVE TCL_UNIX_DIR_NATIVE TCL_WIN_DIR_NATIVE TCL_BMAP_DIR_NATIVE TCL_TOOL_DIR_NATIVE TCL_PLATFORM_DIR_NATIVE TCL_INCLUDES CLEANFILES TCL_THREADS SHARED_BUILD AR LIBOBJS DL_LIBS CFLAGS_DEBUG CFLAGS_OPTIMIZE CFLAGS_WARNING EXTRA_CFLAGS STLIB_LD SHLIB_LD SHLIB_CFLAGS SHLIB_LD_FLAGS SHLIB_LD_LIBS LDFLAGS_DEBUG LDFLAGS_OPTIMIZE LD_LIBRARY_PATH_VAR TCL_DBGX CFLAGS_DEFAULT LDFLAGS_DEFAULT MAKE_LIB MAKE_SHARED_LIB MAKE_STATIC_LIB MAKE_STUB_LIB RANLIB_STUB TCLSH_PROG XOTCL_COMPATIBLE_TCLSH PKG_DIR pkgdatadir pkglibdir pkgincludedir SHARED_LIB_SUFFIX UNSHARED_LIB_SUFFIX XOTCL_BUILD_LIB_SPEC XOTCL_LIB_SPEC XOTCL_BUILD_STUB_LIB_SPEC XOTCL_STUB_LIB_SPEC XOTCL_BUILD_STUB_LIB_PATH XOTCL_STUB_LIB_PATH XOTCL_SRC_DIR XOTCLSH XOWISH test_actiweb libdirs_actiweb apps_actiweb TEA_PLATFORM CONFIG_CLEAN_FILES LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -9562,23 +9562,43 @@ +# make this available, for such as xotclConfig.sh +XOTCL_COMPATIBLE_TCLSH=${TCLSH_PROG} + + +# resolve the variables +eval "libdir=${libdir}" +eval "datadir=${datadir}" +eval "includedir=${includedir}" + +PKG_DIR="${PACKAGE_NAME}${PACKAGE_VERSION}" +pkgdatadir="${datadir}/${PKG_DIR}" +pkglibdir="${libdir}/${PKG_DIR}" +pkgincludedir="${includedir}/${PKG_DIR}" + + + + + + # # XOTcl specific configs # + XOTCL_BUILD_LIB_SPEC="-L`pwd` -lxotcl${PACKAGE_VERSION}" -XOTCL_LIB_SPEC="-L${exec_prefix}/lib -lxotcl${PACKAGE_VERSION}" +XOTCL_LIB_SPEC="-L${pkglibdir} -lxotcl${PACKAGE_VERSION}" # stub libs are not build for 8.0 if test "${TCL_MAJOR_VERSION}" = "8" -a "${TCL_MINOR_VERSION}" = "0"; then - XOTCL_BUILD_STUB_LIB_SPEC="" - XOTCL_STUB_LIB_SPEC="" XOTCL_BUILD_STUB_LIB_PATH="" XOTCL_STUB_LIB_PATH="" + XOTCL_BUILD_STUB_LIB_SPEC="" + XOTCL_STUB_LIB_SPEC="" else - XOTCL_BUILD_STUB_LIB_SPEC="-L`pwd` -lxotclstub${PACKAGE_VERSION}" - XOTCL_STUB_LIB_SPEC="-L${exec_prefix}/lib -lxotclstub${PACKAGE_VERSION}" XOTCL_BUILD_STUB_LIB_PATH="`pwd`/${PKG_STUB_LIB_FILE}" - XOTCL_STUB_LIB_PATH="${exec_prefix}/lib/${PKG_STUB_LIB_FILE}" + XOTCL_STUB_LIB_PATH="${pkglibdir}/${PKG_STUB_LIB_FILE}" + XOTCL_BUILD_STUB_LIB_SPEC="-L`pwd` -lxotclstub${PACKAGE_VERSION}" + XOTCL_STUB_LIB_SPEC="-L${pkglibdir} -lxotclstub${PACKAGE_VERSION}" cat >>confdefs.h <<\_ACEOF #define COMPILE_XOTCL_STUBS 1 _ACEOF @@ -10363,6 +10383,11 @@ s,@MAKE_STUB_LIB@,$MAKE_STUB_LIB,;t t s,@RANLIB_STUB@,$RANLIB_STUB,;t t s,@TCLSH_PROG@,$TCLSH_PROG,;t t +s,@XOTCL_COMPATIBLE_TCLSH@,$XOTCL_COMPATIBLE_TCLSH,;t t +s,@PKG_DIR@,$PKG_DIR,;t t +s,@pkgdatadir@,$pkgdatadir,;t t +s,@pkglibdir@,$pkglibdir,;t t +s,@pkgincludedir@,$pkgincludedir,;t t s,@SHARED_LIB_SUFFIX@,$SHARED_LIB_SUFFIX,;t t s,@UNSHARED_LIB_SUFFIX@,$UNSHARED_LIB_SUFFIX,;t t s,@XOTCL_BUILD_LIB_SPEC@,$XOTCL_BUILD_LIB_SPEC,;t t Index: xotcl/doc/langRef-xotcl.html =================================================================== diff -u -r19c883b19ed0b21c426ffadf8de717f325b1eeda -r894d9fdf1f31a1e18c1942007edebd85ebc5ae59 --- xotcl/doc/langRef-xotcl.html (.../langRef-xotcl.html) (revision 19c883b19ed0b21c426ffadf8de717f325b1eeda) +++ xotcl/doc/langRef-xotcl.html (.../langRef-xotcl.html) (revision 894d9fdf1f31a1e18c1942007edebd85ebc5ae59) @@ -121,7 +121,7 @@ Date: - $Date: 2004/06/20 22:54:13 $ + $Date: 2004/07/01 10:39:34 $ Index: xotcl/generic/xotcl.c =================================================================== diff -u -rf96ac77c8c5b62caa84916a9b0f136e0cd85ec21 -r894d9fdf1f31a1e18c1942007edebd85ebc5ae59 --- xotcl/generic/xotcl.c (.../xotcl.c) (revision f96ac77c8c5b62caa84916a9b0f136e0cd85ec21) +++ xotcl/generic/xotcl.c (.../xotcl.c) (revision 894d9fdf1f31a1e18c1942007edebd85ebc5ae59) @@ -1,5 +1,4 @@ -#define NAMESPACEINSTPROCS 1 -/* $Id: xotcl.c,v 1.8 2004/06/30 09:50:33 neumann Exp $ +/* $Id: xotcl.c,v 1.9 2004/07/01 10:39:34 neumann Exp $ * * XOTcl - Extended OTcl * @@ -3910,8 +3909,8 @@ if (cp) { if (Tcl_Command_objProc(cmd) == XOTclOEvalMethod || Tcl_Command_objProc(cmd) == XOTclForwardMethod) { - /* fprintf(stderr,"calling oeval obj=%p %s\n", obj, ObjStr(obj->cmdName)); - */ + /*fprintf(stderr,"calling oeval obj=%p %s\n", obj, ObjStr(obj->cmdName));*/ + tclCmdClientData *tcd = (tclCmdClientData *)cp; tcd->obj = (XOTcl_Object*)obj; xotclCall = 1; @@ -4233,6 +4232,7 @@ Tcl_AppendElement(in, "procs"); Tcl_AppendElement(in, "commands"); Tcl_AppendElement(in, "class"); Tcl_AppendElement(in, "children"); Tcl_AppendElement(in, "filter"); Tcl_AppendElement(in, "filterguard"); + Tcl_AppendElement(in, "forward"); Tcl_AppendElement(in, "info"); Tcl_AppendElement(in, "invar"); Tcl_AppendElement(in, "mixin"); Tcl_AppendElement(in, "methods"); @@ -4244,6 +4244,7 @@ Tcl_AppendElement(in, "instcommands"); Tcl_AppendElement(in, "instprocs"); Tcl_AppendElement(in, "instdefault"); Tcl_AppendElement(in, "instbody"); Tcl_AppendElement(in, "instmixin"); + Tcl_AppendElement(in, "instforward"); Tcl_AppendElement(in, "classchildren"); Tcl_AppendElement(in, "classparent"); Tcl_AppendElement(in, "instfilter"); Tcl_AppendElement(in, "instfilterguard"); Tcl_AppendElement(in, "instinvar"); @@ -4372,7 +4373,7 @@ static int ListMethodKeys(Tcl_Interp *in, Tcl_HashTable *table, char *pattern, - int noProcs, int noCmds, int noDups) { + int noProcs, int noCmds, int noDups, int onlyForwarder) { Tcl_HashSearch hSrch; Tcl_HashEntry* hPtr = table ? Tcl_FirstHashEntry(table, &hSrch) : 0; for (; hPtr != 0; hPtr = Tcl_NextHashEntry(&hSrch)) { @@ -4383,6 +4384,7 @@ if (pattern && !Tcl_StringMatch(key, pattern)) continue; if (noCmds && proc != RUNTIME_STATE(in)->objInterpProc) continue; if (noProcs && proc == RUNTIME_STATE(in)->objInterpProc) continue; + if (onlyForwarder && proc != XOTclForwardMethod) continue; if (noDups) { int listc, i; Tcl_Obj **listv; @@ -4407,13 +4409,59 @@ return TCL_OK; } +static int +forwardList(Tcl_Interp *in, Tcl_HashTable *table, char *pattern, + int definition) { + int rc; + if (definition) { + Tcl_HashEntry* hPtr = table ? Tcl_FindHashEntry(table, pattern) : 0; + if (hPtr) { + Tcl_Command cmd = (Tcl_Command)Tcl_GetHashValue(hPtr); + ClientData cd = cmd? Tcl_Command_objClientData(cmd) : NULL; + forwardCmdClientData *tcd = (forwardCmdClientData *)cd; + if (tcd) { + Tcl_Obj *list = Tcl_NewListObj(0, NULL); + if (tcd->prefix) { + Tcl_ListObjAppendElement(in, list, Tcl_NewStringObj("-methodprefix",-1)); + Tcl_ListObjAppendElement(in, list, tcd->prefix); + } + if (tcd->subcommands) { + Tcl_ListObjAppendElement(in, list, Tcl_NewStringObj("-default",-1)); + Tcl_ListObjAppendElement(in, list, tcd->subcommands); + } + if (tcd->inscope) { + Tcl_ListObjAppendElement(in, list, Tcl_NewStringObj("-inscope",-1)); + } + Tcl_ListObjAppendElement(in, list, tcd->cmdName); + if (tcd->args) { + Tcl_Obj **args; + int nrArgs, i; + Tcl_ListObjGetElements(in, tcd->args, &nrArgs, &args); + for (i=0; insPtr) { Tcl_HashTable *cmdTable = Tcl_Namespace_cmdTable(obj->nsPtr); - ListMethodKeys(in, cmdTable, pattern, noProcs, noCmds, 0); + ListMethodKeys(in, cmdTable, pattern, noProcs, noCmds, 0, 0); } if (!noMixins) { @@ -4433,7 +4481,7 @@ } if (mixin && guardOk == TCL_OK) { Tcl_HashTable *cmdTable = Tcl_Namespace_cmdTable(mixin->nsPtr); - ListMethodKeys(in, cmdTable, pattern, noProcs, noCmds, 1); + ListMethodKeys(in, cmdTable, pattern, noProcs, noCmds, 1, 0); } ml = ml->next; } @@ -4443,7 +4491,7 @@ /* append per-class filters */ for (pl = ComputeOrder(obj->cl, Super); pl; pl = pl->next) { Tcl_HashTable *cmdTable = Tcl_Namespace_cmdTable(pl->cl->nsPtr); - ListMethodKeys(in, cmdTable, pattern, noProcs, noCmds, 1); + ListMethodKeys(in, cmdTable, pattern, noProcs, noCmds, 1, 0); } return TCL_OK; } @@ -6119,10 +6167,15 @@ if (objc < 2) return XOTclObjErrArgCnt(in, obj->cmdName, "info ?args?"); + + + opt = obj->opt; cmd = ObjStr(objv[1]); pattern = (objc > 2) ? ObjStr(objv[2]) : 0; + /*fprintf(stderr, "OInfo cmd=%s, obj=%s, nsp=%p\n",cmd,ObjStr(obj->cmdName),nsp);*/ + /* * check for "-" modifiers */ @@ -6221,7 +6274,19 @@ if (objc != 3 || modifiers > 0) return XOTclObjErrArgCnt(in, obj->cmdName, "info filterguard filter"); return opt ? GuardList(in, opt->filters, pattern) : TCL_OK; + } else if (!strcmp(cmd, "forward")) { + int argc = objc-modifiers; + int definition; + if (argc < 2 || argc > 3) + return XOTclObjErrArgCnt(in, obj->cmdName, + "info forward ?-definition? ?name?"); + definition = checkForModifier(objv, modifiers, "-definition"); + if (nsp) + return forwardList(in, Tcl_Namespace_cmdTable(nsp), pattern, definition); + else + return TCL_OK; } + break; case 'h': @@ -6300,7 +6365,7 @@ return XOTclObjErrArgCnt(in, obj->cmdName, "info procs ?pat?"); if (nsp) return ListMethodKeys(in, Tcl_Namespace_cmdTable(nsp), pattern, - /*noProcs*/ 0, /*noCmds*/ 1, /* noDups */ 0 ); + /*noProcs*/ 0, /*noCmds*/ 1, /* noDups */ 0, 0 ); else return TCL_OK; } else if (!strcmp(cmd, "parent")) { @@ -6949,7 +7014,7 @@ XOTclForwardMethod(ClientData cd, Tcl_Interp *in, int objc, Tcl_Obj * CONST objv[]) { forwardCmdClientData *tcd = (forwardCmdClientData *)cd; XOTcl_FrameDecls; - int result, nrargs, j, inputarg, outputarg=0, clientargs=0; + int result, j, inputarg=1, outputarg=0, clientargs=0; if (!tcd || !tcd->obj) return XOTclObjErrType(in, objv[0], "Object"); if (tcd->args) { @@ -6958,17 +7023,15 @@ { DEFINE_NEW_TCL_OBJS_ON_STACK(objc + clientargs + 3, OV); - Tcl_Obj **ov=&OV[1]; + Tcl_Obj **ov=&OV[1], *freeList=NULL; XOTclCallStackContent *top = RUNTIME_STATE(in)->cs.top; /* it is a c-method; establish a value for the currentFramePtr */ top->currentFramePtr = (Tcl_CallFrame *) Tcl_Interp_varFramePtr(in); - inputarg = 1; - nrargs = objc-inputarg; #if 0 - fprintf(stderr,"command %s (%p) nrargs=%d, subcommand=%d, args=%p\n", - ObjStr(objv[0]), tcd, nrargs, + fprintf(stderr,"command %s (%p) objc=%d, subcommand=%d, args=%p, nrargs\n", + ObjStr(objv[0]), tcd, objc, tcd->nr_subcommands, tcd->args ); @@ -6986,13 +7049,15 @@ for (j=0; jobj->cmdName; continue; - } else if (*(element+1) == 'p' && !strcmp(element,"%proc")) { + } else if (c == 'p' && !strcmp(element,"%proc")) { ov[outputarg++] = objv[0]; continue; - } else if (*(element+1) == '1' && (*(element+2) == '\0')) { + } else if (c == '1' && (*(element+2) == '\0')) { + int nrargs = objc-1; /*fprintf(stderr, " nrargs=%d, subcommands=%d inputarg=%d, objc=%d\n", nrargs, tcd->nr_subcommands, inputarg, objc);*/ if (tcd->nr_subcommands > nrargs) { @@ -7001,21 +7066,32 @@ if (rc != TCL_OK) return rc; outputarg++; - } else if (objc<=inputarg) { + } else if (objc<=1) { + if (freeList) {DECR_REF_COUNT(freeList);} return XOTclObjErrArgCnt(in, objv[0], "no argument given"); } else { - ov[outputarg++] = objv[inputarg++]; + ov[outputarg++] = objv[1]; + inputarg = 2; } continue; + } else if (c == '%') { + Tcl_Obj *newarg = Tcl_NewStringObj(element+1,-1); + if (!freeList) { + freeList = Tcl_NewListObj(1, &newarg); + INCR_REF_COUNT(freeList); + } else { + Tcl_ListObjAppendElement(in, freeList, newarg); + } + ov[outputarg++] = newarg; + continue; } } ov[outputarg++] = listElements[j]; } } /* - fprintf(stderr, "nrargs=%d, objc=%d, tcd->nr_subcommands=%d size=%d\n", - nrargs, objc, tcd->nr_subcommands, - objc+ 2 );*/ + fprintf(stderr, "objc=%d, tcd->nr_subcommands=%d size=%d\n", + objc, tcd->nr_subcommands, objc+ 2 );*/ if (objc-inputarg>0) { @@ -7059,9 +7135,8 @@ XOTcl_PopFrame(in, tcd->obj); } - if (tcd->prefix) { - DECR_REF_COUNT(ov[1]); - } + if (freeList) {DECR_REF_COUNT(freeList);} + if (tcd->prefix) {DECR_REF_COUNT(ov[1]);} FREE_TCL_OBJS_ON_STACK(OV); } @@ -8207,6 +8282,17 @@ return XOTclObjErrArgCnt(in, cl->object.cmdName, "info instfilterguard filter"); return opt ? GuardList(in, opt->instfilters, pattern) : TCL_OK; + } else if (!strcmp(cmdTail, "forward")) { + int argc = objc-modifiers; + int definition; + if (argc < 2 || argc > 3) + return XOTclObjErrArgCnt(in, cl->object.cmdName, + "info instforward ?-definition? ?name?"); + definition = checkForModifier(objv, modifiers, "-definition"); + if (nsp) + return forwardList(in, Tcl_Namespace_cmdTable(nsp), pattern, definition); + else + return TCL_OK; } break; @@ -8250,7 +8336,7 @@ if (objc > 3 || modifiers > 0) return XOTclObjErrArgCnt(in, cl->object.cmdName, "info instprocs ?pat?"); return ListMethodKeys(in, Tcl_Namespace_cmdTable(nsp), pattern, - /*noProcs*/ 0, /*noCmds*/ 1, /* noDups */ 0); + /*noProcs*/ 0, /*noCmds*/ 1, /* noDups */ 0, 0); } else if (!strcmp(cmdTail, "pre")) { XOTclProcAssertion* procs; if (objc != 3 || modifiers > 0) @@ -8495,22 +8581,27 @@ } else if (!strcmp(ObjStr(objv[i]),"-inscope")) { tcd->inscope = 1; } else { - if (tcd->cmdName == 0) { - tcd->cmdName = objv[2]; - } else if (tcd->args == 0) { - tcd->args = Tcl_NewListObj(1, &objv[i]); - INCR_REF_COUNT(tcd->args); - } else { - Tcl_ListObjAppendElement(in, tcd->args, objv[i]); - } + break; } } + + for (; icmdName == 0) { + tcd->cmdName = objv[i]; + } else if (tcd->args == 0) { + tcd->args = Tcl_NewListObj(1, &objv[i]); + INCR_REF_COUNT(tcd->args); + } else { + Tcl_ListObjAppendElement(in, tcd->args, objv[i]); + } + } - if (!tcd->cmdName) - tcd->cmdName = objv[1]; + if (!tcd->cmdName) { + rc = TCL_ERROR; + } else { + INCR_REF_COUNT(tcd->cmdName); + } - INCR_REF_COUNT(tcd->cmdName); - if (rc == TCL_OK) { *tcdp = tcd; } else { Index: xotcl/generic/xotcl.h =================================================================== diff -u -rf7894d9be99a8da3a04218abcdb9bd46b6d625c8 -r894d9fdf1f31a1e18c1942007edebd85ebc5ae59 --- xotcl/generic/xotcl.h (.../xotcl.h) (revision f7894d9be99a8da3a04218abcdb9bd46b6d625c8) +++ xotcl/generic/xotcl.h (.../xotcl.h) (revision 894d9fdf1f31a1e18c1942007edebd85ebc5ae59) @@ -1,6 +1,6 @@ /* -*- Mode: c++ -*- * - * $Id: xotcl.h,v 1.1 2004/05/23 22:50:39 neumann Exp $ + * $Id: xotcl.h,v 1.2 2004/07/01 10:39:34 neumann Exp $ * * Extended Object Tcl (XOTcl) * @@ -40,6 +40,9 @@ # endif #endif +/* new namespace support (post 1.2.0 */ +#define NAMESPACEINSTPROCS 1 + /* activate bytecode support #define XOTCL_BYTECODE */ @@ -50,6 +53,7 @@ #define NDEBUG */ + /* activate/deacticate memory tracing #define XOTCL_MEM_TRACE 1 #define XOTCL_MEM_COUNT 1 Index: xotcl/library/serialize/Serializer.xotcl =================================================================== diff -u -rf7894d9be99a8da3a04218abcdb9bd46b6d625c8 -r894d9fdf1f31a1e18c1942007edebd85ebc5ae59 --- xotcl/library/serialize/Serializer.xotcl (.../Serializer.xotcl) (revision f7894d9be99a8da3a04218abcdb9bd46b6d625c8) +++ xotcl/library/serialize/Serializer.xotcl (.../Serializer.xotcl) (revision 894d9fdf1f31a1e18c1942007edebd85ebc5ae59) @@ -1,6 +1,6 @@ -# $Id: Serializer.xotcl,v 1.1 2004/05/23 22:50:39 neumann Exp $ +# $Id: Serializer.xotcl,v 1.2 2004/07/01 10:39:34 neumann Exp $ package require XOTcl 1.0 -package provide xotcl::serializer 0.3 +package provide xotcl::serializer 0.4 @ @File { description { @@ -11,7 +11,7 @@ authors { Gustaf Neumann, Gustaf.Neumann@wu-wien.ac.at } - date { $Date: 2004/05/23 22:50:39 $ } + date { $Date: 2004/07/01 10:39:34 $ } } @ Serializer proc all { @@ -124,6 +124,10 @@ foreach i [$o info procs] { append cmd " " [my method-serialize $o $i ""] " \\\n" } + foreach i [$o info forward] { + set fwd [concat [list forward $i] [$o info forward -definition $i]] + append cmd \t [my pcmd $fwd] " \\\n" + } set vset {} set nrVars 0 foreach v [$o info vars] { @@ -156,6 +160,10 @@ foreach i [$o info instprocs] { append cmd " " [my method-serialize $o $i inst] " \\\n" } + foreach i [$o info instforward] { + set fwd [concat [list instforward $i] [$o info instforward -definition $i]] + append cmd \t [my pcmd $fwd] " \\\n" + } foreach x {superclass instmixin instinvar} { set v [$o info $x] if {[string compare "" $v] && [string compare "::xotcl::Object" $v]} { Index: xotcl/library/store/XOTclGdbm/Makefile =================================================================== diff -u -r0c17e1f4acbae0016b3f20cd4cc431d03d4ac999 -r894d9fdf1f31a1e18c1942007edebd85ebc5ae59 --- xotcl/library/store/XOTclGdbm/Makefile (.../Makefile) (revision 0c17e1f4acbae0016b3f20cd4cc431d03d4ac999) +++ xotcl/library/store/XOTclGdbm/Makefile (.../Makefile) (revision 894d9fdf1f31a1e18c1942007edebd85ebc5ae59) @@ -12,7 +12,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: Makefile,v 1.8 2004/06/25 07:36:46 neumann Exp $ +# RCS: @(#) $Id: Makefile,v 1.9 2004/07/01 10:39:34 neumann Exp $ #======================================================================== # Add additional lines to handle any additional AC_SUBST cases that @@ -109,11 +109,11 @@ SHLIB_CFLAGS = -fPIC SHLIB_LD = gcc -pipe -shared SHLIB_LD_FLAGS = -SHLIB_LD_LIBS = ${LIBS} -L/usr/lib -ltclstub8.4 +SHLIB_LD_LIBS = ${LIBS} -L/usr/lib -ltclstub8.3 STLIB_LD = ${AR} cr -TCL_DEFS = -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DTCL_THREADS=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_READDIR_R=1 -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_TYPE=long\ long -DHAVE_STRUCT_STAT64=1 -DHAVE_TYPE_OFF64_T=1 -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_STRTOLL=1 -DHAVE_STRTOULL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_LANGINFO=1 -DPEEK_XCLOSEIM=1 -DHAVE_SYS_IOCTL_H=1 +TCL_DEFS = -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 TCL_BIN_DIR = /usr/lib -TCL_SRC_DIR = /home/neumann/tcl8.4.5 +TCL_SRC_DIR = /usr/src/build/420553-i386/BUILD/tcltk-8.3.5/tcl8.3.5 # This is necessary for packages that use private Tcl headers #TCL_TOP_DIR_NATIVE = @TCL_TOP_DIR_NATIVE@ # Not used, but retained for reference of what libs Tcl required Index: xotcl/library/store/XOTclSdbm/Makefile =================================================================== diff -u -r0c17e1f4acbae0016b3f20cd4cc431d03d4ac999 -r894d9fdf1f31a1e18c1942007edebd85ebc5ae59 --- xotcl/library/store/XOTclSdbm/Makefile (.../Makefile) (revision 0c17e1f4acbae0016b3f20cd4cc431d03d4ac999) +++ xotcl/library/store/XOTclSdbm/Makefile (.../Makefile) (revision 894d9fdf1f31a1e18c1942007edebd85ebc5ae59) @@ -12,7 +12,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: Makefile,v 1.8 2004/06/25 07:36:46 neumann Exp $ +# RCS: @(#) $Id: Makefile,v 1.9 2004/07/01 10:39:34 neumann Exp $ #======================================================================== # Add additional lines to handle any additional AC_SUBST cases that @@ -109,11 +109,11 @@ SHLIB_CFLAGS = -fPIC SHLIB_LD = gcc -pipe -shared SHLIB_LD_FLAGS = -SHLIB_LD_LIBS = ${LIBS} -L/usr/lib -ltclstub8.4 +SHLIB_LD_LIBS = ${LIBS} -L/usr/lib -ltclstub8.3 STLIB_LD = ${AR} cr -TCL_DEFS = -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DTCL_THREADS=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_READDIR_R=1 -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_TYPE=long\ long -DHAVE_STRUCT_STAT64=1 -DHAVE_TYPE_OFF64_T=1 -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_STRTOLL=1 -DHAVE_STRTOULL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_LANGINFO=1 -DPEEK_XCLOSEIM=1 -DHAVE_SYS_IOCTL_H=1 +TCL_DEFS = -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 TCL_BIN_DIR = /usr/lib -TCL_SRC_DIR = /home/neumann/tcl8.4.5 +TCL_SRC_DIR = /usr/src/build/420553-i386/BUILD/tcltk-8.3.5/tcl8.3.5 # This is necessary for packages that use private Tcl headers #TCL_TOP_DIR_NATIVE = @TCL_TOP_DIR_NATIVE@ # Not used, but retained for reference of what libs Tcl required Index: xotcl/library/xml/TclExpat-1.1/Makefile =================================================================== diff -u -r0c17e1f4acbae0016b3f20cd4cc431d03d4ac999 -r894d9fdf1f31a1e18c1942007edebd85ebc5ae59 --- xotcl/library/xml/TclExpat-1.1/Makefile (.../Makefile) (revision 0c17e1f4acbae0016b3f20cd4cc431d03d4ac999) +++ xotcl/library/xml/TclExpat-1.1/Makefile (.../Makefile) (revision 894d9fdf1f31a1e18c1942007edebd85ebc5ae59) @@ -12,7 +12,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: Makefile,v 1.8 2004/06/25 07:36:46 neumann Exp $ +# RCS: @(#) $Id: Makefile,v 1.9 2004/07/01 10:39:34 neumann Exp $ #======================================================================== # Add additional lines to handle any additional AC_SUBST cases that @@ -109,11 +109,11 @@ SHLIB_CFLAGS = -fPIC SHLIB_LD = gcc -pipe -shared SHLIB_LD_FLAGS = -SHLIB_LD_LIBS = ${LIBS} -L/usr/lib -ltclstub8.4 +SHLIB_LD_LIBS = ${LIBS} -L/usr/lib -ltclstub8.3 STLIB_LD = ${AR} cr -TCL_DEFS = -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DTCL_THREADS=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_READDIR_R=1 -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_TYPE=long\ long -DHAVE_STRUCT_STAT64=1 -DHAVE_TYPE_OFF64_T=1 -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_STRTOLL=1 -DHAVE_STRTOULL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_LANGINFO=1 -DPEEK_XCLOSEIM=1 -DHAVE_SYS_IOCTL_H=1 +TCL_DEFS = -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1 -DHAVE_WAITPID=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 TCL_BIN_DIR = /usr/lib -TCL_SRC_DIR = /home/neumann/tcl8.4.5 +TCL_SRC_DIR = /usr/src/build/420553-i386/BUILD/tcltk-8.3.5/tcl8.3.5 # This is necessary for packages that use private Tcl headers #TCL_TOP_DIR_NATIVE = @TCL_TOP_DIR_NATIVE@ # Not used, but retained for reference of what libs Tcl required Index: xotcl/tests/testx.xotcl =================================================================== diff -u -rf96ac77c8c5b62caa84916a9b0f136e0cd85ec21 -r894d9fdf1f31a1e18c1942007edebd85ebc5ae59 --- xotcl/tests/testx.xotcl (.../testx.xotcl) (revision f96ac77c8c5b62caa84916a9b0f136e0cd85ec21) +++ xotcl/tests/testx.xotcl (.../testx.xotcl) (revision 894d9fdf1f31a1e18c1942007edebd85ebc5ae59) @@ -1,4 +1,4 @@ -#$Id: testx.xotcl,v 1.7 2004/06/30 09:50:33 neumann Exp $ +#$Id: testx.xotcl,v 1.8 2004/07/01 10:39:34 neumann Exp $ package require XOTcl namespace import -force xotcl::* @@ -3013,7 +3013,7 @@ Class O -superclass UnknownClass ::errorCheck $::utest ::UnknownClass "[self]: __unknown" - ::errorCheck [lsort [UnknownClass info info]] {args body children class classchildren classparent commands default filter filterguard heritage info instances instbody instcommands instdefault instfilter instfilterguard instinvar instmixin instpost instpre instprocs invar methods mixin parameter parent post pre procs subclass superclass vars} "[self]: info info" + ::errorCheck [lsort [UnknownClass info info]] {args body children class classchildren classparent commands default filter filterguard forward heritage info instances instbody instcommands instdefault instfilter instfilterguard instforward instinvar instmixin instpost instpre instprocs invar methods mixin parameter parent post pre procs subclass superclass vars} "[self]: info info" ::errorCheck [Class info instances *Unk*] ::UnknownClass "match in info instances" ::errorCheck [Class info instances Unk*] "" "no match in info instances" Index: xotcl/xotclConfig.sh =================================================================== diff -u -rf7894d9be99a8da3a04218abcdb9bd46b6d625c8 -r894d9fdf1f31a1e18c1942007edebd85ebc5ae59 --- xotcl/xotclConfig.sh (.../xotclConfig.sh) (revision f7894d9be99a8da3a04218abcdb9bd46b6d625c8) +++ xotcl/xotclConfig.sh (.../xotclConfig.sh) (revision 894d9fdf1f31a1e18c1942007edebd85ebc5ae59) @@ -26,7 +26,7 @@ # String to pass to linker to pick up the XOTcl library from its # installed directory. -XOTCL_LIB_SPEC='-L/usr/lib -lxotcl1.2.1' +XOTCL_LIB_SPEC='-L/usr/lib/xotcl1.2.1 -lxotcl1.2.1' # The name of the XOTcl stub library (a .a file): # XOTCL_STUB_LIB_FILE=libxotclstub1.2.1.a @@ -37,11 +37,11 @@ # String to pass to linker to pick up the XOTcl stub library from its # installed directory. -XOTCL_STUB_LIB_SPEC='-L/usr/lib -lxotclstub1.2.1' +XOTCL_STUB_LIB_SPEC='-L/usr/lib/xotcl1.2.1 -lxotclstub1.2.1' # Name of the xotcl stub library with full path in build and install directory XOTCL_BUILD_STUB_LIB_PATH='/home/neumann/xotcl-1.2.1/libxotclstub1.2.1.a' -XOTCL_STUB_LIB_PATH='/usr/lib/libxotclstub1.2.1.a' +XOTCL_STUB_LIB_PATH='/usr/lib/xotcl1.2.1/libxotclstub1.2.1.a' # Location of the top-level source directories from which XOTcl # was built. This is the directory that contains generic, unix, etc.