Posted to tcl by evilotto at Fri Mar 16 18:46:21 GMT 2012view raw

  1. set data [exec -ignorestderr man Tcl | col -b]
  2.  
  3. set words [regexp -inline -all {\S+} $data]
  4.  
  5. label .word -width 40 -font {Helvetica 16}
  6. pack .word
  7.  
  8. bind . <Key-space> pause
  9. bind . <q> exit
  10.  
  11. proc pause {} {
  12. global paused
  13. set paused [expr ! $paused]
  14. }
  15.  
  16. set ix 0
  17. set wc 3
  18. set speed 8
  19. set paused 0
  20.  
  21. proc nw {ix} {
  22. if {$ix > [llength $::words]} exit
  23. .word configure -text [join [lrange $::words $ix [expr {$ix + $::wc}]]]
  24. if {!$::paused} {
  25. incr ix $::wc
  26. incr ix
  27. }
  28. after [expr {1000 / $::speed}] [list nw $ix]
  29. }
  30.  
  31. nw 0
  32.