Don Porter wrote to me:
> I suspect there may be another way, and you may be overlooking some
> encoding support routines that can keep platform specific stuff out
> of the generic/*.c files. But I could also be wrong about that.
Here is my attempt to move as most as possible platform-dependant
stuff out of (tcl|tk)Main.c.
- Implemented a static NewNativeObj() function, so we no longer have to
Tcl_SetStartupScript using native encoding, en then later read it again
and convert it to UTF-8. Now every native-to-obj conversions can be
done in one step.
-
And for tkMain.c, there are some additional
improvements:
- converted ThreadSpecificData in InteractiveState (just as
already done in tclMain.c), wich an additional 'gotPartial'
field. This makes Tk_MainEx thread-safe. Moved the
inChannel and tty variables there too.
- Use the InteractiveState as clientData in
Tcl_CreateChannelHandler, so we still can unregister
when stdin becomes invalid.
- use Tcl_GetStdChannel(TCL_STDOUT) in stead of
Tcl_GetChannel(interp, "stdout", NULL), as in tclMain.c
Regards,
Jan Nijtmans
patch for tclMain.c
patch for tkMain.c
Fixed in HEAD now (Both for Tcl and Tk)
OK?
This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 14 days (the time period specified by
the administrator of this Tracker).