69 # ifndef HAVE_ITCLDECLS_H    70 #  define RESOURCE_INCLUDED    89                                      Tcl_Namespace * nsPtr, 
char * 
pattern,
    90                                      int allowOverwrite ) );
    93 #ifndef Tcl_GetGlobalNamespace_TCL_DECLARE    94 EXTERN Tcl_Namespace * Tcl_GetGlobalNamespace 
_ANSI_ARGS_( (
   109 #if !defined ( _WIN32 )   110 extern char *           strrchr 
_ANSI_ARGS_( ( CONST 
char *
string, 
int c ) );
   113 #define isatty( a )    0   135 static const char  *
name       = NULL;
   140     { 
"-file",       TK_ARGV_STRING,   (
char *) NULL, (
char *) &
fileName,
   141       "File from which to read commands" },
   142     { 
"-e",          TK_ARGV_STRING,   (
char *) NULL, (
char *) &
script,
   143       "Script to execute on startup" },
   144     { 
"-geometry",   TK_ARGV_STRING,   (
char *) NULL, (
char *) &
geometry,
   145       "Initial geometry for window" },
   146     { 
"-display",    TK_ARGV_STRING,   (
char *) NULL, (
char *) &
display,
   148     { 
"-name",       TK_ARGV_STRING,   (
char *) NULL, (
char *) &
name,
   149       "Name to use for application" },
   150     { 
"-sync",       TK_ARGV_CONSTANT, (
char *) 1,    (
char *) &
synchronize,
   151       "Use synchronous mode for display server" },
   152     { (
char *) NULL, TK_ARGV_END,      (
char *) NULL, (
char *) NULL,
   185           int ( *
AppInit )( Tcl_Interp *interp ) )
   192 #ifdef PL_HAVE_PTHREAD   196     Tcl_FindExecutable( argv[0] );
   197     interp = Tcl_CreateInterp();
   199     Tcl_InitMemory( interp );
   207     if ( Tk_ParseArgv( interp, (Tk_Window) NULL, &argc, argv, argTable, 0 )
   210         fprintf( stderr, 
"%s\n", Tcl_GetStringResult( interp ) );
   216         if ( fileName != NULL )
   224         name = strrchr( p, 
'/' );
   241     if ( display != NULL )
   243         Tcl_SetVar2( interp, 
"env", 
"DISPLAY", display, TCL_GLOBAL_ONLY );
   255     Tcl_SetVar( interp, 
"argv0", name, TCL_GLOBAL_ONLY );
   257     if ( Tcl_Init( interp ) == TCL_ERROR )
   259         fprintf( stderr, 
"Tcl initialisation failed: %s\n", Tcl_GetStringResult( interp ) );
   262     if ( Tk_Init( interp ) == TCL_ERROR )
   264         fprintf( stderr, 
"Tk initialisation failed: %s\n", Tcl_GetStringResult( interp ) );
   268     if ( Itcl_Init( interp ) == TCL_ERROR )
   270         fprintf( stderr, 
"Itcl initialisation failed: %s\n", Tcl_GetStringResult( interp ) );
   275     if ( Itk_Init( interp ) == TCL_ERROR )
   277         fprintf( stderr, 
"Itk initialisation failed: %s\n", Tcl_GetStringResult( interp ) );
   290     if ( Tcl_Import( interp, Tcl_GetGlobalNamespace( interp ),
   291              "::itk::*",  1 ) != TCL_OK )
   293         fprintf( stderr, 
"Itk initialisation failed: %s\n", Tcl_GetStringResult( interp ) );
   297     if ( Tcl_Import( interp, Tcl_GetGlobalNamespace( interp ),
   298              "::itcl::*",  1 ) != TCL_OK )
   300         fprintf( stderr, 
"Itk initialisation failed: %s\n", Tcl_GetStringResult( interp ) );
   304     if ( Tcl_Eval( interp, 
"auto_mkindex_parser::slavehook { _%@namespace import -force ::itcl::* ::itk::* }" ) != TCL_OK )
   306         fprintf( stderr, 
"Itk initialisation failed: %s\n", Tcl_GetStringResult( interp ) );
   318     args = Tcl_Merge( argc - 1, ( CONST 
char * CONST * )argv + 1 );
   319     Tcl_SetVar( interp, 
"argv", args, TCL_GLOBAL_ONLY );
   321     sprintf( buf, 
"%d", argc - 1 );
   322     Tcl_SetVar( interp, 
"argc", buf, TCL_GLOBAL_ONLY );
   325     if ( geometry != NULL )
   327         Tcl_SetVar( interp, 
"geometry", geometry, TCL_GLOBAL_ONLY );
   335     Tcl_SetVar( interp, 
"tcl_interactive",
   336         ( ( fileName == NULL ) && tty ) ? 
"1" : 
"0", TCL_GLOBAL_ONLY );
   348     if ( ( *
AppInit )( interp ) != TCL_OK )
   350         fprintf( stderr, 
"(*AppInit) failed: %s\n", Tcl_GetStringResult( interp ) );
   358     if ( geometry != NULL )
   360         code = Tcl_VarEval( interp, 
"wm geometry . ", geometry, (
char *) NULL );
   361         if ( code != TCL_OK )
   363             fprintf( stderr, 
"%s\n", Tcl_GetStringResult( interp ) );
   372     if ( script != NULL )
   374         code = Tcl_VarEval( interp, script, (
char *) NULL );
   375         if ( code != TCL_OK )
   387     if ( fileName != NULL )
   389         code = Tcl_VarEval( interp, 
"source \"", fileName, 
"\"", (
char *) NULL );
   390         if ( code != TCL_OK )
   406         if ( RcFileName != NULL )
   412             fullName = Tcl_TildeSubst( interp, RcFileName, &buffer );
   413             if ( fullName == NULL )
   415                 fprintf( stderr, 
"%s\n", Tcl_GetStringResult( interp ) );
   419                 f = fopen( fullName, 
"r" );
   422                     code = Tcl_EvalFile( interp, fullName );
   423                     if ( code != TCL_OK )
   425                         fprintf( stderr, 
"%s\n", Tcl_GetStringResult( interp ) );
   430             Tcl_DStringFree( &buffer );
   433 #if !defined ( MAC_TCL ) && !defined ( _WIN32 )   434         Tk_CreateFileHandler( 0, TK_READABLE, 
StdinProc, (ClientData) 0 );
   442     Tcl_DStringInit( &command );
   458     Tcl_Eval( interp, 
"exit" );
   462     msg = Tcl_GetVar( interp, 
"errorInfo", TCL_GLOBAL_ONLY );
   465         msg = Tcl_GetStringResult( interp );
   467     fprintf( stderr, 
"%s\n", msg );
   468     Tcl_Eval( interp, errorExitCmd );
   496 #define BUFFER_SIZE    4000   498     static int gotPartial = 0;
   503 #if !defined ( _WIN32 )   504     count = (int) read( fileno( stdin ), input, 
BUFFER_SIZE );
   506     count = fread( input, 
BUFFER_SIZE, 
sizeof ( 
char ), stdin );
   514                 Tcl_Eval( interp, 
"exit" );
   519 #if !defined ( MAC_TCL ) && !defined ( _WIN32 )   520                 Tk_DeleteFileHandler( 0 );
   530     cmd = Tcl_DStringAppend( &command, input, count );
   533         if ( ( input[count - 1] != 
'\n' ) && ( input[count - 1] != 
';' ) )
   538         if ( !Tcl_CommandComplete( cmd ) )
   553 #if !defined ( MAC_TCL ) && !defined ( _WIN32 )   554     Tk_CreateFileHandler( 0, 0, 
StdinProc, (ClientData) 0 );
   556     code = Tcl_RecordAndEval( interp, cmd, 0 );
   557 #if !defined ( MAC_TCL ) && !defined ( _WIN32 )   558     Tk_CreateFileHandler( 0, TK_READABLE, 
StdinProc, (ClientData) 0 );
   560     Tcl_DStringFree( &command );
   561     res = Tcl_GetStringResult( interp );
   564         if ( ( code != TCL_OK ) || ( tty ) )
   566             printf( 
"%s\n", res );
   577         Prompt( interp, gotPartial );
   601 Tcl_Interp * interploc;               
   606     const char *promptCmd;
   609     promptCmd = Tcl_GetVar( interploc,
   610         partial ? 
"tcl_prompt2" : 
"tcl_prompt1", TCL_GLOBAL_ONLY );
   611     if ( promptCmd == NULL )
   616             fputs( 
"% ", stdout );
   621         code = Tcl_Eval( interploc, promptCmd );
   622         if ( code != TCL_OK )
   624             Tcl_AddErrorInfo( interploc,
   625                 "\n    (script that generates prompt)" );
   626             fprintf( stderr, 
"%s\n", Tcl_GetStringResult( interploc ) );
 
int pltkMain(int argc, const char **argv, char *RcFileName, int(*AppInit)(Tcl_Interp *interp))
static char errorExitCmd[]
static const char * geometry
static const char * script
EXTERN int Itk_Init _ANSI_ARGS_((Tcl_Interp *interp))
static const char * fileName
static int AppInit(Tcl_Interp *interp)
static Tcl_DString command
static Tk_ArgvInfo argTable[]
static void Prompt(Tcl_Interp *interploc, int partial)
static const char * display
static void StdinProc(ClientData PL_UNUSED(clientData), int PL_UNUSED(mask))
static Tcl_Interp * interp