Empty TCL string resulting in non-printable character causing Project-Open to crash

249 Views Asked by At

I installed Project Open on ubuntu.

Whenever there is an empty string in tcl then the HTML forms contain a non-printable character instead.

What could cause the issue? Webserver is openACS / AOLServer

TCL Code: set email "" (index.tcl)

ADP Code: email="@email@" (index.adp)

HTML output: <input type="text" name="email" value="?"

(when I save the web-page as htm file then the ? shows hex code 00 in a hex editor - not sure if this is correct. Anyway there should be no character between the "" for value)

UPDATE 1:
ADP Code: email="t@email@t" (index.adp)
HTML output: <input type="text" name="email" value="tt"

So it really seems to be an empty string. which gets messed up in the ADP file.

UPDATE 2:
according to evil otto's answer it seems to be a AOL Server bug
how to fix it?
nsd -V
AOLserver/4.5.1 (aolserver4_5)
CVS Tag: $Name: aolserver_v45_r1 $
Built: Apr 2 2014 at 08:27:37
Tcl version: 8.6
Platform: linux

1

There are 1 best solutions below

5
On

there is a known bug in some versions of AOLserver (4.5.0 through last released, but fixed in cvs HEAD) that causes ns_quotehtml to return invalid data when handed an empty string. OpenACS detects and works around this bug but there was a version which did not.

The workaround for an affected version would be to change ns_quotehtml to ad_quotehtml in template::adp_compile, defined in packages/acs-templating/tcl/parse-procs.tcl

See http://openacs.org/forums/message-view?message_id=4078333