System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact b65d8a698c5a36513d8d6a5dc13953103a968e7e:


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 75 6e 6b 6f 62 6a 2e 65 61 67  .#..# unkobj.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 55 6e 6b 6e 6f  )..# Eagle Unkno
00b0: 77 6e 20 4f 62 6a 65 63 74 20 50 61 63 6b 61 67  wn Object 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 69 73 20 61 6e 20  OTE: This is an 
0320: 5b 75 6e 6b 6e 6f 77 6e 5d 20 70 72 6f 63 65 64  [unknown] proced
0330: 75 72 65 20 74 68 61 74 20 61 74 74 65 6d 70 74  ure that attempt
0340: 73 20 74 6f 20 6c 6f 6f 6b 75 70 20 74 68 65 20  s to lookup the 
0350: 6e 61 6d 65 0d 0a 20 20 23 20 20 20 20 20 20 20  name..  #       
0360: 61 73 20 61 20 43 4c 52 20 74 79 70 65 20 61 6e  as a CLR type an
0370: 64 20 74 68 65 6e 20 61 74 74 65 6d 70 74 73 20  d then attempts 
0380: 74 6f 20 75 73 65 20 5b 6f 62 6a 65 63 74 20 69  to use [object i
0390: 6e 76 6f 6b 65 5d 20 77 69 74 68 20 69 74 2c 0d  nvoke] with it,.
03a0: 0a 20 20 23 20 20 20 20 20 20 20 6d 65 72 67 69  .  #       mergi
03b0: 6e 67 20 6f 70 74 69 6f 6e 73 20 61 6e 64 20 61  ng options and a
03c0: 72 67 75 6d 65 6e 74 73 20 61 73 20 6e 65 63 65  rguments as nece
03d0: 73 73 61 72 79 2e 0d 0a 20 20 23 0d 0a 20 20 70  ssary...  #..  p
03e0: 72 6f 63 20 75 6e 6b 6e 6f 77 6e 4f 62 6a 65 63  roc unknownObjec
03f0: 74 49 6e 76 6f 6b 65 20 7b 20 6c 65 76 65 6c 20  tInvoke { level 
0400: 6e 61 6d 65 20 61 72 67 73 20 7d 20 7b 0d 0a 20  name args } {.. 
0410: 20 20 20 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20     if {[llength 
0420: 5b 69 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 20 6f  [info commands o
0430: 62 6a 65 63 74 5d 5d 20 3e 20 30 20 26 26 20 5c  bject]] > 0 && \
0440: 0d 0a 20 20 20 20 20 20 20 20 28 5b 69 73 4d 61  ..        ([isMa
0450: 6e 61 67 65 64 54 79 70 65 20 24 6e 61 6d 65 5d  nagedType $name]
0460: 20 7c 7c 20 5b 63 61 6e 47 65 74 4d 61 6e 61 67   || [canGetManag
0470: 65 64 54 79 70 65 20 24 6e 61 6d 65 20 6e 61 6d  edType $name nam
0480: 65 5d 29 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20  e])} then {..   
0490: 20 20 20 23 0d 0a 20 20 20 20 20 20 23 20 4e 4f     #..      # NO
04a0: 54 45 3a 20 47 65 74 20 70 6f 73 73 69 62 6c 65  TE: Get possible
04b0: 20 6f 70 74 69 6f 6e 73 20 66 6f 72 20 74 68 65   options for the
04c0: 20 5b 6f 62 6a 65 63 74 20 69 6e 76 6f 6b 65 5d   [object invoke]
04d0: 20 73 75 62 2d 63 6f 6d 6d 61 6e 64 2e 0d 0a 20   sub-command... 
04e0: 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20 73 65       #..      se
04f0: 74 20 6f 70 74 69 6f 6e 73 20 5b 6f 62 6a 65 63  t options [objec
0500: 74 20 69 6e 76 6f 6b 65 20 55 74 69 6c 69 74 79  t invoke Utility
0510: 20 47 65 74 49 6e 76 6f 6b 65 4f 70 74 69 6f 6e   GetInvokeOption
0520: 73 20 49 6e 76 6f 6b 65 5d 0d 0a 0d 0a 20 20 20  s Invoke]....   
0530: 20 20 20 23 0d 0a 20 20 20 20 20 20 23 20 4e 4f     #..      # NO
0540: 54 45 3a 20 43 72 65 61 74 65 20 61 72 67 75 6d  TE: Create argum
0550: 65 6e 74 20 6c 69 73 74 20 66 6f 72 20 74 68 65  ent list for the
0560: 20 61 72 74 69 66 69 63 69 61 6c 20 5b 6f 62 6a   artificial [obj
0570: 65 63 74 20 69 6e 76 6f 6b 65 5d 0d 0a 20 20 20  ect invoke]..   
0580: 20 20 20 23 20 20 20 20 20 20 20 61 6c 69 61 73     #       alias
0590: 2e 20 20 54 68 69 73 20 61 6c 77 61 79 73 20 68  .  This always h
05a0: 61 73 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73  as two arguments
05b0: 2e 0d 0a 20 20 20 20 20 20 23 0d 0a 20 20 20 20  ...      #..    
05c0: 20 20 73 65 74 20 61 72 67 75 6d 65 6e 74 73 31    set arguments1
05d0: 20 5b 6f 62 6a 65 63 74 20 63 72 65 61 74 65 20   [object create 
05e0: 41 72 67 75 6d 65 6e 74 4c 69 73 74 20 6f 62 6a  ArgumentList obj
05f0: 65 63 74 20 69 6e 76 6f 6b 65 5d 0d 0a 0d 0a 20  ect invoke].... 
0600: 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20 23 20       #..      # 
0610: 4e 4f 54 45 3a 20 43 72 65 61 74 65 20 61 72 67  NOTE: Create arg
0620: 75 6d 65 6e 74 20 6c 69 73 74 20 66 6f 72 20 74  ument list for t
0630: 68 65 20 65 6e 74 69 72 65 20 63 6f 6d 6d 61 6e  he entire comman
0640: 64 20 62 65 69 6e 67 20 68 61 6e 64 6c 65 64 2e  d being handled.
0650: 0d 0a 20 20 20 20 20 20 23 20 20 20 20 20 20 20  ..      #       
0660: 54 68 65 72 65 20 6d 61 79 20 62 65 20 6f 70 74  There may be opt
0670: 69 6f 6e 73 20 72 69 67 68 74 20 61 66 74 65 72  ions right after
0680: 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d   the command nam
0690: 65 20 69 74 73 65 6c 66 2e 0d 0a 20 20 20 20 20  e itself...     
06a0: 20 23 0d 0a 20 20 20 20 20 20 73 65 74 20 61 72   #..      set ar
06b0: 67 75 6d 65 6e 74 73 32 20 5b 65 76 61 6c 20 5c  guments2 [eval \
06c0: 0d 0a 20 20 20 20 20 20 20 20 20 20 6f 62 6a 65  ..          obje
06d0: 63 74 20 63 72 65 61 74 65 20 41 72 67 75 6d 65  ct create Argume
06e0: 6e 74 4c 69 73 74 20 5b 63 6f 6e 63 61 74 20 5b  ntList [concat [
06f0: 6c 69 73 74 20 24 6e 61 6d 65 5d 20 24 61 72 67  list $name] $arg
0700: 73 5d 5d 0d 0a 0d 0a 20 20 20 20 20 20 23 0d 0a  s]]....      #..
0710: 20 20 20 20 20 20 23 20 4e 4f 54 45 3a 20 53 65        # NOTE: Se
0720: 74 75 70 20 6f 75 74 70 75 74 20 61 72 67 75 6d  tup output argum
0730: 65 6e 74 73 20 6e 65 65 64 65 64 20 66 6f 72 20  ents needed for 
0740: 74 68 65 20 4d 65 72 67 65 41 72 67 75 6d 65 6e  the MergeArgumen
0750: 74 73 20 6d 65 74 68 6f 64 2e 0d 0a 20 20 20 20  ts method...    
0760: 20 20 23 0d 0a 20 20 20 20 20 20 73 65 74 20 61    #..      set a
0770: 72 67 75 6d 65 6e 74 73 33 20 6e 75 6c 6c 3b 20  rguments3 null; 
0780: 73 65 74 20 65 72 72 6f 72 20 6e 75 6c 6c 0d 0a  set error null..
0790: 0d 0a 20 20 20 20 20 20 23 0d 0a 20 20 20 20 20  ..      #..     
07a0: 20 23 20 4e 4f 54 45 3a 20 41 74 74 65 6d 70 74   # NOTE: Attempt
07b0: 20 74 6f 20 6d 65 72 67 65 20 74 68 65 20 6f 70   to merge the op
07c0: 74 69 6f 6e 20 61 6e 64 20 6e 6f 6e 2d 6f 70 74  tion and non-opt
07d0: 69 6f 6e 20 61 72 67 75 6d 65 6e 74 73 20 69 6e  ion arguments in
07e0: 74 6f 20 61 0d 0a 20 20 20 20 20 20 23 20 20 20  to a..      #   
07f0: 20 20 20 20 73 69 6e 67 6c 65 20 6c 69 73 74 20      single list 
0800: 6f 66 20 61 72 67 75 6d 65 6e 74 73 2e 0d 0a 20  of arguments... 
0810: 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20 73 65       #..      se
0820: 74 20 63 6f 64 65 20 5b 6f 62 6a 65 63 74 20 69  t code [object i
0830: 6e 76 6f 6b 65 20 2d 61 6c 69 61 73 20 2d 66 6c  nvoke -alias -fl
0840: 61 67 73 20 2b 4e 6f 6e 50 75 62 6c 69 63 20 5c  ags +NonPublic \
0850: 0d 0a 20 20 20 20 20 20 20 20 20 20 49 6e 74 65  ..          Inte
0860: 72 70 72 65 74 65 72 2e 47 65 74 41 63 74 69 76  rpreter.GetActiv
0870: 65 20 4d 65 72 67 65 41 72 67 75 6d 65 6e 74 73  e MergeArguments
0880: 20 24 6f 70 74 69 6f 6e 73 20 24 61 72 67 75 6d   $options $argum
0890: 65 6e 74 73 31 20 5c 0d 0a 20 20 20 20 20 20 20  ents1 \..       
08a0: 20 20 20 24 61 72 67 75 6d 65 6e 74 73 32 20 32     $arguments2 2
08b0: 20 31 20 66 61 6c 73 65 20 66 61 6c 73 65 20 61   1 false false a
08c0: 72 67 75 6d 65 6e 74 73 33 20 65 72 72 6f 72 5d  rguments3 error]
08d0: 0d 0a 0d 0a 20 20 20 20 20 20 23 0d 0a 20 20 20  ....      #..   
08e0: 20 20 20 23 20 4e 4f 54 45 3a 20 57 61 73 20 74     # NOTE: Was t
08f0: 68 65 20 61 72 67 75 6d 65 6e 74 20 6d 65 72 67  he argument merg
0900: 69 6e 67 20 70 72 6f 63 65 73 73 20 73 75 63 63  ing process succ
0910: 65 73 73 66 75 6c 3f 0d 0a 20 20 20 20 20 20 23  essful?..      #
0920: 0d 0a 20 20 20 20 20 20 69 66 20 7b 24 63 6f 64  ..      if {$cod
0930: 65 20 65 71 20 22 4f 6b 22 7d 20 74 68 65 6e 20  e eq "Ok"} then 
0940: 7b 0d 0a 20 20 20 20 20 20 20 20 23 0d 0a 20 20  {..        #..  
0950: 20 20 20 20 20 20 23 20 4e 4f 54 45 3a 20 4a 75        # NOTE: Ju
0960: 6d 70 20 75 70 20 66 72 6f 6d 20 6f 75 72 20 63  mp up from our c
0970: 61 6c 6c 20 66 72 61 6d 65 20 28 61 6e 64 20 6f  all frame (and o
0980: 70 74 69 6f 6e 61 6c 6c 79 20 74 68 61 74 20 6f  ptionally that o
0990: 66 20 6f 75 72 0d 0a 20 20 20 20 20 20 20 20 23  f our..        #
09a0: 20 20 20 20 20 20 20 63 61 6c 6c 65 72 29 20 61         caller) a
09b0: 6e 64 20 61 74 74 65 6d 70 74 20 74 6f 20 69 6e  nd attempt to in
09c0: 76 6f 6b 65 20 74 68 65 20 73 70 65 63 69 66 69  voke the specifi
09d0: 65 64 20 73 74 61 74 69 63 20 6f 62 6a 65 63 74  ed static object
09e0: 0d 0a 20 20 20 20 20 20 20 20 23 20 20 20 20 20  ..        #     
09f0: 20 20 6d 65 74 68 6f 64 20 77 69 74 68 20 74 68    method with th
0a00: 65 20 66 69 6e 61 6c 20 6c 69 73 74 20 6f 66 20  e final list of 
0a10: 6d 65 72 67 65 64 20 61 72 67 75 6d 65 6e 74 73  merged arguments
0a20: 2e 0d 0a 20 20 20 20 20 20 20 20 23 0d 0a 20 20  ...        #..  
0a30: 20 20 20 20 20 20 72 65 74 75 72 6e 20 5b 75 70        return [up
0a40: 6c 65 76 65 6c 20 5b 65 78 70 72 20 7b 24 6c 65  level [expr {$le
0a50: 76 65 6c 20 2b 20 31 7d 5d 20 5b 24 61 72 67 75  vel + 1}] [$argu
0a60: 6d 65 6e 74 73 33 20 54 6f 53 74 72 69 6e 67 5d  ments3 ToString]
0a70: 5d 0d 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 20  ]..      } else 
0a80: 7b 0d 0a 20 20 20 20 20 20 20 20 23 0d 0a 20 20  {..        #..  
0a90: 20 20 20 20 20 20 23 20 4e 4f 54 45 3a 20 46 61        # NOTE: Fa
0aa0: 69 6c 65 64 20 74 6f 20 6d 65 72 67 65 20 74 68  iled to merge th
0ab0: 65 20 61 72 67 75 6d 65 6e 74 73 2c 20 72 61 69  e arguments, rai
0ac0: 73 65 20 61 6e 20 65 72 72 6f 72 2e 0d 0a 20 20  se an error...  
0ad0: 20 20 20 20 20 20 23 0d 0a 20 20 20 20 20 20 20        #..       
0ae0: 20 65 72 72 6f 72 20 5b 24 65 72 72 6f 72 20 54   error [$error T
0af0: 6f 53 74 72 69 6e 67 5d 0d 0a 20 20 20 20 20 20  oString]..      
0b00: 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20  }..    }....    
0b10: 63 6f 6e 74 69 6e 75 65 3b 20 23 20 4e 4f 54 45  continue; # NOTE
0b20: 3a 20 4e 6f 74 20 68 61 6e 64 6c 65 64 2e 0d 0a  : Not handled...
0b30: 20 20 7d 0d 0a 0c 0d 0a 20 20 23 0d 0a 20 20 23    }.....  #..  #
0b40: 20 4e 4f 54 45 3a 20 50 72 6f 76 69 64 65 20 74   NOTE: Provide t
0b50: 68 65 20 45 61 67 6c 65 20 22 75 6e 6b 6e 6f 77  he Eagle "unknow
0b60: 6e 20 6f 62 6a 65 63 74 22 20 70 61 63 6b 61 67  n object" packag
0b70: 65 20 74 6f 20 74 68 65 20 69 6e 74 65 72 70 72  e to the interpr
0b80: 65 74 65 72 2e 0d 0a 20 20 23 0d 0a 20 20 70 61  eter...  #..  pa
0b90: 63 6b 61 67 65 20 70 72 6f 76 69 64 65 20 45 61  ckage provide Ea
0ba0: 67 6c 65 2e 55 6e 6b 6e 6f 77 6e 2e 4f 62 6a 65  gle.Unknown.Obje
0bb0: 63 74 20 5c 0d 0a 20 20 20 20 5b 65 78 70 72 20  ct \..    [expr 
0bc0: 7b 5b 69 73 45 61 67 6c 65 5d 20 3f 20 5b 69 6e  {[isEagle] ? [in
0bd0: 66 6f 20 65 6e 67 69 6e 65 20 50 61 74 63 68 4c  fo engine PatchL
0be0: 65 76 65 6c 5d 20 3a 20 22 31 2e 30 22 7d 5d 0d  evel] : "1.0"}].
0bf0: 0a 7d 0d 0a 0c                                   .}...