On the bug tracking system ther's a debate about a couple of glitches Jeff Lawson found in Rivet. One of them spurred the idea of extending the 'makeurl' command
to make it a bit more flexible.

In my view the command should be accepting a variable number of arguments
and be able to process the to build a complete URL

puts [makeurl a b c d]

=> http://myhost[:port]/a/b/c/d

makeurl should also check for a '?' in the variable length list and treat
elements past this element (if existing) as a even length sublist from
which pairs of <parameters>-<values> can be built

puts [makeurl a b c ? arg1 val1 arg2 val2 ...]

Jeff is leaning towards the idea that makeurl should resolve relative paths using the SCRIPT_NAME environment variable to create fully qualified URLs to be used outside the context of a page referer (browsers resolve quite well relative paths
on their own)


Another issue came from the scope resolution chosen for the commands
'load_env' and 'load_headers' which accept an array name as argument.
CUrrently the scope resolution is determined by the TCL_NAMESPACE_ONLY
flag in Tcl_ObjSetVar2. This flag rules out the possibility of creating
the array within the local variables of a procedure. Even though
creating and the destroying a whole array in a procedure call implies some overhead we don't see why it shouldn't be possible, so I provided a patch
for rivetCore.c and TclWebapache.c that reset the flags to normal scope
resolution. We are testing it and patches are available on Bugzilla

thank you Jeff for having resumed Bugzilla as a way to document bugs, it's
something we could benefit from. Good idea.

 -- Massimo


---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscr...@tcl.apache.org
For additional commands, e-mail: rivet-dev-h...@tcl.apache.org

Reply via email to