/ Hex Artifact Content
Login

Artifact c24da36fe05f72b44f84dba08e020f924a605eac:


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 73 75 70 70 6f 72 74 2e  a href="support.
0370: 68 74 6d 6c 22 3e 6d 61 69 6c 69 6e 67 26 6e 62  html">mailing&nb
0380: 73 70 3b 6c 69 73 74 3c 2f 61 3e 3c 2f 6c 69 3e  sp;list</a></li>
0390: 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 69 6e  .<li><a href="in
03a0: 64 65 78 2e 68 74 6d 6c 22 3e 6e 65 77 73 3c 2f  dex.html">news</
03b0: 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 3c 2f  a></li>.</ul>.</
03c0: 74 64 3e 0a 3c 74 64 20 77 69 64 74 68 3d 22 31  td>.<td width="1
03d0: 30 22 3e 3c 2f 74 64 3e 0a 3c 74 64 20 76 61 6c  0"></td>.<td val
03e0: 69 67 6e 3d 22 62 6f 74 74 6f 6d 22 3e 0a 3c 75  ign="bottom">.<u
03f0: 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22  l>.<li><a href="
0400: 71 75 69 63 6b 73 74 61 72 74 2e 68 74 6d 6c 22  quickstart.html"
0410: 3e 71 75 69 63 6b 26 6e 62 73 70 3b 73 74 61 72  >quick&nbsp;star
0420: 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c  t</a></li>.<li><
0430: 61 20 68 72 65 66 3d 22 73 75 70 70 6f 72 74 2e  a href="support.
0440: 68 74 6d 6c 22 3e 73 75 70 70 6f 72 74 3c 2f 61  html">support</a
0450: 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72  ></li>.<li><a hr
0460: 65 66 3d 22 6c 61 6e 67 2e 68 74 6d 6c 22 3e 73  ef="lang.html">s
0470: 79 6e 74 61 78 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c  yntax</a></li>.<
0480: 6c 69 3e 3c 61 20 68 72 65 66 3d 22 68 74 74 70  li><a href="http
0490: 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72  ://www.sqlite.or
04a0: 67 2f 63 76 73 74 72 61 63 2f 74 69 6d 65 6c 69  g/cvstrac/timeli
04b0: 6e 65 22 3e 74 69 6d 65 6c 69 6e 65 3c 2f 61 3e  ne">timeline</a>
04c0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65  </li>.<li><a hre
04d0: 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71  f="http://www.sq
04e0: 6c 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61 63  lite.org/cvstrac
04f0: 2f 77 69 6b 69 22 3e 77 69 6b 69 3c 2f 61 3e 3c  /wiki">wiki</a><
0500: 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 3c 2f 74 64 3e  /li>.</ul>.</td>
0510: 0a 3c 2f 74 72 3e 3c 2f 74 61 62 6c 65 3e 0a 3c  .</tr></table>.<
0520: 74 61 62 6c 65 20 77 69 64 74 68 3d 22 31 30 30  table width="100
0530: 25 22 3e 0a 3c 74 72 3e 3c 74 64 20 62 67 63 6f  %">.<tr><td bgco
0540: 6c 6f 72 3d 22 23 38 30 61 37 39 36 22 3e 3c 2f  lor="#80a796"></
0550: 74 64 3e 3c 2f 74 72 3e 0a 3c 2f 74 61 62 6c 65  td></tr>.</table
0560: 3e 7d 0a 20 20 70 75 74 73 20 3c 2f 44 49 56 3e  >}.  puts </DIV>
0570: 0a 7d 0a 0a 70 72 6f 63 20 66 6f 6f 74 65 72 20  .}..proc footer 
0580: 7b 7b 72 63 73 69 64 20 7b 7d 7d 7d 20 7b 0a 20  {{rcsid {}}} {. 
0590: 20 70 75 74 73 20 7b 0a 3c 74 61 62 6c 65 20 77   puts {.<table w
05a0: 69 64 74 68 3d 22 31 30 30 25 22 3e 0a 3c 74 72  idth="100%">.<tr
05b0: 3e 3c 74 64 20 62 67 63 6f 6c 6f 72 3d 22 23 38  ><td bgcolor="#8
05c0: 30 61 37 39 36 22 3e 3c 2f 74 64 3e 3c 2f 74 72  0a796"></td></tr
05d0: 3e 0a 3c 2f 74 61 62 6c 65 3e 7d 0a 20 20 73 65  >.</table>}.  se
05e0: 74 20 64 61 74 65 20 5b 6c 72 61 6e 67 65 20 24  t date [lrange $
05f0: 72 63 73 69 64 20 33 20 34 5d 0a 20 20 69 66 20  rcsid 3 4].  if 
0600: 7b 24 64 61 74 65 21 3d 22 22 7d 20 7b 0a 20 20  {$date!=""} {.  
0610: 20 20 70 75 74 73 20 22 3c 73 6d 61 6c 6c 3e 3c    puts "<small><
0620: 69 3e 54 68 69 73 20 70 61 67 65 20 6c 61 73 74  i>This page last
0630: 20 6d 6f 64 69 66 69 65 64 20 6f 6e 20 24 64 61   modified on $da
0640: 74 65 3c 2f 69 3e 3c 2f 73 6d 61 6c 6c 3e 22 0a  te</i></small>".
0650: 20 20 7d 0a 20 20 70 75 74 73 20 7b 3c 2f 62 6f    }.  puts {</bo
0660: 64 79 3e 3c 2f 68 74 6d 6c 3e 7d 0a 7d 0a 0a 0a  dy></html>}.}...
0670: 23 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  # The following 
0680: 70 72 6f 63 20 69 73 20 75 73 65 64 20 74 6f 20  proc is used to 
0690: 65 6e 73 75 72 65 20 63 6f 6e 73 69 73 74 65 6e  ensure consisten
06a0: 74 20 66 6f 72 6d 61 74 74 69 6e 67 20 69 6e 20  t formatting in 
06b0: 74 68 65 20 0a 23 20 48 54 4d 4c 20 67 65 6e 65  the .# HTML gene
06c0: 72 61 74 65 64 20 62 79 20 6c 61 6e 67 2e 74 63  rated by lang.tc
06d0: 6c 20 61 6e 64 20 70 72 61 67 6d 61 2e 74 63 6c  l and pragma.tcl
06e0: 2e 0a 23 0a 70 72 6f 63 20 53 79 6e 74 61 78 20  ..#.proc Syntax 
06f0: 7b 61 72 67 73 7d 20 7b 0a 20 20 70 75 74 73 20  {args} {.  puts 
0700: 7b 3c 74 61 62 6c 65 20 63 65 6c 6c 70 61 64 64  {<table cellpadd
0710: 69 6e 67 3d 22 31 30 22 20 63 6c 61 73 73 3d 70  ing="10" class=p
0720: 64 66 5f 73 79 6e 74 61 78 3e 7d 0a 20 20 66 6f  df_syntax>}.  fo
0730: 72 65 61 63 68 20 7b 72 75 6c 65 20 62 6f 64 79  reach {rule body
0740: 7d 20 24 61 72 67 73 20 7b 0a 20 20 20 20 70 75  } $args {.    pu
0750: 74 73 20 22 3c 74 72 3e 3c 74 64 20 61 6c 69 67  ts "<tr><td alig
0760: 6e 3d 5c 22 72 69 67 68 74 5c 22 20 76 61 6c 69  n=\"right\" vali
0770: 67 6e 3d 5c 22 74 6f 70 5c 22 3e 22 0a 20 20 20  gn=\"top\">".   
0780: 20 70 75 74 73 20 22 3c 69 3e 3c 66 6f 6e 74 20   puts "<i><font 
0790: 63 6f 6c 6f 72 3d 5c 22 23 66 66 33 34 33 34 5c  color=\"#ff3434\
07a0: 22 3e 24 72 75 6c 65 3c 2f 66 6f 6e 74 3e 3c 2f  ">$rule</font></
07b0: 69 3e 26 6e 62 73 70 3b 3a 3a 3d 3c 2f 74 64 3e  i>&nbsp;::=</td>
07c0: 22 0a 20 20 20 20 72 65 67 73 75 62 20 2d 61 6c  ".    regsub -al
07d0: 6c 20 3c 20 24 62 6f 64 79 20 7b 25 4c 54 7d 20  l < $body {%LT} 
07e0: 62 6f 64 79 0a 20 20 20 20 72 65 67 73 75 62 20  body.    regsub 
07f0: 2d 61 6c 6c 20 3e 20 24 62 6f 64 79 20 7b 25 47  -all > $body {%G
0800: 54 7d 20 62 6f 64 79 0a 20 20 20 20 72 65 67 73  T} body.    regs
0810: 75 62 20 2d 61 6c 6c 20 25 4c 54 20 24 62 6f 64  ub -all %LT $bod
0820: 79 20 7b 3c 2f 66 6f 6e 74 3e 3c 2f 62 3e 3c 69  y {</font></b><i
0830: 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 23 66  ><font color="#f
0840: 66 33 34 33 34 22 3e 7d 20 62 6f 64 79 0a 20 20  f3434">} body.  
0850: 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 25 47    regsub -all %G
0860: 54 20 24 62 6f 64 79 20 7b 3c 2f 66 6f 6e 74 3e  T $body {</font>
0870: 3c 2f 69 3e 3c 62 3e 3c 66 6f 6e 74 20 63 6f 6c  </i><b><font col
0880: 6f 72 3d 22 23 32 63 32 63 66 30 22 3e 7d 20 62  or="#2c2cf0">} b
0890: 6f 64 79 0a 20 20 20 20 72 65 67 73 75 62 20 2d  ody.    regsub -
08a0: 61 6c 6c 20 7b 5b 5d 7c 5b 2a 3f 5d 7d 20 24 62  all {[]|[*?]} $b
08b0: 6f 64 79 20 7b 3c 2f 66 6f 6e 74 3e 3c 2f 62 3e  ody {</font></b>
08c0: 26 3c 62 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d  &<b><font color=
08d0: 22 23 32 63 32 63 66 30 22 3e 7d 20 62 6f 64 79  "#2c2cf0">} body
08e0: 0a 20 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c  .    regsub -all
08f0: 20 22 5c 6e 22 20 5b 73 74 72 69 6e 67 20 74 72   "\n" [string tr
0900: 69 6d 20 24 62 6f 64 79 5d 20 22 3c 62 72 3e 5c  im $body] "<br>\
0910: 6e 22 20 62 6f 64 79 0a 20 20 20 20 72 65 67 73  n" body.    regs
0920: 75 62 20 2d 61 6c 6c 20 22 5c 6e 20 20 2a 22 20  ub -all "\n  *" 
0930: 24 62 6f 64 79 20 22 5c 6e 5c 5c 26 6e 62 73 70  $body "\n\\&nbsp
0940: 3b 5c 5c 26 6e 62 73 70 3b 5c 5c 26 6e 62 73 70  ;\\&nbsp;\\&nbsp
0950: 3b 5c 5c 26 6e 62 73 70 3b 22 20 62 6f 64 79 0a  ;\\&nbsp;" body.
0960: 20 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20      regsub -all 
0970: 7b 5b 7c 2c 2e 2a 28 29 5d 7d 20 24 62 6f 64 79  {[|,.*()]} $body
0980: 20 7b 3c 62 69 67 3e 26 3c 2f 62 69 67 3e 7d 20   {<big>&</big>} 
0990: 62 6f 64 79 0a 20 20 20 20 72 65 67 73 75 62 20  body.    regsub 
09a0: 2d 61 6c 6c 20 7b 20 3d 20 7d 20 24 62 6f 64 79  -all { = } $body
09b0: 20 7b 20 3c 62 69 67 3e 3d 3c 2f 62 69 67 3e 20   { <big>=</big> 
09c0: 7d 20 62 6f 64 79 0a 20 20 20 20 72 65 67 73 75  } body.    regsu
09d0: 62 20 2d 61 6c 6c 20 7b 53 54 41 52 7d 20 24 62  b -all {STAR} $b
09e0: 6f 64 79 20 7b 3c 62 69 67 3e 2a 3c 2f 62 69 67  ody {<big>*</big
09f0: 3e 7d 20 62 6f 64 79 0a 20 20 20 20 23 23 20 54  >} body.    ## T
0a00: 68 65 73 65 20 6d 65 74 61 63 68 61 72 61 63 74  hese metacharact
0a10: 65 72 73 20 6d 75 73 74 20 62 65 20 68 61 6e 64  ers must be hand
0a20: 6c 65 64 20 74 6f 20 75 6e 64 6f 20 62 65 69 6e  led to undo bein
0a30: 67 0a 20 20 20 20 23 23 20 74 72 65 61 74 65 64  g.    ## treated
0a40: 20 61 73 20 53 51 4c 20 70 75 6e 63 74 75 61 74   as SQL punctuat
0a50: 69 6f 6e 20 63 68 61 72 61 63 74 65 72 73 20 61  ion characters a
0a60: 62 6f 76 65 2e 0a 20 20 20 20 72 65 67 73 75 62  bove..    regsub
0a70: 20 2d 61 6c 6c 20 7b 52 50 50 4c 55 53 7d 20 24   -all {RPPLUS} $
0a80: 62 6f 64 79 20 7b 3c 2f 66 6f 6e 74 3e 3c 2f 62  body {</font></b
0a90: 3e 29 2b 3c 62 3e 3c 66 6f 6e 74 20 63 6f 6c 6f  >)+<b><font colo
0aa0: 72 3d 22 23 32 63 32 63 66 30 22 3e 7d 20 62 6f  r="#2c2cf0">} bo
0ab0: 64 79 0a 20 20 20 20 72 65 67 73 75 62 20 2d 61  dy.    regsub -a
0ac0: 6c 6c 20 7b 4c 50 7d 20 24 62 6f 64 79 20 7b 3c  ll {LP} $body {<
0ad0: 2f 66 6f 6e 74 3e 3c 2f 62 3e 28 3c 62 3e 3c 66  /font></b>(<b><f
0ae0: 6f 6e 74 20 63 6f 6c 6f 72 3d 22 23 32 63 32 63  ont color="#2c2c
0af0: 66 30 22 3e 7d 20 62 6f 64 79 0a 20 20 20 20 72  f0">} body.    r
0b00: 65 67 73 75 62 20 2d 61 6c 6c 20 7b 52 50 7d 20  egsub -all {RP} 
0b10: 24 62 6f 64 79 20 7b 3c 2f 66 6f 6e 74 3e 3c 2f  $body {</font></
0b20: 62 3e 29 3c 62 3e 3c 66 6f 6e 74 20 63 6f 6c 6f  b>)<b><font colo
0b30: 72 3d 22 23 32 63 32 63 66 30 22 3e 7d 20 62 6f  r="#2c2cf0">} bo
0b40: 64 79 0a 20 20 20 20 23 23 20 50 6c 61 63 65 20  dy.    ## Place 
0b50: 74 68 65 20 6c 65 66 74 2d 68 61 6e 64 20 73 69  the left-hand si
0b60: 64 65 20 6f 66 20 74 68 65 20 72 75 6c 65 20 69  de of the rule i
0b70: 6e 20 74 68 65 20 32 6e 64 20 74 61 62 6c 65 20  n the 2nd table 
0b80: 63 6f 6c 75 6d 6e 2e 0a 20 20 20 20 70 75 74 73  column..    puts
0b90: 20 22 3c 74 64 3e 3c 62 3e 3c 66 6f 6e 74 20 63   "<td><b><font c
0ba0: 6f 6c 6f 72 3d 5c 22 23 32 63 32 63 66 30 5c 22  olor=\"#2c2cf0\"
0bb0: 3e 24 62 6f 64 79 3c 2f 66 6f 6e 74 3e 3c 2f 62  >$body</font></b
0bc0: 3e 3c 2f 74 64 3e 3c 2f 74 72 3e 22 0a 20 20 7d  ></td></tr>".  }
0bd0: 0a 20 20 70 75 74 73 20 7b 3c 2f 74 61 62 6c 65  .  puts {</table
0be0: 3e 7d 0a 7d 0a                                   >}.}.