/ Hex Artifact Content
Login

Artifact de758130d54d95d151ea0d17a2ae5b92e1bb01de:


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 5c 0a 7b 3c 62 6f 64 79 20 62 67 63 6f 6c  s \.{<body bgcol
00b0: 6f 72 3d 22 77 68 69 74 65 22 20 6c 69 6e 6b 3d  or="white" link=
00c0: 22 23 35 30 36 39 35 66 22 20 76 6c 69 6e 6b 3d  "#50695f" vlink=
00d0: 22 23 35 30 38 38 39 36 22 3e 0a 3c 74 61 62 6c  "#508896">.<tabl
00e0: 65 20 77 69 64 74 68 3d 22 31 30 30 25 22 20 62  e width="100%" b
00f0: 6f 72 64 65 72 3d 22 30 22 3e 0a 3c 74 72 3e 3c  order="0">.<tr><
0100: 74 64 20 76 61 6c 69 67 6e 3d 22 74 6f 70 22 3e  td valign="top">
0110: 3c 69 6d 67 20 73 72 63 3d 22 73 71 6c 69 74 65  <img src="sqlite
0120: 2e 67 69 66 22 3e 3c 2f 74 64 3e 0a 3c 74 64 20  .gif"></td>.<td 
0130: 77 69 64 74 68 3d 22 31 30 30 25 22 3e 3c 2f 74  width="100%"></t
0140: 64 3e 0a 3c 74 64 20 76 61 6c 69 67 6e 3d 22 62  d>.<td valign="b
0150: 6f 74 74 6f 6d 22 3e 0a 3c 75 6c 3e 0a 3c 6c 69  ottom">.<ul>.<li
0160: 3e 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f  ><a href="http:/
0170: 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f  /www.sqlite.org/
0180: 63 76 73 74 72 61 63 2f 74 6b 74 6e 65 77 22 3e  cvstrac/tktnew">
0190: 62 75 67 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c  bugs</a></li>.<l
01a0: 69 3e 3c 61 20 68 72 65 66 3d 22 63 68 61 6e 67  i><a href="chang
01b0: 65 73 2e 68 74 6d 6c 22 3e 63 68 61 6e 67 65 73  es.html">changes
01c0: 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61  </a></li>.<li><a
01d0: 20 68 72 65 66 3d 22 63 6f 6e 74 72 69 62 22 3e   href="contrib">
01e0: 63 6f 6e 74 72 69 62 3c 2f 61 3e 3c 2f 6c 69 3e  contrib</a></li>
01f0: 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 64 6f  .<li><a href="do
0200: 77 6e 6c 6f 61 64 2e 68 74 6d 6c 23 63 76 73 22  wnload.html#cvs"
0210: 3e 63 76 73 26 6e 62 73 70 3b 72 65 70 6f 73 69  >cvs&nbsp;reposi
0220: 74 6f 72 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c  tory</a></li>.<l
0230: 69 3e 3c 61 20 68 72 65 66 3d 22 64 6f 63 73 2e  i><a href="docs.
0240: 68 74 6d 6c 22 3e 64 6f 63 75 6d 65 6e 74 61 74  html">documentat
0250: 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75  ion</a></li>.</u
0260: 6c 3e 0a 3c 2f 74 64 3e 0a 3c 74 64 20 77 69 64  l>.</td>.<td wid
0270: 74 68 3d 22 31 30 22 3e 3c 2f 74 64 3e 0a 3c 74  th="10"></td>.<t
0280: 64 20 76 61 6c 69 67 6e 3d 22 62 6f 74 74 6f 6d  d valign="bottom
0290: 22 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68  ">.<ul>.<li><a h
02a0: 72 65 66 3d 22 64 6f 77 6e 6c 6f 61 64 2e 68 74  ref="download.ht
02b0: 6d 6c 22 3e 64 6f 77 6e 6c 6f 61 64 3c 2f 61 3e  ml">download</a>
02c0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65  </li>.<li><a hre
02d0: 66 3d 22 66 61 71 2e 68 74 6d 6c 22 3e 66 61 71  f="faq.html">faq
02e0: 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61  </a></li>.<li><a
02f0: 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 68 74 6d   href="index.htm
0300: 6c 22 3e 68 6f 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e  l">home</a></li>
0310: 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 73 75  .<li><a href="su
0320: 70 70 6f 72 74 2e 68 74 6d 6c 22 3e 6d 61 69 6c  pport.html">mail
0330: 69 6e 67 26 6e 62 73 70 3b 6c 69 73 74 3c 2f 61  ing&nbsp;list</a
0340: 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72  ></li>.<li><a hr
0350: 65 66 3d 22 69 6e 64 65 78 2e 68 74 6d 6c 22 3e  ef="index.html">
0360: 6e 65 77 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f  news</a></li>.</
0370: 75 6c 3e 0a 3c 2f 74 64 3e 0a 3c 74 64 20 77 69  ul>.</td>.<td wi
0380: 64 74 68 3d 22 31 30 22 3e 3c 2f 74 64 3e 0a 3c  dth="10"></td>.<
0390: 74 64 20 76 61 6c 69 67 6e 3d 22 62 6f 74 74 6f  td valign="botto
03a0: 6d 22 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20  m">.<ul>.<li><a 
03b0: 68 72 65 66 3d 22 71 75 69 63 6b 73 74 61 72 74  href="quickstart
03c0: 2e 68 74 6d 6c 22 3e 71 75 69 63 6b 26 6e 62 73  .html">quick&nbs
03d0: 70 3b 73 74 61 72 74 3c 2f 61 3e 3c 2f 6c 69 3e  p;start</a></li>
03e0: 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 73 75  .<li><a href="su
03f0: 70 70 6f 72 74 2e 68 74 6d 6c 22 3e 73 75 70 70  pport.html">supp
0400: 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69  ort</a></li>.<li
0410: 3e 3c 61 20 68 72 65 66 3d 22 6c 61 6e 67 2e 68  ><a href="lang.h
0420: 74 6d 6c 22 3e 73 79 6e 74 61 78 3c 2f 61 3e 3c  tml">syntax</a><
0430: 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66  /li>.<li><a href
0440: 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c  ="http://www.sql
0450: 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61 63 2f  ite.org/cvstrac/
0460: 74 69 6d 65 6c 69 6e 65 22 3e 74 69 6d 65 6c 69  timeline">timeli
0470: 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ne</a></li>.<li>
0480: 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f  <a href="http://
0490: 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 63  www.sqlite.org/c
04a0: 76 73 74 72 61 63 2f 77 69 6b 69 22 3e 77 69 6b  vstrac/wiki">wik
04b0: 69 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e  i</a></li>.</ul>
04c0: 0a 3c 2f 74 64 3e 0a 3c 2f 74 72 3e 3c 2f 74 61  .</td>.</tr></ta
04d0: 62 6c 65 3e 0a 3c 74 61 62 6c 65 20 77 69 64 74  ble>.<table widt
04e0: 68 3d 22 31 30 30 25 22 3e 0a 3c 74 72 3e 3c 74  h="100%">.<tr><t
04f0: 64 20 62 67 63 6f 6c 6f 72 3d 22 23 38 30 61 37  d bgcolor="#80a7
0500: 39 36 22 3e 3c 2f 74 64 3e 3c 2f 74 72 3e 0a 3c  96"></td></tr>.<
0510: 2f 74 61 62 6c 65 3e 7d 0a 7d 0a 0a 70 72 6f 63  /table>}.}..proc
0520: 20 66 6f 6f 74 65 72 20 7b 7b 72 63 73 69 64 20   footer {{rcsid 
0530: 7b 7d 7d 7d 20 7b 0a 20 20 70 75 74 73 20 7b 0a  {}}} {.  puts {.
0540: 3c 74 61 62 6c 65 20 77 69 64 74 68 3d 22 31 30  <table width="10
0550: 30 25 22 3e 0a 3c 74 72 3e 3c 74 64 20 62 67 63  0%">.<tr><td bgc
0560: 6f 6c 6f 72 3d 22 23 38 30 61 37 39 36 22 3e 3c  olor="#80a796"><
0570: 2f 74 64 3e 3c 2f 74 72 3e 0a 3c 2f 74 61 62 6c  /td></tr>.</tabl
0580: 65 3e 7d 0a 20 20 73 65 74 20 64 61 74 65 20 5b  e>}.  set date [
0590: 6c 72 61 6e 67 65 20 24 72 63 73 69 64 20 33 20  lrange $rcsid 3 
05a0: 34 5d 0a 20 20 69 66 20 7b 24 64 61 74 65 21 3d  4].  if {$date!=
05b0: 22 22 7d 20 7b 0a 20 20 20 20 70 75 74 73 20 22  ""} {.    puts "
05c0: 3c 73 6d 61 6c 6c 3e 3c 69 3e 54 68 69 73 20 70  <small><i>This p
05d0: 61 67 65 20 6c 61 73 74 20 6d 6f 64 69 66 69 65  age last modifie
05e0: 64 20 6f 6e 20 24 64 61 74 65 3c 2f 69 3e 3c 2f  d on $date</i></
05f0: 73 6d 61 6c 6c 3e 22 0a 20 20 7d 0a 20 20 70 75  small>".  }.  pu
0600: 74 73 20 7b 3c 2f 62 6f 64 79 3e 3c 2f 68 74 6d  ts {</body></htm
0610: 6c 3e 7d 0a 7d 0a 0a 0a 23 20 54 68 65 20 66 6f  l>}.}...# The fo
0620: 6c 6c 6f 77 69 6e 67 20 70 72 6f 63 20 69 73 20  llowing proc is 
0630: 75 73 65 64 20 74 6f 20 65 6e 73 75 72 65 20 63  used to ensure c
0640: 6f 6e 73 69 73 74 65 6e 74 20 66 6f 72 6d 61 74  onsistent format
0650: 74 69 6e 67 20 69 6e 20 74 68 65 20 0a 23 20 48  ting in the .# H
0660: 54 4d 4c 20 67 65 6e 65 72 61 74 65 64 20 62 79  TML generated by
0670: 20 6c 61 6e 67 2e 74 63 6c 20 61 6e 64 20 70 72   lang.tcl and pr
0680: 61 67 6d 61 2e 74 63 6c 2e 0a 23 0a 70 72 6f 63  agma.tcl..#.proc
0690: 20 53 79 6e 74 61 78 20 7b 61 72 67 73 7d 20 7b   Syntax {args} {
06a0: 0a 20 20 70 75 74 73 20 7b 3c 74 61 62 6c 65 20  .  puts {<table 
06b0: 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 31 30 22  cellpadding="10"
06c0: 3e 7d 0a 20 20 66 6f 72 65 61 63 68 20 7b 72 75  >}.  foreach {ru
06d0: 6c 65 20 62 6f 64 79 7d 20 24 61 72 67 73 20 7b  le body} $args {
06e0: 0a 20 20 20 20 70 75 74 73 20 22 3c 74 72 3e 3c  .    puts "<tr><
06f0: 74 64 20 61 6c 69 67 6e 3d 5c 22 72 69 67 68 74  td align=\"right
0700: 5c 22 20 76 61 6c 69 67 6e 3d 5c 22 74 6f 70 5c  \" valign=\"top\
0710: 22 3e 22 0a 20 20 20 20 70 75 74 73 20 22 3c 69  ">".    puts "<i
0720: 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 5c 22 23  ><font color=\"#
0730: 66 66 33 34 33 34 5c 22 3e 24 72 75 6c 65 3c 2f  ff3434\">$rule</
0740: 66 6f 6e 74 3e 3c 2f 69 3e 26 6e 62 73 70 3b 3a  font></i>&nbsp;:
0750: 3a 3d 3c 2f 74 64 3e 22 0a 20 20 20 20 72 65 67  :=</td>".    reg
0760: 73 75 62 20 2d 61 6c 6c 20 3c 20 24 62 6f 64 79  sub -all < $body
0770: 20 7b 25 4c 54 7d 20 62 6f 64 79 0a 20 20 20 20   {%LT} body.    
0780: 72 65 67 73 75 62 20 2d 61 6c 6c 20 3e 20 24 62  regsub -all > $b
0790: 6f 64 79 20 7b 25 47 54 7d 20 62 6f 64 79 0a 20  ody {%GT} body. 
07a0: 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 25     regsub -all %
07b0: 4c 54 20 24 62 6f 64 79 20 7b 3c 2f 66 6f 6e 74  LT $body {</font
07c0: 3e 3c 2f 62 3e 3c 69 3e 3c 66 6f 6e 74 20 63 6f  ></b><i><font co
07d0: 6c 6f 72 3d 22 23 66 66 33 34 33 34 22 3e 7d 20  lor="#ff3434">} 
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 25 47 54 20 24 62 6f 64 79 20 7b  -all %GT $body {
0800: 3c 2f 66 6f 6e 74 3e 3c 2f 69 3e 3c 62 3e 3c 66  </font></i><b><f
0810: 6f 6e 74 20 63 6f 6c 6f 72 3d 22 23 32 63 32 63  ont color="#2c2c
0820: 66 30 22 3e 7d 20 62 6f 64 79 0a 20 20 20 20 72  f0">} body.    r
0830: 65 67 73 75 62 20 2d 61 6c 6c 20 7b 5b 5d 7c 5b  egsub -all {[]|[
0840: 2a 3f 5d 7d 20 24 62 6f 64 79 20 7b 3c 2f 66 6f  *?]} $body {</fo
0850: 6e 74 3e 3c 2f 62 3e 26 3c 62 3e 3c 66 6f 6e 74  nt></b>&<b><font
0860: 20 63 6f 6c 6f 72 3d 22 23 32 63 32 63 66 30 22   color="#2c2cf0"
0870: 3e 7d 20 62 6f 64 79 0a 20 20 20 20 72 65 67 73  >} body.    regs
0880: 75 62 20 2d 61 6c 6c 20 22 5c 6e 22 20 5b 73 74  ub -all "\n" [st
0890: 72 69 6e 67 20 74 72 69 6d 20 24 62 6f 64 79 5d  ring trim $body]
08a0: 20 22 3c 62 72 3e 5c 6e 22 20 62 6f 64 79 0a 20   "<br>\n" body. 
08b0: 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 22     regsub -all "
08c0: 5c 6e 20 20 2a 22 20 24 62 6f 64 79 20 22 5c 6e  \n  *" $body "\n
08d0: 5c 5c 26 6e 62 73 70 3b 5c 5c 26 6e 62 73 70 3b  \\&nbsp;\\&nbsp;
08e0: 5c 5c 26 6e 62 73 70 3b 5c 5c 26 6e 62 73 70 3b  \\&nbsp;\\&nbsp;
08f0: 22 20 62 6f 64 79 0a 20 20 20 20 72 65 67 73 75  " body.    regsu
0900: 62 20 2d 61 6c 6c 20 7b 5b 7c 2c 2e 2a 28 29 5d  b -all {[|,.*()]
0910: 7d 20 24 62 6f 64 79 20 7b 3c 62 69 67 3e 26 3c  } $body {<big>&<
0920: 2f 62 69 67 3e 7d 20 62 6f 64 79 0a 20 20 20 20  /big>} body.    
0930: 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b 20 3d 20  regsub -all { = 
0940: 7d 20 24 62 6f 64 79 20 7b 20 3c 62 69 67 3e 3d  } $body { <big>=
0950: 3c 2f 62 69 67 3e 20 7d 20 62 6f 64 79 0a 20 20  </big> } body.  
0960: 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b 53    regsub -all {S
0970: 54 41 52 7d 20 24 62 6f 64 79 20 7b 3c 62 69 67  TAR} $body {<big
0980: 3e 2a 3c 2f 62 69 67 3e 7d 20 62 6f 64 79 0a 20  >*</big>} body. 
0990: 20 20 20 23 23 20 54 68 65 73 65 20 6d 65 74 61     ## These meta
09a0: 63 68 61 72 61 63 74 65 72 73 20 6d 75 73 74 20  characters must 
09b0: 62 65 20 68 61 6e 64 6c 65 64 20 74 6f 20 75 6e  be handled to un
09c0: 64 6f 20 62 65 69 6e 67 0a 20 20 20 20 23 23 20  do being.    ## 
09d0: 74 72 65 61 74 65 64 20 61 73 20 53 51 4c 20 70  treated as SQL p
09e0: 75 6e 63 74 75 61 74 69 6f 6e 20 63 68 61 72 61  unctuation chara
09f0: 63 74 65 72 73 20 61 62 6f 76 65 2e 0a 20 20 20  cters above..   
0a00: 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b 52 50   regsub -all {RP
0a10: 50 4c 55 53 7d 20 24 62 6f 64 79 20 7b 3c 2f 66  PLUS} $body {</f
0a20: 6f 6e 74 3e 3c 2f 62 3e 29 2b 3c 62 3e 3c 66 6f  ont></b>)+<b><fo
0a30: 6e 74 20 63 6f 6c 6f 72 3d 22 23 32 63 32 63 66  nt color="#2c2cf
0a40: 30 22 3e 7d 20 62 6f 64 79 0a 20 20 20 20 72 65  0">} body.    re
0a50: 67 73 75 62 20 2d 61 6c 6c 20 7b 4c 50 7d 20 24  gsub -all {LP} $
0a60: 62 6f 64 79 20 7b 3c 2f 66 6f 6e 74 3e 3c 2f 62  body {</font></b
0a70: 3e 28 3c 62 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72  >(<b><font color
0a80: 3d 22 23 32 63 32 63 66 30 22 3e 7d 20 62 6f 64  ="#2c2cf0">} bod
0a90: 79 0a 20 20 20 20 72 65 67 73 75 62 20 2d 61 6c  y.    regsub -al
0aa0: 6c 20 7b 52 50 7d 20 24 62 6f 64 79 20 7b 3c 2f  l {RP} $body {</
0ab0: 66 6f 6e 74 3e 3c 2f 62 3e 29 3c 62 3e 3c 66 6f  font></b>)<b><fo
0ac0: 6e 74 20 63 6f 6c 6f 72 3d 22 23 32 63 32 63 66  nt color="#2c2cf
0ad0: 30 22 3e 7d 20 62 6f 64 79 0a 20 20 20 20 23 23  0">} body.    ##
0ae0: 20 50 6c 61 63 65 20 74 68 65 20 6c 65 66 74 2d   Place the left-
0af0: 68 61 6e 64 20 73 69 64 65 20 6f 66 20 74 68 65  hand side of the
0b00: 20 72 75 6c 65 20 69 6e 20 74 68 65 20 32 6e 64   rule in the 2nd
0b10: 20 74 61 62 6c 65 20 63 6f 6c 75 6d 6e 2e 0a 20   table column.. 
0b20: 20 20 20 70 75 74 73 20 22 3c 74 64 3e 3c 62 3e     puts "<td><b>
0b30: 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 5c 22 23 32  <font color=\"#2
0b40: 63 32 63 66 30 5c 22 3e 24 62 6f 64 79 3c 2f 66  c2cf0\">$body</f
0b50: 6f 6e 74 3e 3c 2f 62 3e 3c 2f 74 64 3e 3c 2f 74  ont></b></td></t
0b60: 72 3e 22 0a 20 20 7d 0a 20 20 70 75 74 73 20 7b  r>".  }.  puts {
0b70: 3c 2f 74 61 62 6c 65 3e 7d 0a 7d 0a 0a           </table>}.}..