home *** CD-ROM | disk | FTP | other *** search
/ Practical Programming in Tcl & Tk (4th Edition) / TCLBOOK4.BIN / pc / exsource.old / 45_3.c < prev    next >
Text File  |  2003-04-15  |  686b  |  38 lines

  1. /*
  2.  * Example 45-3
  3.  * The RandomObjCmd C command procedure.
  4.  */
  5.  
  6. /*
  7. * RandomObjCmd --
  8. * This implements the random Tcl command from
  9. * Example 45-2 using the object interface.
  10. */
  11. int
  12. RandomObjCmd(ClientData clientData, Tcl_Interp *interp,
  13.         int objc, Tcl_Obj *CONST objv[])
  14. {
  15.     Tcl_Obj *resultPtr;
  16.     int rand, error;
  17.     int range = 0;
  18.     if (objc > 2) {
  19.         Tcl_WrongNumArgs(interp, 1, objv, "?range?");
  20.         return TCL_ERROR;
  21.     }
  22.     if (objc == 2) {
  23.         if (Tcl_GetIntFromObj(interp, objv[1], &range) != 
  24.                 TCL_OK) {
  25.             return TCL_ERROR;
  26.         }
  27.     }
  28.     rand = random();
  29.     if (range != 0) {
  30.         rand = rand % range;
  31.     }
  32.     resultPtr = Tcl_GetObjResult(interp);
  33.     Tcl_SetIntObj(resultPtr, rand);
  34.     return TCL_OK;
  35. }
  36.  
  37.  
  38.