cmdr
Hex Artifact Content
Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to tclconference@googlegroups.com
or submit via the online form by Sep 9.

Artifact 823388e007abadd6b553fc94ae86fe97a695b6b3:


0000: 27 5c 22 0a 27 5c 22 20 47 65 6e 65 72 61 74 65  '\".'\" Generate
0010: 64 20 66 72 6f 6d 20 66 69 6c 65 20 27 63 6d 64  d from file 'cmd
0020: 72 5f 76 74 5f 77 65 65 6b 64 61 79 5c 26 2e 6d  r_vt_weekday\&.m
0030: 61 6e 27 20 62 79 20 74 63 6c 6c 69 62 2f 64 6f  an' by tcllib/do
0040: 63 74 6f 6f 6c 73 20 77 69 74 68 20 66 6f 72 6d  ctools with form
0050: 61 74 20 27 6e 72 6f 66 66 27 0a 27 5c 22 20 43  at 'nroff'.'\" C
0060: 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 31  opyright (c) 201
0070: 33 2d 32 30 31 36 20 41 6e 64 72 65 61 73 20 4b  3-2016 Andreas K
0080: 75 70 72 69 65 73 0a 27 5c 22 20 43 6f 70 79 72  upries.'\" Copyr
0090: 69 67 68 74 20 28 63 29 20 32 30 31 33 2d 32 30  ight (c) 2013-20
00a0: 31 36 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  16 Documentation
00b0: 2c 20 41 6e 64 72 65 61 73 20 4b 75 70 72 69 65  , Andreas Kuprie
00c0: 73 0a 27 5c 22 0a 2e 54 48 20 22 63 6d 64 72 3a  s.'\"..TH "cmdr:
00d0: 3a 76 61 6c 69 64 61 74 65 3a 3a 77 65 65 6b 64  :validate::weekd
00e0: 61 79 22 20 6e 20 31 20 64 6f 63 20 22 43 6d 64  ay" n 1 doc "Cmd
00f0: 72 2c 20 61 20 66 72 61 6d 65 77 6f 72 6b 20 66  r, a framework f
0100: 6f 72 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20  or command line 
0110: 70 61 72 73 69 6e 67 20 61 6e 64 20 64 69 73 70  parsing and disp
0120: 61 74 63 68 22 0a 2e 5c 22 20 54 68 65 20 2d 2a  atch"..\" The -*
0130: 2d 20 6e 72 6f 66 66 20 2d 2a 2d 20 64 65 66 69  - nroff -*- defi
0140: 6e 69 74 69 6f 6e 73 20 62 65 6c 6f 77 20 61 72  nitions below ar
0150: 65 20 66 6f 72 20 73 75 70 70 6c 65 6d 65 6e 74  e for supplement
0160: 61 6c 20 6d 61 63 72 6f 73 20 75 73 65 64 0a 2e  al macros used..
0170: 5c 22 20 69 6e 20 54 63 6c 2f 54 6b 20 6d 61 6e  \" in Tcl/Tk man
0180: 75 61 6c 20 65 6e 74 72 69 65 73 2e 0a 2e 5c 22  ual entries...\"
0190: 0a 2e 5c 22 20 2e 41 50 20 74 79 70 65 20 6e 61  ..\" .AP type na
01a0: 6d 65 20 69 6e 2f 6f 75 74 20 3f 69 6e 64 65 6e  me in/out ?inden
01b0: 74 3f 0a 2e 5c 22 09 53 74 61 72 74 20 70 61 72  t?..\".Start par
01c0: 61 67 72 61 70 68 20 64 65 73 63 72 69 62 69 6e  agraph describin
01d0: 67 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 74 6f  g an argument to
01e0: 20 61 20 6c 69 62 72 61 72 79 20 70 72 6f 63 65   a library proce
01f0: 64 75 72 65 2e 0a 2e 5c 22 09 74 79 70 65 20 69  dure...\".type i
0200: 73 20 74 79 70 65 20 6f 66 20 61 72 67 75 6d 65  s type of argume
0210: 6e 74 20 28 69 6e 74 2c 20 65 74 63 2e 29 2c 20  nt (int, etc.), 
0220: 69 6e 2f 6f 75 74 20 69 73 20 65 69 74 68 65 72  in/out is either
0230: 20 22 69 6e 22 2c 20 22 6f 75 74 22 2c 0a 2e 5c   "in", "out",..\
0240: 22 09 6f 72 20 22 69 6e 2f 6f 75 74 22 20 74 6f  ".or "in/out" to
0250: 20 64 65 73 63 72 69 62 65 20 77 68 65 74 68 65   describe whethe
0260: 72 20 70 72 6f 63 65 64 75 72 65 20 72 65 61 64  r procedure read
0270: 73 20 6f 72 20 6d 6f 64 69 66 69 65 73 20 61 72  s or modifies ar
0280: 67 2c 0a 2e 5c 22 09 61 6e 64 20 69 6e 64 65 6e  g,..\".and inden
0290: 74 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20  t is equivalent 
02a0: 74 6f 20 73 65 63 6f 6e 64 20 61 72 67 20 6f 66  to second arg of
02b0: 20 2e 49 50 20 28 73 68 6f 75 6c 64 6e 27 74 20   .IP (shouldn't 
02c0: 65 76 65 72 20 62 65 0a 2e 5c 22 09 6e 65 65 64  ever be..\".need
02d0: 65 64 3b 20 20 75 73 65 20 2e 41 53 20 62 65 6c  ed;  use .AS bel
02e0: 6f 77 20 69 6e 73 74 65 61 64 29 0a 2e 5c 22 0a  ow instead)..\".
02f0: 2e 5c 22 20 2e 41 53 20 3f 74 79 70 65 3f 20 3f  .\" .AS ?type? ?
0300: 6e 61 6d 65 3f 0a 2e 5c 22 09 47 69 76 65 20 6d  name?..\".Give m
0310: 61 78 69 6d 75 6d 20 73 69 7a 65 73 20 6f 66 20  aximum sizes of 
0320: 61 72 67 75 6d 65 6e 74 73 20 66 6f 72 20 73 65  arguments for se
0330: 74 74 69 6e 67 20 74 61 62 20 73 74 6f 70 73 2e  tting tab stops.
0340: 20 20 54 79 70 65 20 61 6e 64 0a 2e 5c 22 09 6e    Type and..\".n
0350: 61 6d 65 20 61 72 65 20 65 78 61 6d 70 6c 65 73  ame are examples
0360: 20 6f 66 20 6c 61 72 67 65 73 74 20 70 6f 73 73   of largest poss
0370: 69 62 6c 65 20 61 72 67 75 6d 65 6e 74 73 20 74  ible arguments t
0380: 68 61 74 20 77 69 6c 6c 20 62 65 20 70 61 73 73  hat will be pass
0390: 65 64 0a 2e 5c 22 09 74 6f 20 2e 41 50 20 6c 61  ed..\".to .AP la
03a0: 74 65 72 2e 20 20 49 66 20 61 72 67 73 20 61 72  ter.  If args ar
03b0: 65 20 6f 6d 69 74 74 65 64 2c 20 64 65 66 61 75  e omitted, defau
03c0: 6c 74 20 74 61 62 20 73 74 6f 70 73 20 61 72 65  lt tab stops are
03d0: 20 75 73 65 64 2e 0a 2e 5c 22 0a 2e 5c 22 20 2e   used...\"..\" .
03e0: 42 53 0a 2e 5c 22 09 53 74 61 72 74 20 62 6f 78  BS..\".Start box
03f0: 20 65 6e 63 6c 6f 73 75 72 65 2e 20 20 46 72 6f   enclosure.  Fro
0400: 6d 20 68 65 72 65 20 75 6e 74 69 6c 20 6e 65 78  m here until nex
0410: 74 20 2e 42 45 2c 20 65 76 65 72 79 74 68 69 6e  t .BE, everythin
0420: 67 20 77 69 6c 6c 20 62 65 0a 2e 5c 22 09 65 6e  g will be..\".en
0430: 63 6c 6f 73 65 64 20 69 6e 20 6f 6e 65 20 6c 61  closed in one la
0440: 72 67 65 20 62 6f 78 2e 0a 2e 5c 22 0a 2e 5c 22  rge box...\"..\"
0450: 20 2e 42 45 0a 2e 5c 22 09 45 6e 64 20 6f 66 20   .BE..\".End of 
0460: 62 6f 78 20 65 6e 63 6c 6f 73 75 72 65 2e 0a 2e  box enclosure...
0470: 5c 22 0a 2e 5c 22 20 2e 43 53 0a 2e 5c 22 09 42  \"..\" .CS..\".B
0480: 65 67 69 6e 20 63 6f 64 65 20 65 78 63 65 72 70  egin code excerp
0490: 74 2e 0a 2e 5c 22 0a 2e 5c 22 20 2e 43 45 0a 2e  t...\"..\" .CE..
04a0: 5c 22 09 45 6e 64 20 63 6f 64 65 20 65 78 63 65  \".End code exce
04b0: 72 70 74 2e 0a 2e 5c 22 0a 2e 5c 22 20 2e 56 53  rpt...\"..\" .VS
04c0: 20 3f 76 65 72 73 69 6f 6e 3f 20 3f 62 72 3f 0a   ?version? ?br?.
04d0: 2e 5c 22 09 42 65 67 69 6e 20 76 65 72 74 69 63  .\".Begin vertic
04e0: 61 6c 20 73 69 64 65 62 61 72 2c 20 66 6f 72 20  al sidebar, for 
04f0: 75 73 65 20 69 6e 20 6d 61 72 6b 69 6e 67 20 6e  use in marking n
0500: 65 77 6c 79 2d 63 68 61 6e 67 65 64 20 70 61 72  ewly-changed par
0510: 74 73 0a 2e 5c 22 09 6f 66 20 6d 61 6e 20 70 61  ts..\".of man pa
0520: 67 65 73 2e 20 20 54 68 65 20 66 69 72 73 74 20  ges.  The first 
0530: 61 72 67 75 6d 65 6e 74 20 69 73 20 69 67 6e 6f  argument is igno
0540: 72 65 64 20 61 6e 64 20 75 73 65 64 20 66 6f 72  red and used for
0550: 20 72 65 63 6f 72 64 69 6e 67 0a 2e 5c 22 09 74   recording..\".t
0560: 68 65 20 76 65 72 73 69 6f 6e 20 77 68 65 6e 20  he version when 
0570: 74 68 65 20 2e 56 53 20 77 61 73 20 61 64 64 65  the .VS was adde
0580: 64 2c 20 73 6f 20 74 68 61 74 20 74 68 65 20 73  d, so that the s
0590: 69 64 65 62 61 72 73 20 63 61 6e 20 62 65 0a 2e  idebars can be..
05a0: 5c 22 09 66 6f 75 6e 64 20 61 6e 64 20 72 65 6d  \".found and rem
05b0: 6f 76 65 64 20 77 68 65 6e 20 74 68 65 79 20 72  oved when they r
05c0: 65 61 63 68 20 61 20 63 65 72 74 61 69 6e 20 61  each a certain a
05d0: 67 65 2e 20 20 49 66 20 61 6e 6f 74 68 65 72 20  ge.  If another 
05e0: 61 72 67 75 6d 65 6e 74 0a 2e 5c 22 09 69 73 20  argument..\".is 
05f0: 70 72 65 73 65 6e 74 2c 20 74 68 65 6e 20 61 20  present, then a 
0600: 6c 69 6e 65 20 62 72 65 61 6b 20 69 73 20 66 6f  line break is fo
0610: 72 63 65 64 20 62 65 66 6f 72 65 20 73 74 61 72  rced before star
0620: 74 69 6e 67 20 74 68 65 20 73 69 64 65 62 61 72  ting the sidebar
0630: 2e 0a 2e 5c 22 0a 2e 5c 22 20 2e 56 45 0a 2e 5c  ...\"..\" .VE..\
0640: 22 09 45 6e 64 20 6f 66 20 76 65 72 74 69 63 61  ".End of vertica
0650: 6c 20 73 69 64 65 62 61 72 2e 0a 2e 5c 22 0a 2e  l sidebar...\"..
0660: 5c 22 20 2e 44 53 0a 2e 5c 22 09 42 65 67 69 6e  \" .DS..\".Begin
0670: 20 61 6e 20 69 6e 64 65 6e 74 65 64 20 75 6e 66   an indented unf
0680: 69 6c 6c 65 64 20 64 69 73 70 6c 61 79 2e 0a 2e  illed display...
0690: 5c 22 0a 2e 5c 22 20 2e 44 45 0a 2e 5c 22 09 45  \"..\" .DE..\".E
06a0: 6e 64 20 6f 66 20 69 6e 64 65 6e 74 65 64 20 75  nd of indented u
06b0: 6e 66 69 6c 6c 65 64 20 64 69 73 70 6c 61 79 2e  nfilled display.
06c0: 0a 2e 5c 22 0a 2e 5c 22 20 2e 53 4f 20 3f 6d 61  ..\"..\" .SO ?ma
06d0: 6e 70 61 67 65 3f 0a 2e 5c 22 09 53 74 61 72 74  npage?..\".Start
06e0: 20 6f 66 20 6c 69 73 74 20 6f 66 20 73 74 61 6e   of list of stan
06f0: 64 61 72 64 20 6f 70 74 69 6f 6e 73 20 66 6f 72  dard options for
0700: 20 61 20 54 6b 20 77 69 64 67 65 74 2e 20 54 68   a Tk widget. Th
0710: 65 20 6d 61 6e 70 61 67 65 0a 2e 5c 22 09 61 72  e manpage..\".ar
0720: 67 75 6d 65 6e 74 20 64 65 66 69 6e 65 73 20 77  gument defines w
0730: 68 65 72 65 20 74 6f 20 6c 6f 6f 6b 20 75 70 20  here to look up 
0740: 74 68 65 20 73 74 61 6e 64 61 72 64 20 6f 70 74  the standard opt
0750: 69 6f 6e 73 3b 20 69 66 0a 2e 5c 22 09 6f 6d 69  ions; if..\".omi
0760: 74 74 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74  tted, defaults t
0770: 6f 20 22 6f 70 74 69 6f 6e 73 22 2e 20 54 68 65  o "options". The
0780: 20 6f 70 74 69 6f 6e 73 20 66 6f 6c 6c 6f 77 20   options follow 
0790: 6f 6e 20 73 75 63 63 65 73 73 69 76 65 0a 2e 5c  on successive..\
07a0: 22 09 6c 69 6e 65 73 2c 20 69 6e 20 74 68 72 65  ".lines, in thre
07b0: 65 20 63 6f 6c 75 6d 6e 73 20 73 65 70 61 72 61  e columns separa
07c0: 74 65 64 20 62 79 20 74 61 62 73 2e 0a 2e 5c 22  ted by tabs...\"
07d0: 0a 2e 5c 22 20 2e 53 45 0a 2e 5c 22 09 45 6e 64  ..\" .SE..\".End
07e0: 20 6f 66 20 6c 69 73 74 20 6f 66 20 73 74 61 6e   of list of stan
07f0: 64 61 72 64 20 6f 70 74 69 6f 6e 73 20 66 6f 72  dard options for
0800: 20 61 20 54 6b 20 77 69 64 67 65 74 2e 0a 2e 5c   a Tk widget...\
0810: 22 0a 2e 5c 22 20 2e 4f 50 20 63 6d 64 4e 61 6d  "..\" .OP cmdNam
0820: 65 20 64 62 4e 61 6d 65 20 64 62 43 6c 61 73 73  e dbName dbClass
0830: 0a 2e 5c 22 09 53 74 61 72 74 20 6f 66 20 64 65  ..\".Start of de
0840: 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 61 20 73  scription of a s
0850: 70 65 63 69 66 69 63 20 6f 70 74 69 6f 6e 2e 20  pecific option. 
0860: 20 63 6d 64 4e 61 6d 65 20 67 69 76 65 73 20 74   cmdName gives t
0870: 68 65 0a 2e 5c 22 09 6f 70 74 69 6f 6e 27 73 20  he..\".option's 
0880: 6e 61 6d 65 20 61 73 20 73 70 65 63 69 66 69 65  name as specifie
0890: 64 20 69 6e 20 74 68 65 20 63 6c 61 73 73 20 63  d in the class c
08a0: 6f 6d 6d 61 6e 64 2c 20 64 62 4e 61 6d 65 20 67  ommand, dbName g
08b0: 69 76 65 73 0a 2e 5c 22 09 74 68 65 20 6f 70 74  ives..\".the opt
08c0: 69 6f 6e 27 73 20 6e 61 6d 65 20 69 6e 20 74 68  ion's name in th
08d0: 65 20 6f 70 74 69 6f 6e 20 64 61 74 61 62 61 73  e option databas
08e0: 65 2c 20 61 6e 64 20 64 62 43 6c 61 73 73 20 67  e, and dbClass g
08f0: 69 76 65 73 0a 2e 5c 22 09 74 68 65 20 6f 70 74  ives..\".the opt
0900: 69 6f 6e 27 73 20 63 6c 61 73 73 20 69 6e 20 74  ion's class in t
0910: 68 65 20 6f 70 74 69 6f 6e 20 64 61 74 61 62 61  he option databa
0920: 73 65 2e 0a 2e 5c 22 0a 2e 5c 22 20 2e 55 4c 20  se...\"..\" .UL 
0930: 61 72 67 31 20 61 72 67 32 0a 2e 5c 22 09 50 72  arg1 arg2..\".Pr
0940: 69 6e 74 20 61 72 67 31 20 75 6e 64 65 72 6c 69  int arg1 underli
0950: 6e 65 64 2c 20 74 68 65 6e 20 70 72 69 6e 74 20  ned, then print 
0960: 61 72 67 32 20 6e 6f 72 6d 61 6c 6c 79 2e 0a 2e  arg2 normally...
0970: 5c 22 0a 2e 5c 22 20 2e 51 57 20 61 72 67 31 20  \"..\" .QW arg1 
0980: 3f 61 72 67 32 3f 0a 2e 5c 22 09 50 72 69 6e 74  ?arg2?..\".Print
0990: 20 61 72 67 31 20 69 6e 20 71 75 6f 74 65 73 2c   arg1 in quotes,
09a0: 20 74 68 65 6e 20 61 72 67 32 20 6e 6f 72 6d 61   then arg2 norma
09b0: 6c 6c 79 20 28 66 6f 72 20 74 72 61 69 6c 69 6e  lly (for trailin
09c0: 67 20 70 75 6e 63 74 75 61 74 69 6f 6e 29 2e 0a  g punctuation)..
09d0: 2e 5c 22 0a 2e 5c 22 20 2e 50 51 20 61 72 67 31  .\"..\" .PQ arg1
09e0: 20 3f 61 72 67 32 3f 0a 2e 5c 22 09 50 72 69 6e   ?arg2?..\".Prin
09f0: 74 20 61 6e 20 6f 70 65 6e 20 70 61 72 65 6e 74  t an open parent
0a00: 68 65 73 69 73 2c 20 61 72 67 31 20 69 6e 20 71  hesis, arg1 in q
0a10: 75 6f 74 65 73 2c 20 74 68 65 6e 20 61 72 67 32  uotes, then arg2
0a20: 20 6e 6f 72 6d 61 6c 6c 79 0a 2e 5c 22 09 28 66   normally..\".(f
0a30: 6f 72 20 74 72 61 69 6c 69 6e 67 20 70 75 6e 63  or trailing punc
0a40: 74 75 61 74 69 6f 6e 29 20 61 6e 64 20 74 68 65  tuation) and the
0a50: 6e 20 61 20 63 6c 6f 73 69 6e 67 20 70 61 72 65  n a closing pare
0a60: 6e 74 68 65 73 69 73 2e 0a 2e 5c 22 0a 2e 5c 22  nthesis...\"..\"
0a70: 09 23 20 53 65 74 20 75 70 20 74 72 61 70 73 20  .# Set up traps 
0a80: 61 6e 64 20 6f 74 68 65 72 20 6d 69 73 63 65 6c  and other miscel
0a90: 6c 61 6e 65 6f 75 73 20 73 74 75 66 66 20 66 6f  laneous stuff fo
0aa0: 72 20 54 63 6c 2f 54 6b 20 6d 61 6e 20 70 61 67  r Tcl/Tk man pag
0ab0: 65 73 2e 0a 2e 69 66 20 74 20 2e 77 68 20 2d 31  es...if t .wh -1
0ac0: 2e 33 69 20 5e 42 0a 2e 6e 72 20 5e 6c 20 5c 6e  .3i ^B..nr ^l \n
0ad0: 28 2e 6c 0a 2e 61 64 20 62 0a 2e 5c 22 09 23 20  (.l..ad b..\".# 
0ae0: 53 74 61 72 74 20 61 6e 20 61 72 67 75 6d 65 6e  Start an argumen
0af0: 74 20 64 65 73 63 72 69 70 74 69 6f 6e 0a 2e 64  t description..d
0b00: 65 20 41 50 0a 2e 69 65 20 21 22 5c 5c 24 34 22  e AP..ie !"\\$4"
0b10: 22 20 2e 54 50 20 5c 5c 24 34 0a 2e 65 6c 20 5c  " .TP \\$4..el \
0b20: 7b 5c 0a 2e 20 20 20 69 65 20 21 22 5c 5c 24 32  {\..   ie !"\\$2
0b30: 22 22 20 2e 54 50 20 5c 5c 6e 28 29 43 75 0a 2e  "" .TP \\n()Cu..
0b40: 20 20 20 65 6c 20 20 20 20 20 20 20 20 20 20 2e     el          .
0b50: 54 50 20 31 35 0a 2e 5c 7d 0a 2e 74 61 20 5c 5c  TP 15..\}..ta \\
0b60: 6e 28 29 41 75 20 5c 5c 6e 28 29 42 75 0a 2e 69  n()Au \\n()Bu..i
0b70: 65 20 21 22 5c 5c 24 33 22 22 20 5c 7b 5c 0a 5c  e !"\\$3"" \{\.\
0b80: 26 5c 5c 24 31 20 5c 5c 66 49 5c 5c 24 32 5c 5c  &\\$1 \\fI\\$2\\
0b90: 66 50 20 28 5c 5c 24 33 29 0a 2e 5c 22 2e 62 0a  fP (\\$3)..\".b.
0ba0: 2e 5c 7d 0a 2e 65 6c 20 5c 7b 5c 0a 2e 62 72 0a  .\}..el \{\..br.
0bb0: 2e 69 65 20 21 22 5c 5c 24 32 22 22 20 5c 7b 5c  .ie !"\\$2"" \{\
0bc0: 0a 5c 26 5c 5c 24 31 09 5c 5c 66 49 5c 5c 24 32  .\&\\$1.\\fI\\$2
0bd0: 5c 5c 66 50 0a 2e 5c 7d 0a 2e 65 6c 20 5c 7b 5c  \\fP..\}..el \{\
0be0: 0a 5c 26 5c 5c 66 49 5c 5c 24 31 5c 5c 66 50 0a  .\&\\fI\\$1\\fP.
0bf0: 2e 5c 7d 0a 2e 5c 7d 0a 2e 2e 0a 2e 5c 22 09 23  .\}..\}.....\".#
0c00: 20 64 65 66 69 6e 65 20 74 61 62 62 69 6e 67 20   define tabbing 
0c10: 76 61 6c 75 65 73 20 66 6f 72 20 2e 41 50 0a 2e  values for .AP..
0c20: 64 65 20 41 53 0a 2e 6e 72 20 29 41 20 31 30 6e  de AS..nr )A 10n
0c30: 0a 2e 69 66 20 21 22 5c 5c 24 31 22 22 20 2e 6e  ..if !"\\$1"" .n
0c40: 72 20 29 41 20 5c 5c 77 27 5c 5c 24 31 27 75 2b  r )A \\w'\\$1'u+
0c50: 33 6e 0a 2e 6e 72 20 29 42 20 5c 5c 6e 28 29 41  3n..nr )B \\n()A
0c60: 75 2b 31 35 6e 0a 2e 5c 22 0a 2e 69 66 20 21 22  u+15n..\"..if !"
0c70: 5c 5c 24 32 22 22 20 2e 6e 72 20 29 42 20 5c 5c  \\$2"" .nr )B \\
0c80: 77 27 5c 5c 24 32 27 75 2b 5c 5c 6e 28 29 41 75  w'\\$2'u+\\n()Au
0c90: 2b 33 6e 0a 2e 6e 72 20 29 43 20 5c 5c 6e 28 29  +3n..nr )C \\n()
0ca0: 42 75 2b 5c 5c 77 27 28 69 6e 2f 6f 75 74 29 27  Bu+\\w'(in/out)'
0cb0: 75 2b 32 6e 0a 2e 2e 0a 2e 41 53 20 54 63 6c 5f  u+2n.....AS Tcl_
0cc0: 49 6e 74 65 72 70 20 54 63 6c 5f 43 72 65 61 74  Interp Tcl_Creat
0cd0: 65 49 6e 74 65 72 70 20 69 6e 2f 6f 75 74 0a 2e  eInterp in/out..
0ce0: 5c 22 09 23 20 42 53 20 2d 20 73 74 61 72 74 20  \".# BS - start 
0cf0: 62 6f 78 65 64 20 74 65 78 74 0a 2e 5c 22 09 23  boxed text..\".#
0d00: 20 5e 79 20 3d 20 73 74 61 72 74 69 6e 67 20 79   ^y = starting y
0d10: 20 6c 6f 63 61 74 69 6f 6e 0a 2e 5c 22 09 23 20   location..\".# 
0d20: 5e 62 20 3d 20 31 0a 2e 64 65 20 42 53 0a 2e 62  ^b = 1..de BS..b
0d30: 72 0a 2e 6d 6b 20 5e 79 0a 2e 6e 72 20 5e 62 20  r..mk ^y..nr ^b 
0d40: 31 75 0a 2e 69 66 20 6e 20 2e 6e 66 0a 2e 69 66  1u..if n .nf..if
0d50: 20 6e 20 2e 74 69 20 30 0a 2e 69 66 20 6e 20 5c   n .ti 0..if n \
0d60: 6c 27 5c 5c 6e 28 2e 6c 75 5c 28 75 6c 27 0a 2e  l'\\n(.lu\(ul'..
0d70: 69 66 20 6e 20 2e 66 69 0a 2e 2e 0a 2e 5c 22 09  if n .fi.....\".
0d80: 23 20 42 45 20 2d 20 65 6e 64 20 62 6f 78 65 64  # BE - end boxed
0d90: 20 74 65 78 74 20 28 64 72 61 77 20 62 6f 78 20   text (draw box 
0da0: 6e 6f 77 29 0a 2e 64 65 20 42 45 0a 2e 6e 66 0a  now)..de BE..nf.
0db0: 2e 74 69 20 30 0a 2e 6d 6b 20 5e 74 0a 2e 69 65  .ti 0..mk ^t..ie
0dc0: 20 6e 20 5c 6c 27 5c 5c 6e 28 5e 6c 75 5c 28 75   n \l'\\n(^lu\(u
0dd0: 6c 27 0a 2e 65 6c 20 5c 7b 5c 0a 2e 5c 22 09 44  l'..el \{\..\".D
0de0: 72 61 77 20 66 6f 75 72 2d 73 69 64 65 64 20 62  raw four-sided b
0df0: 6f 78 20 6e 6f 72 6d 61 6c 6c 79 2c 20 62 75 74  ox normally, but
0e00: 20 64 6f 6e 27 74 20 64 72 61 77 20 74 6f 70 20   don't draw top 
0e10: 6f 66 0a 2e 5c 22 09 62 6f 78 20 69 66 20 74 68  of..\".box if th
0e20: 65 20 62 6f 78 20 73 74 61 72 74 65 64 20 6f 6e  e box started on
0e30: 20 61 6e 20 65 61 72 6c 69 65 72 20 70 61 67 65   an earlier page
0e40: 2e 0a 2e 69 65 20 21 5c 5c 6e 28 5e 62 2d 31 20  ...ie !\\n(^b-1 
0e50: 5c 7b 5c 0a 5c 68 27 2d 31 2e 35 6e 27 5c 4c 27  \{\.\h'-1.5n'\L'
0e60: 7c 5c 5c 6e 28 5e 79 75 2d 31 76 27 5c 6c 27 5c  |\\n(^yu-1v'\l'\
0e70: 5c 6e 28 5e 6c 75 2b 33 6e 5c 28 75 6c 27 5c 4c  \n(^lu+3n\(ul'\L
0e80: 27 5c 5c 6e 28 5e 74 75 2b 31 76 2d 5c 5c 6e 28  '\\n(^tu+1v-\\n(
0e90: 5e 79 75 27 5c 6c 27 7c 30 75 2d 31 2e 35 6e 5c  ^yu'\l'|0u-1.5n\
0ea0: 28 75 6c 27 0a 2e 5c 7d 0a 2e 65 6c 20 5c 7d 5c  (ul'..\}..el \}\
0eb0: 0a 5c 68 27 2d 31 2e 35 6e 27 5c 4c 27 7c 5c 5c  .\h'-1.5n'\L'|\\
0ec0: 6e 28 5e 79 75 2d 31 76 27 5c 68 27 5c 5c 6e 28  n(^yu-1v'\h'\\n(
0ed0: 5e 6c 75 2b 33 6e 27 5c 4c 27 5c 5c 6e 28 5e 74  ^lu+3n'\L'\\n(^t
0ee0: 75 2b 31 76 2d 5c 5c 6e 28 5e 79 75 27 5c 6c 27  u+1v-\\n(^yu'\l'
0ef0: 7c 30 75 2d 31 2e 35 6e 5c 28 75 6c 27 0a 2e 5c  |0u-1.5n\(ul'..\
0f00: 7d 0a 2e 5c 7d 0a 2e 66 69 0a 2e 62 72 0a 2e 6e  }..\}..fi..br..n
0f10: 72 20 5e 62 20 30 0a 2e 2e 0a 2e 5c 22 09 23 20  r ^b 0.....\".# 
0f20: 56 53 20 2d 20 73 74 61 72 74 20 76 65 72 74 69  VS - start verti
0f30: 63 61 6c 20 73 69 64 65 62 61 72 0a 2e 5c 22 09  cal sidebar..\".
0f40: 23 20 5e 59 20 3d 20 73 74 61 72 74 69 6e 67 20  # ^Y = starting 
0f50: 79 20 6c 6f 63 61 74 69 6f 6e 0a 2e 5c 22 09 23  y location..\".#
0f60: 20 5e 76 20 3d 20 31 20 28 66 6f 72 20 74 72 6f   ^v = 1 (for tro
0f70: 66 66 3b 20 20 66 6f 72 20 6e 72 6f 66 66 20 74  ff;  for nroff t
0f80: 68 69 73 20 64 6f 65 73 6e 27 74 20 6d 61 74 74  his doesn't matt
0f90: 65 72 29 0a 2e 64 65 20 56 53 0a 2e 69 66 20 21  er)..de VS..if !
0fa0: 22 5c 5c 24 32 22 22 20 2e 62 72 0a 2e 6d 6b 20  "\\$2"" .br..mk 
0fb0: 5e 59 0a 2e 69 65 20 6e 20 27 6d 63 20 5c 73 31  ^Y..ie n 'mc \s1
0fc0: 32 5c 28 62 72 5c 73 30 0a 2e 65 6c 20 2e 6e 72  2\(br\s0..el .nr
0fd0: 20 5e 76 20 31 75 0a 2e 2e 0a 2e 5c 22 09 23 20   ^v 1u.....\".# 
0fe0: 56 45 20 2d 20 65 6e 64 20 6f 66 20 76 65 72 74  VE - end of vert
0ff0: 69 63 61 6c 20 73 69 64 65 62 61 72 0a 2e 64 65  ical sidebar..de
1000: 20 56 45 0a 2e 69 65 20 6e 20 27 6d 63 0a 2e 65   VE..ie n 'mc..e
1010: 6c 20 5c 7b 5c 0a 2e 65 76 20 32 0a 2e 6e 66 0a  l \{\..ev 2..nf.
1020: 2e 74 69 20 30 0a 2e 6d 6b 20 5e 74 0a 5c 68 27  .ti 0..mk ^t.\h'
1030: 7c 5c 5c 6e 28 5e 6c 75 2b 33 6e 27 5c 4c 27 7c  |\\n(^lu+3n'\L'|
1040: 5c 5c 6e 28 5e 59 75 2d 31 76 5c 28 62 76 27 5c  \\n(^Yu-1v\(bv'\
1050: 76 27 5c 5c 6e 28 5e 74 75 2b 31 76 2d 5c 5c 6e  v'\\n(^tu+1v-\\n
1060: 28 5e 59 75 27 5c 68 27 2d 7c 5c 5c 6e 28 5e 6c  (^Yu'\h'-|\\n(^l
1070: 75 2b 33 6e 27 0a 2e 73 70 20 2d 31 0a 2e 66 69  u+3n'..sp -1..fi
1080: 0a 2e 65 76 0a 2e 5c 7d 0a 2e 6e 72 20 5e 76 20  ..ev..\}..nr ^v 
1090: 30 0a 2e 2e 0a 2e 5c 22 09 23 20 53 70 65 63 69  0.....\".# Speci
10a0: 61 6c 20 6d 61 63 72 6f 20 74 6f 20 68 61 6e 64  al macro to hand
10b0: 6c 65 20 70 61 67 65 20 62 6f 74 74 6f 6d 3a 20  le page bottom: 
10c0: 20 66 69 6e 69 73 68 20 6f 66 66 20 63 75 72 72   finish off curr
10d0: 65 6e 74 0a 2e 5c 22 09 23 20 62 6f 78 2f 73 69  ent..\".# box/si
10e0: 64 65 62 61 72 20 69 66 20 69 6e 20 62 6f 78 2f  debar if in box/
10f0: 73 69 64 65 62 61 72 20 6d 6f 64 65 2c 20 74 68  sidebar mode, th
1100: 65 6e 20 69 6e 76 6f 6b 65 64 20 73 74 61 6e 64  en invoked stand
1110: 61 72 64 0a 2e 5c 22 09 23 20 70 61 67 65 20 62  ard..\".# page b
1120: 6f 74 74 6f 6d 20 6d 61 63 72 6f 2e 0a 2e 64 65  ottom macro...de
1130: 20 5e 42 0a 2e 65 76 20 32 0a 27 74 69 20 30 0a   ^B..ev 2.'ti 0.
1140: 27 6e 66 0a 2e 6d 6b 20 5e 74 0a 2e 69 66 20 5c  'nf..mk ^t..if \
1150: 5c 6e 28 5e 62 20 5c 7b 5c 0a 2e 5c 22 09 44 72  \n(^b \{\..\".Dr
1160: 61 77 20 74 68 72 65 65 2d 73 69 64 65 64 20 62  aw three-sided b
1170: 6f 78 20 69 66 20 74 68 69 73 20 69 73 20 74 68  ox if this is th
1180: 65 20 62 6f 78 27 73 20 66 69 72 73 74 20 70 61  e box's first pa
1190: 67 65 2c 0a 2e 5c 22 09 64 72 61 77 20 74 77 6f  ge,..\".draw two
11a0: 20 73 69 64 65 73 20 62 75 74 20 6e 6f 20 74 6f   sides but no to
11b0: 70 20 6f 74 68 65 72 77 69 73 65 2e 0a 2e 69 65  p otherwise...ie
11c0: 20 21 5c 5c 6e 28 5e 62 2d 31 20 5c 68 27 2d 31   !\\n(^b-1 \h'-1
11d0: 2e 35 6e 27 5c 4c 27 7c 5c 5c 6e 28 5e 79 75 2d  .5n'\L'|\\n(^yu-
11e0: 31 76 27 5c 6c 27 5c 5c 6e 28 5e 6c 75 2b 33 6e  1v'\l'\\n(^lu+3n
11f0: 5c 28 75 6c 27 5c 4c 27 5c 5c 6e 28 5e 74 75 2b  \(ul'\L'\\n(^tu+
1200: 31 76 2d 5c 5c 6e 28 5e 79 75 27 5c 68 27 7c 30  1v-\\n(^yu'\h'|0
1210: 75 27 5c 63 0a 2e 65 6c 20 5c 68 27 2d 31 2e 35  u'\c..el \h'-1.5
1220: 6e 27 5c 4c 27 7c 5c 5c 6e 28 5e 79 75 2d 31 76  n'\L'|\\n(^yu-1v
1230: 27 5c 68 27 5c 5c 6e 28 5e 6c 75 2b 33 6e 27 5c  '\h'\\n(^lu+3n'\
1240: 4c 27 5c 5c 6e 28 5e 74 75 2b 31 76 2d 5c 5c 6e  L'\\n(^tu+1v-\\n
1250: 28 5e 79 75 27 5c 68 27 7c 30 75 27 5c 63 0a 2e  (^yu'\h'|0u'\c..
1260: 5c 7d 0a 2e 69 66 20 5c 5c 6e 28 5e 76 20 5c 7b  \}..if \\n(^v \{
1270: 5c 0a 2e 6e 72 20 5e 78 20 5c 5c 6e 28 5e 74 75  \..nr ^x \\n(^tu
1280: 2b 31 76 2d 5c 5c 6e 28 5e 59 75 0a 5c 6b 78 5c  +1v-\\n(^Yu.\kx\
1290: 68 27 2d 5c 5c 6e 78 75 27 5c 68 27 7c 5c 5c 6e  h'-\\nxu'\h'|\\n
12a0: 28 5e 6c 75 2b 33 6e 27 5c 6b 79 5c 4c 27 2d 5c  (^lu+3n'\ky\L'-\
12b0: 5c 6e 28 5e 78 75 27 5c 76 27 5c 5c 6e 28 5e 78  \n(^xu'\v'\\n(^x
12c0: 75 27 5c 68 27 7c 30 75 27 5c 63 0a 2e 5c 7d 0a  u'\h'|0u'\c..\}.
12d0: 2e 62 70 0a 27 66 69 0a 2e 65 76 0a 2e 69 66 20  .bp.'fi..ev..if 
12e0: 5c 5c 6e 28 5e 62 20 5c 7b 5c 0a 2e 6d 6b 20 5e  \\n(^b \{\..mk ^
12f0: 79 0a 2e 6e 72 20 5e 62 20 32 0a 2e 5c 7d 0a 2e  y..nr ^b 2..\}..
1300: 69 66 20 5c 5c 6e 28 5e 76 20 5c 7b 5c 0a 2e 6d  if \\n(^v \{\..m
1310: 6b 20 5e 59 0a 2e 5c 7d 0a 2e 2e 0a 2e 5c 22 09  k ^Y..\}.....\".
1320: 23 20 44 53 20 2d 20 62 65 67 69 6e 20 64 69 73  # DS - begin dis
1330: 70 6c 61 79 0a 2e 64 65 20 44 53 0a 2e 52 53 0a  play..de DS..RS.
1340: 2e 6e 66 0a 2e 73 70 0a 2e 2e 0a 2e 5c 22 09 23  .nf..sp.....\".#
1350: 20 44 45 20 2d 20 65 6e 64 20 64 69 73 70 6c 61   DE - end displa
1360: 79 0a 2e 64 65 20 44 45 0a 2e 66 69 0a 2e 52 45  y..de DE..fi..RE
1370: 0a 2e 73 70 0a 2e 2e 0a 2e 5c 22 09 23 20 53 4f  ..sp.....\".# SO
1380: 20 2d 20 73 74 61 72 74 20 6f 66 20 6c 69 73 74   - start of list
1390: 20 6f 66 20 73 74 61 6e 64 61 72 64 20 6f 70 74   of standard opt
13a0: 69 6f 6e 73 0a 2e 64 65 20 53 4f 0a 27 69 65 20  ions..de SO.'ie 
13b0: 27 5c 5c 24 31 27 27 20 2e 64 73 20 53 6f 20 5c  '\\$1'' .ds So \
13c0: 5c 66 42 6f 70 74 69 6f 6e 73 5c 5c 66 52 0a 27  \fBoptions\\fR.'
13d0: 65 6c 20 2e 64 73 20 53 6f 20 5c 5c 66 42 5c 5c  el .ds So \\fB\\
13e0: 24 31 5c 5c 66 52 0a 2e 53 48 20 22 53 54 41 4e  $1\\fR..SH "STAN
13f0: 44 41 52 44 20 4f 50 54 49 4f 4e 53 22 0a 2e 4c  DARD OPTIONS"..L
1400: 50 0a 2e 6e 66 0a 2e 74 61 20 35 2e 35 63 20 31  P..nf..ta 5.5c 1
1410: 31 63 0a 2e 66 74 20 42 0a 2e 2e 0a 2e 5c 22 09  1c..ft B.....\".
1420: 23 20 53 45 20 2d 20 65 6e 64 20 6f 66 20 6c 69  # SE - end of li
1430: 73 74 20 6f 66 20 73 74 61 6e 64 61 72 64 20 6f  st of standard o
1440: 70 74 69 6f 6e 73 0a 2e 64 65 20 53 45 0a 2e 66  ptions..de SE..f
1450: 69 0a 2e 66 74 20 52 0a 2e 4c 50 0a 53 65 65 20  i..ft R..LP.See 
1460: 74 68 65 20 5c 5c 2a 28 53 6f 20 6d 61 6e 75 61  the \\*(So manua
1470: 6c 20 65 6e 74 72 79 20 66 6f 72 20 64 65 74 61  l entry for deta
1480: 69 6c 73 20 6f 6e 20 74 68 65 20 73 74 61 6e 64  ils on the stand
1490: 61 72 64 20 6f 70 74 69 6f 6e 73 2e 0a 2e 2e 0a  ard options.....
14a0: 2e 5c 22 09 23 20 4f 50 20 2d 20 73 74 61 72 74  .\".# OP - start
14b0: 20 6f 66 20 66 75 6c 6c 20 64 65 73 63 72 69 70   of full descrip
14c0: 74 69 6f 6e 20 66 6f 72 20 61 20 73 69 6e 67 6c  tion for a singl
14d0: 65 20 6f 70 74 69 6f 6e 0a 2e 64 65 20 4f 50 0a  e option..de OP.
14e0: 2e 4c 50 0a 2e 6e 66 0a 2e 74 61 20 34 63 0a 43  .LP..nf..ta 4c.C
14f0: 6f 6d 6d 61 6e 64 2d 4c 69 6e 65 20 4e 61 6d 65  ommand-Line Name
1500: 3a 09 5c 5c 66 42 5c 5c 24 31 5c 5c 66 52 0a 44  :.\\fB\\$1\\fR.D
1510: 61 74 61 62 61 73 65 20 4e 61 6d 65 3a 09 5c 5c  atabase Name:.\\
1520: 66 42 5c 5c 24 32 5c 5c 66 52 0a 44 61 74 61 62  fB\\$2\\fR.Datab
1530: 61 73 65 20 43 6c 61 73 73 3a 09 5c 5c 66 42 5c  ase Class:.\\fB\
1540: 5c 24 33 5c 5c 66 52 0a 2e 66 69 0a 2e 49 50 0a  \$3\\fR..fi..IP.
1550: 2e 2e 0a 2e 5c 22 09 23 20 43 53 20 2d 20 62 65  ....\".# CS - be
1560: 67 69 6e 20 63 6f 64 65 20 65 78 63 65 72 70 74  gin code excerpt
1570: 0a 2e 64 65 20 43 53 0a 2e 52 53 0a 2e 6e 66 0a  ..de CS..RS..nf.
1580: 2e 74 61 20 2e 32 35 69 20 2e 35 69 20 2e 37 35  .ta .25i .5i .75
1590: 69 20 31 69 0a 2e 2e 0a 2e 5c 22 09 23 20 43 45  i 1i.....\".# CE
15a0: 20 2d 20 65 6e 64 20 63 6f 64 65 20 65 78 63 65   - end code exce
15b0: 72 70 74 0a 2e 64 65 20 43 45 0a 2e 66 69 0a 2e  rpt..de CE..fi..
15c0: 52 45 0a 2e 2e 0a 2e 5c 22 09 23 20 55 4c 20 2d  RE.....\".# UL -
15d0: 20 75 6e 64 65 72 6c 69 6e 65 20 77 6f 72 64 0a   underline word.
15e0: 2e 64 65 20 55 4c 0a 5c 5c 24 31 5c 6c 27 7c 30  .de UL.\\$1\l'|0
15f0: 5c 28 75 6c 27 5c 5c 24 32 0a 2e 2e 0a 2e 5c 22  \(ul'\\$2.....\"
1600: 09 23 20 51 57 20 2d 20 61 70 70 6c 79 20 71 75  .# QW - apply qu
1610: 6f 74 61 74 69 6f 6e 20 6d 61 72 6b 73 20 74 6f  otation marks to
1620: 20 77 6f 72 64 0a 2e 64 65 20 51 57 0a 2e 69 65   word..de QW..ie
1630: 20 27 5c 5c 2a 28 6c 71 27 22 27 20 60 60 5c 5c   '\\*(lq'"' ``\\
1640: 24 31 27 27 5c 5c 24 32 0a 2e 5c 22 22 20 66 69  $1''\\$2..\"" fi
1650: 78 20 65 6d 61 63 73 20 68 69 67 68 6c 69 67 68  x emacs highligh
1660: 74 69 6e 67 0a 2e 65 6c 20 5c 5c 2a 28 6c 71 5c  ting..el \\*(lq\
1670: 5c 24 31 5c 5c 2a 28 72 71 5c 5c 24 32 0a 2e 2e  \$1\\*(rq\\$2...
1680: 0a 2e 5c 22 09 23 20 50 51 20 2d 20 61 70 70 6c  ..\".# PQ - appl
1690: 79 20 70 61 72 65 6e 73 20 61 6e 64 20 71 75 6f  y parens and quo
16a0: 74 61 74 69 6f 6e 20 6d 61 72 6b 73 20 74 6f 20  tation marks to 
16b0: 77 6f 72 64 0a 2e 64 65 20 50 51 0a 2e 69 65 20  word..de PQ..ie 
16c0: 27 5c 5c 2a 28 6c 71 27 22 27 20 28 60 60 5c 5c  '\\*(lq'"' (``\\
16d0: 24 31 27 27 5c 5c 24 32 29 5c 5c 24 33 0a 2e 5c  $1''\\$2)\\$3..\
16e0: 22 22 20 66 69 78 20 65 6d 61 63 73 20 68 69 67  "" fix emacs hig
16f0: 68 6c 69 67 68 74 69 6e 67 0a 2e 65 6c 20 28 5c  hlighting..el (\
1700: 5c 2a 28 6c 71 5c 5c 24 31 5c 5c 2a 28 72 71 5c  \*(lq\\$1\\*(rq\
1710: 5c 24 32 29 5c 5c 24 33 0a 2e 2e 0a 2e 5c 22 09  \$2)\\$3.....\".
1720: 23 20 51 52 20 2d 20 71 75 6f 74 65 64 20 72 61  # QR - quoted ra
1730: 6e 67 65 0a 2e 64 65 20 51 52 0a 2e 69 65 20 27  nge..de QR..ie '
1740: 5c 5c 2a 28 6c 71 27 22 27 20 60 60 5c 5c 24 31  \\*(lq'"' ``\\$1
1750: 27 27 5c 5c 2d 60 60 5c 5c 24 32 27 27 5c 5c 24  ''\\-``\\$2''\\$
1760: 33 0a 2e 5c 22 22 20 66 69 78 20 65 6d 61 63 73  3..\"" fix emacs
1770: 20 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 2e 65   highlighting..e
1780: 6c 20 5c 5c 2a 28 6c 71 5c 5c 24 31 5c 5c 2a 28  l \\*(lq\\$1\\*(
1790: 72 71 5c 5c 2d 5c 5c 2a 28 6c 71 5c 5c 24 32 5c  rq\\-\\*(lq\\$2\
17a0: 5c 2a 28 72 71 5c 5c 24 33 0a 2e 2e 0a 2e 5c 22  \*(rq\\$3.....\"
17b0: 09 23 20 4d 54 20 2d 20 22 65 6d 70 74 79 22 20  .# MT - "empty" 
17c0: 73 74 72 69 6e 67 0a 2e 64 65 20 4d 54 0a 2e 51  string..de MT..Q
17d0: 57 20 22 22 0a 2e 2e 0a 2e 42 53 0a 2e 53 48 20  W "".....BS..SH 
17e0: 4e 41 4d 45 0a 63 6d 64 72 3a 3a 76 61 6c 69 64  NAME.cmdr::valid
17f0: 61 74 65 3a 3a 77 65 65 6b 64 61 79 20 5c 2d 20  ate::weekday \- 
1800: 43 6d 64 72 20 2d 20 56 61 6c 69 64 61 74 69 6f  Cmdr - Validatio
1810: 6e 20 74 79 70 65 20 66 6f 72 20 77 65 65 6b 64  n type for weekd
1820: 61 79 20 6e 61 6d 65 73 0a 2e 53 48 20 53 59 4e  ay names..SH SYN
1830: 4f 50 53 49 53 0a 70 61 63 6b 61 67 65 20 72 65  OPSIS.package re
1840: 71 75 69 72 65 20 5c 66 42 74 72 79 20 5c 66 52  quire \fBtry \fR
1850: 0a 2e 73 70 0a 70 61 63 6b 61 67 65 20 72 65 71  ..sp.package req
1860: 75 69 72 65 20 5c 66 42 63 6c 6f 63 6b 3a 3a 69  uire \fBclock::i
1870: 73 6f 38 36 30 31 20 5c 66 52 0a 2e 73 70 0a 70  so8601 \fR..sp.p
1880: 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 5c  ackage require \
1890: 66 42 63 6d 64 72 3a 3a 76 61 6c 69 64 61 74 65  fBcmdr::validate
18a0: 3a 3a 63 6f 6d 6d 6f 6e 20 5c 66 52 0a 2e 73 70  ::common \fR..sp
18b0: 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65  .package require
18c0: 20 5c 66 42 63 6d 64 72 3a 3a 76 61 6c 69 64 61   \fBcmdr::valida
18d0: 74 65 3a 3a 77 65 65 6b 64 61 79 20 5c 66 52 0a  te::weekday \fR.
18e0: 2e 73 70 0a 5c 66 42 3a 3a 63 6d 64 72 3a 3a 76  .sp.\fB::cmdr::v
18f0: 61 6c 69 64 61 74 65 3a 3a 74 69 6d 65 5c 66 52  alidate::time\fR
1900: 20 5c 66 42 32 65 78 74 65 72 6e 61 6c 5c 66 52   \fB2external\fR
1910: 20 5c 66 49 77 65 65 6b 64 61 79 5c 66 52 0a 2e   \fIweekday\fR..
1920: 73 70 0a 2e 42 45 0a 2e 53 48 20 44 45 53 43 52  sp..BE..SH DESCR
1930: 49 50 54 49 4f 4e 0a 2e 50 50 0a 57 65 6c 63 6f  IPTION..PP.Welco
1940: 6d 65 20 74 6f 20 74 68 65 20 43 6d 64 72 20 70  me to the Cmdr p
1950: 72 6f 6a 65 63 74 2c 20 77 72 69 74 74 65 6e 20  roject, written 
1960: 62 79 20 41 6e 64 72 65 61 73 20 4b 75 70 72 69  by Andreas Kupri
1970: 65 73 5c 26 2e 0a 2e 50 50 0a 46 6f 72 20 61 76  es\&...PP.For av
1980: 61 69 6c 61 62 69 6c 69 74 79 20 70 6c 65 61 73  ailability pleas
1990: 65 20 72 65 61 64 20 5c 66 49 43 6d 64 72 20 2d  e read \fICmdr -
19a0: 20 48 6f 77 20 54 6f 20 47 65 74 20 54 68 65 20   How To Get The 
19b0: 53 6f 75 72 63 65 73 5c 66 52 5c 26 2e 0a 2e 50  Sources\fR\&...P
19c0: 50 0a 2e 50 50 0a 54 68 69 73 20 70 61 63 6b 61  P..PP.This packa
19d0: 67 65 20 70 72 6f 76 69 64 65 73 20 74 68 65 20  ge provides the 
19e0: 76 61 6c 69 64 61 74 69 6f 6e 20 74 79 70 65 0a  validation type.
19f0: 5c 66 42 3a 3a 63 6d 64 72 3a 3a 76 61 6c 69 64  \fB::cmdr::valid
1a00: 61 74 65 3a 3a 77 65 65 6b 64 61 79 5c 66 52 20  ate::weekday\fR 
1a10: 77 68 69 63 68 20 61 63 63 65 70 74 73 20 77 65  which accepts we
1a20: 65 6b 64 61 79 73 20 61 73 20 6e 61 6d 65 73 20  ekdays as names 
1a30: 61 6e 64 0a 6e 75 6d 62 65 72 73 5c 26 2e 0a 2e  and.numbers\&...
1a40: 50 50 0a 54 68 65 20 69 6e 74 65 72 6e 61 6c 20  PP.The internal 
1a50: 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 69  representation i
1a60: 73 20 74 68 65 20 6e 75 6d 65 72 69 63 20 77 65  s the numeric we
1a70: 65 6b 64 61 79 20 66 6f 72 20 74 68 65 0a 76 61  ekday for the.va
1a80: 6c 69 64 61 74 65 64 20 69 6e 70 75 74 20 77 68  lidated input wh
1a90: 65 72 65 20 5c 66 42 31 5c 66 52 20 74 6f 20 5c  ere \fB1\fR to \
1aa0: 66 42 37 5c 66 52 20 6d 61 70 20 74 6f 20 4d 6f  fB7\fR map to Mo
1ab0: 6e 64 61 79 20 74 6f 20 53 75 6e 64 61 79 5c 26  nday to Sunday\&
1ac0: 2e 0a 2e 50 50 0a 54 68 65 20 74 79 70 65 20 68  ...PP.The type h
1ad0: 61 73 20 6e 6f 20 69 6e 70 75 74 20 63 6f 6d 70  as no input comp
1ae0: 6c 65 74 69 6f 6e 5c 26 2e 0a 2e 50 50 0a 54 68  letion\&...PP.Th
1af0: 65 20 64 65 74 61 69 6c 73 20 6f 66 20 74 68 65  e details of the
1b00: 20 65 78 70 6f 72 74 65 64 20 73 74 61 6e 64 61   exported standa
1b10: 72 64 20 41 50 49 20 63 61 6e 20 62 65 20 66 6f  rd API can be fo
1b20: 75 6e 64 20 69 6e 0a 5c 66 49 43 6d 64 72 20 2d  und in.\fICmdr -
1b30: 20 57 72 69 74 69 6e 67 20 63 75 73 74 6f 6d 20   Writing custom 
1b40: 76 61 6c 69 64 61 74 69 6f 6e 20 74 79 70 65 73  validation types
1b50: 5c 66 52 5c 26 2e 20 54 68 65 20 63 68 6f 73 65  \fR\&. The chose
1b60: 6e 20 64 65 66 61 75 6c 74 20 69 73 20 22 74 6f  n default is "to
1b70: 64 61 79 27 73 20 77 65 65 6b 64 61 79 22 5c 26  day's weekday"\&
1b80: 2e 0a 2e 50 50 0a 41 20 73 69 6e 67 6c 65 20 6e  ...PP.A single n
1b90: 6f 6e 2d 73 74 61 6e 64 61 72 64 20 6d 65 74 68  on-standard meth
1ba0: 6f 64 20 69 73 20 70 72 6f 76 69 64 65 64 3a 0a  od is provided:.
1bb0: 2e 54 50 0a 5c 66 42 3a 3a 63 6d 64 72 3a 3a 76  .TP.\fB::cmdr::v
1bc0: 61 6c 69 64 61 74 65 3a 3a 74 69 6d 65 5c 66 52  alidate::time\fR
1bd0: 20 5c 66 42 32 65 78 74 65 72 6e 61 6c 5c 66 52   \fB2external\fR
1be0: 20 5c 66 49 77 65 65 6b 64 61 79 5c 66 52 0a 54   \fIweekday\fR.T
1bf0: 68 69 73 20 6d 65 74 68 6f 64 20 63 6f 6e 76 65  his method conve
1c00: 72 74 73 20 74 68 65 20 6e 75 6d 65 72 69 63 20  rts the numeric 
1c10: 77 65 65 6b 64 61 79 20 74 6f 20 74 68 65 20 66  weekday to the f
1c20: 6f 72 6d 20 25 41 20 61 6e 64 20 72 65 74 75 72  orm %A and retur
1c30: 6e 73 0a 74 68 65 20 63 6f 6e 76 65 72 73 69 6f  ns.the conversio
1c40: 6e 20 72 65 73 75 6c 74 20 61 73 20 69 74 73 20  n result as its 
1c50: 6f 77 6e 5c 26 2e 0a 2e 50 50 0a 2e 53 48 20 22  own\&...PP..SH "
1c60: 42 55 47 53 2c 20 49 44 45 41 53 2c 20 46 45 45  BUGS, IDEAS, FEE
1c70: 44 42 41 43 4b 22 0a 42 6f 74 68 20 74 68 65 20  DBACK".Both the 
1c80: 70 61 63 6b 61 67 65 28 73 29 20 61 6e 64 20 74  package(s) and t
1c90: 68 69 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  his documentatio
1ca0: 6e 20 77 69 6c 6c 20 75 6e 64 6f 75 62 74 65 64  n will undoubted
1cb0: 6c 79 20 63 6f 6e 74 61 69 6e 0a 62 75 67 73 20  ly contain.bugs 
1cc0: 61 6e 64 20 6f 74 68 65 72 20 70 72 6f 62 6c 65  and other proble
1cd0: 6d 73 5c 26 2e 0a 50 6c 65 61 73 65 20 72 65 70  ms\&..Please rep
1ce0: 6f 72 74 20 73 75 63 68 20 61 74 0a 5c 66 49 43  ort such at.\fIC
1cf0: 6d 64 72 20 54 69 63 6b 65 74 73 5c 66 52 20 5b  mdr Tickets\fR [
1d00: 68 74 74 70 73 3a 2f 63 6f 72 65 5c 26 2e 74 63  https:/core\&.tc
1d10: 6c 5c 26 2e 74 6b 2f 61 6b 75 70 72 69 65 73 2f  l\&.tk/akupries/
1d20: 63 6d 64 72 5d 5c 26 2e 0a 2e 50 50 0a 50 6c 65  cmdr]\&...PP.Ple
1d30: 61 73 65 20 61 6c 73 6f 20 72 65 70 6f 72 74 20  ase also report 
1d40: 61 6e 79 20 69 64 65 61 73 20 79 6f 75 20 6d 61  any ideas you ma
1d50: 79 20 68 61 76 65 20 66 6f 72 20 65 6e 68 61 6e  y have for enhan
1d60: 63 65 6d 65 6e 74 73 20 6f 66 0a 65 69 74 68 65  cements of.eithe
1d70: 72 20 70 61 63 6b 61 67 65 28 73 29 20 61 6e 64  r package(s) and
1d80: 2f 6f 72 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  /or documentatio
1d90: 6e 5c 26 2e 0a 2e 53 48 20 4b 45 59 57 4f 52 44  n\&...SH KEYWORD
1da0: 53 0a 61 72 67 75 6d 65 6e 74 73 2c 20 63 6f 6d  S.arguments, com
1db0: 6d 61 6e 64 20 68 69 65 72 61 72 63 68 79 2c 20  mand hierarchy, 
1dc0: 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 63 6f 6d  command line com
1dd0: 70 6c 65 74 69 6f 6e 2c 20 63 6f 6d 6d 61 6e 64  pletion, command
1de0: 20 6c 69 6e 65 20 68 61 6e 64 6c 69 6e 67 2c 20   line handling, 
1df0: 63 6f 6d 6d 61 6e 64 20 74 72 65 65 2c 20 65 64  command tree, ed
1e00: 69 74 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 6c 69  iting command li
1e10: 6e 65 2c 20 68 65 6c 70 20 66 6f 72 20 63 6f 6d  ne, help for com
1e20: 6d 61 6e 64 20 6c 69 6e 65 2c 20 68 69 65 72 61  mand line, hiera
1e30: 72 63 68 79 20 6f 66 20 63 6f 6d 6d 61 6e 64 73  rchy of commands
1e40: 2c 20 69 6e 74 65 72 61 63 74 69 76 65 20 63 6f  , interactive co
1e50: 6d 6d 61 6e 64 20 73 68 65 6c 6c 2c 20 6f 70 74  mmand shell, opt
1e60: 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 73 2c  ional arguments,
1e70: 20 6f 70 74 69 6f 6e 73 2c 20 70 61 72 61 6d 65   options, parame
1e80: 74 65 72 73 2c 20 70 72 6f 63 65 73 73 69 6e 67  ters, processing
1e90: 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 2c 20 74   command line, t
1ea0: 72 65 65 20 6f 66 20 63 6f 6d 6d 61 6e 64 73 0a  ree of commands.
1eb0: 2e 53 48 20 43 4f 50 59 52 49 47 48 54 0a 2e 6e  .SH COPYRIGHT..n
1ec0: 66 0a 43 6f 70 79 72 69 67 68 74 20 28 63 29 20  f.Copyright (c) 
1ed0: 32 30 31 33 2d 32 30 31 36 20 41 6e 64 72 65 61  2013-2016 Andrea
1ee0: 73 20 4b 75 70 72 69 65 73 0a 43 6f 70 79 72 69  s Kupries.Copyri
1ef0: 67 68 74 20 28 63 29 20 32 30 31 33 2d 32 30 31  ght (c) 2013-201
1f00: 36 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2c  6 Documentation,
1f10: 20 41 6e 64 72 65 61 73 20 4b 75 70 72 69 65 73   Andreas Kupries
1f20: 0a 0a 2e 66 69                                   ...fi