tcl-expand.tcl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #
  2. # Copyright (c) 1996 Regents of the University of California.
  3. # All rights reserved.
  4. # Redistribution and use in source and binary forms, with or without
  5. # modification, are permitted provided that the following conditions
  6. # are met:
  7. # 1. Redistributions of source code must retain the above copyright
  8. #    notice, this list of conditions and the following disclaimer.
  9. # 2. Redistributions in binary form must reproduce the above copyright
  10. #    notice, this list of conditions and the following disclaimer in the
  11. #    documentation and/or other materials provided with the distribution.
  12. # 3. All advertising materials mentioning features or use of this software
  13. #    must display the following acknowledgement:
  14. #  This product includes software developed by the MASH Research
  15. #  Group at the University of California Berkeley.
  16. # 4. Neither the name of the University nor of the Research Group may be
  17. #    used to endorse or promote products derived from this software without
  18. #    specific prior written permission.
  19. # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  20. # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  21. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  22. # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  23. # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  24. # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  25. # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  26. # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  27. # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  28. # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  29. # SUCH DAMAGE.
  30. #
  31. # @(#) $Header: /cvsroot/nsnam/ns-2/bin/tcl-expand.tcl,v 1.4 2005/05/30 05:25:14 sfloyd Exp $
  32. #
  33. #
  34. # copy files on command line to stdout and substitute files
  35. # of source commands.  only works for simple, literal commands.
  36. #
  37. proc expand_file name {
  38. puts "### tcl-expand.tcl: begin expanding $name"
  39. if {[file exists $name] == 0} {
  40. puts "### tcl-expand.tcl: cannot find $name"
  41. return 
  42. }
  43. set f [open $name r]
  44. while 1 {
  45. if { [gets $f line] < 0 } {
  46. close $f
  47. puts "### tcl-expand.tcl: end expanding $name"
  48. return
  49. }
  50. set L [split $line]
  51. if { [llength $L] == 2 && [lindex $L 0] == "source" } {
  52. expand_file [lindex $L 1]
  53. } else {
  54. puts $line
  55. }
  56. }
  57. }
  58. set startupDir [pwd]
  59. fconfigure stdout -translation lf
  60. foreach name $argv {
  61. set dirname [file dirname $name]
  62. if {$dirname != "."} {
  63. cd $dirname
  64. expand_file [file tail $name]
  65. cd $startupDir
  66. } else {
  67. expand_file $name
  68. }
  69. }
  70. exit 0