ec_rpc in Tcl seems unable to cope with special characters like £ (the pound

From: Kish Shen <ks15_at_icparc.ic.ac.uk>
Date: Tue 19 Dec 2000 08:14:32 PM GMT
Message-Id: <E148T9c-0006rx-00@tempest.icparc.ic.ac.uk>
sign). Calling ec_rpc with a goal that contains such character crashes the
system.

The problem is due to some interaction between the exdr conversion and Tcl's
puts command:

    puts -nonewline $channel [ec_tcl2exdr $data $format]

this line causes the problem. It seems to work, but when ECLiPSe tries to read
the stream using read_exdr/2, it crashes.

ec_queue_write however copes with such characters. I wrote the rpc goal with

    ec_queue_write ec_rpc_in [ec_tcl2exdr $Goal $Format]

and the read_exdr/2 on the ECLiPSe side read the goal. However this requires
you to supply the ECLiPSe stream name instead of the Tcl channel name.

I suspect that the EXDR translation is not completely correct, because 

writeq("£") (with the pound sign)

gives "\302\243" in tkeclipse (the query entry box uses ec_queue_write and
so works), but only  "\243" under tty eclipse.

Cheers,

Kish
Received on Tue Dec 19 20:14:32 2000

This archive was generated by hypermail 2.1.8 : Wed 16 Nov 2005 06:08:02 PM GMT GMT