home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / cginit.tcl < prev    next >
Text File  |  1996-11-01  |  2KB  |  67 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. # Copyright (c) 1995 by Cadre Technologies Inc.
  4. #
  5. # This software is furnished under a license and may be used only in
  6. # accordance with the terms of such license and with the inclusion of
  7. # the above copyright notice. This software or any other copies thereof
  8. # may not be provided or otherwise made available to any other person.
  9. # No title to and ownership of the software is hereby transferred.
  10. #
  11. # The information in this software is subject to change without notice
  12. # and should not be construed as a commitment by Cadre Technologies Inc.
  13. #
  14. #---------------------------------------------------------------------------
  15. #
  16. #    File        : @(#)cginit.tcl    /main/hindenburg/2
  17. #    Original date    : August 1995
  18. #    Description    : Initialization for codegeneration stuff
  19. #
  20. #---------------------------------------------------------------------------
  21. #
  22.  
  23. global classCount; set classCount 0
  24.  
  25. #
  26. #    Require: source a file only once
  27. #
  28.  
  29. proc require {file} {
  30.     global required_files
  31.     if [info exists required_files($file)] {
  32.         return
  33.     }
  34.     set required_files($file) 1
  35.     read_require_file $file
  36. }
  37.  
  38. #
  39. #    Reload even if it has been sourced before
  40. #
  41.  
  42. proc require_with_reload {file} {
  43.     global required_files
  44.     set required_files($file) 1
  45.     read_require_file $file
  46. }
  47.  
  48. #
  49. #    Dot not call the next procedure directly, but use require or
  50. #    require_with_reload. If this procedure is called directly, the
  51. #    uplevel command may cause strange behaviour ...
  52. #
  53.  
  54. proc read_require_file {fullName} {
  55.     set fileName [lindex [split $fullName .] 0]
  56.     set fileType [lindex [split $fullName .] 1]
  57.     set cc [ClientContext::global]
  58.  
  59.     if [catch {
  60.     set cmd [$cc getCustomFileContents $fileName $fileType tcl]
  61.     } msg] {
  62.     puts $msg
  63.     return
  64.     }
  65.     uplevel 2 $cmd
  66. }
  67.