#628 platform specific stuff in (tcl|tk)Main.c


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

- 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

Jan Nijtmans


  • Jan Nijtmans

    Jan Nijtmans - 2010-12-01

    patch for tclMain.c

  • Jan Nijtmans

    Jan Nijtmans - 2010-12-01

    patch for tkMain.c

  • Jan Nijtmans

    Jan Nijtmans - 2011-03-17
    • status: open --> pending-fixed
  • Jan Nijtmans

    Jan Nijtmans - 2011-03-17

    Fixed in HEAD now (Both for Tcl and Tk)


  • SourceForge Robot

    • status: pending-fixed --> closed-fixed
  • SourceForge Robot

    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).


Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks