home *** CD-ROM | disk | FTP | other *** search
/ Practical Programming in Tcl & Tk (4th Edition) / TCLBOOK4.BIN / pc / exsource.old / 45_13.c < prev    next >
C/C++ Source or Header  |  2003-04-15  |  1KB  |  60 lines

  1. /*
  2.  * Example 45-13
  3.  * A canonical Tcl main program and Tcl_AppInit.
  4.  */
  5.  
  6. /* main.c */
  7. #include <tcl.h>
  8. int Tcl_AppInit(Tcl_Interp *interp);
  9. /*
  10. * Declarations for application-specific command procedures
  11. */
  12. int Plus1ObjCmd(ClientData clientData,
  13.                 Tcl_Interp *interp,
  14.                 int objc, Tcl_Obj *CONST objv[]);
  15.  
  16. main(int argc, char *argv[]) {
  17.     /*
  18.      * Initialize your application here.
  19.      *
  20.      * Then initialize and run Tcl.
  21.      */
  22.     Tcl_Main(argc, argv, Tcl_AppInit);
  23.     exit(0);
  24. }
  25. /*
  26. * Tcl_AppInit is called from Tcl_Main
  27. * after the Tcl interpreter has been created,
  28. * and before the script file
  29. * or interactive command loop is entered.
  30. */
  31. int
  32. Tcl_AppInit(Tcl_Interp *interp) {
  33.     /*
  34.      * Tcl_Init reads init.tcl from the Tcl script library.
  35.      */
  36.     if (Tcl_Init(interp) == TCL_ERROR) {
  37.         return TCL_ERROR;
  38.     }
  39.     /*
  40.      * Register application-specific commands.
  41.      */
  42.     Tcl_CreateObjCommand(interp, "plus1", Plus1ObjCmd,
  43.             (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
  44.     Random_Init(interp);
  45.     Blob_Init(interp);
  46.     /*
  47.      * Define the start-up filename. This file is read in
  48.      * case the program is run interactively.
  49.      */
  50.     Tcl_SetVar(interp, "tcl_rcFileName", "~/.mytcl",
  51.         TCL_GLOBAL_ONLY);
  52.     /*
  53.      * Test of Tcl_Invoke, which is defined on page 691.
  54.      */
  55.     Tcl_Invoke(interp, "set", "foo", "$xyz [foo] {", NULL);
  56.     return TCL_OK;
  57. }
  58.  
  59.  
  60.