Index: doc/Object.man =================================================================== diff -u -reda0236f68fb58e14ab7adddb21878f771c4d00d -rb7cf7b45ced98536a4267b45e772607282dd43b6 --- doc/Object.man (.../Object.man) (revision eda0236f68fb58e14ab7adddb21878f771c4d00d) +++ doc/Object.man (.../Object.man) (revision b7cf7b45ced98536a4267b45e772607282dd43b6) @@ -438,7 +438,7 @@ Returns the [term "method handle"]s of all filters which are active on [arg obj]. By turning on the [term switch] [option -guards], the corresponding guard -expressions are also reported for each filter as a three-element list: [arg methodHandle] -guard [arg guardExpr]. The returned filters can be limited to +expressions, if any, are also reported for each filter as a three-element list: [arg methodHandle] -guard [arg guardExpr]. The returned filters can be limited to those whose names match [arg namePattern] (see [cmd "string match"]). [def "[arg obj] [method "info lookup method"] [arg name]"] @@ -456,7 +456,7 @@ [def "[arg obj] [method "info lookup mixins"] [option -guards] [opt [arg namePattern]]"] Returns the object names of all [term "mixin class"]es which are -currently active on [arg obj]. By turning on the [term switch] [option -guards], the corresponding guard expressions are also reported as a +currently active on [arg obj]. By turning on the [term switch] [option -guards], the corresponding guard expressions, if any, are also reported as a three-element list for each [term "mixin class"]: [arg className] -guard [arg guardExpr]. The returned [term "mixin class"]es can be limited to those whose names match [arg namePattern] (see [cmd "string match"]). Index: doc/filter.man.inc =================================================================== diff -u -rff595808af58a8baf4d8cd40d71334c5ca22e8cc -rb7cf7b45ced98536a4267b45e772607282dd43b6 --- doc/filter.man.inc (.../filter.man.inc) (revision ff595808af58a8baf4d8cd40d71334c5ca22e8cc) +++ doc/filter.man.inc (.../filter.man.inc) (revision b7cf7b45ced98536a4267b45e772607282dd43b6) @@ -11,10 +11,10 @@ [list_begin definitions] [def "[arg obj] [const [vset SCOPE]] [method {filter set}] [arg filterSpecList]"] -[arg filterSpecList] takes a list of [term "filter"] specs, with each spec being itself a -one-element or two-elements list: [arg methodName] ?[arg guardExpr]?. [arg methodName] identifies +[arg filterSpecList] takes a list of [term "filter"] specs, with each spec being itself either a +one-element or a two-element list: [arg methodName] ?-guard [arg guardExpr]?. [arg methodName] identifies an existing method of [arg obj] which becomes -registered as a filter. If having two elements, the second +registered as a filter. If having three elements, the third element [arg guardExpr] will be stored as a guard expression of the [term "filter"]. This guard expression must be a valid Tcl expression (see [cmd expr]). [arg expr] is evaluated when [arg obj] receives a message to determine whether the @@ -37,7 +37,7 @@ [option -nocomplain] is set. [def "[arg obj] [const [vset SCOPE]] [method {filter clear}]"] -Removes all [term "filter"]s from [arg obj]. This is equivalent +Removes all [term "filter"]s from [arg obj] and returns the list of removed [term "filter"]s. Clearing is equivalent to passing an empty list for [arg filterSpecList] to [const [vset SCOPE]] [method {filter set}]. [def "[arg obj] [const [vset SCOPE]] [method {filter guard}] [arg methodName] [arg expr]"] Index: doc/mixin.man.inc =================================================================== diff -u -rff595808af58a8baf4d8cd40d71334c5ca22e8cc -rb7cf7b45ced98536a4267b45e772607282dd43b6 --- doc/mixin.man.inc (.../mixin.man.inc) (revision ff595808af58a8baf4d8cd40d71334c5ca22e8cc) +++ doc/mixin.man.inc (.../mixin.man.inc) (revision b7cf7b45ced98536a4267b45e772607282dd43b6) @@ -11,10 +11,9 @@ [list_begin definitions] [def "[arg obj] [const [vset SCOPE]] [method {mixin set}] [arg mixinSpecList]"] -[arg mixinSpecList] takes a list of [term "mixin class"] specs, with each spec being itself a -one-element or two-elements list: [arg className] ?[arg guardExpr]?. If +[arg mixinSpecList] takes a list of [term "mixin class"] specs, with each spec being itself either a one-element or a three-element list: [arg className] ?-guard [arg guardExpr]?. If having one element, the element will be considered the [arg className] -of the [term "mixin class"]. If having two elements, the second +of the [term "mixin class"]. If having three elements, the third element [arg guardExpr] will be stored as a guard expression of the [term "mixin class"]. This guard expression will be evaluated using [cmd expr] when [arg obj] receives a message to determine if the mixin @@ -32,8 +31,7 @@ Removes a [term "mixin class"] from a current list of [term "mixin class"]es of [arg obj] whose spec matches [arg specPattern]. [arg specPattern] can contain special matching chars (see [cmd "string match"]). [const [vset SCOPE]] [method "mixin delete"] will throw an error if there is no matching [term "mixin class"], unless [option -nocomplain] is set. [def "[arg obj] [const [vset SCOPE]] [method {mixin clear}]"] -Removes all [term "mixin class"]es from [arg obj]. This is equivalent -to passing an empty list for [arg mixinSpecList] to +Removes all [term "mixin class"]es from [arg obj] and returns the list of removed [term "mixin class"]es. Clearing is equivalent to passing an empty list for [arg mixinSpecList] to [const [vset SCOPE]] [method {mixin set}]. [def "[arg obj] [const [vset SCOPE]] [method {mixin guard}] [arg className] [arg expr]"]