home *** CD-ROM | disk | FTP | other *** search
/ Practical Programming in Tcl & Tk (4th Edition) / TCLBOOK4.BIN / pc / exsource / 43_1.tcl < prev    next >
Text File  |  2003-04-16  |  1KB  |  50 lines

  1. #
  2. # Example 43-1
  3. # The sender application.
  4. #
  5.  
  6. #!/usr/local/bin/wish
  7. # sender takes up to four arguments:
  8. # 1) the name of the application to send to.
  9. # 2) a command prefix.
  10. # 3) the name of another application to notify
  11. # after the end of the data.
  12. # 4) the command to use in the notification.
  13.  
  14. # Hide the unneeded window
  15. wm withdraw .
  16. # Process command line arguments
  17. if {$argc == 0} {
  18.     puts stderr "Usage: send name ?cmd? ?uiName? ?uiCmd?"
  19.     exit 1
  20. } else {
  21.     set app [lindex $argv 0]
  22. }
  23. if {$argc > 1} {
  24.     set cmd [lindex $argv 1]
  25. } else {
  26.     set cmd Send_Insert
  27. }
  28. if {$argc > 2} {
  29.     set ui [lindex $argv 2]
  30.     set uiCmd Send_Done
  31. }
  32. if {$argc > 3} {
  33.     set uiCmd [lindex $argv 3]
  34. }
  35. # Read input and send it to the logger
  36. while {[gets stdin input] >= 0} {
  37.     # Ignore errors with the logger
  38.     catch {send $app [concat $cmd [list $input\n]]}
  39. }
  40. # Notify the controller, if any
  41. if [info exists ui] {
  42.     if [catch {send $ui $uiCmd} msg] {
  43.         puts stderr "send.tcl could not notify $ui\n$msg"
  44.     }
  45. }
  46. # This is necessary to force wish to exit.
  47. exit
  48.  
  49.  
  50.