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

  1. /*
  2.  * Example 47-1
  3.  * The initialization procedure for a loadable package.
  4.  */
  5.  
  6. /*
  7. * random.c
  8. */
  9. #include <tcl.h>
  10. /*
  11. * Declarations for application-specific command procedures
  12. */
  13.  
  14. int RandomCmd(ClientData clientData,
  15.                 Tcl_Interp *interp,
  16.                 int argc, char *argv[]);
  17. int RandomObjCmd(ClientData clientData,
  18.                 Tcl_Interp *interp,
  19.                 int objc, Tcl_Obj *CONST objv[]);
  20.  
  21. /*
  22. * Random_Init is called when the package is loaded.
  23. */
  24.  
  25. int Random_Init(Tcl_Interp *interp) {
  26.     /*
  27.      * Initialize the stub table interface, which is
  28.      * described in Chapter 46.
  29.      */
  30.  
  31.     if (Tcl_InitStubs(interp, "8.1", 0) == NULL) {
  32.         return TCL_ERROR;
  33.     }
  34.     /*
  35.      * Register two variations of random.
  36.      * The orandom command uses the object interface.
  37.      */
  38.  
  39.     Tcl_CreateCommand(interp, "random", RandomCmd,
  40.             (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
  41.     Tcl_CreateObjCommand(interp, "orandom", RandomObjCmd,
  42.             (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
  43.  
  44.     /*
  45.      * Declare that we implement the random package
  46.      * so scripts that do "package require random"
  47.      * can load the library automatically.
  48.      */
  49.     Tcl_PkgProvide(interp, "random", "1.1");
  50.     return TCL_OK;
  51. }
  52.  
  53.  
  54.