Index: generic/predefined.h =================================================================== diff -u -rb708f296be8c5cbd3e4daa959713483dbdfdfd82 -r477c12e1b0f192ab18de415e30001ea151d7ddda --- generic/predefined.h (.../predefined.h) (revision b708f296be8c5cbd3e4daa959713483dbdfdfd82) +++ generic/predefined.h (.../predefined.h) (revision 477c12e1b0f192ab18de415e30001ea151d7ddda) @@ -58,7 +58,6 @@ "foreach cmd [info command ::xotcl::cmd::ClassInfo::*] {\n" "set cmdName [namespace tail $cmd]\n" "if {$cmdName in [list \"instfilter\" \"instforward\" \"instmixin\" \"instparams\"]} continue\n" -"puts stderr \"adding ::xotcl::alias ::xotcl2::classInfo $cmdName $cmd\"\n" "::xotcl::alias ::xotcl2::classInfo $cmdName $cmd}\n" "unset cmd\n" "Object forward info -onerror ::xotcl::infoError -verbose ::xotcl2::objectInfo %1 {%@2 %self}\n" @@ -195,8 +194,8 @@ "::xotcl::dispatch ${.domain} ::xotcl::cmd::Class::forward \\\n" "{*}[expr {${.per-object} ? \"-per-object\" : \"\"}] ${.name} \\\n" "-verbose \\\n" -"-default [${.manager} defaultmethods] ${.manager} %1 %self \\\n" -"{*}[expr {[info exists .forward-per-object] ? \"-per-object\" : \"\"}] \\\n" +"${.manager} [list %1 [${.manager} defaultmethods]] %self \\\n" +"\"%-per-object [info exists .forward-per-object]\" \\\n" "%proc}}\n" "::xotcl::MetaSlot create ::xotcl::InfoSlot\n" "createBootstrapAttributeSlots ::xotcl::InfoSlot {\n" @@ -232,12 +231,12 @@ "::xotcl::alias ::xotcl::InterceptorSlot set ::xotcl::relation ;# for backwards compatibility\n" "::xotcl::alias ::xotcl::InterceptorSlot assign ::xotcl::relation\n" "::xotcl::InterceptorSlot method add {obj -per-object:switch prop value {pos 0}} {\n" -"puts stderr interceptorslot-add-[self args]\n" +"puts stderr interceptorslot-add-obj=$obj,per-object=${per-object},prop=$prop,value=$value,pos=$pos\n" "if {![set .multivalued]} {\n" "error \"Property $prop of ${.domain}->$obj ist not multivalued\"}\n" -"puts stderr \"BEFORE: $obj info $prop -guards => '[$obj info $prop -guards]'\"\n" -"puts stderr \"$obj $prop [linsert [$obj info $prop -guards] $pos $value]\"\n" -"$obj $prop [linsert [$obj info $prop -guards] $pos $value]}\n" +"set perObject [expr {${per-object} ? \"-per-object\" : \"\"}]\n" +"set oldSetting [::xotcl::relation $obj {*}$perObject $prop]\n" +"$obj $prop {*}$perObject [linsert $oldSetting $pos $value]}\n" "proc ::xotcl::register_system_slots {os} {\n" "${os}::Object alloc ${os}::Class::slot\n" "${os}::Object alloc ${os}::Object::slot\n" @@ -247,6 +246,8 @@ "::xotcl::alias ${os}::Object::slot::class assign ::xotcl::relation\n" "::xotcl::InterceptorSlot create ${os}::Object::slot::mixin \\\n" "-type relation\n" +"::xotcl::dispatch ::xotcl2::Class ::xotcl::cmd::Class::forward -- \\\n" +"\"-per-object\" -verbose -default [list get assign] ::xotcl2::Object::slot::mixin add %self %proc\n" "::xotcl::InterceptorSlot create ${os}::Object::slot::filter \\\n" "-elementtype \"\" -type relation}\n" "::xotcl::register_system_slots ::xotcl2\n"