System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 8532a0731561c1931eecfb4b8aed4a07eca492d8:


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 62 75 69 6c 64 43 68 6d 2e 74  .#..# buildChm.t
0060: 63 6c 20 2d 2d 20 43 48 4d 20 42 75 69 6c 64 20  cl -- CHM Build 
0070: 57 72 61 70 70 65 72 20 26 20 50 6f 73 74 2d 50  Wrapper & Post-P
0080: 72 6f 63 73 73 69 6e 67 20 54 6f 6f 6c 0d 0a 23  rocssing Tool..#
0090: 0d 0a 23 20 57 41 52 4e 49 4e 47 3a 20 54 68 69  ..# WARNING: Thi
00a0: 73 20 74 6f 6f 6c 20 72 65 71 75 69 72 65 73 20  s tool requires 
00b0: 74 68 61 74 20 74 68 65 20 22 48 54 4d 4c 20 48  that the "HTML H
00c0: 65 6c 70 20 57 6f 72 6b 73 68 6f 70 22 20 61 6e  elp Workshop" an
00d0: 64 20 22 4e 44 6f 63 33 22 0d 0a 23 20 20 20 20  d "NDoc3"..#    
00e0: 20 20 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f        applicatio
00f0: 6e 73 20 61 72 65 20 69 6e 73 74 61 6c 6c 65 64  ns are installed
0100: 20 74 6f 20 74 68 65 69 72 20 64 65 66 61 75 6c   to their defaul
0110: 74 20 6c 6f 63 61 74 69 6f 6e 73 2e 0d 0a 23 0d  t locations...#.
0120: 0a 23 20 57 72 69 74 74 65 6e 20 62 79 20 4a 6f  .# Written by Jo
0130: 65 20 4d 69 73 74 61 63 68 6b 69 6e 2e 0d 0a 23  e Mistachkin...#
0140: 20 52 65 6c 65 61 73 65 64 20 74 6f 20 74 68 65   Released to the
0150: 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 2c 20   public domain, 
0160: 75 73 65 20 61 74 20 79 6f 75 72 20 6f 77 6e 20  use at your own 
0170: 72 69 73 6b 21 0d 0a 23 0d 0a 23 23 23 23 23 23  risk!..#..######
0180: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0190: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01a0: 23 23 23 23 23 23 23 23 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 0d 0a 0d 0a 70 72 6f  #########....pro
01d0: 63 20 72 65 61 64 46 69 6c 65 20 7b 20 66 69 6c  c readFile { fil
01e0: 65 4e 61 6d 65 20 7d 20 7b 0d 0a 20 20 73 65 74  eName } {..  set
01f0: 20 66 69 6c 65 5f 69 64 20 5b 6f 70 65 6e 20 24   file_id [open $
0200: 66 69 6c 65 4e 61 6d 65 20 52 44 4f 4e 4c 59 5d  fileName RDONLY]
0210: 0d 0a 20 20 66 63 6f 6e 66 69 67 75 72 65 20 24  ..  fconfigure $
0220: 66 69 6c 65 5f 69 64 20 2d 65 6e 63 6f 64 69 6e  file_id -encodin
0230: 67 20 62 69 6e 61 72 79 20 2d 74 72 61 6e 73 6c  g binary -transl
0240: 61 74 69 6f 6e 20 62 69 6e 61 72 79 0d 0a 20 20  ation binary..  
0250: 73 65 74 20 72 65 73 75 6c 74 20 5b 72 65 61 64  set result [read
0260: 20 24 66 69 6c 65 5f 69 64 5d 0d 0a 20 20 63 6c   $file_id]..  cl
0270: 6f 73 65 20 24 66 69 6c 65 5f 69 64 0d 0a 20 20  ose $file_id..  
0280: 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 0d 0a  return $result..
0290: 7d 0d 0a 0c 0d 0a 70 72 6f 63 20 77 72 69 74 65  }.....proc write
02a0: 46 69 6c 65 20 7b 20 66 69 6c 65 4e 61 6d 65 20  File { fileName 
02b0: 64 61 74 61 20 7d 20 7b 0d 0a 20 20 73 65 74 20  data } {..  set 
02c0: 66 69 6c 65 5f 69 64 20 5b 6f 70 65 6e 20 24 66  file_id [open $f
02d0: 69 6c 65 4e 61 6d 65 20 7b 57 52 4f 4e 4c 59 20  ileName {WRONLY 
02e0: 43 52 45 41 54 20 54 52 55 4e 43 7d 5d 0d 0a 20  CREAT TRUNC}].. 
02f0: 20 66 63 6f 6e 66 69 67 75 72 65 20 24 66 69 6c   fconfigure $fil
0300: 65 5f 69 64 20 2d 65 6e 63 6f 64 69 6e 67 20 62  e_id -encoding b
0310: 69 6e 61 72 79 20 2d 74 72 61 6e 73 6c 61 74 69  inary -translati
0320: 6f 6e 20 62 69 6e 61 72 79 0d 0a 20 20 70 75 74  on binary..  put
0330: 73 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 24 66 69  s -nonewline $fi
0340: 6c 65 5f 69 64 20 24 64 61 74 61 0d 0a 20 20 63  le_id $data..  c
0350: 6c 6f 73 65 20 24 66 69 6c 65 5f 69 64 0d 0a 20  lose $file_id.. 
0360: 20 72 65 74 75 72 6e 20 22 22 0d 0a 7d 0d 0a 0c   return ""..}...
0370: 0d 0a 70 72 6f 63 20 72 65 61 64 46 69 6c 65 41  ..proc readFileA
0380: 73 53 75 62 53 70 65 63 20 7b 20 66 69 6c 65 4e  sSubSpec { fileN
0390: 61 6d 65 20 7d 20 7b 0d 0a 20 20 73 65 74 20 64  ame } {..  set d
03a0: 61 74 61 20 5b 72 65 61 64 46 69 6c 65 20 24 66  ata [readFile $f
03b0: 69 6c 65 4e 61 6d 65 5d 0d 0a 20 20 72 65 67 73  ileName]..  regs
03c0: 75 62 20 2d 61 6c 6c 20 2d 2d 20 7b 26 7d 20 24  ub -all -- {&} $
03d0: 64 61 74 61 20 7b 5c 5c 5c 26 7d 20 64 61 74 61  data {\\\&} data
03e0: 0d 0a 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20  ..  regsub -all 
03f0: 2d 2d 20 7b 5c 5c 28 5c 64 2b 29 7d 20 24 64 61  -- {\\(\d+)} $da
0400: 74 61 20 7b 5c 5c 5c 5c 5c 31 7d 20 64 61 74 61  ta {\\\\\1} data
0410: 0d 0a 20 20 72 65 74 75 72 6e 20 24 64 61 74 61  ..  return $data
0420: 0d 0a 7d 0d 0a 0c 0d 0a 73 65 74 20 70 61 74 68  ..}.....set path
0430: 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b   [file dirname [
0440: 69 6e 66 6f 20 73 63 72 69 70 74 5d 5d 0d 0a 0d  info script]]...
0450: 0a 73 65 74 20 6e 44 6f 63 50 61 74 68 20 5b 66  .set nDocPath [f
0460: 69 6c 65 20 6a 6f 69 6e 20 24 65 6e 76 28 50 72  ile join $env(Pr
0470: 6f 67 72 61 6d 46 69 6c 65 73 29 20 4e 44 6f 63  ogramFiles) NDoc
0480: 33 5d 0d 0a 0d 0a 69 66 20 7b 21 5b 66 69 6c 65  3]....if {![file
0490: 20 69 73 64 69 72 65 63 74 6f 72 79 20 24 6e 44   isdirectory $nD
04a0: 6f 63 50 61 74 68 5d 7d 20 74 68 65 6e 20 7b 0d  ocPath]} then {.
04b0: 0a 20 20 70 75 74 73 20 73 74 64 6f 75 74 20 22  .  puts stdout "
04c0: 4e 44 6f 63 33 20 6d 75 73 74 20 62 65 20 69 6e  NDoc3 must be in
04d0: 73 74 61 6c 6c 65 64 20 74 6f 3a 20 24 6e 44 6f  stalled to: $nDo
04e0: 63 50 61 74 68 22 3b 20 65 78 69 74 20 31 0d 0a  cPath"; exit 1..
04f0: 7d 0d 0a 0d 0a 73 65 74 20 68 68 63 50 61 74 68  }....set hhcPath
0500: 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 65 6e 76   [file join $env
0510: 28 50 72 6f 67 72 61 6d 46 69 6c 65 73 29 20 22  (ProgramFiles) "
0520: 48 54 4d 4c 20 48 65 6c 70 20 57 6f 72 6b 73 68  HTML Help Worksh
0530: 6f 70 22 5d 0d 0a 0d 0a 69 66 20 7b 21 5b 66 69  op"]....if {![fi
0540: 6c 65 20 69 73 64 69 72 65 63 74 6f 72 79 20 24  le isdirectory $
0550: 68 68 63 50 61 74 68 5d 7d 20 74 68 65 6e 20 7b  hhcPath]} then {
0560: 0d 0a 20 20 70 75 74 73 20 73 74 64 6f 75 74 20  ..  puts stdout 
0570: 22 48 54 4d 4c 20 48 65 6c 70 20 57 6f 72 6b 73  "HTML Help Works
0580: 68 6f 70 20 6d 75 73 74 20 62 65 20 69 6e 73 74  hop must be inst
0590: 61 6c 6c 65 64 20 74 6f 3a 20 24 68 68 63 50 61  alled to: $hhcPa
05a0: 74 68 22 3b 20 65 78 69 74 20 31 0d 0a 7d 0d 0a  th"; exit 1..}..
05b0: 0d 0a 23 0d 0a 23 20 54 4f 44 4f 3a 20 49 66 20  ..#..# TODO: If 
05c0: 74 68 65 20 4e 44 6f 63 20 76 65 72 73 69 6f 6e  the NDoc version
05d0: 20 6e 75 6d 62 65 72 20 65 76 65 72 20 63 68 61   number ever cha
05e0: 6e 67 65 73 2c 20 74 68 65 20 6e 65 78 74 20 6c  nges, the next l
05f0: 69 6e 65 20 6f 66 20 63 6f 64 65 20 77 69 6c 6c  ine of code will
0600: 0d 0a 23 20 20 20 20 20 20 20 70 72 6f 62 61 62  ..#       probab
0610: 6c 79 20 6e 65 65 64 20 74 6f 20 62 65 20 75 70  ly need to be up
0620: 64 61 74 65 64 2e 0d 0a 23 0d 0a 73 65 74 20 6f  dated...#..set o
0630: 75 74 70 75 74 50 61 74 68 20 5b 66 69 6c 65 20  utputPath [file 
0640: 6a 6f 69 6e 20 4f 75 74 70 75 74 20 6e 64 6f 63  join Output ndoc
0650: 33 5f 6d 73 64 6e 5f 74 65 6d 70 5d 0d 0a 0d 0a  3_msdn_temp]....
0660: 73 65 74 20 63 6f 64 65 20 5b 63 61 74 63 68 20  set code [catch 
0670: 7b 65 78 65 63 20 5b 66 69 6c 65 20 6a 6f 69 6e  {exec [file join
0680: 20 24 6e 44 6f 63 50 61 74 68 20 62 69 6e 20 4e   $nDocPath bin N
0690: 44 6f 63 33 43 6f 6e 73 6f 6c 65 2e 65 78 65 5d  Doc3Console.exe]
06a0: 20 5c 0d 0a 20 20 20 20 22 2d 70 72 6f 6a 65 63   \..    "-projec
06b0: 74 3d 5b 66 69 6c 65 20 6e 61 74 69 76 65 6e 61  t=[file nativena
06c0: 6d 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 70  me [file join $p
06d0: 61 74 68 20 53 51 4c 69 74 65 2e 4e 45 54 2e 6e  ath SQLite.NET.n
06e0: 64 6f 63 5d 5d 22 7d 20 72 65 73 75 6c 74 5d 0d  doc]]"} result].
06f0: 0a 0d 0a 70 75 74 73 20 73 74 64 6f 75 74 20 24  ...puts stdout $
0700: 72 65 73 75 6c 74 3b 20 69 66 20 7b 24 63 6f 64  result; if {$cod
0710: 65 20 21 3d 20 30 7d 20 74 68 65 6e 20 7b 65 78  e != 0} then {ex
0720: 69 74 20 24 63 6f 64 65 7d 0d 0a 0d 0a 73 65 74  it $code}....set
0730: 20 66 69 6c 65 4e 61 6d 65 73 20 5b 6c 69 73 74   fileNames [list
0740: 20 53 51 4c 69 74 65 2e 4e 45 54 2e 68 68 70 20   SQLite.NET.hhp 
0750: 53 51 4c 69 74 65 2e 4e 45 54 2e 68 68 63 5d 0d  SQLite.NET.hhc].
0760: 0a 0d 0a 73 65 74 20 65 78 70 73 28 2e 68 68 63  ...set exps(.hhc
0770: 2c 31 29 20 7b 3c 21 2d 2d 54 68 69 73 20 64 6f  ,1) {<!--This do
0780: 63 75 6d 65 6e 74 20 63 6f 6e 74 61 69 6e 73 20  cument contains 
0790: 54 61 62 6c 65 20 6f 66 20 43 6f 6e 74 65 6e 74  Table of Content
07a0: 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f  s information fo
07b0: 72 5c 0d 0a 74 68 65 20 48 74 6d 6c 48 65 6c 70  r\..the HtmlHelp
07c0: 20 63 6f 6d 70 69 6c 65 72 5c 2e 2d 2d 3e 3c 55   compiler\.--><U
07d0: 4c 3e 7d 0d 0a 0d 0a 73 65 74 20 65 78 70 73 28  L>}....set exps(
07e0: 2e 68 68 70 2c 31 29 20 7b 44 65 66 61 75 6c 74  .hhp,1) {Default
07f0: 20 74 6f 70 69 63 3d 7e 53 79 73 74 65 6d 5c 2e   topic=~System\.
0800: 44 61 74 61 5c 2e 53 51 4c 69 74 65 5c 2e 68 74  Data\.SQLite\.ht
0810: 6d 6c 7d 0d 0a 73 65 74 20 65 78 70 73 28 2e 68  ml}..set exps(.h
0820: 68 70 2c 32 29 20 7b 22 7e 53 79 73 74 65 6d 5c  hp,2) {"~System\
0830: 2e 44 61 74 61 5c 2e 53 51 4c 69 74 65 5c 2e 68  .Data\.SQLite\.h
0840: 74 6d 6c 22 2c 22 7e 53 79 73 74 65 6d 5c 2e 44  tml","~System\.D
0850: 61 74 61 5c 2e 53 51 4c 69 74 65 5c 2e 68 74 6d  ata\.SQLite\.htm
0860: 6c 22 2c 2c 2c 2c 2c 7d 0d 0a 0d 0a 73 65 74 20  l",,,,,}....set 
0870: 73 75 62 53 70 65 63 73 28 2e 68 68 63 2c 31 29  subSpecs(.hhc,1)
0880: 20 5b 72 65 61 64 46 69 6c 65 41 73 53 75 62 53   [readFileAsSubS
0890: 70 65 63 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24  pec [file join $
08a0: 70 61 74 68 20 53 51 4c 69 74 65 2e 4e 45 54 2e  path SQLite.NET.
08b0: 68 68 63 5d 5d 0d 0a 73 65 74 20 73 75 62 53 70  hhc]]..set subSp
08c0: 65 63 73 28 2e 68 68 70 2c 31 29 20 7b 44 65 66  ecs(.hhp,1) {Def
08d0: 61 75 6c 74 20 74 6f 70 69 63 3d 77 65 6c 63 6f  ault topic=welco
08e0: 6d 65 2e 68 74 6d 6c 7d 0d 0a 73 65 74 20 73 75  me.html}..set su
08f0: 62 53 70 65 63 73 28 2e 68 68 70 2c 32 29 20 7b  bSpecs(.hhp,2) {
0900: 22 77 65 6c 63 6f 6d 65 2e 68 74 6d 6c 22 2c 22  "welcome.html","
0910: 77 65 6c 63 6f 6d 65 2e 68 74 6d 6c 22 2c 2c 2c  welcome.html",,,
0920: 2c 2c 7d 0d 0a 0d 0a 66 6f 72 65 61 63 68 20 66  ,,}....foreach f
0930: 69 6c 65 4e 61 6d 65 20 24 66 69 6c 65 4e 61 6d  ileName $fileNam
0940: 65 73 20 7b 0d 0a 20 20 73 65 74 20 66 69 6c 65  es {..  set file
0950: 4e 61 6d 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20  Name [file join 
0960: 24 70 61 74 68 20 24 6f 75 74 70 75 74 50 61 74  $path $outputPat
0970: 68 20 24 66 69 6c 65 4e 61 6d 65 5d 0d 0a 0d 0a  h $fileName]....
0980: 20 20 23 0d 0a 20 20 23 20 4e 4f 54 45 3a 20 4d    #..  # NOTE: M
0990: 61 6b 65 20 73 75 72 65 20 74 68 65 20 66 69 6c  ake sure the fil
09a0: 65 20 77 65 20 6e 65 65 64 20 61 63 74 75 61 6c  e we need actual
09b0: 6c 79 20 65 78 69 73 74 73 2e 0d 0a 20 20 23 0d  ly exists...  #.
09c0: 0a 20 20 69 66 20 7b 21 5b 66 69 6c 65 20 69 73  .  if {![file is
09d0: 66 69 6c 65 20 24 66 69 6c 65 4e 61 6d 65 5d 7d  file $fileName]}
09e0: 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 70 75 74   then {..    put
09f0: 73 20 73 74 64 6f 75 74 20 22 43 61 6e 6e 6f 74  s stdout "Cannot
0a00: 20 66 69 6e 64 20 66 69 6c 65 3a 20 24 66 69 6c   find file: $fil
0a10: 65 4e 61 6d 65 22 3b 20 65 78 69 74 20 31 0d 0a  eName"; exit 1..
0a20: 20 20 7d 0d 0a 0d 0a 20 20 23 0d 0a 20 20 23 20    }....  #..  # 
0a30: 4e 4f 54 45 3a 20 52 65 61 64 20 74 68 65 20 65  NOTE: Read the e
0a40: 6e 74 69 72 65 20 66 69 6c 65 20 69 6e 74 6f 20  ntire file into 
0a50: 6d 65 6d 6f 72 79 2e 0d 0a 20 20 23 0d 0a 20 20  memory...  #..  
0a60: 73 65 74 20 64 61 74 61 20 5b 72 65 61 64 46 69  set data [readFi
0a70: 6c 65 20 24 66 69 6c 65 4e 61 6d 65 5d 0d 0a 0d  le $fileName]...
0a80: 0a 20 20 23 0d 0a 20 20 23 20 4e 4f 54 45 3a 20  .  #..  # NOTE: 
0a90: 4e 6f 20 72 65 70 6c 61 63 65 6d 65 6e 74 73 20  No replacements 
0aa0: 68 61 76 65 20 62 65 65 6e 20 70 65 72 66 6f 72  have been perfor
0ab0: 6d 65 64 20 79 65 74 2e 0d 0a 20 20 23 0d 0a 20  med yet...  #.. 
0ac0: 20 73 65 74 20 63 6f 75 6e 74 20 30 0d 0a 0d 0a   set count 0....
0ad0: 20 20 66 6f 72 65 61 63 68 20 6e 61 6d 65 20 5b    foreach name [
0ae0: 6c 73 6f 72 74 20 5b 61 72 72 61 79 20 6e 61 6d  lsort [array nam
0af0: 65 73 20 65 78 70 73 20 5b 66 69 6c 65 20 65 78  es exps [file ex
0b00: 74 65 6e 73 69 6f 6e 20 24 66 69 6c 65 4e 61 6d  tension $fileNam
0b10: 65 5d 2c 2a 5d 5d 20 7b 0d 0a 20 20 20 20 73 65  e],*]] {..    se
0b20: 74 20 65 78 70 20 24 65 78 70 73 28 24 6e 61 6d  t exp $exps($nam
0b30: 65 29 0d 0a 20 20 20 20 73 65 74 20 73 75 62 53  e)..    set subS
0b40: 70 65 63 20 22 22 0d 0a 0d 0a 20 20 20 20 69 66  pec ""....    if
0b50: 20 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 73   {[info exists s
0b60: 75 62 53 70 65 63 73 28 24 6e 61 6d 65 29 5d 7d  ubSpecs($name)]}
0b70: 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 20 20 73   then {..      s
0b80: 65 74 20 73 75 62 53 70 65 63 20 24 73 75 62 53  et subSpec $subS
0b90: 70 65 63 73 28 24 6e 61 6d 65 29 0d 0a 20 20 20  pecs($name)..   
0ba0: 20 7d 0d 0a 0d 0a 20 20 20 20 73 65 74 20 65 78   }....    set ex
0bb0: 70 43 6f 75 6e 74 20 5b 72 65 67 73 75 62 20 2d  pCount [regsub -
0bc0: 2d 20 24 65 78 70 20 24 64 61 74 61 20 24 73 75  - $exp $data $su
0bd0: 62 53 70 65 63 20 64 61 74 61 5d 0d 0a 0d 0a 20  bSpec data].... 
0be0: 20 20 20 69 66 20 7b 24 65 78 70 43 6f 75 6e 74     if {$expCount
0bf0: 20 3e 20 30 7d 20 74 68 65 6e 20 7b 0d 0a 20 20   > 0} then {..  
0c00: 20 20 20 20 69 6e 63 72 20 63 6f 75 6e 74 20 24      incr count $
0c10: 65 78 70 43 6f 75 6e 74 0d 0a 20 20 20 20 7d 20  expCount..    } 
0c20: 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 70 75  else {..      pu
0c30: 74 73 20 73 74 64 6f 75 74 20 22 2a 57 41 52 4e  ts stdout "*WARN
0c40: 49 4e 47 2a 20 46 69 6c 65 20 5c 22 24 66 69 6c  ING* File \"$fil
0c50: 65 4e 61 6d 65 5c 22 20 64 6f 65 73 20 6e 6f 74  eName\" does not
0c60: 20 6d 61 74 63 68 3a 20 24 65 78 70 22 0d 0a 20   match: $exp".. 
0c70: 20 20 20 7d 0d 0a 20 20 7d 0d 0a 0d 0a 20 20 23     }..  }....  #
0c80: 0d 0a 20 20 23 20 4e 4f 54 45 3a 20 49 66 20 77  ..  # NOTE: If w
0c90: 65 20 61 63 74 75 61 6c 6c 79 20 70 65 72 66 6f  e actually perfo
0ca0: 72 6d 65 64 20 73 6f 6d 65 20 72 65 70 6c 61 63  rmed some replac
0cb0: 65 6d 65 6e 74 73 2c 20 72 65 77 72 69 74 65 20  ements, rewrite 
0cc0: 74 68 65 20 66 69 6c 65 2e 0d 0a 20 20 23 0d 0a  the file...  #..
0cd0: 20 20 69 66 20 7b 24 63 6f 75 6e 74 20 3e 20 30    if {$count > 0
0ce0: 7d 20 74 68 65 6e 20 7b 0d 0a 20 20 20 20 77 72  } then {..    wr
0cf0: 69 74 65 46 69 6c 65 20 24 66 69 6c 65 4e 61 6d  iteFile $fileNam
0d00: 65 20 24 64 61 74 61 0d 0a 20 20 7d 0d 0a 7d 0d  e $data..  }..}.
0d10: 0a 0d 0a 73 65 74 20 63 6f 64 65 20 5b 63 61 74  ...set code [cat
0d20: 63 68 20 7b 65 78 65 63 20 5b 66 69 6c 65 20 6a  ch {exec [file j
0d30: 6f 69 6e 20 24 68 68 63 50 61 74 68 20 68 68 63  oin $hhcPath hhc
0d40: 2e 65 78 65 5d 20 5c 0d 0a 20 20 20 20 5b 66 69  .exe] \..    [fi
0d50: 6c 65 20 6e 61 74 69 76 65 6e 61 6d 65 20 5b 66  le nativename [f
0d60: 69 6c 65 20 6a 6f 69 6e 20 24 70 61 74 68 20 24  ile join $path $
0d70: 6f 75 74 70 75 74 50 61 74 68 20 53 51 4c 69 74  outputPath SQLit
0d80: 65 2e 4e 45 54 2e 68 68 70 5d 5d 7d 20 72 65 73  e.NET.hhp]]} res
0d90: 75 6c 74 5d 0d 0a 0d 0a 23 0d 0a 23 20 4e 4f 54  ult]....#..# NOT
0da0: 45 3a 20 46 6f 72 20 68 68 63 2e 65 78 65 2c 20  E: For hhc.exe, 
0db0: 7a 65 72 6f 20 6d 65 61 6e 73 20 66 61 69 6c 75  zero means failu
0dc0: 72 65 2e 0d 0a 23 0d 0a 70 75 74 73 20 73 74 64  re...#..puts std
0dd0: 6f 75 74 20 24 72 65 73 75 6c 74 3b 20 69 66 20  out $result; if 
0de0: 7b 24 63 6f 64 65 20 3d 3d 20 30 7d 20 74 68 65  {$code == 0} the
0df0: 6e 20 7b 65 78 69 74 20 31 7d 0d 0a 0d 0a 66 69  n {exit 1}....fi
0e00: 6c 65 20 63 6f 70 79 20 2d 66 6f 72 63 65 20 5b  le copy -force [
0e10: 66 69 6c 65 20 6a 6f 69 6e 20 24 70 61 74 68 20  file join $path 
0e20: 24 6f 75 74 70 75 74 50 61 74 68 20 53 51 4c 69  $outputPath SQLi
0e30: 74 65 2e 4e 45 54 2e 63 68 6d 5d 20 5c 0d 0a 20  te.NET.chm] \.. 
0e40: 20 20 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 70     [file join $p
0e50: 61 74 68 20 53 51 4c 69 74 65 2e 4e 45 54 2e 63  ath SQLite.NET.c
0e60: 68 6d 5d 0d 0a 0d 0a 70 75 74 73 20 73 74 64 6f  hm]....puts stdo
0e70: 75 74 20 53 55 43 43 45 53 53 3b 20 65 78 69 74  ut SUCCESS; exit
0e80: 20 30 0d 0a                                       0..