System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 25a3bcbf61bec9cbcb6b971544da32658e8fa87a:


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 61 75 78 69 6c 69 61 72 79 2e  .#..# auxiliary.
0060: 65 61 67 6c 65 20 2d 2d 0d 0a 23 0d 0a 23 20 45  eagle --..#..# E
0070: 78 74 65 6e 73 69 62 6c 65 20 41 64 61 70 74 61  xtensible Adapta
0080: 62 6c 65 20 47 65 6e 65 72 61 6c 69 7a 65 64 20  ble Generalized 
0090: 4c 6f 67 69 63 20 45 6e 67 69 6e 65 20 28 45 61  Logic Engine (Ea
00a0: 67 6c 65 29 0d 0a 23 20 45 61 67 6c 65 20 41 75  gle)..# Eagle Au
00b0: 78 69 6c 69 61 72 79 20 50 61 63 6b 61 67 65 20  xiliary Package 
00c0: 46 69 6c 65 0d 0a 23 0d 0a 23 20 43 6f 70 79 72  File..#..# Copyr
00d0: 69 67 68 74 20 28 63 29 20 32 30 30 37 2d 32 30  ight (c) 2007-20
00e0: 31 32 20 62 79 20 4a 6f 65 20 4d 69 73 74 61 63  12 by Joe Mistac
00f0: 68 6b 69 6e 2e 20 20 41 6c 6c 20 72 69 67 68 74  hkin.  All right
0100: 73 20 72 65 73 65 72 76 65 64 2e 0d 0a 23 0d 0a  s reserved...#..
0110: 23 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 22  # See the file "
0120: 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20 66  license.terms" f
0130: 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f  or information o
0140: 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64 69  n usage and redi
0150: 73 74 72 69 62 75 74 69 6f 6e 20 6f 66 0d 0a 23  stribution of..#
0160: 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20   this file, and 
0170: 66 6f 72 20 61 20 44 49 53 43 4c 41 49 4d 45 52  for a DISCLAIMER
0180: 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49   OF ALL WARRANTI
0190: 45 53 2e 0d 0a 23 0d 0a 23 20 52 43 53 3a 20 40  ES...#..# RCS: @
01a0: 28 23 29 20 24 49 64 3a 20 24 0d 0a 23 0d 0a 23  (#) $Id: $..#..#
01b0: 23 23 23 23 23 23 23 23 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 0d 0a  ##############..
0200: 0d 0a 23 0d 0a 23 20 4e 4f 54 45 3a 20 55 73 65  ..#..# NOTE: Use
0210: 20 6f 75 72 20 6f 77 6e 20 6e 61 6d 65 73 70 61   our own namespa
0220: 63 65 20 68 65 72 65 20 62 65 63 61 75 73 65 20  ce here because 
0230: 65 76 65 6e 20 74 68 6f 75 67 68 20 77 65 20 64  even though we d
0240: 6f 20 6e 6f 74 20 64 69 72 65 63 74 6c 79 0d 0a  o not directly..
0250: 23 20 20 20 20 20 20 20 73 75 70 70 6f 72 74 20  #       support 
0260: 6e 61 6d 65 73 70 61 63 65 73 20 6f 75 72 73 65  namespaces ourse
0270: 6c 76 65 73 2c 20 77 65 20 64 6f 20 6e 6f 74 20  lves, we do not 
0280: 77 61 6e 74 20 74 6f 20 70 6f 6c 6c 75 74 65 20  want to pollute 
0290: 74 68 65 20 67 6c 6f 62 61 6c 0d 0a 23 20 20 20  the global..#   
02a0: 20 20 20 20 6e 61 6d 65 73 70 61 63 65 20 69 66      namespace if
02b0: 20 74 68 69 73 20 73 63 72 69 70 74 20 61 63 74   this script act
02c0: 75 61 6c 6c 79 20 65 6e 64 73 20 75 70 20 62 65  ually ends up be
02d0: 69 6e 67 20 65 76 61 6c 75 61 74 65 64 20 69 6e  ing evaluated in
02e0: 20 54 63 6c 2e 0d 0a 23 0d 0a 6e 61 6d 65 73 70   Tcl...#..namesp
02f0: 61 63 65 20 65 76 61 6c 20 3a 3a 45 61 67 6c 65  ace eval ::Eagle
0300: 20 7b 0d 0a 20 20 23 0d 0a 20 20 23 20 4e 4f 54   {..  #..  # NOT
0310: 45 3a 20 54 68 69 73 20 70 72 6f 63 65 64 75 72  E: This procedur
0320: 65 20 72 65 74 75 72 6e 73 20 74 68 65 20 76 61  e returns the va
0330: 6c 75 65 20 6f 66 20 61 6e 20 65 6e 76 69 72 6f  lue of an enviro
0340: 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 2c 20  nment variable, 
0350: 69 66 0d 0a 20 20 23 20 20 20 20 20 20 20 69 74  if..  #       it
0360: 20 61 63 74 75 61 6c 6c 79 20 65 78 69 73 74 73   actually exists
0370: 3b 20 6f 74 68 65 72 77 69 73 65 2c 20 61 6e 20  ; otherwise, an 
0380: 65 6d 70 74 79 20 73 74 72 69 6e 67 20 69 73 20  empty string is 
0390: 72 65 74 75 72 6e 65 64 2e 0d 0a 20 20 23 0d 0a  returned...  #..
03a0: 20 20 70 72 6f 63 20 67 65 74 45 6e 76 69 72 6f    proc getEnviro
03b0: 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65 20 7b 20  nmentVariable { 
03c0: 6e 61 6d 65 20 7d 20 7b 0d 0a 20 20 20 20 67 6c  name } {..    gl
03d0: 6f 62 61 6c 20 65 6e 76 0d 0a 0d 0a 20 20 20 20  obal env....    
03e0: 72 65 74 75 72 6e 20 5b 65 78 70 72 20 7b 5b 69  return [expr {[i
03f0: 6e 66 6f 20 65 78 69 73 74 73 20 65 6e 76 28 24  nfo exists env($
0400: 6e 61 6d 65 29 5d 20 3f 20 24 65 6e 76 28 24 6e  name)] ? $env($n
0410: 61 6d 65 29 20 3a 20 22 22 7d 5d 0d 0a 20 20 7d  ame) : ""}]..  }
0420: 0d 0a 0c 0d 0a 20 20 23 0d 0a 20 20 23 20 4e 4f  .....  #..  # NO
0430: 54 45 3a 20 54 68 69 73 20 70 72 6f 63 65 64 75  TE: This procedu
0440: 72 65 20 61 63 63 65 70 74 73 20 61 6e 20 61 6e  re accepts an an
0450: 79 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75  y number of argu
0460: 6d 65 6e 74 73 2e 20 20 54 68 65 20 61 72 67 75  ments.  The argu
0470: 6d 65 6e 74 73 0d 0a 20 20 23 20 20 20 20 20 20  ments..  #      
0480: 20 61 72 65 20 61 70 70 65 6e 64 65 64 20 69 6e   are appended in
0490: 74 6f 20 6f 6e 65 20 62 69 67 20 73 74 72 69 6e  to one big strin
04a0: 67 2c 20 76 65 72 62 61 74 69 6d 2e 20 20 54 68  g, verbatim.  Th
04b0: 65 20 72 65 73 75 6c 74 69 6e 67 20 73 74 72 69  e resulting stri
04c0: 6e 67 0d 0a 20 20 23 20 20 20 20 20 20 20 69 73  ng..  #       is
04d0: 20 72 65 74 75 72 6e 65 64 2e 20 20 4e 6f 72 6d   returned.  Norm
04e0: 61 6c 6c 79 2c 20 74 68 69 73 20 70 72 6f 63 65  ally, this proce
04f0: 64 75 72 65 20 69 73 20 75 73 65 64 20 74 6f 20  dure is used to 
0500: 61 76 6f 69 64 20 75 6e 64 65 73 69 72 65 64 0d  avoid undesired.
0510: 0a 20 20 23 20 20 20 20 20 20 20 73 74 72 69 6e  .  #       strin
0520: 67 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 20  g interpolation 
0530: 6f 70 65 72 61 74 69 6f 6e 73 2e 0d 0a 20 20 23  operations...  #
0540: 0d 0a 20 20 70 72 6f 63 20 61 70 70 65 6e 64 41  ..  proc appendA
0550: 72 67 73 20 7b 20 61 72 67 73 20 7d 20 7b 0d 0a  rgs { args } {..
0560: 20 20 20 20 73 65 74 20 72 65 73 75 6c 74 20 22      set result "
0570: 22 3b 20 65 76 61 6c 20 61 70 70 65 6e 64 20 72  "; eval append r
0580: 65 73 75 6c 74 20 24 61 72 67 73 0d 0a 20 20 7d  esult $args..  }
0590: 0d 0a 0c 0d 0a 20 20 23 0d 0a 20 20 23 20 4e 4f  .....  #..  # NO
05a0: 54 45 3a 20 54 68 69 73 20 70 72 6f 63 65 64 75  TE: This procedu
05b0: 72 65 20 61 74 74 65 6d 70 74 73 20 74 6f 20 6c  re attempts to l
05c0: 6f 63 61 74 65 20 74 68 65 20 66 69 72 73 74 20  ocate the first 
05d0: 6e 61 6d 65 64 20 76 61 6c 75 65 20 77 65 20 61  named value we a
05e0: 72 65 0d 0a 20 20 23 20 20 20 20 20 20 20 69 6e  re..  #       in
05f0: 74 65 72 65 73 74 65 64 20 69 6e 2e 20 20 54 68  terested in.  Th
0600: 65 20 64 69 63 74 69 6f 6e 61 72 79 20 61 72 67  e dictionary arg
0610: 75 6d 65 6e 74 20 6d 75 73 74 20 62 65 20 61 20  ument must be a 
0620: 6c 69 73 74 20 77 69 74 68 20 61 6e 0d 0a 20 20  list with an..  
0630: 23 20 20 20 20 20 20 20 65 76 65 6e 20 6e 75 6d  #       even num
0640: 62 65 72 20 6f 66 20 65 6c 65 6d 65 6e 74 73 20  ber of elements 
0650: 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67  in the following
0660: 20 66 6f 72 6d 61 74 3a 0d 0a 20 20 23 0d 0a 20   format:..  #.. 
0670: 20 23 20 20 20 20 20 20 20 3c 6e 61 6d 65 31 3e   #       <name1>
0680: 20 3c 76 61 6c 75 65 31 3e 20 3c 6e 61 6d 65 32   <value1> <name2
0690: 3e 20 3c 76 61 6c 75 65 32 3e 20 2e 2e 2e 20 3c  > <value2> ... <
06a0: 6e 61 6d 65 4e 3e 20 3c 76 61 6c 75 65 4e 3e 0d  nameN> <valueN>.
06b0: 0a 20 20 23 0d 0a 20 20 70 72 6f 63 20 67 65 74  .  #..  proc get
06c0: 44 69 63 74 69 6f 6e 61 72 79 56 61 6c 75 65 20  DictionaryValue 
06d0: 7b 20 64 69 63 74 69 6f 6e 61 72 79 20 6e 61 6d  { dictionary nam
06e0: 65 20 7b 64 65 66 61 75 6c 74 20 22 22 7d 20 7b  e {default ""} {
06f0: 77 72 61 70 20 22 22 7d 20 7d 20 7b 0d 0a 20 20  wrap ""} } {..  
0700: 20 20 66 6f 72 65 61 63 68 20 7b 70 61 69 72 4e    foreach {pairN
0710: 61 6d 65 20 70 61 69 72 56 61 6c 75 65 7d 20 24  ame pairValue} $
0720: 64 69 63 74 69 6f 6e 61 72 79 20 7b 0d 0a 20 20  dictionary {..  
0730: 20 20 20 20 23 0d 0a 20 20 20 20 20 20 23 20 4e      #..      # N
0740: 4f 54 45 3a 20 44 6f 65 73 20 74 68 69 73 20 6e  OTE: Does this n
0750: 61 6d 65 20 6d 61 74 63 68 20 74 68 65 20 6f 6e  ame match the on
0760: 65 20 73 70 65 63 69 66 69 65 64 20 62 79 20 74  e specified by t
0770: 68 65 20 63 61 6c 6c 65 72 3f 0d 0a 20 20 20 20  he caller?..    
0780: 20 20 23 0d 0a 20 20 20 20 20 20 69 66 20 7b 24    #..      if {$
0790: 70 61 69 72 4e 61 6d 65 20 65 71 20 24 6e 61 6d  pairName eq $nam
07a0: 65 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20  e} then {..     
07b0: 20 20 20 23 0d 0a 20 20 20 20 20 20 20 20 23 20     #..        # 
07c0: 4e 4f 54 45 3a 20 52 65 74 75 72 6e 20 74 68 65  NOTE: Return the
07d0: 20 76 61 6c 75 65 2c 20 6f 70 74 69 6f 6e 61 6c   value, optional
07e0: 6c 79 20 77 72 61 70 70 65 64 2e 0d 0a 20 20 20  ly wrapped...   
07f0: 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20 20 20       #..        
0800: 72 65 74 75 72 6e 20 5b 61 70 70 65 6e 64 41 72  return [appendAr
0810: 67 73 20 24 77 72 61 70 20 24 70 61 69 72 56 61  gs $wrap $pairVa
0820: 6c 75 65 20 24 77 72 61 70 5d 0d 0a 20 20 20 20  lue $wrap]..    
0830: 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20    }..    }....  
0840: 20 20 23 0d 0a 20 20 20 20 23 20 4e 4f 54 45 3a    #..    # NOTE:
0850: 20 4e 6f 20 6d 61 74 63 68 20 77 61 73 20 66 6f   No match was fo
0860: 75 6e 64 2c 20 72 65 74 75 72 6e 20 74 68 65 20  und, return the 
0870: 64 65 66 61 75 6c 74 20 76 61 6c 75 65 2e 0d 0a  default value...
0880: 20 20 20 20 23 0d 0a 20 20 20 20 72 65 74 75 72      #..    retur
0890: 6e 20 24 64 65 66 61 75 6c 74 0d 0a 20 20 7d 0d  n $default..  }.
08a0: 0a 0c 0d 0a 20 20 23 0d 0a 20 20 23 20 4e 4f 54  ....  #..  # NOT
08b0: 45 3a 20 54 68 69 73 20 70 72 6f 63 65 64 75 72  E: This procedur
08c0: 65 20 65 78 70 6f 72 74 73 20 6f 6e 65 20 6f 72  e exports one or
08d0: 20 6d 6f 72 65 20 63 6f 6d 6d 61 6e 64 73 20 66   more commands f
08e0: 72 6f 6d 20 74 68 65 20 73 70 65 63 69 66 69 65  rom the specifie
08f0: 64 0d 0a 20 20 23 20 20 20 20 20 20 20 6e 61 6d  d..  #       nam
0900: 65 73 70 61 63 65 20 61 6e 64 20 69 6d 70 6f 72  espace and impor
0910: 74 73 20 74 68 65 6d 20 69 6e 74 6f 20 74 68 65  ts them into the
0920: 20 67 6c 6f 62 61 6c 20 6e 61 6d 65 73 70 61 63   global namespac
0930: 65 2c 20 6f 70 74 69 6f 6e 61 6c 6c 79 0d 0a 20  e, optionally.. 
0940: 20 23 20 20 20 20 20 20 20 66 6f 72 67 65 74 74   #       forgett
0950: 69 6e 67 20 61 6c 6c 20 70 72 65 76 69 6f 75 73  ing all previous
0960: 20 69 6d 70 6f 72 74 73 20 66 72 6f 6d 20 74 68   imports from th
0970: 65 20 73 70 65 63 69 66 69 65 64 20 6e 61 6d 65  e specified name
0980: 73 70 61 63 65 2e 0d 0a 20 20 23 0d 0a 20 20 70  space...  #..  p
0990: 72 6f 63 20 65 78 70 6f 72 74 41 6e 64 49 6d 70  roc exportAndImp
09a0: 6f 72 74 50 61 63 6b 61 67 65 43 6f 6d 6d 61 6e  ortPackageComman
09b0: 64 73 20 7b 20 6e 61 6d 65 73 70 61 63 65 20 65  ds { namespace e
09c0: 78 70 6f 72 74 73 20 66 6f 72 67 65 74 20 66 6f  xports forget fo
09d0: 72 63 65 20 7d 20 7b 0d 0a 20 20 20 20 23 0d 0a  rce } {..    #..
09e0: 20 20 20 20 23 20 4e 4f 54 45 3a 20 46 6f 72 67      # NOTE: Forg
09f0: 65 74 20 61 6e 79 20 70 72 65 76 69 6f 75 73 20  et any previous 
0a00: 63 6f 6d 6d 61 6e 64 73 20 74 68 61 74 20 77 65  commands that we
0a10: 72 65 20 69 6d 70 6f 72 74 65 64 20 66 72 6f 6d  re imported from
0a20: 0d 0a 20 20 20 20 23 20 20 20 20 20 20 20 74 68  ..    #       th
0a30: 69 73 20 6e 61 6d 65 73 70 61 63 65 20 69 6e 74  is namespace int
0a40: 6f 20 74 68 65 20 67 6c 6f 62 61 6c 20 6e 61 6d  o the global nam
0a50: 65 73 70 61 63 65 3f 0d 0a 20 20 20 20 23 0d 0a  espace?..    #..
0a60: 20 20 20 20 69 66 20 7b 24 66 6f 72 67 65 74 7d      if {$forget}
0a70: 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 6e   then {..      n
0a80: 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20 3a 3a  amespace eval ::
0a90: 20 5b 6c 69 73 74 20 6e 61 6d 65 73 70 61 63 65   [list namespace
0aa0: 20 66 6f 72 67 65 74 20 5b 61 70 70 65 6e 64 41   forget [appendA
0ab0: 72 67 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3a  rgs $namespace :
0ac0: 3a 2a 5d 5d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20  :*]]..    }.... 
0ad0: 20 20 20 23 0d 0a 20 20 20 20 23 20 4e 4f 54 45     #..    # NOTE
0ae0: 3a 20 50 72 6f 63 65 73 73 20 65 61 63 68 20 63  : Process each c
0af0: 6f 6d 6d 61 6e 64 20 74 6f 20 62 65 20 65 78 70  ommand to be exp
0b00: 6f 72 74 65 64 20 66 72 6f 6d 20 74 68 65 20 73  orted from the s
0b10: 70 65 63 69 66 69 65 64 0d 0a 20 20 20 20 23 20  pecified..    # 
0b20: 20 20 20 20 20 20 6e 61 6d 65 73 70 61 63 65 20        namespace 
0b30: 61 6e 64 20 69 6d 70 6f 72 74 20 69 74 20 69 6e  and import it in
0b40: 74 6f 20 74 68 65 20 67 6c 6f 62 61 6c 20 6e 61  to the global na
0b50: 6d 65 73 70 61 63 65 2c 20 69 66 0d 0a 20 20 20  mespace, if..   
0b60: 20 23 20 20 20 20 20 20 20 6e 65 63 65 73 73 61   #       necessa
0b70: 72 79 2e 0d 0a 20 20 20 20 23 0d 0a 20 20 20 20  ry...    #..    
0b80: 66 6f 72 65 61 63 68 20 65 78 70 6f 72 74 20 24  foreach export $
0b90: 65 78 70 6f 72 74 73 20 7b 0d 0a 20 20 20 20 20  exports {..     
0ba0: 20 23 0d 0a 20 20 20 20 20 20 23 20 4e 4f 54 45   #..      # NOTE
0bb0: 3a 20 46 6f 72 63 65 20 69 6d 70 6f 72 74 69 6e  : Force importin
0bc0: 67 20 6f 66 20 6f 75 72 20 65 78 70 6f 72 74 65  g of our exporte
0bd0: 64 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 74 6f 20  d commands into 
0be0: 74 68 65 20 67 6c 6f 62 61 6c 0d 0a 20 20 20 20  the global..    
0bf0: 20 20 23 20 20 20 20 20 20 20 6e 61 6d 65 73 70    #       namesp
0c00: 61 63 65 3f 20 20 4f 74 68 65 72 77 69 73 65 2c  ace?  Otherwise,
0c10: 20 73 65 65 20 69 66 20 74 68 65 20 63 6f 6d 6d   see if the comm
0c20: 61 6e 64 20 69 73 20 61 6c 72 65 61 64 79 0d 0a  and is already..
0c30: 20 20 20 20 20 20 23 20 20 20 20 20 20 20 70 72        #       pr
0c40: 65 73 65 6e 74 20 69 6e 20 74 68 65 20 67 6c 6f  esent in the glo
0c50: 62 61 6c 20 6e 61 6d 65 73 70 61 63 65 20 62 65  bal namespace be
0c60: 66 6f 72 65 20 74 72 79 69 6e 67 20 74 6f 20 69  fore trying to i
0c70: 6d 70 6f 72 74 0d 0a 20 20 20 20 20 20 23 20 20  mport..      #  
0c80: 20 20 20 20 20 69 74 2e 0d 0a 20 20 20 20 20 20       it...      
0c90: 23 0d 0a 20 20 20 20 20 20 69 66 20 7b 24 66 6f  #..      if {$fo
0ca0: 72 63 65 20 7c 7c 20 5c 0d 0a 20 20 20 20 20 20  rce || \..      
0cb0: 20 20 20 20 5b 6c 6c 65 6e 67 74 68 20 5b 69 6e      [llength [in
0cc0: 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 5b 61 70 70  fo commands [app
0cd0: 65 6e 64 41 72 67 73 20 3a 3a 20 24 65 78 70 6f  endArgs :: $expo
0ce0: 72 74 5d 5d 5d 20 3d 3d 20 30 7d 20 74 68 65 6e  rt]]] == 0} then
0cf0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 23 0d 0a 20   {..        #.. 
0d00: 20 20 20 20 20 20 20 23 20 4e 4f 54 45 3a 20 45         # NOTE: E
0d10: 78 70 6f 72 74 20 74 68 65 20 73 70 65 63 69 66  xport the specif
0d20: 69 65 64 20 63 6f 6d 6d 61 6e 64 20 66 72 6f 6d  ied command from
0d30: 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 6e   the specified n
0d40: 61 6d 65 73 70 61 63 65 2e 0d 0a 20 20 20 20 20  amespace...     
0d50: 20 20 20 23 0d 0a 20 20 20 20 20 20 20 20 6e 61     #..        na
0d60: 6d 65 73 70 61 63 65 20 65 76 61 6c 20 24 6e 61  mespace eval $na
0d70: 6d 65 73 70 61 63 65 20 5b 6c 69 73 74 20 6e 61  mespace [list na
0d80: 6d 65 73 70 61 63 65 20 65 78 70 6f 72 74 20 24  mespace export $
0d90: 65 78 70 6f 72 74 5d 0d 0a 0d 0a 20 20 20 20 20  export]....     
0da0: 20 20 20 23 0d 0a 20 20 20 20 20 20 20 20 23 20     #..        # 
0db0: 4e 4f 54 45 3a 20 49 6d 70 6f 72 74 20 74 68 65  NOTE: Import the
0dc0: 20 73 70 65 63 69 66 69 65 64 20 63 6f 6d 6d 61   specified comma
0dd0: 6e 64 20 69 6e 74 6f 20 74 68 65 20 67 6c 6f 62  nd into the glob
0de0: 61 6c 20 6e 61 6d 65 73 70 61 63 65 2e 0d 0a 20  al namespace... 
0df0: 20 20 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20         #..      
0e00: 20 20 73 65 74 20 6e 61 6d 65 73 70 61 63 65 45    set namespaceE
0e10: 78 70 6f 72 74 20 5b 61 70 70 65 6e 64 41 72 67  xport [appendArg
0e20: 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3a 3a 20  s $namespace :: 
0e30: 24 65 78 70 6f 72 74 5d 0d 0a 0d 0a 20 20 20 20  $export]....    
0e40: 20 20 20 20 69 66 20 7b 24 66 6f 72 63 65 7d 20      if {$force} 
0e50: 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 20 20  then {..        
0e60: 20 20 6e 61 6d 65 73 70 61 63 65 20 65 76 61 6c    namespace eval
0e70: 20 3a 3a 20 5b 6c 69 73 74 20 6e 61 6d 65 73 70   :: [list namesp
0e80: 61 63 65 20 69 6d 70 6f 72 74 20 2d 66 6f 72 63  ace import -forc
0e90: 65 20 24 6e 61 6d 65 73 70 61 63 65 45 78 70 6f  e $namespaceExpo
0ea0: 72 74 5d 0d 0a 20 20 20 20 20 20 20 20 7d 20 65  rt]..        } e
0eb0: 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 20 20 20  lse {..         
0ec0: 20 6e 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20   namespace eval 
0ed0: 3a 3a 20 5b 6c 69 73 74 20 6e 61 6d 65 73 70 61  :: [list namespa
0ee0: 63 65 20 69 6d 70 6f 72 74 20 24 6e 61 6d 65 73  ce import $names
0ef0: 70 61 63 65 45 78 70 6f 72 74 5d 0d 0a 20 20 20  paceExport]..   
0f00: 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 7d 0d       }..      }.
0f10: 0a 20 20 20 20 7d 0d 0a 20 20 7d 0d 0a 0c 0d 0a  .    }..  }.....
0f20: 20 20 23 0d 0a 20 20 23 20 4e 4f 54 45 3a 20 50    #..  # NOTE: P
0f30: 72 6f 76 69 64 65 20 74 68 65 20 45 61 67 6c 65  rovide the Eagle
0f40: 20 22 61 75 78 69 6c 69 61 72 79 22 20 70 61 63   "auxiliary" pac
0f50: 6b 61 67 65 20 74 6f 20 74 68 65 20 69 6e 74 65  kage to the inte
0f60: 72 70 72 65 74 65 72 2e 0d 0a 20 20 23 0d 0a 20  rpreter...  #.. 
0f70: 20 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65   package provide
0f80: 20 45 61 67 6c 65 2e 41 75 78 69 6c 69 61 72 79   Eagle.Auxiliary
0f90: 20 5c 0d 0a 20 20 20 20 5b 65 78 70 72 20 7b 5b   \..    [expr {[
0fa0: 69 73 45 61 67 6c 65 5d 20 3f 20 5b 69 6e 66 6f  isEagle] ? [info
0fb0: 20 65 6e 67 69 6e 65 20 50 61 74 63 68 4c 65 76   engine PatchLev
0fc0: 65 6c 5d 20 3a 20 22 31 2e 30 22 7d 5d 0d 0a 7d  el] : "1.0"}]..}
0fd0: 0d 0a 0c                                         ...