System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 52d35f557cae46fc48510a03f6964ace00d7ed80:


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 66 69 6c 65 31 2e 65 61 67 6c  .#..# file1.eagl
0060: 65 20 2d 2d 0d 0a 23 0d 0a 23 20 45 78 74 65 6e  e --..#..# Exten
0070: 73 69 62 6c 65 20 41 64 61 70 74 61 62 6c 65 20  sible Adaptable 
0080: 47 65 6e 65 72 61 6c 69 7a 65 64 20 4c 6f 67 69  Generalized Logi
0090: 63 20 45 6e 67 69 6e 65 20 28 45 61 67 6c 65 29  c Engine (Eagle)
00a0: 0d 0a 23 20 45 61 67 6c 65 20 46 69 6c 65 20 31  ..# Eagle File 1
00b0: 20 50 61 63 6b 61 67 65 20 46 69 6c 65 0d 0a 23   Package File..#
00c0: 0d 0a 23 20 43 6f 70 79 72 69 67 68 74 20 28 63  ..# Copyright (c
00d0: 29 20 32 30 30 37 2d 32 30 31 32 20 62 79 20 4a  ) 2007-2012 by J
00e0: 6f 65 20 4d 69 73 74 61 63 68 6b 69 6e 2e 20 20  oe Mistachkin.  
00f0: 41 6c 6c 20 72 69 67 68 74 73 20 72 65 73 65 72  All rights reser
0100: 76 65 64 2e 0d 0a 23 0d 0a 23 20 53 65 65 20 74  ved...#..# See t
0110: 68 65 20 66 69 6c 65 20 22 6c 69 63 65 6e 73 65  he file "license
0120: 2e 74 65 72 6d 73 22 20 66 6f 72 20 69 6e 66 6f  .terms" for info
0130: 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65  rmation on usage
0140: 20 61 6e 64 20 72 65 64 69 73 74 72 69 62 75 74   and redistribut
0150: 69 6f 6e 20 6f 66 0d 0a 23 20 74 68 69 73 20 66  ion of..# this f
0160: 69 6c 65 2c 20 61 6e 64 20 66 6f 72 20 61 20 44  ile, and for a D
0170: 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c  ISCLAIMER OF ALL
0180: 20 57 41 52 52 41 4e 54 49 45 53 2e 0d 0a 23 0d   WARRANTIES...#.
0190: 0a 23 20 52 43 53 3a 20 40 28 23 29 20 24 49 64  .# RCS: @(#) $Id
01a0: 3a 20 24 0d 0a 23 0d 0a 23 23 23 23 23 23 23 23  : $..#..########
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 0d 0a 0d 0a 23 0d 0a 23 20  #######....#..# 
0200: 4e 4f 54 45 3a 20 55 73 65 20 6f 75 72 20 6f 77  NOTE: Use our ow
0210: 6e 20 6e 61 6d 65 73 70 61 63 65 20 68 65 72 65  n namespace here
0220: 20 62 65 63 61 75 73 65 20 65 76 65 6e 20 74 68   because even th
0230: 6f 75 67 68 20 77 65 20 64 6f 20 6e 6f 74 20 64  ough we do not d
0240: 69 72 65 63 74 6c 79 0d 0a 23 20 20 20 20 20 20  irectly..#      
0250: 20 73 75 70 70 6f 72 74 20 6e 61 6d 65 73 70 61   support namespa
0260: 63 65 73 20 6f 75 72 73 65 6c 76 65 73 2c 20 77  ces ourselves, w
0270: 65 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f  e do not want to
0280: 20 70 6f 6c 6c 75 74 65 20 74 68 65 20 67 6c 6f   pollute the glo
0290: 62 61 6c 0d 0a 23 20 20 20 20 20 20 20 6e 61 6d  bal..#       nam
02a0: 65 73 70 61 63 65 20 69 66 20 74 68 69 73 20 73  espace if this s
02b0: 63 72 69 70 74 20 61 63 74 75 61 6c 6c 79 20 65  cript actually e
02c0: 6e 64 73 20 75 70 20 62 65 69 6e 67 20 65 76 61  nds up being eva
02d0: 6c 75 61 74 65 64 20 69 6e 20 54 63 6c 2e 0d 0a  luated in Tcl...
02e0: 23 0d 0a 6e 61 6d 65 73 70 61 63 65 20 65 76 61  #..namespace eva
02f0: 6c 20 3a 3a 45 61 67 6c 65 20 7b 0d 0a 20 20 23  l ::Eagle {..  #
0300: 0d 0a 20 20 23 20 4e 4f 54 45 3a 20 54 68 69 73  ..  # NOTE: This
0310: 20 70 72 6f 63 65 64 75 72 65 20 72 65 63 6f 6e   procedure recon
0320: 66 69 67 75 72 65 73 20 74 68 65 20 73 70 65 63  figures the spec
0330: 69 66 69 65 64 20 63 68 61 6e 6e 65 6c 20 74 6f  ified channel to
0340: 20 66 75 6c 6c 20 62 69 6e 61 72 79 0d 0a 20 20   full binary..  
0350: 23 20 20 20 20 20 20 20 6d 6f 64 65 2e 0d 0a 20  #       mode... 
0360: 20 23 0d 0a 20 20 70 72 6f 63 20 6d 61 6b 65 42   #..  proc makeB
0370: 69 6e 61 72 79 43 68 61 6e 6e 65 6c 20 7b 20 63  inaryChannel { c
0380: 68 61 6e 6e 65 6c 20 7d 20 7b 0d 0a 20 20 20 20  hannel } {..    
0390: 66 63 6f 6e 66 69 67 75 72 65 20 24 63 68 61 6e  fconfigure $chan
03a0: 6e 65 6c 20 2d 65 6e 63 6f 64 69 6e 67 20 62 69  nel -encoding bi
03b0: 6e 61 72 79 20 2d 74 72 61 6e 73 6c 61 74 69 6f  nary -translatio
03c0: 6e 20 62 69 6e 61 72 79 3b 20 23 20 42 49 4e 41  n binary; # BINA
03d0: 52 59 20 44 41 54 41 0d 0a 20 20 7d 0d 0a 0c 0d  RY DATA..  }....
03e0: 0a 20 20 23 0d 0a 20 20 23 20 4e 4f 54 45 3a 20  .  #..  # NOTE: 
03f0: 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 72  This procedure r
0400: 65 61 64 73 20 61 6c 6c 20 64 61 74 61 20 66 72  eads all data fr
0410: 6f 6d 20 74 68 65 20 73 70 65 63 69 66 69 65 64  om the specified
0420: 20 62 69 6e 61 72 79 20 66 69 6c 65 20 61 6e 64   binary file and
0430: 0d 0a 20 20 23 20 20 20 20 20 20 20 72 65 74 75  ..  #       retu
0440: 72 6e 73 20 69 74 2e 0d 0a 20 20 23 0d 0a 20 20  rns it...  #..  
0450: 70 72 6f 63 20 72 65 61 64 46 69 6c 65 20 7b 20  proc readFile { 
0460: 66 69 6c 65 4e 61 6d 65 20 7d 20 7b 0d 0a 20 20  fileName } {..  
0470: 20 20 73 65 74 20 63 68 61 6e 6e 65 6c 20 5b 6f    set channel [o
0480: 70 65 6e 20 24 66 69 6c 65 4e 61 6d 65 20 52 44  pen $fileName RD
0490: 4f 4e 4c 59 5d 0d 0a 20 20 20 20 6d 61 6b 65 42  ONLY]..    makeB
04a0: 69 6e 61 72 79 43 68 61 6e 6e 65 6c 20 24 63 68  inaryChannel $ch
04b0: 61 6e 6e 65 6c 0d 0a 20 20 20 20 73 65 74 20 72  annel..    set r
04c0: 65 73 75 6c 74 20 5b 72 65 61 64 20 24 63 68 61  esult [read $cha
04d0: 6e 6e 65 6c 5d 0d 0a 20 20 20 20 63 6c 6f 73 65  nnel]..    close
04e0: 20 24 63 68 61 6e 6e 65 6c 0d 0a 20 20 20 20 72   $channel..    r
04f0: 65 74 75 72 6e 20 24 72 65 73 75 6c 74 0d 0a 20  eturn $result.. 
0500: 20 7d 0d 0a 0c 0d 0a 20 20 23 0d 0a 20 20 23 20   }.....  #..  # 
0510: 4e 4f 54 45 3a 20 54 68 69 73 20 70 72 6f 63 65  NOTE: This proce
0520: 64 75 72 65 20 77 72 69 74 65 73 20 61 6c 6c 20  dure writes all 
0530: 64 61 74 61 20 74 6f 20 74 68 65 20 73 70 65 63  data to the spec
0540: 69 66 69 65 64 20 62 69 6e 61 72 79 20 66 69 6c  ified binary fil
0550: 65 20 61 6e 64 0d 0a 20 20 23 20 20 20 20 20 20  e and..  #      
0560: 20 72 65 74 75 72 6e 73 20 61 6e 20 65 6d 70 74   returns an empt
0570: 79 20 73 74 72 69 6e 67 2e 20 20 50 72 65 76 69  y string.  Previ
0580: 6f 75 73 20 64 61 74 61 20 63 6f 6e 74 61 69 6e  ous data contain
0590: 65 64 20 69 6e 20 74 68 65 20 66 69 6c 65 2c 0d  ed in the file,.
05a0: 0a 20 20 23 20 20 20 20 20 20 20 69 66 20 61 6e  .  #       if an
05b0: 79 2c 20 69 73 20 6c 6f 73 74 2e 0d 0a 20 20 23  y, is lost...  #
05c0: 0d 0a 20 20 70 72 6f 63 20 77 72 69 74 65 46 69  ..  proc writeFi
05d0: 6c 65 20 7b 20 66 69 6c 65 4e 61 6d 65 20 64 61  le { fileName da
05e0: 74 61 20 7d 20 7b 0d 0a 20 20 20 20 73 65 74 20  ta } {..    set 
05f0: 63 68 61 6e 6e 65 6c 20 5b 6f 70 65 6e 20 24 66  channel [open $f
0600: 69 6c 65 4e 61 6d 65 20 7b 57 52 4f 4e 4c 59 20  ileName {WRONLY 
0610: 43 52 45 41 54 20 54 52 55 4e 43 7d 5d 0d 0a 20  CREAT TRUNC}].. 
0620: 20 20 20 6d 61 6b 65 42 69 6e 61 72 79 43 68 61     makeBinaryCha
0630: 6e 6e 65 6c 20 24 63 68 61 6e 6e 65 6c 0d 0a 20  nnel $channel.. 
0640: 20 20 20 70 75 74 73 20 2d 6e 6f 6e 65 77 6c 69     puts -nonewli
0650: 6e 65 20 24 63 68 61 6e 6e 65 6c 20 24 64 61 74  ne $channel $dat
0660: 61 0d 0a 20 20 20 20 63 6c 6f 73 65 20 24 63 68  a..    close $ch
0670: 61 6e 6e 65 6c 0d 0a 20 20 20 20 72 65 74 75 72  annel..    retur
0680: 6e 20 22 22 0d 0a 20 20 7d 0d 0a 0c 0d 0a 20 20  n ""..  }.....  
0690: 23 0d 0a 20 20 23 20 4e 4f 54 45 3a 20 54 68 69  #..  # NOTE: Thi
06a0: 73 20 70 72 6f 63 65 64 75 72 65 20 61 70 70 65  s procedure appe
06b0: 6e 64 73 20 64 61 74 61 20 74 6f 20 74 68 65 20  nds data to the 
06c0: 73 70 65 63 69 66 69 65 64 20 62 69 6e 61 72 79  specified binary
06d0: 20 66 69 6c 65 20 61 6e 64 0d 0a 20 20 23 20 20   file and..  #  
06e0: 20 20 20 20 20 72 65 74 75 72 6e 73 20 61 6e 20       returns an 
06f0: 65 6d 70 74 79 20 73 74 72 69 6e 67 2e 20 20 50  empty string.  P
0700: 72 65 76 69 6f 75 73 20 64 61 74 61 20 63 6f 6e  revious data con
0710: 74 61 69 6e 65 64 20 69 6e 20 74 68 65 20 66 69  tained in the fi
0720: 6c 65 2c 0d 0a 20 20 23 20 20 20 20 20 20 20 69  le,..  #       i
0730: 66 20 61 6e 79 2c 20 69 73 20 70 72 65 73 65 72  f any, is preser
0740: 76 65 64 2e 0d 0a 20 20 23 0d 0a 20 20 70 72 6f  ved...  #..  pro
0750: 63 20 61 70 70 65 6e 64 46 69 6c 65 20 7b 20 66  c appendFile { f
0760: 69 6c 65 4e 61 6d 65 20 64 61 74 61 20 7d 20 7b  ileName data } {
0770: 0d 0a 20 20 20 20 73 65 74 20 63 68 61 6e 6e 65  ..    set channe
0780: 6c 20 5b 6f 70 65 6e 20 24 66 69 6c 65 4e 61 6d  l [open $fileNam
0790: 65 20 7b 57 52 4f 4e 4c 59 20 43 52 45 41 54 20  e {WRONLY CREAT 
07a0: 41 50 50 45 4e 44 7d 5d 0d 0a 20 20 20 20 6d 61  APPEND}]..    ma
07b0: 6b 65 42 69 6e 61 72 79 43 68 61 6e 6e 65 6c 20  keBinaryChannel 
07c0: 24 63 68 61 6e 6e 65 6c 0d 0a 20 20 20 20 70 75  $channel..    pu
07d0: 74 73 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 24 63  ts -nonewline $c
07e0: 68 61 6e 6e 65 6c 20 24 64 61 74 61 0d 0a 20 20  hannel $data..  
07f0: 20 20 63 6c 6f 73 65 20 24 63 68 61 6e 6e 65 6c    close $channel
0800: 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 22 22 0d  ..    return "".
0810: 0a 20 20 7d 0d 0a 0c 0d 0a 20 20 23 0d 0a 20 20  .  }.....  #..  
0820: 23 20 4e 4f 54 45 3a 20 50 72 6f 76 69 64 65 20  # NOTE: Provide 
0830: 74 68 65 20 45 61 67 6c 65 20 22 66 69 6c 65 22  the Eagle "file"
0840: 20 70 61 63 6b 61 67 65 20 74 6f 20 74 68 65 20   package to the 
0850: 69 6e 74 65 72 70 72 65 74 65 72 2e 0d 0a 20 20  interpreter...  
0860: 23 0d 0a 20 20 70 61 63 6b 61 67 65 20 70 72 6f  #..  package pro
0870: 76 69 64 65 20 45 61 67 6c 65 2e 46 69 6c 65 20  vide Eagle.File 
0880: 5c 0d 0a 20 20 20 20 5b 65 78 70 72 20 7b 5b 69  \..    [expr {[i
0890: 73 45 61 67 6c 65 5d 20 3f 20 5b 69 6e 66 6f 20  sEagle] ? [info 
08a0: 65 6e 67 69 6e 65 20 50 61 74 63 68 4c 65 76 65  engine PatchLeve
08b0: 6c 5d 20 3a 20 22 31 2e 30 22 7d 5d 0d 0a 7d 0d  l] : "1.0"}]..}.
08c0: 0a 0c                                            ..