56 {
"-client_name", TK_ARGV_STRING, (
char *) NULL, (
char *) &
client_name,
57 "Client main window name to connect to" },
58 {
"-client_host", TK_ARGV_STRING, (
char *) NULL, (
char *) &
client_host,
59 "Client host to connect to" },
60 {
"-client_port", TK_ARGV_STRING, (
char *) NULL, (
char *) &
client_port,
61 "Client port (Tcl-DP) to connect to" },
62 {
"-auto_path", TK_ARGV_STRING, (
char *) NULL, (
char *) &
auto_path,
63 "Additional directory(s) to autoload" },
64 {
"-child", TK_ARGV_CONSTANT, (
char *) 1, (
char *) &
child,
65 "Set ONLY when child of PLplot TK driver" },
66 { (
char *) NULL, TK_ARGV_END, (
char *) NULL, (
char *) NULL,
100 const char *myargv[20];
102 const char *helpmsg =
"Command-specific options:";
105 fprintf( stderr,
"Program %s called with arguments :\n", argv[0] );
106 for ( i = 1; i <
argc; i++ )
108 fprintf( stderr,
"%s ", argv[i] );
110 fprintf( stderr,
"\n" );
115 interp = Tcl_CreateInterp();
119 for ( i = 0; i <
argc; i++ )
127 if ( Tk_ParseArgv( interp, (Tk_Window) NULL, &argc, argv,
128 argTable, TK_ARGV_NO_DEFAULTS ) != TCL_OK )
130 fprintf( stderr,
"\n(plserver) %s\n\n", Tcl_GetStringResult( interp ) );
132 The client_<xxx> and -child options should not be used except via the\n\
133 PLplot/Tk driver.\n\n(wish) " );
134 Tcl_SetResult( interp, (
char *) helpmsg, TCL_VOLATILE );
139 #if TCL_MAJOR_VERSION < 7 || ( TCL_MAJOR_VERSION == 7 && TCL_MINOR_VERSION < 5 )
140 Tcl_DeleteInterp( interp );
172 Tk_Window mainWindow = Tk_MainWindow( interp );
194 Tcl_SetVar( interp,
"child",
"1", 0 );
202 Tcl_SetVar( interp,
"client_name",
client_name, 0 );
211 Tcl_SetVar( interp,
"client_port",
client_port, 0 );
213 Tcl_SetVar( interp,
"client_host",
client_host, 0 );
214 dp = 1;
tcl_cmd( interp,
"set dp 1" );
216 Tcl_AppendResult( interp,
217 "no Tcl-DP support in this version of plserver",
227 Tcl_SetVar( interp,
"dir",
auto_path, 0 );
228 tcl_cmd( interp,
"set auto_path [list $dir $auto_path]" );
233 tcl_cmd( interp,
"rename exit tkexit" );
235 Tcl_CreateCommand( interp,
"exit", (Tcl_CmdProc *)
plExitCmd,
236 (ClientData) mainWindow, (Tcl_CmdDeleteProc *) NULL );
261 res = Tcl_GetStringResult( interp );
262 if ( res[0] !=
'\0' )
263 fprintf( stderr,
"%s\n", res );
267 if ( ( argc != 1 ) && ( argc != 2 ) )
269 Tcl_AppendResult( interp,
"wrong # args: should be \"", argv[0],
270 " ?returnCode?\"", (
char *) NULL );
273 if ( ( argc != 1 ) && ( Tcl_GetInt( interp, argv[1], &value ) != TCL_OK ) )
275 Tcl_AppendResult( interp,
"non-integer return code: \"", argv[1],
276 "\"", (
char *) NULL );
282 Tcl_VarEval( interp,
"plserver_link_end", (
char **) NULL );
286 return Tcl_VarEval( interp,
"tkexit", argv[1], (
char **) NULL );
301 pldebug(
"tcl_cmd",
"evaluating command %s\n", cmd );
303 result = Tcl_VarEval( interp, cmd, (
char **) NULL );
304 if ( result != TCL_OK )
306 Tcl_Eval( interp,
"exit" );