Index: openacs-4/packages/xotcl-core/tcl/context-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/context-procs.tcl,v diff -u -r1.75.2.23 -r1.75.2.24 --- openacs-4/packages/xotcl-core/tcl/context-procs.tcl 20 Apr 2021 09:35:56 -0000 1.75.2.23 +++ openacs-4/packages/xotcl-core/tcl/context-procs.tcl 22 Nov 2021 11:08:35 -0000 1.75.2.24 @@ -552,14 +552,22 @@ # Version of query_parameter respecting set-parameter # ConnectionContext instproc query_parameter {name {default ""}} { - regexp {^(.*):(.*)$} $name . name constraint + # + # Try to split up provided name argument into name and value + # constraint. + # + regexp {^([^:]+):(.*)$} $name . name constraint if {[:exists_parameter $name]} { set value [:get_parameter $name] } else { set value [next $name $default] } - if {[info exists constraint] && $value ne ""} { - + # + # If we have a value-constraint, we check for empty values only in + # cases, where multiplicity is specified. This means effectively + # that the default multiplicity is "0..1". + # + if {[info exists constraint] && ([string first . constraint] || $value ne "")} { try { nsf::parseargs $name:$constraint [list $value]