System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 91b17a9ac96d1c748ec3f88eb880619e687b3a32:


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 72 75 6e 6f 70 74 2e 65 61 67  .#..# runopt.eag
0060: 6c 65 20 2d 2d 0d 0a 23 0d 0a 23 20 45 78 74 65  le --..#..# Exte
0070: 6e 73 69 62 6c 65 20 41 64 61 70 74 61 62 6c 65  nsible Adaptable
0080: 20 47 65 6e 65 72 61 6c 69 7a 65 64 20 4c 6f 67   Generalized Log
0090: 69 63 20 45 6e 67 69 6e 65 20 28 45 61 67 6c 65  ic Engine (Eagle
00a0: 29 0d 0a 23 20 45 61 67 6c 65 20 52 75 6e 74 69  )..# Eagle Runti
00b0: 6d 65 20 4f 70 74 69 6f 6e 20 50 61 63 6b 61 67  me Option Packag
00c0: 65 20 46 69 6c 65 0d 0a 23 0d 0a 23 20 43 6f 70  e File..#..# Cop
00d0: 79 72 69 67 68 74 20 28 63 29 20 32 30 30 37 2d  yright (c) 2007-
00e0: 32 30 31 32 20 62 79 20 4a 6f 65 20 4d 69 73 74  2012 by Joe Mist
00f0: 61 63 68 6b 69 6e 2e 20 20 41 6c 6c 20 72 69 67  achkin.  All rig
0100: 68 74 73 20 72 65 73 65 72 76 65 64 2e 0d 0a 23  hts reserved...#
0110: 0d 0a 23 20 53 65 65 20 74 68 65 20 66 69 6c 65  ..# See the file
0120: 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22   "license.terms"
0130: 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e   for information
0140: 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65   on usage and re
0150: 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6f 66 0d  distribution of.
0160: 0a 23 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e  .# this file, an
0170: 64 20 66 6f 72 20 61 20 44 49 53 43 4c 41 49 4d  d for a DISCLAIM
0180: 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e  ER OF ALL WARRAN
0190: 54 49 45 53 2e 0d 0a 23 0d 0a 23 20 52 43 53 3a  TIES...#..# RCS:
01a0: 20 40 28 23 29 20 24 49 64 3a 20 24 0d 0a 23 0d   @(#) $Id: $..#.
01b0: 0a 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 23 23  ################
0200: 0d 0a 0d 0a 23 0d 0a 23 20 4e 4f 54 45 3a 20 55  ....#..# NOTE: U
0210: 73 65 20 6f 75 72 20 6f 77 6e 20 6e 61 6d 65 73  se our own names
0220: 70 61 63 65 20 68 65 72 65 20 62 65 63 61 75 73  pace here becaus
0230: 65 20 65 76 65 6e 20 74 68 6f 75 67 68 20 77 65  e even though we
0240: 20 64 6f 20 6e 6f 74 20 64 69 72 65 63 74 6c 79   do not directly
0250: 0d 0a 23 20 20 20 20 20 20 20 73 75 70 70 6f 72  ..#       suppor
0260: 74 20 6e 61 6d 65 73 70 61 63 65 73 20 6f 75 72  t namespaces our
0270: 73 65 6c 76 65 73 2c 20 77 65 20 64 6f 20 6e 6f  selves, we do no
0280: 74 20 77 61 6e 74 20 74 6f 20 70 6f 6c 6c 75 74  t want to pollut
0290: 65 20 74 68 65 20 67 6c 6f 62 61 6c 0d 0a 23 20  e the global..# 
02a0: 20 20 20 20 20 20 6e 61 6d 65 73 70 61 63 65 20        namespace 
02b0: 69 66 20 74 68 69 73 20 73 63 72 69 70 74 20 61  if this script a
02c0: 63 74 75 61 6c 6c 79 20 65 6e 64 73 20 75 70 20  ctually ends up 
02d0: 62 65 69 6e 67 20 65 76 61 6c 75 61 74 65 64 20  being evaluated 
02e0: 69 6e 20 54 63 6c 2e 0d 0a 23 0d 0a 6e 61 6d 65  in Tcl...#..name
02f0: 73 70 61 63 65 20 65 76 61 6c 20 3a 3a 45 61 67  space eval ::Eag
0300: 6c 65 20 7b 0d 0a 20 20 23 0d 0a 20 20 23 20 4e  le {..  #..  # N
0310: 4f 54 45 3a 20 54 68 69 73 20 70 72 6f 63 65 64  OTE: This proced
0320: 75 72 65 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d  ure returns non-
0330: 7a 65 72 6f 20 69 66 20 74 68 65 20 73 70 65 63  zero if the spec
0340: 69 66 69 65 64 20 72 75 6e 74 69 6d 65 20 6f 70  ified runtime op
0350: 74 69 6f 6e 0d 0a 20 20 23 20 20 20 20 20 20 20  tion..  #       
0360: 69 73 20 63 75 72 72 65 6e 74 6c 79 20 73 65 74  is currently set
0370: 2e 0d 0a 20 20 23 0d 0a 20 20 70 72 6f 63 20 68  ...  #..  proc h
0380: 61 73 52 75 6e 74 69 6d 65 4f 70 74 69 6f 6e 20  asRuntimeOption 
0390: 7b 20 6e 61 6d 65 20 7b 64 65 66 61 75 6c 74 20  { name {default 
03a0: 66 61 6c 73 65 7d 20 7d 20 7b 0d 0a 20 20 20 20  false} } {..    
03b0: 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 5b 69 6e  if {[llength [in
03c0: 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 64 65 62 75  fo commands debu
03d0: 67 5d 5d 20 3e 20 30 7d 20 74 68 65 6e 20 7b 0d  g]] > 0} then {.
03e0: 0a 20 20 20 20 20 20 69 66 20 7b 5b 6c 6c 65 6e  .      if {[llen
03f0: 67 74 68 20 5b 69 6e 66 6f 20 73 75 62 63 6f 6d  gth [info subcom
0400: 6d 61 6e 64 73 20 64 65 62 75 67 20 72 75 6e 74  mands debug runt
0410: 69 6d 65 6f 70 74 69 6f 6e 5d 5d 20 3e 20 30 7d  imeoption]] > 0}
0420: 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 20   then {..       
0430: 20 69 66 20 7b 5b 63 61 74 63 68 20 7b 64 65 62   if {[catch {deb
0440: 75 67 20 72 75 6e 74 69 6d 65 6f 70 74 69 6f 6e  ug runtimeoption
0450: 20 68 61 73 20 24 6e 61 6d 65 7d 20 72 65 73 75   has $name} resu
0460: 6c 74 5d 20 3d 3d 20 30 7d 20 74 68 65 6e 20 7b  lt] == 0} then {
0470: 0d 0a 20 20 20 20 20 20 20 20 20 20 72 65 74 75  ..          retu
0480: 72 6e 20 24 72 65 73 75 6c 74 0d 0a 20 20 20 20  rn $result..    
0490: 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 7d 0d 0a      }..      }..
04a0: 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 69 66 20      }....    if 
04b0: 7b 5b 6c 6c 65 6e 67 74 68 20 5b 69 6e 66 6f 20  {[llength [info 
04c0: 63 6f 6d 6d 61 6e 64 73 20 6f 62 6a 65 63 74 5d  commands object]
04d0: 5d 20 3e 20 30 7d 20 74 68 65 6e 20 7b 0d 0a 20  ] > 0} then {.. 
04e0: 20 20 20 20 20 69 66 20 7b 5b 63 61 74 63 68 20       if {[catch 
04f0: 7b 0d 0a 20 20 20 20 20 20 20 20 6f 62 6a 65 63  {..        objec
0500: 74 20 69 6e 76 6f 6b 65 20 49 6e 74 65 72 70 72  t invoke Interpr
0510: 65 74 65 72 2e 47 65 74 41 63 74 69 76 65 20 48  eter.GetActive H
0520: 61 73 52 75 6e 74 69 6d 65 4f 70 74 69 6f 6e 20  asRuntimeOption 
0530: 24 6e 61 6d 65 0d 0a 20 20 20 20 20 20 7d 20 72  $name..      } r
0540: 65 73 75 6c 74 5d 20 3d 3d 20 30 7d 20 74 68 65  esult] == 0} the
0550: 6e 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 74  n {..        ret
0560: 75 72 6e 20 24 72 65 73 75 6c 74 0d 0a 20 20 20  urn $result..   
0570: 20 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20     }..    }.... 
0580: 20 20 20 72 65 74 75 72 6e 20 24 64 65 66 61 75     return $defau
0590: 6c 74 0d 0a 20 20 7d 0d 0a 0c 0d 0a 20 20 23 0d  lt..  }.....  #.
05a0: 0a 20 20 23 20 4e 4f 54 45 3a 20 54 68 69 73 20  .  # NOTE: This 
05b0: 70 72 6f 63 65 64 75 72 65 20 61 74 74 65 6d 70  procedure attemp
05c0: 74 73 20 74 6f 20 61 64 64 20 74 68 65 20 73 70  ts to add the sp
05d0: 65 63 69 66 69 65 64 20 72 75 6e 74 69 6d 65 20  ecified runtime 
05e0: 6f 70 74 69 6f 6e 20 61 6e 64 0d 0a 20 20 23 20  option and..  # 
05f0: 20 20 20 20 20 20 72 65 74 75 72 6e 73 20 6e 6f        returns no
0600: 6e 2d 7a 65 72 6f 20 69 66 20 69 74 20 77 61 73  n-zero if it was
0610: 20 61 63 74 75 61 6c 6c 79 20 61 64 64 65 64 2e   actually added.
0620: 0d 0a 20 20 23 0d 0a 20 20 70 72 6f 63 20 61 64  ..  #..  proc ad
0630: 64 52 75 6e 74 69 6d 65 4f 70 74 69 6f 6e 20 7b  dRuntimeOption {
0640: 20 6e 61 6d 65 20 7d 20 7b 0d 0a 20 20 20 20 69   name } {..    i
0650: 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 5b 69 6e 66  f {[llength [inf
0660: 6f 20 63 6f 6d 6d 61 6e 64 73 20 64 65 62 75 67  o commands debug
0670: 5d 5d 20 3e 20 30 7d 20 74 68 65 6e 20 7b 0d 0a  ]] > 0} then {..
0680: 20 20 20 20 20 20 69 66 20 7b 5b 6c 6c 65 6e 67        if {[lleng
0690: 74 68 20 5b 69 6e 66 6f 20 73 75 62 63 6f 6d 6d  th [info subcomm
06a0: 61 6e 64 73 20 64 65 62 75 67 20 72 75 6e 74 69  ands debug runti
06b0: 6d 65 6f 70 74 69 6f 6e 5d 5d 20 3e 20 30 7d 20  meoption]] > 0} 
06c0: 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 20 20  then {..        
06d0: 69 66 20 7b 5b 63 61 74 63 68 20 7b 64 65 62 75  if {[catch {debu
06e0: 67 20 72 75 6e 74 69 6d 65 6f 70 74 69 6f 6e 20  g runtimeoption 
06f0: 61 64 64 20 24 6e 61 6d 65 7d 20 72 65 73 75 6c  add $name} resul
0700: 74 5d 20 3d 3d 20 30 7d 20 74 68 65 6e 20 7b 0d  t] == 0} then {.
0710: 0a 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72  .          retur
0720: 6e 20 24 72 65 73 75 6c 74 0d 0a 20 20 20 20 20  n $result..     
0730: 20 20 20 7d 0d 0a 20 20 20 20 20 20 7d 0d 0a 20     }..      }.. 
0740: 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 69 66 20 7b     }....    if {
0750: 5b 6c 6c 65 6e 67 74 68 20 5b 69 6e 66 6f 20 63  [llength [info c
0760: 6f 6d 6d 61 6e 64 73 20 6f 62 6a 65 63 74 5d 5d  ommands object]]
0770: 20 3e 20 30 7d 20 74 68 65 6e 20 7b 0d 0a 20 20   > 0} then {..  
0780: 20 20 20 20 69 66 20 7b 5b 63 61 74 63 68 20 7b      if {[catch {
0790: 0d 0a 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74  ..        object
07a0: 20 69 6e 76 6f 6b 65 20 49 6e 74 65 72 70 72 65   invoke Interpre
07b0: 74 65 72 2e 47 65 74 41 63 74 69 76 65 20 41 64  ter.GetActive Ad
07c0: 64 52 75 6e 74 69 6d 65 4f 70 74 69 6f 6e 20 24  dRuntimeOption $
07d0: 6e 61 6d 65 0d 0a 20 20 20 20 20 20 7d 20 72 65  name..      } re
07e0: 73 75 6c 74 5d 20 3d 3d 20 30 7d 20 74 68 65 6e  sult] == 0} then
07f0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75   {..        retu
0800: 72 6e 20 24 72 65 73 75 6c 74 0d 0a 20 20 20 20  rn $result..    
0810: 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20    }..    }....  
0820: 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 0d 0a    return false..
0830: 20 20 7d 0d 0a 0c 0d 0a 20 20 23 0d 0a 20 20 23    }.....  #..  #
0840: 20 4e 4f 54 45 3a 20 54 68 69 73 20 70 72 6f 63   NOTE: This proc
0850: 65 64 75 72 65 20 61 74 74 65 6d 70 74 73 20 74  edure attempts t
0860: 6f 20 72 65 6d 6f 76 65 20 74 68 65 20 73 70 65  o remove the spe
0870: 63 69 66 69 65 64 20 72 75 6e 74 69 6d 65 20 6f  cified runtime o
0880: 70 74 69 6f 6e 0d 0a 20 20 23 20 20 20 20 20 20  ption..  #      
0890: 20 61 6e 64 20 72 65 74 75 72 6e 73 20 6e 6f 6e   and returns non
08a0: 2d 7a 65 72 6f 20 69 66 20 69 74 20 77 61 73 20  -zero if it was 
08b0: 61 63 74 75 61 6c 6c 79 20 72 65 6d 6f 76 65 64  actually removed
08c0: 2e 0d 0a 20 20 23 0d 0a 20 20 70 72 6f 63 20 72  ...  #..  proc r
08d0: 65 6d 6f 76 65 52 75 6e 74 69 6d 65 4f 70 74 69  emoveRuntimeOpti
08e0: 6f 6e 20 7b 20 6e 61 6d 65 20 7d 20 7b 0d 0a 20  on { name } {.. 
08f0: 20 20 20 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20     if {[llength 
0900: 5b 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 64  [info commands d
0910: 65 62 75 67 5d 5d 20 3e 20 30 7d 20 74 68 65 6e  ebug]] > 0} then
0920: 20 7b 0d 0a 20 20 20 20 20 20 69 66 20 7b 5b 6c   {..      if {[l
0930: 6c 65 6e 67 74 68 20 5b 69 6e 66 6f 20 73 75 62  length [info sub
0940: 63 6f 6d 6d 61 6e 64 73 20 64 65 62 75 67 20 72  commands debug r
0950: 75 6e 74 69 6d 65 6f 70 74 69 6f 6e 5d 5d 20 3e  untimeoption]] >
0960: 20 30 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20   0} then {..    
0970: 20 20 20 20 69 66 20 7b 5b 63 61 74 63 68 20 7b      if {[catch {
0980: 64 65 62 75 67 20 72 75 6e 74 69 6d 65 6f 70 74  debug runtimeopt
0990: 69 6f 6e 20 72 65 6d 6f 76 65 20 24 6e 61 6d 65  ion remove $name
09a0: 7d 20 72 65 73 75 6c 74 5d 20 3d 3d 20 30 7d 20  } result] == 0} 
09b0: 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 20 20  then {..        
09c0: 20 20 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74    return $result
09d0: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20  ..        }..   
09e0: 20 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20     }..    }.... 
09f0: 20 20 20 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20     if {[llength 
0a00: 5b 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 6f  [info commands o
0a10: 62 6a 65 63 74 5d 5d 20 3e 20 30 7d 20 74 68 65  bject]] > 0} the
0a20: 6e 20 7b 0d 0a 20 20 20 20 20 20 69 66 20 7b 5b  n {..      if {[
0a30: 63 61 74 63 68 20 7b 0d 0a 20 20 20 20 20 20 20  catch {..       
0a40: 20 6f 62 6a 65 63 74 20 69 6e 76 6f 6b 65 20 49   object invoke I
0a50: 6e 74 65 72 70 72 65 74 65 72 2e 47 65 74 41 63  nterpreter.GetAc
0a60: 74 69 76 65 20 52 65 6d 6f 76 65 52 75 6e 74 69  tive RemoveRunti
0a70: 6d 65 4f 70 74 69 6f 6e 20 24 6e 61 6d 65 0d 0a  meOption $name..
0a80: 20 20 20 20 20 20 7d 20 72 65 73 75 6c 74 5d 20        } result] 
0a90: 3d 3d 20 30 7d 20 74 68 65 6e 20 7b 0d 0a 20 20  == 0} then {..  
0aa0: 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65        return $re
0ab0: 73 75 6c 74 0d 0a 20 20 20 20 20 20 7d 0d 0a 20  sult..      }.. 
0ac0: 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 72 65 74 75     }....    retu
0ad0: 72 6e 20 66 61 6c 73 65 0d 0a 20 20 7d 0d 0a 0c  rn false..  }...
0ae0: 0d 0a 20 20 23 0d 0a 20 20 23 20 4e 4f 54 45 3a  ..  #..  # NOTE:
0af0: 20 50 72 6f 76 69 64 65 20 74 68 65 20 45 61 67   Provide the Eag
0b00: 6c 65 20 22 72 75 6e 74 69 6d 65 20 6f 70 74 69  le "runtime opti
0b10: 6f 6e 22 20 70 61 63 6b 61 67 65 20 74 6f 20 74  on" package to t
0b20: 68 65 20 69 6e 74 65 72 70 72 65 74 65 72 2e 0d  he interpreter..
0b30: 0a 20 20 23 0d 0a 20 20 70 61 63 6b 61 67 65 20  .  #..  package 
0b40: 70 72 6f 76 69 64 65 20 45 61 67 6c 65 2e 52 75  provide Eagle.Ru
0b50: 6e 74 69 6d 65 2e 4f 70 74 69 6f 6e 20 5c 0d 0a  ntime.Option \..
0b60: 20 20 20 20 5b 65 78 70 72 20 7b 5b 69 73 45 61      [expr {[isEa
0b70: 67 6c 65 5d 20 3f 20 5b 69 6e 66 6f 20 65 6e 67  gle] ? [info eng
0b80: 69 6e 65 20 50 61 74 63 68 4c 65 76 65 6c 5d 20  ine PatchLevel] 
0b90: 3a 20 22 31 2e 30 22 7d 5d 0d 0a 7d 0d 0a 0c     : "1.0"}]..}...