/ Hex Artifact Content
Login

Artifact 2b793e5c31486c8a01dd27dc0a631ad93704438e:


0000: 23 20 54 68 69 73 20 66 69 6c 65 20 63 6f 6e 74  # This file cont
0010: 61 69 6e 73 20 54 43 4c 20 70 72 6f 63 65 64 75  ains TCL procedu
0020: 72 65 73 20 75 73 65 64 20 74 6f 20 67 65 6e 65  res used to gene
0030: 72 61 74 65 20 73 74 61 6e 64 61 72 64 20 70 61  rate standard pa
0040: 72 74 73 20 6f 66 0a 23 20 77 65 62 20 70 61 67  rts of.# web pag
0050: 65 73 2e 0a 23 0a 0a 70 72 6f 63 20 68 65 61 64  es..#..proc head
0060: 65 72 20 7b 74 78 74 7d 20 7b 0a 20 20 70 75 74  er {txt} {.  put
0070: 73 20 22 3c 68 74 6d 6c 3e 3c 68 65 61 64 3e 3c  s "<html><head><
0080: 74 69 74 6c 65 3e 24 74 78 74 3c 2f 74 69 74 6c  title>$txt</titl
0090: 65 3e 3c 2f 68 65 61 64 3e 22 0a 20 20 70 75 74  e></head>".  put
00a0: 73 20 7b 3c 44 49 56 20 63 6c 61 73 73 3d 22 70  s {<DIV class="p
00b0: 64 66 5f 69 67 6e 6f 72 65 22 3e 7d 0a 20 20 70  df_ignore">}.  p
00c0: 75 74 73 20 5c 0a 7b 3c 62 6f 64 79 20 62 67 63  uts \.{<body bgc
00d0: 6f 6c 6f 72 3d 22 77 68 69 74 65 22 20 6c 69 6e  olor="white" lin
00e0: 6b 3d 22 23 35 30 36 39 35 66 22 20 76 6c 69 6e  k="#50695f" vlin
00f0: 6b 3d 22 23 35 30 38 38 39 36 22 3e 0a 3c 74 61  k="#508896">.<ta
0100: 62 6c 65 20 77 69 64 74 68 3d 22 31 30 30 25 22  ble width="100%"
0110: 20 62 6f 72 64 65 72 3d 22 30 22 3e 0a 3c 74 72   border="0">.<tr
0120: 3e 3c 74 64 20 76 61 6c 69 67 6e 3d 22 74 6f 70  ><td valign="top
0130: 22 3e 0a 3c 61 20 68 72 65 66 3d 22 69 6e 64 65  ">.<a href="inde
0140: 78 2e 68 74 6d 6c 22 3e 3c 69 6d 67 20 73 72 63  x.html"><img src
0150: 3d 22 73 71 6c 69 74 65 2e 67 69 66 22 20 62 6f  ="sqlite.gif" bo
0160: 72 64 65 72 3d 22 6e 6f 6e 65 22 3e 3c 2f 61 3e  rder="none"></a>
0170: 3c 2f 74 64 3e 0a 3c 74 64 20 77 69 64 74 68 3d  </td>.<td width=
0180: 22 31 30 30 25 22 3e 3c 2f 74 64 3e 0a 3c 74 64  "100%"></td>.<td
0190: 20 76 61 6c 69 67 6e 3d 22 62 6f 74 74 6f 6d 22   valign="bottom"
01a0: 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72  >.<ul>.<li><a hr
01b0: 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73  ef="http://www.s
01c0: 71 6c 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61  qlite.org/cvstra
01d0: 63 2f 74 6b 74 6e 65 77 22 3e 62 75 67 73 3c 2f  c/tktnew">bugs</
01e0: 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68  a></li>.<li><a h
01f0: 72 65 66 3d 22 63 68 61 6e 67 65 73 2e 68 74 6d  ref="changes.htm
0200: 6c 22 3e 63 68 61 6e 67 65 73 3c 2f 61 3e 3c 2f  l">changes</a></
0210: 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d  li>.<li><a href=
0220: 22 63 6f 6e 74 72 69 62 22 3e 63 6f 6e 74 72 69  "contrib">contri
0230: 62 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c  b</a></li>.<li><
0240: 61 20 68 72 65 66 3d 22 64 6f 77 6e 6c 6f 61 64  a href="download
0250: 2e 68 74 6d 6c 23 63 76 73 22 3e 63 76 73 26 6e  .html#cvs">cvs&n
0260: 62 73 70 3b 72 65 70 6f 73 69 74 6f 72 79 3c 2f  bsp;repository</
0270: 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68  a></li>.<li><a h
0280: 72 65 66 3d 22 64 6f 63 73 2e 68 74 6d 6c 22 3e  ref="docs.html">
0290: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 61  documentation</a
02a0: 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 3c 2f 74  ></li>.</ul>.</t
02b0: 64 3e 0a 3c 74 64 20 77 69 64 74 68 3d 22 31 30  d>.<td width="10
02c0: 22 3e 3c 2f 74 64 3e 0a 3c 74 64 20 76 61 6c 69  "></td>.<td vali
02d0: 67 6e 3d 22 62 6f 74 74 6f 6d 22 3e 0a 3c 75 6c  gn="bottom">.<ul
02e0: 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 64  >.<li><a href="d
02f0: 6f 77 6e 6c 6f 61 64 2e 68 74 6d 6c 22 3e 64 6f  ownload.html">do
0300: 77 6e 6c 6f 61 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a  wnload</a></li>.
0310: 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 66 61 71  <li><a href="faq
0320: 2e 68 74 6d 6c 22 3e 66 61 71 3c 2f 61 3e 3c 2f  .html">faq</a></
0330: 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d  li>.<li><a href=
0340: 22 69 6e 64 65 78 2e 68 74 6d 6c 22 3e 68 6f 6d  "index.html">hom
0350: 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c  e</a></li>.<li><
0360: 61 20 68 72 65 66 3d 22 63 6f 70 79 72 69 67 68  a href="copyrigh
0370: 74 2e 68 74 6d 6c 22 3e 6c 69 63 65 6e 73 65 3c  t.html">license<
0380: 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20  /a></li>.<li><a 
0390: 68 72 65 66 3d 22 69 6e 64 65 78 2e 68 74 6d 6c  href="index.html
03a0: 22 3e 6e 65 77 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a  ">news</a></li>.
03b0: 3c 2f 75 6c 3e 0a 3c 2f 74 64 3e 0a 3c 74 64 20  </ul>.</td>.<td 
03c0: 77 69 64 74 68 3d 22 31 30 22 3e 3c 2f 74 64 3e  width="10"></td>
03d0: 0a 3c 74 64 20 76 61 6c 69 67 6e 3d 22 62 6f 74  .<td valign="bot
03e0: 74 6f 6d 22 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e 3c  tom">.<ul>.<li><
03f0: 61 20 68 72 65 66 3d 22 71 75 69 63 6b 73 74 61  a href="quicksta
0400: 72 74 2e 68 74 6d 6c 22 3e 71 75 69 63 6b 26 6e  rt.html">quick&n
0410: 62 73 70 3b 73 74 61 72 74 3c 2f 61 3e 3c 2f 6c  bsp;start</a></l
0420: 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22  i>.<li><a href="
0430: 73 75 70 70 6f 72 74 2e 68 74 6d 6c 22 3e 73 75  support.html">su
0440: 70 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c  pport</a></li>.<
0450: 6c 69 3e 3c 61 20 68 72 65 66 3d 22 6c 61 6e 67  li><a href="lang
0460: 2e 68 74 6d 6c 22 3e 73 79 6e 74 61 78 3c 2f 61  .html">syntax</a
0470: 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72  ></li>.<li><a hr
0480: 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73  ef="http://www.s
0490: 71 6c 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61  qlite.org/cvstra
04a0: 63 2f 74 69 6d 65 6c 69 6e 65 22 3e 74 69 6d 65  c/timeline">time
04b0: 6c 69 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c  line</a></li>.<l
04c0: 69 3e 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a  i><a href="http:
04d0: 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67  //www.sqlite.org
04e0: 2f 63 76 73 74 72 61 63 2f 77 69 6b 69 22 3e 77  /cvstrac/wiki">w
04f0: 69 6b 69 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75  iki</a></li>.</u
0500: 6c 3e 0a 3c 2f 74 64 3e 0a 3c 2f 74 72 3e 3c 2f  l>.</td>.</tr></
0510: 74 61 62 6c 65 3e 0a 3c 74 61 62 6c 65 20 77 69  table>.<table wi
0520: 64 74 68 3d 22 31 30 30 25 22 3e 0a 3c 74 72 3e  dth="100%">.<tr>
0530: 3c 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23 38 30  <td bgcolor="#80
0540: 61 37 39 36 22 3e 3c 2f 74 64 3e 3c 2f 74 72 3e  a796"></td></tr>
0550: 0a 3c 2f 74 61 62 6c 65 3e 7d 0a 20 20 70 75 74  .</table>}.  put
0560: 73 20 3c 2f 44 49 56 3e 0a 7d 0a 0a 70 72 6f 63  s </DIV>.}..proc
0570: 20 66 6f 6f 74 65 72 20 7b 7b 72 63 73 69 64 20   footer {{rcsid 
0580: 7b 7d 7d 7d 20 7b 0a 20 20 70 75 74 73 20 7b 0a  {}}} {.  puts {.
0590: 3c 74 61 62 6c 65 20 77 69 64 74 68 3d 22 31 30  <table width="10
05a0: 30 25 22 3e 0a 3c 74 72 3e 3c 74 64 20 62 67 63  0%">.<tr><td bgc
05b0: 6f 6c 6f 72 3d 22 23 38 30 61 37 39 36 22 3e 3c  olor="#80a796"><
05c0: 2f 74 64 3e 3c 2f 74 72 3e 0a 3c 2f 74 61 62 6c  /td></tr>.</tabl
05d0: 65 3e 7d 0a 20 20 73 65 74 20 64 61 74 65 20 5b  e>}.  set date [
05e0: 6c 72 61 6e 67 65 20 24 72 63 73 69 64 20 33 20  lrange $rcsid 3 
05f0: 34 5d 0a 20 20 69 66 20 7b 24 64 61 74 65 21 3d  4].  if {$date!=
0600: 22 22 7d 20 7b 0a 20 20 20 20 70 75 74 73 20 22  ""} {.    puts "
0610: 3c 73 6d 61 6c 6c 3e 3c 69 3e 54 68 69 73 20 70  <small><i>This p
0620: 61 67 65 20 6c 61 73 74 20 6d 6f 64 69 66 69 65  age last modifie
0630: 64 20 6f 6e 20 24 64 61 74 65 3c 2f 69 3e 3c 2f  d on $date</i></
0640: 73 6d 61 6c 6c 3e 22 0a 20 20 7d 0a 20 20 70 75  small>".  }.  pu
0650: 74 73 20 7b 3c 2f 62 6f 64 79 3e 3c 2f 68 74 6d  ts {</body></htm
0660: 6c 3e 7d 0a 7d 0a 0a 0a 23 20 54 68 65 20 66 6f  l>}.}...# The fo
0670: 6c 6c 6f 77 69 6e 67 20 70 72 6f 63 20 69 73 20  llowing proc is 
0680: 75 73 65 64 20 74 6f 20 65 6e 73 75 72 65 20 63  used to ensure c
0690: 6f 6e 73 69 73 74 65 6e 74 20 66 6f 72 6d 61 74  onsistent format
06a0: 74 69 6e 67 20 69 6e 20 74 68 65 20 0a 23 20 48  ting in the .# H
06b0: 54 4d 4c 20 67 65 6e 65 72 61 74 65 64 20 62 79  TML generated by
06c0: 20 6c 61 6e 67 2e 74 63 6c 20 61 6e 64 20 70 72   lang.tcl and pr
06d0: 61 67 6d 61 2e 74 63 6c 2e 0a 23 0a 70 72 6f 63  agma.tcl..#.proc
06e0: 20 53 79 6e 74 61 78 20 7b 61 72 67 73 7d 20 7b   Syntax {args} {
06f0: 0a 20 20 70 75 74 73 20 7b 3c 74 61 62 6c 65 20  .  puts {<table 
0700: 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 31 30 22  cellpadding="10"
0710: 20 63 6c 61 73 73 3d 70 64 66 5f 73 79 6e 74 61   class=pdf_synta
0720: 78 3e 7d 0a 20 20 66 6f 72 65 61 63 68 20 7b 72  x>}.  foreach {r
0730: 75 6c 65 20 62 6f 64 79 7d 20 24 61 72 67 73 20  ule body} $args 
0740: 7b 0a 20 20 20 20 70 75 74 73 20 22 3c 74 72 3e  {.    puts "<tr>
0750: 3c 74 64 20 61 6c 69 67 6e 3d 5c 22 72 69 67 68  <td align=\"righ
0760: 74 5c 22 20 76 61 6c 69 67 6e 3d 5c 22 74 6f 70  t\" valign=\"top
0770: 5c 22 3e 22 0a 20 20 20 20 70 75 74 73 20 22 3c  \">".    puts "<
0780: 69 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 5c 22  i><font color=\"
0790: 23 66 66 33 34 33 34 5c 22 3e 24 72 75 6c 65 3c  #ff3434\">$rule<
07a0: 2f 66 6f 6e 74 3e 3c 2f 69 3e 26 6e 62 73 70 3b  /font></i>&nbsp;
07b0: 3a 3a 3d 3c 2f 74 64 3e 22 0a 20 20 20 20 72 65  ::=</td>".    re
07c0: 67 73 75 62 20 2d 61 6c 6c 20 3c 20 24 62 6f 64  gsub -all < $bod
07d0: 79 20 7b 25 4c 54 7d 20 62 6f 64 79 0a 20 20 20  y {%LT} body.   
07e0: 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 3e 20 24   regsub -all > $
07f0: 62 6f 64 79 20 7b 25 47 54 7d 20 62 6f 64 79 0a  body {%GT} body.
0800: 20 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20      regsub -all 
0810: 25 4c 54 20 24 62 6f 64 79 20 7b 3c 2f 66 6f 6e  %LT $body {</fon
0820: 74 3e 3c 2f 62 3e 3c 69 3e 3c 66 6f 6e 74 20 63  t></b><i><font c
0830: 6f 6c 6f 72 3d 22 23 66 66 33 34 33 34 22 3e 7d  olor="#ff3434">}
0840: 20 62 6f 64 79 0a 20 20 20 20 72 65 67 73 75 62   body.    regsub
0850: 20 2d 61 6c 6c 20 25 47 54 20 24 62 6f 64 79 20   -all %GT $body 
0860: 7b 3c 2f 66 6f 6e 74 3e 3c 2f 69 3e 3c 62 3e 3c  {</font></i><b><
0870: 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 23 32 63 32  font color="#2c2
0880: 63 66 30 22 3e 7d 20 62 6f 64 79 0a 20 20 20 20  cf0">} body.    
0890: 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b 5b 5d 7c  regsub -all {[]|
08a0: 5b 2a 3f 5d 7d 20 24 62 6f 64 79 20 7b 3c 2f 66  [*?]} $body {</f
08b0: 6f 6e 74 3e 3c 2f 62 3e 26 3c 62 3e 3c 66 6f 6e  ont></b>&<b><fon
08c0: 74 20 63 6f 6c 6f 72 3d 22 23 32 63 32 63 66 30  t color="#2c2cf0
08d0: 22 3e 7d 20 62 6f 64 79 0a 20 20 20 20 72 65 67  ">} body.    reg
08e0: 73 75 62 20 2d 61 6c 6c 20 22 5c 6e 22 20 5b 73  sub -all "\n" [s
08f0: 74 72 69 6e 67 20 74 72 69 6d 20 24 62 6f 64 79  tring trim $body
0900: 5d 20 22 3c 62 72 3e 5c 6e 22 20 62 6f 64 79 0a  ] "<br>\n" body.
0910: 20 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20      regsub -all 
0920: 22 5c 6e 20 20 2a 22 20 24 62 6f 64 79 20 22 5c  "\n  *" $body "\
0930: 6e 5c 5c 26 6e 62 73 70 3b 5c 5c 26 6e 62 73 70  n\\&nbsp;\\&nbsp
0940: 3b 5c 5c 26 6e 62 73 70 3b 5c 5c 26 6e 62 73 70  ;\\&nbsp;\\&nbsp
0950: 3b 22 20 62 6f 64 79 0a 20 20 20 20 72 65 67 73  ;" body.    regs
0960: 75 62 20 2d 61 6c 6c 20 7b 5b 7c 2c 2e 2a 28 29  ub -all {[|,.*()
0970: 5d 7d 20 24 62 6f 64 79 20 7b 3c 62 69 67 3e 26  ]} $body {<big>&
0980: 3c 2f 62 69 67 3e 7d 20 62 6f 64 79 0a 20 20 20  </big>} body.   
0990: 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b 20 3d   regsub -all { =
09a0: 20 7d 20 24 62 6f 64 79 20 7b 20 3c 62 69 67 3e   } $body { <big>
09b0: 3d 3c 2f 62 69 67 3e 20 7d 20 62 6f 64 79 0a 20  =</big> } body. 
09c0: 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b     regsub -all {
09d0: 53 54 41 52 7d 20 24 62 6f 64 79 20 7b 3c 62 69  STAR} $body {<bi
09e0: 67 3e 2a 3c 2f 62 69 67 3e 7d 20 62 6f 64 79 0a  g>*</big>} body.
09f0: 20 20 20 20 23 23 20 54 68 65 73 65 20 6d 65 74      ## These met
0a00: 61 63 68 61 72 61 63 74 65 72 73 20 6d 75 73 74  acharacters must
0a10: 20 62 65 20 68 61 6e 64 6c 65 64 20 74 6f 20 75   be handled to u
0a20: 6e 64 6f 20 62 65 69 6e 67 0a 20 20 20 20 23 23  ndo being.    ##
0a30: 20 74 72 65 61 74 65 64 20 61 73 20 53 51 4c 20   treated as SQL 
0a40: 70 75 6e 63 74 75 61 74 69 6f 6e 20 63 68 61 72  punctuation char
0a50: 61 63 74 65 72 73 20 61 62 6f 76 65 2e 0a 20 20  acters above..  
0a60: 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b 52    regsub -all {R
0a70: 50 50 4c 55 53 7d 20 24 62 6f 64 79 20 7b 3c 2f  PPLUS} $body {</
0a80: 66 6f 6e 74 3e 3c 2f 62 3e 29 2b 3c 62 3e 3c 66  font></b>)+<b><f
0a90: 6f 6e 74 20 63 6f 6c 6f 72 3d 22 23 32 63 32 63  ont color="#2c2c
0aa0: 66 30 22 3e 7d 20 62 6f 64 79 0a 20 20 20 20 72  f0">} body.    r
0ab0: 65 67 73 75 62 20 2d 61 6c 6c 20 7b 4c 50 7d 20  egsub -all {LP} 
0ac0: 24 62 6f 64 79 20 7b 3c 2f 66 6f 6e 74 3e 3c 2f  $body {</font></
0ad0: 62 3e 28 3c 62 3e 3c 66 6f 6e 74 20 63 6f 6c 6f  b>(<b><font colo
0ae0: 72 3d 22 23 32 63 32 63 66 30 22 3e 7d 20 62 6f  r="#2c2cf0">} bo
0af0: 64 79 0a 20 20 20 20 72 65 67 73 75 62 20 2d 61  dy.    regsub -a
0b00: 6c 6c 20 7b 52 50 7d 20 24 62 6f 64 79 20 7b 3c  ll {RP} $body {<
0b10: 2f 66 6f 6e 74 3e 3c 2f 62 3e 29 3c 62 3e 3c 66  /font></b>)<b><f
0b20: 6f 6e 74 20 63 6f 6c 6f 72 3d 22 23 32 63 32 63  ont color="#2c2c
0b30: 66 30 22 3e 7d 20 62 6f 64 79 0a 20 20 20 20 23  f0">} body.    #
0b40: 23 20 50 6c 61 63 65 20 74 68 65 20 6c 65 66 74  # Place the left
0b50: 2d 68 61 6e 64 20 73 69 64 65 20 6f 66 20 74 68  -hand side of th
0b60: 65 20 72 75 6c 65 20 69 6e 20 74 68 65 20 32 6e  e rule in the 2n
0b70: 64 20 74 61 62 6c 65 20 63 6f 6c 75 6d 6e 2e 0a  d table column..
0b80: 20 20 20 20 70 75 74 73 20 22 3c 74 64 3e 3c 62      puts "<td><b
0b90: 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 5c 22 23  ><font color=\"#
0ba0: 32 63 32 63 66 30 5c 22 3e 24 62 6f 64 79 3c 2f  2c2cf0\">$body</
0bb0: 66 6f 6e 74 3e 3c 2f 62 3e 3c 2f 74 64 3e 3c 2f  font></b></td></
0bc0: 74 72 3e 22 0a 20 20 7d 0a 20 20 70 75 74 73 20  tr>".  }.  puts 
0bd0: 7b 3c 2f 74 61 62 6c 65 3e 7d 0a 7d 0a           {</table>}.}.