Index: openacs-4/packages/acs-tcl/tcl/00-icanuse-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/00-icanuse-procs.tcl,v diff -u -r1.1.2.38 -r1.1.2.39 --- openacs-4/packages/acs-tcl/tcl/00-icanuse-procs.tcl 27 Jan 2022 10:27:13 -0000 1.1.2.38 +++ openacs-4/packages/acs-tcl/tcl/00-icanuse-procs.tcl 28 Jan 2022 22:44:17 -0000 1.1.2.39 @@ -117,6 +117,7 @@ ::acs::register_icanuse "ns_parsequery -charset" [acs::cmd_error_contains {ns_parsequery} -charset] ::acs::register_icanuse "ns_reflow_text -offset" [acs::cmd_error_contains {ns_reflow_text} -offset] ::acs::register_icanuse "nsf::config profile" [expr {[info exists ::nsf::config(profile)] ? $::nsf::config(profile) : 0}] +::acs::register_icanuse "ns_strcoll" {[info commands ::ns_strcoll] ne ""} # # At the time "ns_trim -prefix was introduced, a memory leak in @@ -126,6 +127,13 @@ ::acs::register_icanuse "nsv_dict" [acs::cmd_error_contains {ns_trim} -prefix] # +# When "nsf::parseargs -asdict" was introduced, the object aliasing +# was also introduced in nsf. .... But this feature is not ready yet. +# +#::acs::register_icanuse "nx::alias object" [acs::cmd_error_contains {nsf::parseargs} -asdict] + + +# # The following commands check indirectly the availability, since the # commands require connections etc. These features were introduced # after the queried functionality was introduced. Index: openacs-4/packages/xotcl-core/tcl/20-Ordered-Composite-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/20-Ordered-Composite-procs.tcl,v diff -u -r1.27.2.11 -r1.27.2.12 --- openacs-4/packages/xotcl-core/tcl/20-Ordered-Composite-procs.tcl 7 Sep 2021 17:51:10 -0000 1.27.2.11 +++ openacs-4/packages/xotcl-core/tcl/20-Ordered-Composite-procs.tcl 28 Jan 2022 22:44:17 -0000 1.27.2.12 @@ -27,19 +27,28 @@ set :__orderby $variable } - OrderedComposite instproc __compare {a b} { - set by ${:__orderby} - set x [$a set $by] - set y [$b set $by] - if {$x < $y} { - return -1 - } elseif {$x > $y} { - return 1 - } else { - return 0 + if {[::acs::icanuse "ns_strcoll"]} { + OrderedComposite instproc __compare {a b} { + set by ${:__orderby} + set x [$a set $by] + set y [$b set $by] + return [ns_strcoll $x $y] } + } else { + OrderedComposite instproc __compare {a b} { + set by ${:__orderby} + set x [$a set $by] + set y [$b set $by] + if {$x < $y} { + return -1 + } elseif {$x > $y} { + return 1 + } else { + return 0 + } + } } - + OrderedComposite instproc children {} { if {![info exists :__children]} { return ""