System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 9624269c460ec25840901feab4dcd34f9aaeae31:


0000: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0010: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0020: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0030: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0040: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0d  ###############.
0050: 0a 23 0d 0a 23 20 73 61 66 65 2e 65 61 67 6c 65  .#..# safe.eagle
0060: 20 2d 2d 0d 0a 23 0d 0a 23 20 45 78 74 65 6e 73   --..#..# Extens
0070: 69 62 6c 65 20 41 64 61 70 74 61 62 6c 65 20 47  ible Adaptable G
0080: 65 6e 65 72 61 6c 69 7a 65 64 20 4c 6f 67 69 63  eneralized Logic
0090: 20 45 6e 67 69 6e 65 20 28 45 61 67 6c 65 29 0d   Engine (Eagle).
00a0: 0a 23 20 45 61 67 6c 65 20 53 61 66 65 20 49 6e  .# Eagle Safe In
00b0: 74 65 72 70 72 65 74 65 72 20 49 6e 69 74 69 61  terpreter Initia
00c0: 6c 69 7a 61 74 69 6f 6e 20 46 69 6c 65 0d 0a 23  lization File..#
00d0: 0d 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63  ..# Copyright (c
00e0: 29 20 32 30 30 37 2d 32 30 31 32 20 62 79 20 4a  ) 2007-2012 by J
00f0: 6f 65 20 4d 69 73 74 61 63 68 6b 69 6e 2e 20 20  oe Mistachkin.  
0100: 41 6c 6c 20 72 69 67 68 74 73 20 72 65 73 65 72  All rights reser
0110: 76 65 64 2e 0d 0a 23 0d 0a 23 20 53 65 65 20 74  ved...#..# See t
0120: 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65  he file "license
0130: 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 6e 66 6f  .terms" for info
0140: 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65  rmation on usage
0150: 20 61 6e 64 20 72 65 64 69 73 74 72 69 62 75 74   and redistribut
0160: 69 6f 6e 20 6f 66 0d 0a 23 20 74 68 69 73 20 66  ion of..# this f
0170: 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61 20 44  ile, and for a D
0180: 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c  ISCLAIMER OF ALL
0190: 20 57 41 52 52 41 4e 54 49 45 53 2e 0d 0a 23 0d   WARRANTIES...#.
01a0: 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64  .# RCS: @(#) $Id
01b0: 3a 20 24 0d 0a 23 0d 0a 23 23 23 23 23 23 23 23  : $..#..########
01c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0200: 23 23 23 23 23 23 23 0d 0a 0d 0a 23 0d 0a 23 20  #######....#..# 
0210: 4e 4f 54 45 3a 20 55 73 65 20 6f 75 72 20 6f 77  NOTE: Use our ow
0220: 6e 20 6e 61 6d 65 73 70 61 63 65 20 68 65 72 65  n namespace here
0230: 20 62 65 63 61 75 73 65 20 65 76 65 6e 20 74 68   because even th
0240: 6f 75 67 68 20 77 65 20 64 6f 20 6e 6f 74 20 64  ough we do not d
0250: 69 72 65 63 74 6c 79 0d 0a 23 20 20 20 20 20 20  irectly..#      
0260: 20 73 75 70 70 6f 72 74 20 6e 61 6d 65 73 70 61   support namespa
0270: 63 65 73 20 6f 75 72 73 65 6c 76 65 73 2c 20 77  ces ourselves, w
0280: 65 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f  e do not want to
0290: 20 70 6f 6c 6c 75 74 65 20 74 68 65 20 67 6c 6f   pollute the glo
02a0: 62 61 6c 0d 0a 23 20 20 20 20 20 20 20 6e 61 6d  bal..#       nam
02b0: 65 73 70 61 63 65 20 69 66 20 74 68 69 73 20 73  espace if this s
02c0: 63 72 69 70 74 20 61 63 74 75 61 6c 6c 79 20 65  cript actually e
02d0: 6e 64 73 20 75 70 20 62 65 69 6e 67 20 65 76 61  nds up being eva
02e0: 6c 75 61 74 65 64 20 69 6e 20 54 63 6c 2e 0d 0a  luated in Tcl...
02f0: 23 0d 0a 6e 61 6d 65 73 70 61 63 65 20 65 76 61  #..namespace eva
0300: 6c 20 3a 3a 45 61 67 6c 65 20 7b 0d 0a 20 20 23  l ::Eagle {..  #
0310: 0d 0a 20 20 23 20 4e 4f 54 45 3a 20 54 68 69 73  ..  # NOTE: This
0320: 20 69 73 20 74 68 65 20 70 72 6f 63 65 64 75 72   is the procedur
0330: 65 20 74 68 61 74 20 64 65 74 65 63 74 73 20 77  e that detects w
0340: 68 65 74 68 65 72 20 6f 72 20 6e 6f 74 20 77 65  hether or not we
0350: 20 61 72 65 0d 0a 20 20 23 20 20 20 20 20 20 20   are..  #       
0360: 72 75 6e 6e 69 6e 67 20 69 6e 20 45 61 67 6c 65  running in Eagle
0370: 20 28 6f 74 68 65 72 77 69 73 65 2c 20 77 65 20   (otherwise, we 
0380: 61 72 65 20 72 75 6e 6e 69 6e 67 20 69 6e 20 76  are running in v
0390: 61 6e 69 6c 6c 61 20 54 63 6c 29 2e 0d 0a 20 20  anilla Tcl)...  
03a0: 23 20 20 20 20 20 20 20 54 68 69 73 20 70 72 6f  #       This pro
03b0: 63 65 64 75 72 65 20 6d 75 73 74 20 66 75 6e 63  cedure must func
03c0: 74 69 6f 6e 20 63 6f 72 72 65 63 74 6c 79 20 69  tion correctly i
03d0: 6e 20 62 6f 74 68 20 54 63 6c 20 61 6e 64 20 45  n both Tcl and E
03e0: 61 67 6c 65 0d 0a 20 20 23 20 20 20 20 20 20 20  agle..  #       
03f0: 61 6e 64 20 6d 75 73 74 20 72 65 74 75 72 6e 20  and must return 
0400: 6e 6f 6e 2d 7a 65 72 6f 20 6f 6e 6c 79 20 77 68  non-zero only wh
0410: 65 6e 20 72 75 6e 6e 69 6e 67 20 69 6e 20 45 61  en running in Ea
0420: 67 6c 65 2e 20 20 54 68 69 73 0d 0a 20 20 23 20  gle.  This..  # 
0430: 20 20 20 20 20 20 70 72 6f 63 65 64 75 72 65 20        procedure 
0440: 6d 75 73 74 20 62 65 20 64 65 66 69 6e 65 64 20  must be defined 
0450: 69 6e 20 74 68 69 73 20 73 63 72 69 70 74 20 66  in this script f
0460: 69 6c 65 20 62 65 63 61 75 73 65 20 69 74 20 69  ile because it i
0470: 73 0d 0a 20 20 23 20 20 20 20 20 20 20 6e 65 65  s..  #       nee
0480: 64 65 64 20 77 68 69 6c 65 20 74 68 69 73 20 73  ded while this s
0490: 63 72 69 70 74 20 66 69 6c 65 20 69 73 20 62 65  cript file is be
04a0: 69 6e 67 20 65 76 61 6c 75 61 74 65 64 2e 20 20  ing evaluated.  
04b0: 54 68 65 20 73 61 6d 65 0d 0a 20 20 23 20 20 20  The same..  #   
04c0: 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 69 73      procedure is
04d0: 20 61 6c 73 6f 20 64 65 66 69 6e 65 64 20 69 6e   also defined in
04e0: 20 74 68 65 20 22 69 6e 69 74 2e 65 61 67 6c 65   the "init.eagle
04f0: 22 20 66 69 6c 65 2e 0d 0a 20 20 23 0d 0a 20 20  " file...  #..  
0500: 23 20 3c 62 6f 6f 74 73 74 72 61 70 3e 0d 0a 20  # <bootstrap>.. 
0510: 20 70 72 6f 63 20 69 73 45 61 67 6c 65 20 7b 7d   proc isEagle {}
0520: 20 7b 0d 0a 20 20 20 20 23 0d 0a 20 20 20 20 23   {..    #..    #
0530: 20 4e 4f 54 45 3a 20 4e 6f 74 68 69 6e 67 20 74   NOTE: Nothing t
0540: 6f 6f 20 66 61 6e 63 79 20 6f 72 20 65 78 70 65  oo fancy or expe
0550: 6e 73 69 76 65 20 73 68 6f 75 6c 64 20 62 65 20  nsive should be 
0560: 64 6f 6e 65 20 69 6e 20 68 65 72 65 2e 20 20 49  done in here.  I
0570: 6e 0d 0a 20 20 20 20 23 20 20 20 20 20 20 20 74  n..    #       t
0580: 68 65 6f 72 79 2c 20 75 73 65 20 6f 66 20 74 68  heory, use of th
0590: 69 73 20 72 6f 75 74 69 6e 65 20 73 68 6f 75 6c  is routine shoul
05a0: 64 20 62 65 20 72 61 72 65 3b 20 68 6f 77 65 76  d be rare; howev
05b0: 65 72 2c 20 69 6e 0d 0a 20 20 20 20 23 20 20 20  er, in..    #   
05c0: 20 20 20 20 70 72 61 63 74 69 63 65 2c 20 74 68      practice, th
05d0: 69 73 20 72 6f 75 74 69 6e 65 20 69 73 20 61 63  is routine is ac
05e0: 74 75 61 6c 6c 79 20 75 73 65 64 20 71 75 69 74  tually used quit
05f0: 65 20 61 20 62 69 74 20 28 65 2e 67 2e 0d 0a 20  e a bit (e.g... 
0600: 20 20 20 23 20 20 20 20 20 20 20 62 79 20 74 68     #       by th
0610: 65 20 74 65 73 74 20 73 75 69 74 65 29 2e 0d 0a  e test suite)...
0620: 20 20 20 20 23 0d 0a 20 20 20 20 72 65 74 75 72      #..    retur
0630: 6e 20 5b 65 78 70 72 20 7b 5b 69 6e 66 6f 20 65  n [expr {[info e
0640: 78 69 73 74 73 20 3a 3a 74 63 6c 5f 70 6c 61 74  xists ::tcl_plat
0650: 66 6f 72 6d 28 65 6e 67 69 6e 65 29 5d 20 26 26  form(engine)] &&
0660: 20 5c 0d 0a 20 20 20 20 20 20 20 20 5b 73 74 72   \..        [str
0670: 69 6e 67 20 63 6f 6d 70 61 72 65 20 2d 6e 6f 63  ing compare -noc
0680: 61 73 65 20 65 61 67 6c 65 20 24 3a 3a 74 63 6c  ase eagle $::tcl
0690: 5f 70 6c 61 74 66 6f 72 6d 28 65 6e 67 69 6e 65  _platform(engine
06a0: 29 5d 20 3d 3d 20 30 7d 5d 0d 0a 20 20 7d 0d 0a  )] == 0}]..  }..
06b0: 0c 0d 0a 20 20 69 66 20 7b 5b 69 73 45 61 67 6c  ...  if {[isEagl
06c0: 65 5d 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20  e]} then {..    
06d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
06e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
06f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0700: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0710: 23 23 23 23 23 23 23 23 23 23 23 0d 0a 20 20 20  ###########..   
0720: 20 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23   ###############
0730: 23 23 23 23 23 23 23 23 23 23 23 23 23 20 42 45  ############# BE
0740: 47 49 4e 20 45 61 67 6c 65 20 4f 4e 4c 59 20 23  GIN Eagle ONLY #
0750: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0760: 23 23 23 23 23 23 23 23 23 23 23 23 0d 0a 20 20  ############..  
0770: 20 20 23 23 23 23 23 23 23 23 23 23 23 23 23 23    ##############
0780: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0790: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
07a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
07b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 0d 0a 0d  #############...
07c0: 0a 20 20 20 20 23 0d 0a 20 20 20 20 23 20 4e 4f  .    #..    # NO
07d0: 54 45 3a 20 54 68 69 73 20 69 73 20 74 68 65 20  TE: This is the 
07e0: 5b 75 6e 6b 6e 6f 77 6e 5d 20 63 6f 6d 6d 61 6e  [unknown] comman
07f0: 64 20 66 6f 72 20 45 61 67 6c 65 2e 20 20 49 74  d for Eagle.  It
0800: 20 77 69 6c 6c 20 6e 6f 72 6d 61 6c 6c 79 20 62   will normally b
0810: 65 0d 0a 20 20 20 20 23 20 20 20 20 20 20 20 65  e..    #       e
0820: 78 65 63 75 74 65 64 20 62 79 20 74 68 65 20 73  xecuted by the s
0830: 63 72 69 70 74 20 65 6e 67 69 6e 65 20 77 68 65  cript engine whe
0840: 6e 20 61 20 63 6f 6d 6d 61 6e 64 20 69 73 20 6e  n a command is n
0850: 6f 74 20 66 6f 75 6e 64 2e 0d 0a 20 20 20 20 23  ot found...    #
0860: 20 20 20 20 20 20 20 49 74 20 77 69 6c 6c 20 73         It will s
0870: 69 6d 70 6c 79 20 72 61 69 73 65 20 61 20 73 63  imply raise a sc
0880: 72 69 70 74 20 65 72 72 6f 72 2e 0d 0a 20 20 20  ript error...   
0890: 20 23 0d 0a 20 20 20 20 23 20 3c 63 72 65 61 74   #..    # <creat
08a0: 65 3e 0d 0a 20 20 20 20 70 72 6f 63 20 75 6e 6b  e>..    proc unk
08b0: 6e 6f 77 6e 20 7b 20 6e 61 6d 65 20 61 72 67 73  nown { name args
08c0: 20 7d 20 7b 0d 0a 20 20 20 20 20 20 23 0d 0a 20   } {..      #.. 
08d0: 20 20 20 20 20 23 20 4e 4f 54 45 3a 20 54 68 69       # NOTE: Thi
08e0: 73 20 69 73 20 61 6e 20 5b 75 6e 6b 6e 6f 77 6e  s is an [unknown
08f0: 5d 20 70 72 6f 63 65 64 75 72 65 20 74 68 61 74  ] procedure that
0900: 20 70 72 6f 64 75 63 65 73 20 61 6e 20 61 70 70   produces an app
0910: 72 6f 70 72 69 61 74 65 0d 0a 20 20 20 20 20 20  ropriate..      
0920: 23 20 20 20 20 20 20 20 65 72 72 6f 72 20 6d 65  #       error me
0930: 73 73 61 67 65 2e 0d 0a 20 20 20 20 20 20 23 0d  ssage...      #.
0940: 0a 20 20 20 20 20 20 23 20 54 4f 44 4f 3a 20 41  .      # TODO: A
0950: 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 61  dd support for a
0960: 75 74 6f 2d 6c 6f 61 64 69 6e 67 20 70 61 63 6b  uto-loading pack
0970: 61 67 65 73 20 68 65 72 65 20 69 6e 20 74 68 65  ages here in the
0980: 20 66 75 74 75 72 65 3f 0d 0a 20 20 20 20 20 20   future?..      
0990: 23 0d 0a 20 20 20 20 20 20 23 20 4e 4f 54 45 3a  #..      # NOTE:
09a0: 20 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 63 61   This command ca
09b0: 6e 6e 6f 74 20 75 73 65 20 5b 61 70 70 65 6e 64  nnot use [append
09c0: 41 72 67 73 5d 20 62 65 63 61 75 73 65 20 74 68  Args] because th
09d0: 61 74 20 70 72 6f 63 65 64 75 72 65 0d 0a 20 20  at procedure..  
09e0: 20 20 20 20 23 20 20 20 20 20 20 20 69 73 20 64      #       is d
09f0: 65 66 69 6e 65 64 20 69 6e 20 61 6e 6f 74 68 65  efined in anothe
0a00: 72 20 66 69 6c 65 20 74 68 61 74 20 69 73 20 6e  r file that is n
0a10: 65 76 65 72 20 6c 6f 61 64 65 64 20 69 6e 74 6f  ever loaded into
0a20: 20 22 73 61 66 65 22 0d 0a 20 20 20 20 20 20 23   "safe"..      #
0a30: 20 20 20 20 20 20 20 69 6e 74 65 72 70 72 65 74         interpret
0a40: 65 72 73 2e 0d 0a 20 20 20 20 20 20 23 0d 0a 20  ers...      #.. 
0a50: 20 20 20 20 20 72 65 74 75 72 6e 20 2d 63 6f 64       return -cod
0a60: 65 20 65 72 72 6f 72 20 22 69 6e 76 61 6c 69 64  e error "invalid
0a70: 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 20 5c 22   command name \"
0a80: 24 6e 61 6d 65 5c 22 22 0d 0a 20 20 20 20 7d 0d  $name\""..    }.
0a90: 0a 0c 0d 0a 20 20 20 20 23 0d 0a 20 20 20 20 23  ....    #..    #
0aa0: 20 4e 4f 54 45 3a 20 54 68 69 73 20 6e 61 6d 65   NOTE: This name
0ab0: 73 70 61 63 65 20 61 6e 64 20 74 68 65 20 70 72  space and the pr
0ac0: 6f 63 65 64 75 72 65 20 64 65 66 69 6e 65 64 20  ocedure defined 
0ad0: 77 69 74 68 69 6e 20 69 74 20 61 72 65 20 75 73  within it are us
0ae0: 65 64 20 66 6f 72 0d 0a 20 20 20 20 23 20 20 20  ed for..    #   
0af0: 20 20 20 20 63 6f 6d 70 61 74 69 62 69 6c 69 74      compatibilit
0b00: 79 20 77 69 74 68 20 6e 61 74 69 76 65 20 54 63  y with native Tc
0b10: 6c 2e 0d 0a 20 20 20 20 23 0d 0a 20 20 20 20 6e  l...    #..    n
0b20: 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20 3a 3a  amespace eval ::
0b30: 74 63 6c 3a 3a 74 6d 20 7b 0d 0a 20 20 20 20 20  tcl::tm {..     
0b40: 20 23 0d 0a 20 20 20 20 20 20 23 20 4e 4f 54 45   #..      # NOTE
0b50: 3a 20 49 64 65 61 6c 6c 79 2c 20 74 68 69 73 20  : Ideally, this 
0b60: 70 72 6f 63 65 64 75 72 65 20 73 68 6f 75 6c 64  procedure should
0b70: 20 62 65 20 63 72 65 61 74 65 64 20 69 6e 20 74   be created in t
0b80: 68 65 20 22 3a 3a 74 63 6c 3a 3a 74 6d 22 0d 0a  he "::tcl::tm"..
0b90: 20 20 20 20 20 20 23 20 20 20 20 20 20 20 6e 61        #       na
0ba0: 6d 65 73 70 61 63 65 2e 0d 0a 20 20 20 20 20 20  mespace...      
0bb0: 23 0d 0a 20 20 20 20 20 20 23 20 3c 63 72 65 61  #..      # <crea
0bc0: 74 65 3e 0d 0a 20 20 20 20 20 20 70 72 6f 63 20  te>..      proc 
0bd0: 3a 3a 74 63 6c 3a 3a 74 6d 3a 3a 55 6e 6b 6e 6f  ::tcl::tm::Unkno
0be0: 77 6e 48 61 6e 64 6c 65 72 20 7b 20 6f 72 69 67  wnHandler { orig
0bf0: 69 6e 61 6c 20 6e 61 6d 65 20 61 72 67 73 20 7d  inal name args }
0c00: 20 7b 0d 0a 20 20 20 20 20 20 20 20 23 0d 0a 20   {..        #.. 
0c10: 20 20 20 20 20 20 20 23 20 4e 4f 54 45 3a 20 44         # NOTE: D
0c20: 6f 20 6e 6f 74 68 69 6e 67 20 65 78 63 65 70 74  o nothing except
0c30: 20 63 61 6c 6c 20 74 68 65 20 6f 72 69 67 69 6e   call the origin
0c40: 61 6c 20 68 61 6e 64 6c 65 72 2e 0d 0a 20 20 20  al handler...   
0c50: 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20 20 20       #..        
0c60: 75 70 6c 65 76 65 6c 20 31 20 24 6f 72 69 67 69  uplevel 1 $origi
0c70: 6e 61 6c 20 5b 3a 3a 6c 69 6e 73 65 72 74 20 24  nal [::linsert $
0c80: 61 72 67 73 20 30 20 24 6e 61 6d 65 5d 0d 0a 20  args 0 $name].. 
0c90: 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0c       }..    }...
0ca0: 0d 0a 20 20 20 20 23 0d 0a 20 20 20 20 23 20 4e  ..    #..    # N
0cb0: 4f 54 45 3a 20 54 68 69 73 20 70 72 6f 63 65 64  OTE: This proced
0cc0: 75 72 65 20 69 73 20 6e 6f 72 6d 61 6c 6c 79 20  ure is normally 
0cd0: 65 78 65 63 75 74 65 64 20 62 79 20 74 68 65 20  executed by the 
0ce0: 70 61 63 6b 61 67 65 20 6d 61 6e 61 67 65 6d 65  package manageme
0cf0: 6e 74 0d 0a 20 20 20 20 23 20 20 20 20 20 20 20  nt..    #       
0d00: 73 75 62 73 79 73 74 65 6d 20 6f 66 20 45 61 67  subsystem of Eag
0d10: 6c 65 20 77 68 65 6e 20 61 20 70 61 63 6b 61 67  le when a packag
0d20: 65 20 69 73 20 72 65 71 75 65 73 74 65 64 20 74  e is requested t
0d30: 68 61 74 20 63 61 6e 6e 6f 74 20 62 65 0d 0a 20  hat cannot be.. 
0d40: 20 20 20 23 20 20 20 20 20 20 20 66 6f 75 6e 64     #       found
0d50: 2e 0d 0a 20 20 20 20 23 0d 0a 20 20 20 20 23 20  ...    #..    # 
0d60: 3c 63 72 65 61 74 65 3e 0d 0a 20 20 20 20 70 72  <create>..    pr
0d70: 6f 63 20 74 63 6c 50 6b 67 55 6e 6b 6e 6f 77 6e  oc tclPkgUnknown
0d80: 20 7b 20 6e 61 6d 65 20 61 72 67 73 20 7d 20 7b   { name args } {
0d90: 0d 0a 20 20 20 20 20 20 23 0d 0a 20 20 20 20 20  ..      #..     
0da0: 20 23 20 4e 4f 54 45 3a 20 44 6f 20 6e 6f 74 68   # NOTE: Do noth
0db0: 69 6e 67 20 73 69 6e 63 65 20 74 68 69 73 20 69  ing since this i
0dc0: 73 20 70 72 6f 62 61 62 6c 79 20 61 20 73 61 66  s probably a saf
0dd0: 65 20 69 6e 74 65 72 70 72 65 74 65 72 2e 0d 0a  e interpreter...
0de0: 20 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20 72        #..      r
0df0: 65 74 75 72 6e 0d 0a 20 20 20 20 7d 0d 0a 0c 0d  eturn..    }....
0e00: 0a 20 20 20 20 23 23 23 23 23 23 23 23 23 23 23  .    ###########
0e10: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0e20: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0e30: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0e40: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0e50: 0d 0a 20 20 20 20 23 23 23 23 23 23 23 23 23 23  ..    ##########
0e60: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0e70: 23 23 23 20 45 4e 44 20 45 61 67 6c 65 20 4f 4e  ### END Eagle ON
0e80: 4c 59 20 23 23 23 23 23 23 23 23 23 23 23 23 23  LY #############
0e90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0ea0: 23 0d 0a 20 20 20 20 23 23 23 23 23 23 23 23 23  #..    #########
0eb0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0ec0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0ed0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0ee0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0ef0: 23 23 0d 0a 20 20 7d 0d 0a 0c 0d 0a 20 20 23 0d  ##..  }.....  #.
0f00: 0a 20 20 23 20 4e 4f 54 45 3a 20 50 72 6f 76 69  .  # NOTE: Provi
0f10: 64 65 20 74 68 65 20 45 61 67 6c 65 20 22 73 61  de the Eagle "sa
0f20: 66 65 22 20 70 61 63 6b 61 67 65 20 74 6f 20 74  fe" package to t
0f30: 68 65 20 69 6e 74 65 72 70 72 65 74 65 72 2e 0d  he interpreter..
0f40: 0a 20 20 23 0d 0a 20 20 70 61 63 6b 61 67 65 20  .  #..  package 
0f50: 70 72 6f 76 69 64 65 20 45 61 67 6c 65 2e 53 61  provide Eagle.Sa
0f60: 66 65 20 5c 0d 0a 20 20 20 20 5b 65 78 70 72 20  fe \..    [expr 
0f70: 7b 5b 69 73 45 61 67 6c 65 5d 20 3f 20 5b 69 6e  {[isEagle] ? [in
0f80: 66 6f 20 65 6e 67 69 6e 65 20 50 61 74 63 68 4c  fo engine PatchL
0f90: 65 76 65 6c 5d 20 3a 20 22 31 2e 30 22 7d 5d 0d  evel] : "1.0"}].
0fa0: 0a 7d 0d 0a 0c                                   .}...