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

  1. #
  2. # Example 16-2
  3. # Using vwait to activate the event loop.
  4. #
  5.  
  6. proc Stdin_Start {prompt} {
  7.     global Stdin
  8.     set Stdin(line) ""
  9.     puts -nonewline $prompt
  10.     flush stdout
  11.     fileevent stdin readable [list StdinRead $prompt]
  12.     vwait Stdin(wait)
  13. }
  14. proc StdinRead {prompt} {
  15.     global Stdin
  16.     if {[eof stdin]} {
  17.         exit
  18.     }
  19.     append Stdin(line) [gets stdin]
  20.     if {[info complete $Stdin(line)]} {
  21.         catch {uplevel #0 $Stdin(line)} result
  22.         puts $result
  23.         puts -nonewline $prompt
  24.         flush stdout
  25.         set Stdin(line) {}
  26.     } else {
  27.         append Stdin(line) \n
  28.     }
  29. }
  30.  
  31.  
  32.