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

  1. /*
  2.  * Example 45-2
  3.  * The RandomCmd C command procedure.
  4.  */
  5.  
  6. /*
  7. * RandomCmd --
  8. * This implements the random Tcl command. With no arguments
  9. * the command returns a random integer.
  10. * With an integer valued argument "range",
  11. * it returns a random integer between 0 and range.
  12. */
  13. int
  14. RandomCmd(ClientData clientData, Tcl_Interp *interp,
  15.         int argc, char *argv[])
  16. {
  17.     int rand, error;
  18.     int range = 0;
  19.     if (argc > 2) {
  20.         interp->result = "Usage: random ?range?";
  21.         return TCL_ERROR;
  22.     }
  23.     if (argc == 2) {
  24.         if (Tcl_GetInt(interp, argv[1], &range) != TCL_OK) {
  25.             return TCL_ERROR;
  26.         }
  27.     }
  28.     rand = random();
  29.     if (range != 0) {
  30.         rand = rand % range;
  31.     }
  32.     sprintf(interp->result, "%d", rand);
  33.     return TCL_OK;
  34. }
  35.  
  36.  
  37.