TIP 338: Embedder Access to Startup Scripts of *_Main()

Login
Bounty program for improvements to Tcl and certain Tcl packages.
Author:		Don Porter <dgp@users.sf.net>
State:		Final
Type:		Project
Vote:		Done
Created:	22-Oct-2008
Post-History:
Tcl-Version:	8.6
Keywords:	Tcl, Tk, tclsh, wish

Abstract

This TIP proposes to make public the routines that get and set the startup script file that Tcl_Main or Tk_Main evaluate in their non-interactive modes.

Background

When support for the -encoding option was added to tclsh and wish [137], two new internal routines were added to Tcl:

Tcl_Obj *Tcl_GetStartupScript(const char **encodingNamePtr)

void Tcl_SetStartupScript(Tcl_Obj *pathPtr, const char *encodingName)

These routines (or other weaker alternative internal routines) are used by both wish and Tclkit by way of the internal stubs table to manipulate the startup script for Tcl_Main or Tk_Main to evaluate.

Rationale

The naming of these routines indicate they were always intended to be(come) public.

These are the last "private" Tcl routines used by Tk and wish. After implementation of this TIP, Tk can drop use of tclInt.h.

Proposal

Make these routines public.

Compatibility

There will need to be some care taken for existing users of these routines via the private stubs table. The ability to compile against Tcl 8.6 headers, yet run against a pre-8.6 stubs table will likely be lost.

Copyright

This document has been placed in the public domain.

History