summaryrefslogtreecommitdiffstats
path: root/development/tkcon
diff options
context:
space:
mode:
author Juan M. Lasca <juanmlasca@gmail.com>2023-10-26 21:53:35 +0900
committer Willy Sudiarto Raharjo <willysr@slackbuilds.org>2023-10-27 12:12:31 +0700
commite4e2629910e2e6767f965652ecc75296e4935da3 (patch)
tree31f8fe6db5373d2aaccc371d3b64877a0f245aaf /development/tkcon
parent379132dc15bae57ffbd3f5e70ade058420151dbc (diff)
downloadslackbuilds-e4e2629910e2e6767f965652ecc75296e4935da3.tar.gz
slackbuilds-e4e2629910e2e6767f965652ecc75296e4935da3.tar.xz
development/tkcon: script updates.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'development/tkcon')
-rw-r--r--development/tkcon/README14
-rw-r--r--development/tkcon/man/man1/tkcon.1625
-rw-r--r--development/tkcon/man/man5/tkconrc.5517
-rw-r--r--development/tkcon/man/mann/dump.n322
-rw-r--r--development/tkcon/man/mann/idebug.n369
-rw-r--r--development/tkcon/man/mann/observe.n335
-rw-r--r--development/tkcon/man/mann/tkcon.n464
-rw-r--r--development/tkcon/slack-desc10
-rw-r--r--development/tkcon/tkcon.SlackBuild73
9 files changed, 2670 insertions, 59 deletions
diff --git a/development/tkcon/README b/development/tkcon/README
index 60ff5181cd..f122a1936b 100644
--- a/development/tkcon/README
+++ b/development/tkcon/README
@@ -1,10 +1,6 @@
-tkcon is a replacement for the standard console that comes with Tk.
-The console itself provides many more features than the standard
-console and works on all platforms where Tcl/Tk is available. It is
-meant primarily to aid one when working with the little details inside
-tcl and tk, giving Unix users the GUI console provided by default in the
-Mac and Windows Tk.
-
-OPTIONAL DEPENDENCIES:
-* tcllib: if installed, generate man pages.
+tkcon itself provides many more features than the standard console
+and works on all platforms where Tcl/Tk is available. It is meant
+primarily to aid one when working with the little details inside
+tcl and tk, giving Unix users the GUI console provided by default
+int the Mac and Windows Tk implementations.
diff --git a/development/tkcon/man/man1/tkcon.1 b/development/tkcon/man/man1/tkcon.1
new file mode 100644
index 0000000000..6bf1c711ae
--- /dev/null
+++ b/development/tkcon/man/man1/tkcon.1
@@ -0,0 +1,625 @@
+'\"
+'\" Generated from file 'tkcon\&.1\&.man' by tcllib/doctools with format 'nroff'
+'\" Copyright (c) Jeffrey Hobbs (jeff at hobbs\&.org)
+'\"
+.TH "tkcon" 1 2\&.5 tkcon\&.1 "TkCon"
+.\" The -*- nroff -*- definitions below are for supplemental macros used
+.\" in Tcl/Tk manual entries.
+.\"
+.\" .AP type name in/out ?indent?
+.\" Start paragraph describing an argument to a library procedure.
+.\" type is type of argument (int, etc.), in/out is either "in", "out",
+.\" or "in/out" to describe whether procedure reads or modifies arg,
+.\" and indent is equivalent to second arg of .IP (shouldn't ever be
+.\" needed; use .AS below instead)
+.\"
+.\" .AS ?type? ?name?
+.\" Give maximum sizes of arguments for setting tab stops. Type and
+.\" name are examples of largest possible arguments that will be passed
+.\" to .AP later. If args are omitted, default tab stops are used.
+.\"
+.\" .BS
+.\" Start box enclosure. From here until next .BE, everything will be
+.\" enclosed in one large box.
+.\"
+.\" .BE
+.\" End of box enclosure.
+.\"
+.\" .CS
+.\" Begin code excerpt.
+.\"
+.\" .CE
+.\" End code excerpt.
+.\"
+.\" .VS ?version? ?br?
+.\" Begin vertical sidebar, for use in marking newly-changed parts
+.\" of man pages. The first argument is ignored and used for recording
+.\" the version when the .VS was added, so that the sidebars can be
+.\" found and removed when they reach a certain age. If another argument
+.\" is present, then a line break is forced before starting the sidebar.
+.\"
+.\" .VE
+.\" End of vertical sidebar.
+.\"
+.\" .DS
+.\" Begin an indented unfilled display.
+.\"
+.\" .DE
+.\" End of indented unfilled display.
+.\"
+.\" .SO ?manpage?
+.\" Start of list of standard options for a Tk widget. The manpage
+.\" argument defines where to look up the standard options; if
+.\" omitted, defaults to "options". The options follow on successive
+.\" lines, in three columns separated by tabs.
+.\"
+.\" .SE
+.\" End of list of standard options for a Tk widget.
+.\"
+.\" .OP cmdName dbName dbClass
+.\" Start of description of a specific option. cmdName gives the
+.\" option's name as specified in the class command, dbName gives
+.\" the option's name in the option database, and dbClass gives
+.\" the option's class in the option database.
+.\"
+.\" .UL arg1 arg2
+.\" Print arg1 underlined, then print arg2 normally.
+.\"
+.\" .QW arg1 ?arg2?
+.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation).
+.\"
+.\" .PQ arg1 ?arg2?
+.\" Print an open parenthesis, arg1 in quotes, then arg2 normally
+.\" (for trailing punctuation) and then a closing parenthesis.
+.\"
+.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
+.if t .wh -1.3i ^B
+.nr ^l \n(.l
+.ad b
+.\" # Start an argument description
+.de AP
+.ie !"\\$4"" .TP \\$4
+.el \{\
+. ie !"\\$2"" .TP \\n()Cu
+. el .TP 15
+.\}
+.ta \\n()Au \\n()Bu
+.ie !"\\$3"" \{\
+\&\\$1 \\fI\\$2\\fP (\\$3)
+.\".b
+.\}
+.el \{\
+.br
+.ie !"\\$2"" \{\
+\&\\$1 \\fI\\$2\\fP
+.\}
+.el \{\
+\&\\fI\\$1\\fP
+.\}
+.\}
+..
+.\" # define tabbing values for .AP
+.de AS
+.nr )A 10n
+.if !"\\$1"" .nr )A \\w'\\$1'u+3n
+.nr )B \\n()Au+15n
+.\"
+.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
+.nr )C \\n()Bu+\\w'(in/out)'u+2n
+..
+.AS Tcl_Interp Tcl_CreateInterp in/out
+.\" # BS - start boxed text
+.\" # ^y = starting y location
+.\" # ^b = 1
+.de BS
+.br
+.mk ^y
+.nr ^b 1u
+.if n .nf
+.if n .ti 0
+.if n \l'\\n(.lu\(ul'
+.if n .fi
+..
+.\" # BE - end boxed text (draw box now)
+.de BE
+.nf
+.ti 0
+.mk ^t
+.ie n \l'\\n(^lu\(ul'
+.el \{\
+.\" Draw four-sided box normally, but don't draw top of
+.\" box if the box started on an earlier page.
+.ie !\\n(^b-1 \{\
+\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
+.\}
+.el \}\
+\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
+.\}
+.\}
+.fi
+.br
+.nr ^b 0
+..
+.\" # VS - start vertical sidebar
+.\" # ^Y = starting y location
+.\" # ^v = 1 (for troff; for nroff this doesn't matter)
+.de VS
+.if !"\\$2"" .br
+.mk ^Y
+.ie n 'mc \s12\(br\s0
+.el .nr ^v 1u
+..
+.\" # VE - end of vertical sidebar
+.de VE
+.ie n 'mc
+.el \{\
+.ev 2
+.nf
+.ti 0
+.mk ^t
+\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
+.sp -1
+.fi
+.ev
+.\}
+.nr ^v 0
+..
+.\" # Special macro to handle page bottom: finish off current
+.\" # box/sidebar if in box/sidebar mode, then invoked standard
+.\" # page bottom macro.
+.de ^B
+.ev 2
+'ti 0
+'nf
+.mk ^t
+.if \\n(^b \{\
+.\" Draw three-sided box if this is the box's first page,
+.\" draw two sides but no top otherwise.
+.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
+.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
+.\}
+.if \\n(^v \{\
+.nr ^x \\n(^tu+1v-\\n(^Yu
+\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
+.\}
+.bp
+'fi
+.ev
+.if \\n(^b \{\
+.mk ^y
+.nr ^b 2
+.\}
+.if \\n(^v \{\
+.mk ^Y
+.\}
+..
+.\" # DS - begin display
+.de DS
+.RS
+.nf
+.sp
+..
+.\" # DE - end display
+.de DE
+.fi
+.RE
+.sp
+..
+.\" # SO - start of list of standard options
+.de SO
+'ie '\\$1'' .ds So \\fBoptions\\fR
+'el .ds So \\fB\\$1\\fR
+.SH "STANDARD OPTIONS"
+.LP
+.nf
+.ta 5.5c 11c
+.ft B
+..
+.\" # SE - end of list of standard options
+.de SE
+.fi
+.ft R
+.LP
+See the \\*(So manual entry for details on the standard options.
+..
+.\" # OP - start of full description for a single option
+.de OP
+.LP
+.nf
+.ta 4c
+Command-Line Name: \\fB\\$1\\fR
+Database Name: \\fB\\$2\\fR
+Database Class: \\fB\\$3\\fR
+.fi
+.IP
+..
+.\" # CS - begin code excerpt
+.de CS
+.RS
+.nf
+.ta .25i .5i .75i 1i
+..
+.\" # CE - end code excerpt
+.de CE
+.fi
+.RE
+..
+.\" # UL - underline word
+.de UL
+\\$1\l'|0\(ul'\\$2
+..
+.\" # QW - apply quotation marks to word
+.de QW
+.ie '\\*(lq'"' ``\\$1''\\$2
+.\"" fix emacs highlighting
+.el \\*(lq\\$1\\*(rq\\$2
+..
+.\" # PQ - apply parens and quotation marks to word
+.de PQ
+.ie '\\*(lq'"' (``\\$1''\\$2)\\$3
+.\"" fix emacs highlighting
+.el (\\*(lq\\$1\\*(rq\\$2)\\$3
+..
+.\" # QR - quoted range
+.de QR
+.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3
+.\"" fix emacs highlighting
+.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3
+..
+.\" # MT - "empty" string
+.de MT
+.QW ""
+..
+.BS
+.SH NAME
+tkcon \- Tk console replacement
+.SH SYNOPSIS
+\fBtkcon\fR [{\fIoption\fR \fIvalue\fR | \fItcl_script\fR} \&.\&.\&.]
+.sp
+.BE
+.SH DESCRIPTION
+.PP
+TkCon is a replacement for the standard console that comes with Tk
+(on Windows/Mac, but also works on Unix)\&.
+The console itself provides many more features than the standard
+console\&.
+TkCon works on all platforms where Tcl/Tk is available\&.
+It is meant primarily to aid one when working with the little
+details inside Tcl and Tk, giving Unix users the GUI console
+provided by default in the Mac and Windows Tk\&.
+.TP
+\fBtkcon\fR [{\fIoption\fR \fIvalue\fR | \fItcl_script\fR} \&.\&.\&.]
+.PP
+.SH OPTIONS
+.PP
+Except for \fB-rcfile\fR, command line arguments are handled after
+the TkCon resource file is sourced, but before the slave
+interpreter or the TkCon user interface is initialized\&.
+.PP
+\fB-rcfile\fR is handled right before it would be sourced,
+allowing you to specify any alternate file\&.
+Command line arguments are passed to each new console and
+will be evaluated by each\&.
+To prevent this from happening, you have to say
+.CS
+
+
+tkcon main set argv {}; tkcon main set argc 0
+
+.CE
+.PP
+For these options, any unique substring is allowed\&.
+.TP
+\fB-argv\fR (also \fB--\fR)
+Causes TkCon to stop evaluating arguments and set the remaining
+args to be argv/argc (with \fB--\fR prepended)\&.
+This carries over for any further consoles\&.
+This is meant only for wrapping TkCon
+around programs that require their own arguments\&.
+.TP
+\fB-color-<color>\fR \fIcolor\fR
+Sets the requested color type to the specified color for tkcon\&.
+See \fBtkconrc\fR(5) for the recognized \fB<color>\fR names\&.
+.TP
+\fB-eval\fR \fItcl_script\fR (also \fB-main\fR or \fB-e\fR)
+A Tcl script to eval in each main interpreter\&.
+This is evaluated after the resource file is loaded and the
+slave interpreter is created\&.
+Multiple \fB-eval\fR switches will be recognized (in order)\&.
+.TP
+\fB-exec\fR \fIslavename\fR
+Sets the named slave that tkcon operates in\&.
+In general, this is only useful to set to \fI""\fR (empty),
+indicating to tkcon to avoid the multi-interpreter model and
+operate in the main environment\&.
+When this is empty, any further arguments will be only used
+in the first tkcon console and not passed onto further new consoles\&.
+This is useful when using tkcon as a console for extended wish
+executables that don't load there commands into slave interpreters\&.
+.TP
+\fB-font\fR \fIfont\fR
+Sets the font that tkcon uses for its text windows\&.
+If this isn't a fixed width font, tkcon will override it\&.
+.TP
+\fB-nontcl\fR \fITCL_BOOLEAN\fR
+Sets \fB::tkcon::OPT(nontcl)\fR to \fITCL_BOOLEAN\fR (see
+\fBtkconrc\fR(5))\&.
+Needed when attaching to non-Tcl interpreters\&.
+.TP
+\fB-package\fR \fIpackage_name\fR (also \fB-load\fR)
+Packages to automatically load into the slave interpreters (i\&.e\&. "Tk")\&.
+.TP
+\fB-rcfile\fR \fIfilename\fR
+Specify an alternate tkcon resource file name\&.
+.TP
+\fB-root\fR \fIwidgetname\fR
+Makes the named widget the root name of all consoles (i\&.e\&. \&.tkcon)\&.
+.TP
+\fB-slave\fR \fItcl_script\fR
+A Tcl script to eval in each slave interpreter\&.
+This will append the one specified in the tkcon resource file, if any\&.
+.PP
+.SH "KEY BINDINGS"
+.PP
+Most of the bindings are the same as for the \fBtext\fR widget\&.
+Some have been modified to make sure that the integrity of the
+console is maintained\&.
+Others have been added to enhance the usefulness of the console\&.
+Only the modified or new bindings are listed here\&.
+.TP
+\fBControl-x\fR or \fBCut\fR (on Sparc5 keyboards)
+Cut\&.
+.TP
+\fBControl-c\fR or \fBCopy\fR (on Sparc5 keyboards)
+Copy\&.
+.TP
+\fBControl-v\fR or \fBPaste\fR (on Sparc5 keyboards)
+Paste\&.
+.TP
+\fBInsert\fR
+Insert (duh)\&.
+.TP
+\fBUp\fR
+Goes up one level in the commands line history when cursor is on
+the prompt line, otherwise it moves through the buffer\&.
+.TP
+\fBDown\fR
+Goes down one level in the commands line history when cursor
+is on the last line of the buffer, otherwise it moves through the buffer\&.
+.TP
+\fBControl-p\fR
+Goes up one level in the commands line history\&.
+.TP
+\fBControl-n\fR
+Goes down one level in the commands line history\&.
+.TP
+\fBTab\fR
+Tries to expand file path names, then variable names, then proc names\&.
+.TP
+\fBEscape\fR
+Tries to expand file path names\&.
+.TP
+\fBControl-P\fR
+Tries to expand procedure names\&.
+The procedure names will be those that are actually in the attached
+interpreter (unless nontcl is specified, in which case it always
+does the lookup in the default slave interpreter)\&.
+.TP
+\fBControl-V\fR
+Tries to expand variable names (those returned by [info vars])\&.
+It's search behavior is like that for procedure names\&.
+.TP
+\fBReturn\fR or \fBEnter\fR
+Evaluates the current command line if it is a complete command,
+otherwise it just goes to a new line\&.
+.TP
+\fBControl-a\fR
+Go to the beginning of the current command line\&.
+.TP
+\fBControl-l\fR
+Clear the entire console buffer\&.
+.TP
+\fBControl-r\fR
+Searches backwards in the history for any command that contains
+the string in the current command line\&.
+Repeatable to search farther back\&.
+The matching substring off the found command will blink\&.
+.TP
+\fBControl-s\fR
+As above, but searches forward (only useful if you searched too far back)\&.
+.TP
+\fBControl-t\fR
+Transposes characters\&.
+.TP
+\fBControl-u\fR
+Clears the current command line\&.
+.TP
+\fBControl-z\fR
+Saves current command line in a buffer that can be retrieved
+with another \fBControl-z\fR\&.
+If the current command line is empty, then any saved command
+is retrieved without being overwritten, otherwise the current
+contents get swapped with what's in the saved command buffer\&.
+.TP
+\fBControl-Key-1\fR
+Attaches console to the console's slave interpreter\&.
+.TP
+\fBControl-Key-2\fR
+Attaches console to the console's master interpreter\&.
+.TP
+\fBControl-Key-3\fR
+Attaches console to main TkCon interpreter\&.
+.TP
+\fBControl-A\fR
+Pops up the "About" dialog\&.
+.TP
+\fBControl-N\fR
+Creates a new console\&. Each console has separate state, including
+it's own widget hierarchy (it's a slave interpreter)\&.
+.TP
+\fBControl-q\fR
+Close the current console OR Quit the program (depends on the
+value of \fB::tkcon::TKCON(slaveexit)\fR)\&.
+.TP
+\fBControl-w\fR
+Closes the current console\&.
+Closing the main console will exit the program (something has
+to control all the slaves\&.\&.\&.)\&.
+.PP
+.PP
+TkCon also has electric bracing (similar to that in emacs)\&.
+It will highlight matching pairs of {}'s, []'s, ()'s and ""'s\&.
+For the first three, if there is no matching left element for the right,
+then it blinks the entire current command line\&.
+For the double quote, if there is no proper match then it just blinks
+the current double quote character\&.
+It does properly recognize most escaping (except escaped escapes),
+but does not look for commenting (why would you interactively
+put comments in?)\&.
+.SH COMMANDS
+.PP
+There are several new procedures introduced in TkCon to improve
+productivity and/or account for lost functionality in the Tcl
+environment that users are used to in native environments\&.
+There are also some redefined procedures\&.
+Here is a non-comprehensive list:
+.TP
+\fBalias\fR ?\fIsourceCmd\fR \fItargetCmd\fR ?\fIarg\fR \fIarg\fR \&.\&.\&.??
+Simple alias mechanism\&.
+It will overwrite existing commands\&.
+When called without args, it returns current aliases\&.
+Note that TkCon makes some aliases for you (in slaves)\&.
+Don't delete those\&.
+.TP
+\fBclear\fR ?\fIpercentage\fR?
+Clears the text widget\&.
+Same as the <\fBControl-l\fR> binding, except this will accept a
+percentage of the buffer to clear (1-100, 100 default)\&.
+.TP
+\fBdir\fR ?\fI-all\fR? ?\fI-full\fR? ?\fI-long\fR? ?\fIpattern\fR \fIpattern\fR \&.\&.\&.?
+Cheap way to get directory listings\&.
+Uses glob style pattern matching\&.
+.TP
+\fBdump\fR \fItype\fR ?\fI-nocomplain\fR? ?\fI-filter pattern\fR? ?\fB--\fR? \fIpattern\fR ?\fIpattern\fR \&.\&.\&.?
+The dump command provides a way for the user to spit out state
+information about the interpreter in a Tcl readable (and
+human readable) form\&.
+See \fBdump\fR(n) for details\&.
+.TP
+\fBecho\fR ?\fIarg\fR \fIarg\fR \&.\&.\&.?
+Concatenates the args and spits the result to the console (stdout)\&.
+.TP
+\fBedit\fR ?\fI-type type\fR? ?\fI-find str\fR? ?\fI-attach interp\fR? \fIarg\fR
+Opens an editor with the data from arg\&.
+The optional type argument can be one of: \fIproc\fR, \fIvar\fR or \fIfile\fR\&.
+For proc or var, the arg may be a pattern\&.
+.TP
+\fBidebug\fR \fIcommand\fR ?\fIargs\fR?
+Interactive debugging command\&.
+See \fBidebug\fR(n) for details\&.
+.TP
+\fBlremove\fR ?\fI-all\fR? ?\fI-regexp\fR \fI-glob\fR? \fIlist\fR \fIitems\fR
+Removes one or more items from a list and returns the new list\&.
+If \fI-all\fR is specified, it removes all instances of each item
+in the list\&.
+If \fI-regexp\fR or \fI-glob\fR is specified, it interprets each item in
+the items list as a regexp or glob pattern to match against\&.
+.TP
+\fBless\fR
+Aliased to \fBedit\fR\&.
+.TP
+\fBls\fR
+Aliased to \fBdir\fR \fI-full\fR\&.
+.TP
+\fBmore\fR
+Aliased to \fBedit\fR\&.
+.TP
+\fBobserve\fR \fItype\fR ?\fIargs\fR?
+This command provides passive runtime debugging output for
+variables and commands\&.
+See \fBobserve\fR(n) for details\&.
+.TP
+\fBputs\fR (same options as always)
+Redefined to put the output into TkCon\&.
+.TP
+\fBtkcon\fR \fImethod\fR ?\fIargs\fR?
+Multi-purpose command\&.
+See \fBtkcon\fR(n) for details\&.
+.TP
+\fBtclindex\fR \fI?-extensions patternlist? ?-index TCL_BOOLEAN? ?-package TCL_BOOLEAN? ?dir1 dir2 \&.\&.\&.?\fR
+Convenience proc to update the "\fItclIndex\fR" (controlled by \fI-index\fR switch)
+and/or "\fIpkgIndex\&.tcl\fR" (controlled by \fI-package\fR switch) file in the named
+directories based on the given pattern for files\&.
+It defaults to creating the "\fItclIndex\fR" but not the "\fIpkgIndex\&.tcl\fR" file,
+with the directory defaulting to [pwd]\&.
+The extension defaults to *\&.tcl, with *\&.[info sharelibextension]
+added when \fI-package\fR is true\&.
+.TP
+\fBunalias\fR \fIcmd\fR
+unaliases command\&.
+.TP
+\fBwhat\fR \fIstring\fR
+The what command will identify the word given in string in
+the Tcl environment and return a list of types that it was recognized as\&.
+Possible types are: alias, procedure, command, array variable,
+scalar variable, directory, file, widget, and executable\&.
+Used by procedures dump and which\&.
+.TP
+\fBwhich\fR \fIcommand\fR
+Like the \fBwhich\fR command of Unix shells, this will tell you if a
+particular command is known, and if so, whether it is internal or
+external to the interpreter\&.
+If it is an internal command and there is a slot in \fBauto_index\fR for it,
+it tells you the file that \fBauto_index\fR would load\&.
+This does not necessarily mean that that is where the file came from,
+but if it were not in the interpreter previously, then that
+is where the command was found\&.
+.PP
+.PP
+There are several procedures that I use as helpers that some may find
+helpful in there coding (i\&.e\&. expanding pathnames)\&. Feel free to lift
+them from the code (but do assign proper attribution)\&.
+.SH EXAMLPES
+.PP
+Some examples of tkcon command line startup situations:
+.CS
+
+
+\fBmegawish\fR /usr/bin/tkcon \fB-exec\fR "" \fB-root\fR \&.tkcon \fImainfile\&.tcl\fR
+
+.CE
+Use tkcon as a console for your \fBmegawish\fR application\&.
+You can avoid starting the line with megawish if that is the
+default \fBwish\fR that TkCon would use\&.
+The \fB-root\fR ensures that tkcon will not conflict with the
+application root window\&.
+.CS
+
+
+\fBtkcon\fR \fB-font\fR "Courier 12" \fB-load\fR Tk
+
+.CE
+Use the courier font for TkCon and always load Tk in slave
+interpreters at startup\&.
+.CS
+
+
+\fBtkcon\fR \fB-rcfile\fR ~/\&.wishrc \fB-color-bg\fR white
+
+.CE
+Use the ~/\&.wishrc file as the resource file, and a white
+background for TkCon's text widgets\&.
+.SH FILES
+TkCon will search for a resource file in "\fI~/\&.tkconrc\fR"\&.
+TkCon never sources the "\fI~/\&.wishrc\fR" file\&.
+The resource file is sourced by each new instance of the console\&.
+An example resource file is provided in \fBtkconrc\fR(5)\&.
+.SH "SEE ALSO"
+\fBdump\fR(n), \fBidebug\fR(n), \fBobserve\fR(n), \fBtext\fR(n), \fBtkcon\fR(n), \fBtkconrc\fR(5)
+.SH KEYWORDS
+Tk, console
+.SH COPYRIGHT
+.nf
+Copyright (c) Jeffrey Hobbs (jeff at hobbs\&.org)
+
+.fi
diff --git a/development/tkcon/man/man5/tkconrc.5 b/development/tkcon/man/man5/tkconrc.5
new file mode 100644
index 0000000000..5ca3cb8060
--- /dev/null
+++ b/development/tkcon/man/man5/tkconrc.5
@@ -0,0 +1,517 @@
+'\"
+'\" Generated from file 'tkconrc\&.5\&.man' by tcllib/doctools with format 'nroff'
+'\" Copyright (c) Jeffrey Hobbs <jeff at hobbs\&.org>
+'\"
+.TH "tkconrc" 5 2\&.5 tkconrc\&.5 "TkCon"
+.\" The -*- nroff -*- definitions below are for supplemental macros used
+.\" in Tcl/Tk manual entries.
+.\"
+.\" .AP type name in/out ?indent?
+.\" Start paragraph describing an argument to a library procedure.
+.\" type is type of argument (int, etc.), in/out is either "in", "out",
+.\" or "in/out" to describe whether procedure reads or modifies arg,
+.\" and indent is equivalent to second arg of .IP (shouldn't ever be
+.\" needed; use .AS below instead)
+.\"
+.\" .AS ?type? ?name?
+.\" Give maximum sizes of arguments for setting tab stops. Type and
+.\" name are examples of largest possible arguments that will be passed
+.\" to .AP later. If args are omitted, default tab stops are used.
+.\"
+.\" .BS
+.\" Start box enclosure. From here until next .BE, everything will be
+.\" enclosed in one large box.
+.\"
+.\" .BE
+.\" End of box enclosure.
+.\"
+.\" .CS
+.\" Begin code excerpt.
+.\"
+.\" .CE
+.\" End code excerpt.
+.\"
+.\" .VS ?version? ?br?
+.\" Begin vertical sidebar, for use in marking newly-changed parts
+.\" of man pages. The first argument is ignored and used for recording
+.\" the version when the .VS was added, so that the sidebars can be
+.\" found and removed when they reach a certain age. If another argument
+.\" is present, then a line break is forced before starting the sidebar.
+.\"
+.\" .VE
+.\" End of vertical sidebar.
+.\"
+.\" .DS
+.\" Begin an indented unfilled display.
+.\"
+.\" .DE
+.\" End of indented unfilled display.
+.\"
+.\" .SO ?manpage?
+.\" Start of list of standard options for a Tk widget. The manpage
+.\" argument defines where to look up the standard options; if
+.\" omitted, defaults to "options". The options follow on successive
+.\" lines, in three columns separated by tabs.
+.\"
+.\" .SE
+.\" End of list of standard options for a Tk widget.
+.\"
+.\" .OP cmdName dbName dbClass
+.\" Start of description of a specific option. cmdName gives the
+.\" option's name as specified in the class command, dbName gives
+.\" the option's name in the option database, and dbClass gives
+.\" the option's class in the option database.
+.\"
+.\" .UL arg1 arg2
+.\" Print arg1 underlined, then print arg2 normally.
+.\"
+.\" .QW arg1 ?arg2?
+.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation).
+.\"
+.\" .PQ arg1 ?arg2?
+.\" Print an open parenthesis, arg1 in quotes, then arg2 normally
+.\" (for trailing punctuation) and then a closing parenthesis.
+.\"
+.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
+.if t .wh -1.3i ^B
+.nr ^l \n(.l
+.ad b
+.\" # Start an argument description
+.de AP
+.ie !"\\$4"" .TP \\$4
+.el \{\
+. ie !"\\$2"" .TP \\n()Cu
+. el .TP 15
+.\}
+.ta \\n()Au \\n()Bu
+.ie !"\\$3"" \{\
+\&\\$1 \\fI\\$2\\fP (\\$3)
+.\".b
+.\}
+.el \{\
+.br
+.ie !"\\$2"" \{\
+\&\\$1 \\fI\\$2\\fP
+.\}
+.el \{\
+\&\\fI\\$1\\fP
+.\}
+.\}
+..
+.\" # define tabbing values for .AP
+.de AS
+.nr )A 10n
+.if !"\\$1"" .nr )A \\w'\\$1'u+3n
+.nr )B \\n()Au+15n
+.\"
+.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
+.nr )C \\n()Bu+\\w'(in/out)'u+2n
+..
+.AS Tcl_Interp Tcl_CreateInterp in/out
+.\" # BS - start boxed text
+.\" # ^y = starting y location
+.\" # ^b = 1
+.de BS
+.br
+.mk ^y
+.nr ^b 1u
+.if n .nf
+.if n .ti 0
+.if n \l'\\n(.lu\(ul'
+.if n .fi
+..
+.\" # BE - end boxed text (draw box now)
+.de BE
+.nf
+.ti 0
+.mk ^t
+.ie n \l'\\n(^lu\(ul'
+.el \{\
+.\" Draw four-sided box normally, but don't draw top of
+.\" box if the box started on an earlier page.
+.ie !\\n(^b-1 \{\
+\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
+.\}
+.el \}\
+\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
+.\}
+.\}
+.fi
+.br
+.nr ^b 0
+..
+.\" # VS - start vertical sidebar
+.\" # ^Y = starting y location
+.\" # ^v = 1 (for troff; for nroff this doesn't matter)
+.de VS
+.if !"\\$2"" .br
+.mk ^Y
+.ie n 'mc \s12\(br\s0
+.el .nr ^v 1u
+..
+.\" # VE - end of vertical sidebar
+.de VE
+.ie n 'mc
+.el \{\
+.ev 2
+.nf
+.ti 0
+.mk ^t
+\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
+.sp -1
+.fi
+.ev
+.\}
+.nr ^v 0
+..
+.\" # Special macro to handle page bottom: finish off current
+.\" # box/sidebar if in box/sidebar mode, then invoked standard
+.\" # page bottom macro.
+.de ^B
+.ev 2
+'ti 0
+'nf
+.mk ^t
+.if \\n(^b \{\
+.\" Draw three-sided box if this is the box's first page,
+.\" draw two sides but no top otherwise.
+.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
+.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
+.\}
+.if \\n(^v \{\
+.nr ^x \\n(^tu+1v-\\n(^Yu
+\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
+.\}
+.bp
+'fi
+.ev
+.if \\n(^b \{\
+.mk ^y
+.nr ^b 2
+.\}
+.if \\n(^v \{\
+.mk ^Y
+.\}
+..
+.\" # DS - begin display
+.de DS
+.RS
+.nf
+.sp
+..
+.\" # DE - end display
+.de DE
+.fi
+.RE
+.sp
+..
+.\" # SO - start of list of standard options
+.de SO
+'ie '\\$1'' .ds So \\fBoptions\\fR
+'el .ds So \\fB\\$1\\fR
+.SH "STANDARD OPTIONS"
+.LP
+.nf
+.ta 5.5c 11c
+.ft B
+..
+.\" # SE - end of list of standard options
+.de SE
+.fi
+.ft R
+.LP
+See the \\*(So manual entry for details on the standard options.
+..
+.\" # OP - start of full description for a single option
+.de OP
+.LP
+.nf
+.ta 4c
+Command-Line Name: \\fB\\$1\\fR
+Database Name: \\fB\\$2\\fR
+Database Class: \\fB\\$3\\fR
+.fi
+.IP
+..
+.\" # CS - begin code excerpt
+.de CS
+.RS
+.nf
+.ta .25i .5i .75i 1i
+..
+.\" # CE - end code excerpt
+.de CE
+.fi
+.RE
+..
+.\" # UL - underline word
+.de UL
+\\$1\l'|0\(ul'\\$2
+..
+.\" # QW - apply quotation marks to word
+.de QW
+.ie '\\*(lq'"' ``\\$1''\\$2
+.\"" fix emacs highlighting
+.el \\*(lq\\$1\\*(rq\\$2
+..
+.\" # PQ - apply parens and quotation marks to word
+.de PQ
+.ie '\\*(lq'"' (``\\$1''\\$2)\\$3
+.\"" fix emacs highlighting
+.el (\\*(lq\\$1\\*(rq\\$2)\\$3
+..
+.\" # QR - quoted range
+.de QR
+.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3
+.\"" fix emacs highlighting
+.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3
+..
+.\" # MT - "empty" string
+.de MT
+.QW ""
+..
+.BS
+.SH NAME
+tkconrc \- TkCon resource file
+.SH DESCRIPTION
+.PP
+TkCon will search for a resource file in "\fI~/\&.tkconrc\fR"\&.
+TkCon never sources the "\fI~/\&.wishrc\fR" file\&.
+The resource file is sourced by each new instance of the console\&.
+An example resource file is provided below\&.
+.PP
+The file itself is a Tcl script, so it is required that the
+file conforms to Tcl script conventions\&.
+.SH VARIABLES
+.PP
+Certain variables in TkCon can be modified to suit your needs\&.
+It's easiest to do this in the resource file, but you can do
+it when time the program is running (and some can be changed
+via the \fIPrefs\fR menu)\&.
+All these are part of the master interpreter's \fB::tkcon\fR
+namespace\&.
+The modifiable array variables are \fB::tkcon::COLOR\fR and
+\fB::tkcon::OPT\fR\&.
+You can call
+.CS
+
+
+tkcon set ::tkcon::COLOR
+
+.CE
+when the program is running to check its state\&.
+Here is an explanation of certain variables you
+might change or use:
+.TP
+\fB::tkcon::COLOR(bg)\fR
+The background color for tkcon text widgets\&.
+Defaults to the operating system default (determined at startup)\&.
+.TP
+\fB::tkcon::COLOR(blink)\fR
+The background color of the electric brace highlighting, if on\&.
+Defaults to yellow\&.
+.TP
+\fB::tkcon::COLOR(cursor)\fR
+The background color for the insertion cursor in tkcon\&.
+Defaults to black\&.
+.TP
+\fB::tkcon::COLOR(disabled)\fR
+The foreground color for disabled menu items\&.
+Defaults to dark grey\&.
+.TP
+\fB::tkcon::COLOR(proc)\fR
+The foreground color of a recognized proc, if command highlighting is on\&.
+Defaults to dark green\&.
+.TP
+\fB::tkcon::COLOR(var)\fR
+The background color of a recognized var, if command highlighting is on\&.
+Defaults to pink\&.
+.TP
+\fB::tkcon::COLOR(prompt)\fR
+The foreground color of the prompt as output in the console\&.
+Defaults to brown\&.
+.TP
+\fB::tkcon::COLOR(stdin)\fR
+The foreground color of the stdin for the console\&.
+Defaults to black\&.
+.TP
+\fB::tkcon::COLOR(stdout)\fR
+The foreground color of the stdout as output in the console\&.
+Defaults to blue\&.
+.TP
+\fB::tkcon::COLOR(stderr)\fR
+The foreground color of stderr as output in the console\&.
+Defaults to red\&.
+.TP
+\fB::tkcon::OPT(autoload)\fR
+Packages to automatically load into the slave interpreter (i\&.e\&. 'Tk')\&.
+This is a list\&.
+Defaults to {} (none)\&.
+.TP
+\fB::tkcon::OPT(blinktime)\fR
+The amount of time (in millisecs) that braced sections should blink for\&.
+Defaults to 500 (0\&.5 secs), must be at least 100\&.
+.TP
+\fB::tkcon::OPT(blinkrange)\fR
+Whether to blink the entire range for electric brace matching
+or to just blink the actual matching braces (respectively 1 or 0,
+defaults to 1)\&.
+.TP
+\fB::tkcon::OPT(buffer)\fR
+The size of the console scroll buffer (in lines)\&.
+Defaults to 512\&.
+.TP
+\fB::tkcon::OPT(calcmode)\fR
+Whether to allow expr commands to be run at the command line
+without prefixing them with expr (just a convenience)\&.
+.TP
+\fB::tkcon::OPT(cols)\fR
+Number of columns for the console to start out with\&.
+Defaults to 80\&.
+.TP
+\fB::tkcon::OPT(dead)\fR
+What to do with dead connected interpreters\&.
+If dead is leave, TkCon automatically exits the dead interpreter\&.
+If dead is ignore then it remains attached waiting for the
+interpreter to reappear\&.
+Otherwise TkCon will prompt you\&.
+.TP
+\fB::tkcon::OPT(exec)\fR
+This corresponds to the \fB-exec\fR tkcon option (see \fBtkcon\fR(1))\&.
+.TP
+\fB::tkcon::OPT(font)\fR
+Font to use for tkcon text widgets (also specified with \fB-font\fR option)\&.
+Defaults to the system default, or a fixed width equivalent\&.
+.TP
+\fB::tkcon::OPT(gets)\fR
+Controls whether tkcon will overload the gets command to work with tkcon\&.
+The valid values are: congets (the default), which will redirect
+stdin requests to the tkcon window; gets, which will pop up a dialog to
+get input; and {} (empty string) which tells tkcon not to overload gets\&.
+This value must be set at startup to alter tkcon's behavior\&.
+.TP
+\fB::tkcon::OPT(history)\fR
+The size of the history list to keep\&.
+Defaults to 48\&.
+.TP
+\fB::tkcon::OPT(hoterrors)\fR
+Whether hot errors are enabled or not\&.
+When enabled, errors that are returned to the console are marked
+with a link to the error info that will pop up in an minimal editor\&.
+This requires more memory because each error that occurs will
+maintain bindings for this feature, as long as the error
+is in the text widget\&.
+Defaults to on\&.
+.TP
+\fB::tkcon::OPT(library)\fR
+The path to any tcl library directories (these are appended
+to the \fBauto_path\fR when the after the resource file is loaded in)\&.
+.TP
+\fB::tkcon::OPT(lightbrace)\fR
+Whether to use the brace highlighting feature or not
+(respectively 1 or 0, defaults to 1)\&.
+.TP
+\fB::tkcon::OPT(lightcmd)\fR
+Whether to use the command highlighting feature or not
+(respectively 1 or 0, defaults to 1)\&.
+.TP
+\fB::tkcon::OPT(maineval)\fR
+A tcl script to execute in the main interpreter after the
+slave interpreter is created and the user interface is initialized\&.
+.TP
+\fB::tkcon::OPT(maxlinelen)\fR
+A number that specifies the limit of long result lines\&.
+True result is still captured in $_ (and 'puts $_' works)\&.
+Defaults to 0 (unlimited)\&.
+.TP
+\fB::tkcon::OPT(maxmenu)\fR
+A number that specifies the maximum number of packages to
+show vertically in the \fIInterp->Packages\fR menu before breaking
+into another column\&.
+Defaults to 15\&.
+.TP
+\fB::tkcon::OPT(nontcl)\fR
+For those who might be using non-Tcl based Tk attachments, set this to 1\&.
+It prevents TkCon from trying to evaluate its own Tcl
+code in an attached interpreter\&.
+Also see my notes for non-Tcl based Tk interpreters\&.
+.TP
+\fB::tkcon::OPT(prompt1)\fR
+Like \fBtcl_prompt1\fR, except it doesn't require you use \fBputs\fR\&.
+No equivalent for \fBtcl_prompt2\fR is available (it's unnecessary IMHO)\&.
+Defaults to {([file tail [pwd]]) [history nextid] % }\&.
+.TP
+\fB::tkcon::OPT(rows)\fR
+Number of rows for the console to start out with\&.
+Defaults to 20\&.
+.TP
+\fB::tkcon::OPT(scollypos)\fR
+Y scrollbar position\&.
+Valid values are left or right\&.
+Defaults to right\&.
+.TP
+\fB::tkcon::OPT(showmenu)\fR
+Show the menubar on startup (1 or 0, defaults to 1)\&.
+.TP
+\fB::tkcon::OPT(showmultiple)\fR
+Show multiple matches for path/proc/var name expansion (1 or 0,
+defaults to 1)\&.
+.TP
+\fB::tkcon::OPT(slaveeval)\fR
+A tcl script to execute in each slave interpreter right after it's created\&.
+This allows the user to have user defined info always available in a slave\&.
+.sp
+Example:
+.CS
+
+
+set ::tkcon::OPT(slaveeval) {
+ proc foo args { puts $args }
+ lappend auto_path \&.
+}
+
+.CE
+.TP
+\fB::tkcon::OPT(slaveexit)\fR
+Allows the prevention of exit in slaves from exitting the entire application\&.
+If it is equal to exit, exit will exit as usual, otherwise it will just close
+down that interpreter (and any children)\&.
+Defaults to close\&.
+.TP
+\fB::tkcon::OPT(subhistory)\fR
+Allow history substitution to occur (0 or 1, defaults to 1)\&.
+The history list is maintained in a single interpreter per TkCon console
+instance\&.
+Thus you have history which can range over a series of attached interpreters\&.
+.PP
+.SH EXAMPLES
+.PP
+An example TkCon resource file might look like:
+.CS
+
+
+######################################################
+## My TkCon Resource File
+
+# Use a fixed default font
+#tkcon font fixed; # valid on unix
+#tkcon font systemfixed; # valid on win
+tkcon font Courier 12; # valid everywhere
+
+# Keep 50 commands in history
+set ::tkcon::OPT(history) 50
+
+# Use a pink prompt
+set ::tkcon::COLOR(prompt) pink
+######################################################
+
+.CE
+.SH "SEE ALSO"
+\fBdump\fR(n), \fBidebug\fR(n), \fBobserve\fR(n), \fBtkcon\fR(1), \fBtkcon\fR(n)
+.SH KEYWORDS
+Tk, console
+.SH COPYRIGHT
+.nf
+Copyright (c) Jeffrey Hobbs <jeff at hobbs\&.org>
+
+.fi
diff --git a/development/tkcon/man/mann/dump.n b/development/tkcon/man/mann/dump.n
new file mode 100644
index 0000000000..71f4d1d35d
--- /dev/null
+++ b/development/tkcon/man/mann/dump.n
@@ -0,0 +1,322 @@
+'\"
+'\" Generated from file 'dump\&.n\&.man' by tcllib/doctools with format 'nroff'
+'\" Copyright (c) Jeffrey Hobbs <jeff at hobbs\&.org>
+'\"
+.TH "dump" n 2\&.5 dump\&.n "TkCon"
+.\" The -*- nroff -*- definitions below are for supplemental macros used
+.\" in Tcl/Tk manual entries.
+.\"
+.\" .AP type name in/out ?indent?
+.\" Start paragraph describing an argument to a library procedure.
+.\" type is type of argument (int, etc.), in/out is either "in", "out",
+.\" or "in/out" to describe whether procedure reads or modifies arg,
+.\" and indent is equivalent to second arg of .IP (shouldn't ever be
+.\" needed; use .AS below instead)
+.\"
+.\" .AS ?type? ?name?
+.\" Give maximum sizes of arguments for setting tab stops. Type and
+.\" name are examples of largest possible arguments that will be passed
+.\" to .AP later. If args are omitted, default tab stops are used.
+.\"
+.\" .BS
+.\" Start box enclosure. From here until next .BE, everything will be
+.\" enclosed in one large box.
+.\"
+.\" .BE
+.\" End of box enclosure.
+.\"
+.\" .CS
+.\" Begin code excerpt.
+.\"
+.\" .CE
+.\" End code excerpt.
+.\"
+.\" .VS ?version? ?br?
+.\" Begin vertical sidebar, for use in marking newly-changed parts
+.\" of man pages. The first argument is ignored and used for recording
+.\" the version when the .VS was added, so that the sidebars can be
+.\" found and removed when they reach a certain age. If another argument
+.\" is present, then a line break is forced before starting the sidebar.
+.\"
+.\" .VE
+.\" End of vertical sidebar.
+.\"
+.\" .DS
+.\" Begin an indented unfilled display.
+.\"
+.\" .DE
+.\" End of indented unfilled display.
+.\"
+.\" .SO ?manpage?
+.\" Start of list of standard options for a Tk widget. The manpage
+.\" argument defines where to look up the standard options; if
+.\" omitted, defaults to "options". The options follow on successive
+.\" lines, in three columns separated by tabs.
+.\"
+.\" .SE
+.\" End of list of standard options for a Tk widget.
+.\"
+.\" .OP cmdName dbName dbClass
+.\" Start of description of a specific option. cmdName gives the
+.\" option's name as specified in the class command, dbName gives
+.\" the option's name in the option database, and dbClass gives
+.\" the option's class in the option database.
+.\"
+.\" .UL arg1 arg2
+.\" Print arg1 underlined, then print arg2 normally.
+.\"
+.\" .QW arg1 ?arg2?
+.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation).
+.\"
+.\" .PQ arg1 ?arg2?
+.\" Print an open parenthesis, arg1 in quotes, then arg2 normally
+.\" (for trailing punctuation) and then a closing parenthesis.
+.\"
+.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
+.if t .wh -1.3i ^B
+.nr ^l \n(.l
+.ad b
+.\" # Start an argument description
+.de AP
+.ie !"\\$4"" .TP \\$4
+.el \{\
+. ie !"\\$2"" .TP \\n()Cu
+. el .TP 15
+.\}
+.ta \\n()Au \\n()Bu
+.ie !"\\$3"" \{\
+\&\\$1 \\fI\\$2\\fP (\\$3)
+.\".b
+.\}
+.el \{\
+.br
+.ie !"\\$2"" \{\
+\&\\$1 \\fI\\$2\\fP
+.\}
+.el \{\
+\&\\fI\\$1\\fP
+.\}
+.\}
+..
+.\" # define tabbing values for .AP
+.de AS
+.nr )A 10n
+.if !"\\$1"" .nr )A \\w'\\$1'u+3n
+.nr )B \\n()Au+15n
+.\"
+.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
+.nr )C \\n()Bu+\\w'(in/out)'u+2n
+..
+.AS Tcl_Interp Tcl_CreateInterp in/out
+.\" # BS - start boxed text
+.\" # ^y = starting y location
+.\" # ^b = 1
+.de BS
+.br
+.mk ^y
+.nr ^b 1u
+.if n .nf
+.if n .ti 0
+.if n \l'\\n(.lu\(ul'
+.if n .fi
+..
+.\" # BE - end boxed text (draw box now)
+.de BE
+.nf
+.ti 0
+.mk ^t
+.ie n \l'\\n(^lu\(ul'
+.el \{\
+.\" Draw four-sided box normally, but don't draw top of
+.\" box if the box started on an earlier page.
+.ie !\\n(^b-1 \{\
+\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
+.\}
+.el \}\
+\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
+.\}
+.\}
+.fi
+.br
+.nr ^b 0
+..
+.\" # VS - start vertical sidebar
+.\" # ^Y = starting y location
+.\" # ^v = 1 (for troff; for nroff this doesn't matter)
+.de VS
+.if !"\\$2"" .br
+.mk ^Y
+.ie n 'mc \s12\(br\s0
+.el .nr ^v 1u
+..
+.\" # VE - end of vertical sidebar
+.de VE
+.ie n 'mc
+.el \{\
+.ev 2
+.nf
+.ti 0
+.mk ^t
+\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
+.sp -1
+.fi
+.ev
+.\}
+.nr ^v 0
+..
+.\" # Special macro to handle page bottom: finish off current
+.\" # box/sidebar if in box/sidebar mode, then invoked standard
+.\" # page bottom macro.
+.de ^B
+.ev 2
+'ti 0
+'nf
+.mk ^t
+.if \\n(^b \{\
+.\" Draw three-sided box if this is the box's first page,
+.\" draw two sides but no top otherwise.
+.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
+.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
+.\}
+.if \\n(^v \{\
+.nr ^x \\n(^tu+1v-\\n(^Yu
+\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
+.\}
+.bp
+'fi
+.ev
+.if \\n(^b \{\
+.mk ^y
+.nr ^b 2
+.\}
+.if \\n(^v \{\
+.mk ^Y
+.\}
+..
+.\" # DS - begin display
+.de DS
+.RS
+.nf
+.sp
+..
+.\" # DE - end display
+.de DE
+.fi
+.RE
+.sp
+..
+.\" # SO - start of list of standard options
+.de SO
+'ie '\\$1'' .ds So \\fBoptions\\fR
+'el .ds So \\fB\\$1\\fR
+.SH "STANDARD OPTIONS"
+.LP
+.nf
+.ta 5.5c 11c
+.ft B
+..
+.\" # SE - end of list of standard options
+.de SE
+.fi
+.ft R
+.LP
+See the \\*(So manual entry for details on the standard options.
+..
+.\" # OP - start of full description for a single option
+.de OP
+.LP
+.nf
+.ta 4c
+Command-Line Name: \\fB\\$1\\fR
+Database Name: \\fB\\$2\\fR
+Database Class: \\fB\\$3\\fR
+.fi
+.IP
+..
+.\" # CS - begin code excerpt
+.de CS
+.RS
+.nf
+.ta .25i .5i .75i 1i
+..
+.\" # CE - end code excerpt
+.de CE
+.fi
+.RE
+..
+.\" # UL - underline word
+.de UL
+\\$1\l'|0\(ul'\\$2
+..
+.\" # QW - apply quotation marks to word
+.de QW
+.ie '\\*(lq'"' ``\\$1''\\$2
+.\"" fix emacs highlighting
+.el \\*(lq\\$1\\*(rq\\$2
+..
+.\" # PQ - apply parens and quotation marks to word
+.de PQ
+.ie '\\*(lq'"' (``\\$1''\\$2)\\$3
+.\"" fix emacs highlighting
+.el (\\*(lq\\$1\\*(rq\\$2)\\$3
+..
+.\" # QR - quoted range
+.de QR
+.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3
+.\"" fix emacs highlighting
+.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3
+..
+.\" # MT - "empty" string
+.de MT
+.QW ""
+..
+.BS
+.SH NAME
+dump \- Dump information about Tcl interpreter in TkCon
+.SH SYNOPSIS
+\fBdump\fR \fImethod\fR ?\fI-nocomplain\fR? ?\fI-filter pattern\fR? ?\fB--\fR? \fIpattern\fR ?\fIpattern \&.\&.\&.\fR?
+.sp
+.BE
+.SH DESCRIPTION
+.PP
+The dump command provides a way for the user to spit out state
+information about the interpreter in a Tcl readable
+(and human readable) form\&.
+It takes the general form:
+.TP
+\fBdump\fR \fImethod\fR ?\fI-nocomplain\fR? ?\fI-filter pattern\fR? ?\fB--\fR? \fIpattern\fR ?\fIpattern \&.\&.\&.\fR?
+.PP
+.PP
+The patterns represent glob-style patterns (as in \fBstring\fR \fImatch pattern $str\fR)\&.
+\fI-nocomplain\fR will prevent dump from throwing an error if no items
+matched the pattern\&.
+\fI-filter\fR is interpreted as appropriate for the method\&.
+The various methods are:
+.TP
+\fBdump\fR \fIcommand\fR \fIargs\fR
+Outputs one or more commands\&.
+.TP
+\fBdump\fR \fIprocedure\fR \fIargs\fR
+Outputs one or more procs in sourceable form\&.
+.TP
+\fBdump\fR \fIvariable\fR \fIargs\fR
+Outputs the values of variables in sourceable form\&.
+Recognizes nested arrays\&.
+The -filter pattern is used as to filter array element
+names and is interepreted as a glob pattern (defaults to {*})\&.
+It is passed down for nested arrays\&.
+.TP
+\fBdump\fR \fIwidget\fR \fIargs\fR
+Outputs one or more widgets by giving their configuration options\&.
+The -filter pattern is used as to filter the config options and
+is interpreted as a case insensitive regexp pattern (defaults to {\&.*})\&.
+.PP
+.SH "SEE ALSO"
+\fBidebug\fR(n), \fBobserve\fR(n), \fBtkcon\fR(1), \fBtkcon\fR(n), \fBtkconrc\fR(5)
+.SH KEYWORDS
+Tk, console, dump
+.SH COPYRIGHT
+.nf
+Copyright (c) Jeffrey Hobbs <jeff at hobbs\&.org>
+
+.fi
diff --git a/development/tkcon/man/mann/idebug.n b/development/tkcon/man/mann/idebug.n
new file mode 100644
index 0000000000..e33e58f5dc
--- /dev/null
+++ b/development/tkcon/man/mann/idebug.n
@@ -0,0 +1,369 @@
+'\"
+'\" Generated from file 'idebug\&.n\&.man' by tcllib/doctools with format 'nroff'
+'\" Copyright (c) Jeffrey Hobbs <jeff at hobbs\&.org>
+'\"
+.TH "idebug" n 2\&.5 idebug\&.n "TkCon"
+.\" The -*- nroff -*- definitions below are for supplemental macros used
+.\" in Tcl/Tk manual entries.
+.\"
+.\" .AP type name in/out ?indent?
+.\" Start paragraph describing an argument to a library procedure.
+.\" type is type of argument (int, etc.), in/out is either "in", "out",
+.\" or "in/out" to describe whether procedure reads or modifies arg,
+.\" and indent is equivalent to second arg of .IP (shouldn't ever be
+.\" needed; use .AS below instead)
+.\"
+.\" .AS ?type? ?name?
+.\" Give maximum sizes of arguments for setting tab stops. Type and
+.\" name are examples of largest possible arguments that will be passed
+.\" to .AP later. If args are omitted, default tab stops are used.
+.\"
+.\" .BS
+.\" Start box enclosure. From here until next .BE, everything will be
+.\" enclosed in one large box.
+.\"
+.\" .BE
+.\" End of box enclosure.
+.\"
+.\" .CS
+.\" Begin code excerpt.
+.\"
+.\" .CE
+.\" End code excerpt.
+.\"
+.\" .VS ?version? ?br?
+.\" Begin vertical sidebar, for use in marking newly-changed parts
+.\" of man pages. The first argument is ignored and used for recording
+.\" the version when the .VS was added, so that the sidebars can be
+.\" found and removed when they reach a certain age. If another argument
+.\" is present, then a line break is forced before starting the sidebar.
+.\"
+.\" .VE
+.\" End of vertical sidebar.
+.\"
+.\" .DS
+.\" Begin an indented unfilled display.
+.\"
+.\" .DE
+.\" End of indented unfilled display.
+.\"
+.\" .SO ?manpage?
+.\" Start of list of standard options for a Tk widget. The manpage
+.\" argument defines where to look up the standard options; if
+.\" omitted, defaults to "options". The options follow on successive
+.\" lines, in three columns separated by tabs.
+.\"
+.\" .SE
+.\" End of list of standard options for a Tk widget.
+.\"
+.\" .OP cmdName dbName dbClass
+.\" Start of description of a specific option. cmdName gives the
+.\" option's name as specified in the class command, dbName gives
+.\" the option's name in the option database, and dbClass gives
+.\" the option's class in the option database.
+.\"
+.\" .UL arg1 arg2
+.\" Print arg1 underlined, then print arg2 normally.
+.\"
+.\" .QW arg1 ?arg2?
+.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation).
+.\"
+.\" .PQ arg1 ?arg2?
+.\" Print an open parenthesis, arg1 in quotes, then arg2 normally
+.\" (for trailing punctuation) and then a closing parenthesis.
+.\"
+.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
+.if t .wh -1.3i ^B
+.nr ^l \n(.l
+.ad b
+.\" # Start an argument description
+.de AP
+.ie !"\\$4"" .TP \\$4
+.el \{\
+. ie !"\\$2"" .TP \\n()Cu
+. el .TP 15
+.\}
+.ta \\n()Au \\n()Bu
+.ie !"\\$3"" \{\
+\&\\$1 \\fI\\$2\\fP (\\$3)
+.\".b
+.\}
+.el \{\
+.br
+.ie !"\\$2"" \{\
+\&\\$1 \\fI\\$2\\fP
+.\}
+.el \{\
+\&\\fI\\$1\\fP
+.\}
+.\}
+..
+.\" # define tabbing values for .AP
+.de AS
+.nr )A 10n
+.if !"\\$1"" .nr )A \\w'\\$1'u+3n
+.nr )B \\n()Au+15n
+.\"
+.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
+.nr )C \\n()Bu+\\w'(in/out)'u+2n
+..
+.AS Tcl_Interp Tcl_CreateInterp in/out
+.\" # BS - start boxed text
+.\" # ^y = starting y location
+.\" # ^b = 1
+.de BS
+.br
+.mk ^y
+.nr ^b 1u
+.if n .nf
+.if n .ti 0
+.if n \l'\\n(.lu\(ul'
+.if n .fi
+..
+.\" # BE - end boxed text (draw box now)
+.de BE
+.nf
+.ti 0
+.mk ^t
+.ie n \l'\\n(^lu\(ul'
+.el \{\
+.\" Draw four-sided box normally, but don't draw top of
+.\" box if the box started on an earlier page.
+.ie !\\n(^b-1 \{\
+\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
+.\}
+.el \}\
+\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
+.\}
+.\}
+.fi
+.br
+.nr ^b 0
+..
+.\" # VS - start vertical sidebar
+.\" # ^Y = starting y location
+.\" # ^v = 1 (for troff; for nroff this doesn't matter)
+.de VS
+.if !"\\$2"" .br
+.mk ^Y
+.ie n 'mc \s12\(br\s0
+.el .nr ^v 1u
+..
+.\" # VE - end of vertical sidebar
+.de VE
+.ie n 'mc
+.el \{\
+.ev 2
+.nf
+.ti 0
+.mk ^t
+\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
+.sp -1
+.fi
+.ev
+.\}
+.nr ^v 0
+..
+.\" # Special macro to handle page bottom: finish off current
+.\" # box/sidebar if in box/sidebar mode, then invoked standard
+.\" # page bottom macro.
+.de ^B
+.ev 2
+'ti 0
+'nf
+.mk ^t
+.if \\n(^b \{\
+.\" Draw three-sided box if this is the box's first page,
+.\" draw two sides but no top otherwise.
+.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
+.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
+.\}
+.if \\n(^v \{\
+.nr ^x \\n(^tu+1v-\\n(^Yu
+\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
+.\}
+.bp
+'fi
+.ev
+.if \\n(^b \{\
+.mk ^y
+.nr ^b 2
+.\}
+.if \\n(^v \{\
+.mk ^Y
+.\}
+..
+.\" # DS - begin display
+.de DS
+.RS
+.nf
+.sp
+..
+.\" # DE - end display
+.de DE
+.fi
+.RE
+.sp
+..
+.\" # SO - start of list of standard options
+.de SO
+'ie '\\$1'' .ds So \\fBoptions\\fR
+'el .ds So \\fB\\$1\\fR
+.SH "STANDARD OPTIONS"
+.LP
+.nf
+.ta 5.5c 11c
+.ft B
+..
+.\" # SE - end of list of standard options
+.de SE
+.fi
+.ft R
+.LP
+See the \\*(So manual entry for details on the standard options.
+..
+.\" # OP - start of full description for a single option
+.de OP
+.LP
+.nf
+.ta 4c
+Command-Line Name: \\fB\\$1\\fR
+Database Name: \\fB\\$2\\fR
+Database Class: \\fB\\$3\\fR
+.fi
+.IP
+..
+.\" # CS - begin code excerpt
+.de CS
+.RS
+.nf
+.ta .25i .5i .75i 1i
+..
+.\" # CE - end code excerpt
+.de CE
+.fi
+.RE
+..
+.\" # UL - underline word
+.de UL
+\\$1\l'|0\(ul'\\$2
+..
+.\" # QW - apply quotation marks to word
+.de QW
+.ie '\\*(lq'"' ``\\$1''\\$2
+.\"" fix emacs highlighting
+.el \\*(lq\\$1\\*(rq\\$2
+..
+.\" # PQ - apply parens and quotation marks to word
+.de PQ
+.ie '\\*(lq'"' (``\\$1''\\$2)\\$3
+.\"" fix emacs highlighting
+.el (\\*(lq\\$1\\*(rq\\$2)\\$3
+..
+.\" # QR - quoted range
+.de QR
+.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3
+.\"" fix emacs highlighting
+.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3
+..
+.\" # MT - "empty" string
+.de MT
+.QW ""
+..
+.BS
+.SH NAME
+idebug \- Interactive debugging environment in TkCon
+.SH SYNOPSIS
+\fBidebug\fR \fIbody\fR ?\fIlevel\fR?
+.sp
+\fBidebug\fR \fIbreak\fR ?\fIid\fR?
+.sp
+\fBidebug\fR {\fI\fIecho\fR ?\fIid\fR?\fR} ?\fIargs\fR?
+.sp
+\fBidebug\fR \fIid\fR ?\fIid\fR?
+.sp
+\fBidebug\fR \fIoff\fR
+.sp
+\fBidebug\fR \fIon\fR ?\fIid\fR?
+.sp
+\fBidebug\fR {\fI\fIputs\fR ?\fIid\fR?\fR} \fIargs\fR
+.sp
+\fBidebug\fR \fIshow\fR \fItype\fR ?\fIlevel\fR? ?\fIVERBOSE\fR?
+.sp
+\fBidebug\fR \fItrace\fR ?\fIlevel\fR?
+.sp
+.BE
+.SH DESCRIPTION
+.PP
+The idebug command provides an interactive debugging
+environment for procedures via TkCon\&.
+You can place idebug break commands into your procedure
+to create breakpoints\&.
+It will pop up the TkCon console and put you into a
+"debugging" mode\&.
+The \fIbody\fR, \fIshow\fR & \fItrace\fR methods are
+intended for internal use only\&.
+This procedure works for minimal debugging sessions\&.
+Comments are encouraged\&.
+.TP
+\fBidebug\fR \fIbody\fR ?\fIlevel\fR?
+Prints out the body of the command (if it is a procedure)
+at the specified level\&.
+level defaults to the current level\&.
+.TP
+\fBidebug\fR \fIbreak\fR ?\fIid\fR?
+Creates a breakpoint within a procedure\&.
+This will only trigger if idebug is on and the \fIid\fR matches the pattern\&.
+If so, TkCon will pop to the front with the prompt changed
+to an idebug prompt\&.
+You are given the basic ability to observe the call stack
+an query/set variables or execute Tcl commands at any level\&.
+A separate history is maintained in debugging mode\&.
+To see the special commands available at the debug prompt,
+type ? and hit return\&.
+.TP
+\fBidebug\fR {\fI\fIecho\fR ?\fIid\fR?\fR} ?\fIargs\fR?
+Behaves just like \fBecho\fR, but only triggers when idebug is on\&.
+You can specify an optional \fIid\fR to further restrict triggering\&.
+If no id is specified, it defaults to the name of the command
+in which the call was made\&.
+.TP
+\fBidebug\fR \fIid\fR ?\fIid\fR?
+Query or set the idebug id\&.
+This id is used by other idebug methods to determine if
+they should trigger or not\&.
+The idebug id can be a glob pattern and defaults to *\&.
+.TP
+\fBidebug\fR \fIoff\fR
+Turns idebug off\&.
+.TP
+\fBidebug\fR \fIon\fR ?\fIid\fR?
+Turns idebug on\&.
+If \fIid\fR is specified, it sets the id to it\&.
+.TP
+\fBidebug\fR {\fI\fIputs\fR ?\fIid\fR?\fR} \fIargs\fR
+Behaves just like \fBputs\fR, but only triggers when idebug is on\&.
+You can specify an optional \fIid\fR to further restrict triggering\&.
+If no id is specified, it defaults to the name of the
+command in which the call was made\&.
+.TP
+\fBidebug\fR \fIshow\fR \fItype\fR ?\fIlevel\fR? ?\fIVERBOSE\fR?
+type must be one of vars, locals or globals\&.
+This method will output the variables/locals/globals present
+in a particular level\&.
+If \fIVERBOSE\fR is added, then it actually \fBdump\fRs out the values as well\&.
+level defaults to the level in which this method was called\&.
+.TP
+\fBidebug\fR \fItrace\fR ?\fIlevel\fR?
+Prints out the stack trace from the specified level up to the top level\&.
+level defaults to the current level\&.
+.PP
+.SH "SEE ALSO"
+\fBdump\fR(n), \fBobserve\fR(n), \fBtkcon\fR(1), \fBtkcon\fR(n), \fBtkconrc\fR(5)
+.SH KEYWORDS
+Tk, console, debug
+.SH COPYRIGHT
+.nf
+Copyright (c) Jeffrey Hobbs <jeff at hobbs\&.org>
+
+.fi
diff --git a/development/tkcon/man/mann/observe.n b/development/tkcon/man/mann/observe.n
new file mode 100644
index 0000000000..ea8e7f1b45
--- /dev/null
+++ b/development/tkcon/man/mann/observe.n
@@ -0,0 +1,335 @@
+'\"
+'\" Generated from file 'observe\&.n\&.man' by tcllib/doctools with format 'nroff'
+'\" Copyright (c) Jeffrey Hobbs <jeff at hobbs\&.org>
+'\"
+.TH "observe" n 2\&.5 observe\&.n "TkCon"
+.\" The -*- nroff -*- definitions below are for supplemental macros used
+.\" in Tcl/Tk manual entries.
+.\"
+.\" .AP type name in/out ?indent?
+.\" Start paragraph describing an argument to a library procedure.
+.\" type is type of argument (int, etc.), in/out is either "in", "out",
+.\" or "in/out" to describe whether procedure reads or modifies arg,
+.\" and indent is equivalent to second arg of .IP (shouldn't ever be
+.\" needed; use .AS below instead)
+.\"
+.\" .AS ?type? ?name?
+.\" Give maximum sizes of arguments for setting tab stops. Type and
+.\" name are examples of largest possible arguments that will be passed
+.\" to .AP later. If args are omitted, default tab stops are used.
+.\"
+.\" .BS
+.\" Start box enclosure. From here until next .BE, everything will be
+.\" enclosed in one large box.
+.\"
+.\" .BE
+.\" End of box enclosure.
+.\"
+.\" .CS
+.\" Begin code excerpt.
+.\"
+.\" .CE
+.\" End code excerpt.
+.\"
+.\" .VS ?version? ?br?
+.\" Begin vertical sidebar, for use in marking newly-changed parts
+.\" of man pages. The first argument is ignored and used for recording
+.\" the version when the .VS was added, so that the sidebars can be
+.\" found and removed when they reach a certain age. If another argument
+.\" is present, then a line break is forced before starting the sidebar.
+.\"
+.\" .VE
+.\" End of vertical sidebar.
+.\"
+.\" .DS
+.\" Begin an indented unfilled display.
+.\"
+.\" .DE
+.\" End of indented unfilled display.
+.\"
+.\" .SO ?manpage?
+.\" Start of list of standard options for a Tk widget. The manpage
+.\" argument defines where to look up the standard options; if
+.\" omitted, defaults to "options". The options follow on successive
+.\" lines, in three columns separated by tabs.
+.\"
+.\" .SE
+.\" End of list of standard options for a Tk widget.
+.\"
+.\" .OP cmdName dbName dbClass
+.\" Start of description of a specific option. cmdName gives the
+.\" option's name as specified in the class command, dbName gives
+.\" the option's name in the option database, and dbClass gives
+.\" the option's class in the option database.
+.\"
+.\" .UL arg1 arg2
+.\" Print arg1 underlined, then print arg2 normally.
+.\"
+.\" .QW arg1 ?arg2?
+.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation).
+.\"
+.\" .PQ arg1 ?arg2?
+.\" Print an open parenthesis, arg1 in quotes, then arg2 normally
+.\" (for trailing punctuation) and then a closing parenthesis.
+.\"
+.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
+.if t .wh -1.3i ^B
+.nr ^l \n(.l
+.ad b
+.\" # Start an argument description
+.de AP
+.ie !"\\$4"" .TP \\$4
+.el \{\
+. ie !"\\$2"" .TP \\n()Cu
+. el .TP 15
+.\}
+.ta \\n()Au \\n()Bu
+.ie !"\\$3"" \{\
+\&\\$1 \\fI\\$2\\fP (\\$3)
+.\".b
+.\}
+.el \{\
+.br
+.ie !"\\$2"" \{\
+\&\\$1 \\fI\\$2\\fP
+.\}
+.el \{\
+\&\\fI\\$1\\fP
+.\}
+.\}
+..
+.\" # define tabbing values for .AP
+.de AS
+.nr )A 10n
+.if !"\\$1"" .nr )A \\w'\\$1'u+3n
+.nr )B \\n()Au+15n
+.\"
+.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
+.nr )C \\n()Bu+\\w'(in/out)'u+2n
+..
+.AS Tcl_Interp Tcl_CreateInterp in/out
+.\" # BS - start boxed text
+.\" # ^y = starting y location
+.\" # ^b = 1
+.de BS
+.br
+.mk ^y
+.nr ^b 1u
+.if n .nf
+.if n .ti 0
+.if n \l'\\n(.lu\(ul'
+.if n .fi
+..
+.\" # BE - end boxed text (draw box now)
+.de BE
+.nf
+.ti 0
+.mk ^t
+.ie n \l'\\n(^lu\(ul'
+.el \{\
+.\" Draw four-sided box normally, but don't draw top of
+.\" box if the box started on an earlier page.
+.ie !\\n(^b-1 \{\
+\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
+.\}
+.el \}\
+\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
+.\}
+.\}
+.fi
+.br
+.nr ^b 0
+..
+.\" # VS - start vertical sidebar
+.\" # ^Y = starting y location
+.\" # ^v = 1 (for troff; for nroff this doesn't matter)
+.de VS
+.if !"\\$2"" .br
+.mk ^Y
+.ie n 'mc \s12\(br\s0
+.el .nr ^v 1u
+..
+.\" # VE - end of vertical sidebar
+.de VE
+.ie n 'mc
+.el \{\
+.ev 2
+.nf
+.ti 0
+.mk ^t
+\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
+.sp -1
+.fi
+.ev
+.\}
+.nr ^v 0
+..
+.\" # Special macro to handle page bottom: finish off current
+.\" # box/sidebar if in box/sidebar mode, then invoked standard
+.\" # page bottom macro.
+.de ^B
+.ev 2
+'ti 0
+'nf
+.mk ^t
+.if \\n(^b \{\
+.\" Draw three-sided box if this is the box's first page,
+.\" draw two sides but no top otherwise.
+.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
+.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
+.\}
+.if \\n(^v \{\
+.nr ^x \\n(^tu+1v-\\n(^Yu
+\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
+.\}
+.bp
+'fi
+.ev
+.if \\n(^b \{\
+.mk ^y
+.nr ^b 2
+.\}
+.if \\n(^v \{\
+.mk ^Y
+.\}
+..
+.\" # DS - begin display
+.de DS
+.RS
+.nf
+.sp
+..
+.\" # DE - end display
+.de DE
+.fi
+.RE
+.sp
+..
+.\" # SO - start of list of standard options
+.de SO
+'ie '\\$1'' .ds So \\fBoptions\\fR
+'el .ds So \\fB\\$1\\fR
+.SH "STANDARD OPTIONS"
+.LP
+.nf
+.ta 5.5c 11c
+.ft B
+..
+.\" # SE - end of list of standard options
+.de SE
+.fi
+.ft R
+.LP
+See the \\*(So manual entry for details on the standard options.
+..
+.\" # OP - start of full description for a single option
+.de OP
+.LP
+.nf
+.ta 4c
+Command-Line Name: \\fB\\$1\\fR
+Database Name: \\fB\\$2\\fR
+Database Class: \\fB\\$3\\fR
+.fi
+.IP
+..
+.\" # CS - begin code excerpt
+.de CS
+.RS
+.nf
+.ta .25i .5i .75i 1i
+..
+.\" # CE - end code excerpt
+.de CE
+.fi
+.RE
+..
+.\" # UL - underline word
+.de UL
+\\$1\l'|0\(ul'\\$2
+..
+.\" # QW - apply quotation marks to word
+.de QW
+.ie '\\*(lq'"' ``\\$1''\\$2
+.\"" fix emacs highlighting
+.el \\*(lq\\$1\\*(rq\\$2
+..
+.\" # PQ - apply parens and quotation marks to word
+.de PQ
+.ie '\\*(lq'"' (``\\$1''\\$2)\\$3
+.\"" fix emacs highlighting
+.el (\\*(lq\\$1\\*(rq\\$2)\\$3
+..
+.\" # QR - quoted range
+.de QR
+.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3
+.\"" fix emacs highlighting
+.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3
+..
+.\" # MT - "empty" string
+.de MT
+.QW ""
+..
+.BS
+.SH NAME
+observe \- Runtime debugging output in TkCon
+.SH SYNOPSIS
+\fBobserve\fR \fIcommand\fR \fIcmdname\fR ?\fImaxlevel\fR?
+.sp
+\fBobserve\fR \fIcdelete\fR \fIcmdname\fR
+.sp
+\fBobserve\fR \fIcinfo\fR \fIcmdname\fR
+.sp
+\fBobserve\fR \fIvariable\fR \fIvarname\fR \fIoperation\fR ?\fIargs\fR?
+.sp
+\fBobserve\fR \fIvdelete\fR \fIvarname\fR \fIoperation\fR
+.sp
+\fBobserve\fR \fIvinfo\fR \fIvarname\fR
+.sp
+.BE
+.SH DESCRIPTION
+.PP
+This command provides runtime debugging output for variables
+and commands without the need to edit your code\&.
+For variables, the underlying mechanism uses \fBtrace\fR and \fBdump\fR var\&.
+For commands, it renames the observed procedure and uses a
+special wrapper procedure\&.
+WARNING: using this procedure after checkpointing state will
+result in major problems if you clean state because the
+renamed (true) commands will be lost\&.
+.PP
+This procedure is experimental\&.
+Comments are encouraged\&.
+.TP
+\fBobserve\fR \fIcommand\fR \fIcmdname\fR ?\fImaxlevel\fR?
+This will create a wrapper command which prints out (using \fBdump\fR)
+the call stack to the console\&.
+maxlevel represents the maximum number of levels of the call
+stack which will be printed (defaults to 4)\&.
+.TP
+\fBobserve\fR \fIcdelete\fR \fIcmdname\fR
+Removes the wrapper around an observed command\&.
+.TP
+\fBobserve\fR \fIcinfo\fR \fIcmdname\fR
+Prints out useless info\&.
+.TP
+\fBobserve\fR \fIvariable\fR \fIvarname\fR \fIoperation\fR ?\fIargs\fR?
+Currently a wrapper around trace that uses \fBdump\fR to print out
+the value of the named variable whenever the specified
+operation on that variable occurs (must be \fIread\fR, \fIwrite\fR or \fIunset\fR)\&.
+.TP
+\fBobserve\fR \fIvdelete\fR \fIvarname\fR \fIoperation\fR
+Deletes the trace wrapper around the named variable\&.
+.TP
+\fBobserve\fR \fIvinfo\fR \fIvarname\fR
+Prints out trace info about the named variable\&.
+.PP
+.SH "SEE ALSO"
+\fBdump\fR(n), \fBidebug\fR(n), \fBtkcon\fR(1), \fBtkcon\fR(n), \fBtkconrc\fR(5)
+.SH KEYWORDS
+Tk, console, debug
+.SH COPYRIGHT
+.nf
+Copyright (c) Jeffrey Hobbs <jeff at hobbs\&.org>
+
+.fi
diff --git a/development/tkcon/man/mann/tkcon.n b/development/tkcon/man/mann/tkcon.n
new file mode 100644
index 0000000000..e445e1dc35
--- /dev/null
+++ b/development/tkcon/man/mann/tkcon.n
@@ -0,0 +1,464 @@
+'\"
+'\" Generated from file 'tkcon\&.n\&.man' by tcllib/doctools with format 'nroff'
+'\" Copyright (c) Jeffrey Hobbs <jeff at hobbs\&.org>
+'\"
+.TH "tkcon" n 2\&.5 tkcon\&.n "TkCon"
+.\" The -*- nroff -*- definitions below are for supplemental macros used
+.\" in Tcl/Tk manual entries.
+.\"
+.\" .AP type name in/out ?indent?
+.\" Start paragraph describing an argument to a library procedure.
+.\" type is type of argument (int, etc.), in/out is either "in", "out",
+.\" or "in/out" to describe whether procedure reads or modifies arg,
+.\" and indent is equivalent to second arg of .IP (shouldn't ever be
+.\" needed; use .AS below instead)
+.\"
+.\" .AS ?type? ?name?
+.\" Give maximum sizes of arguments for setting tab stops. Type and
+.\" name are examples of largest possible arguments that will be passed
+.\" to .AP later. If args are omitted, default tab stops are used.
+.\"
+.\" .BS
+.\" Start box enclosure. From here until next .BE, everything will be
+.\" enclosed in one large box.
+.\"
+.\" .BE
+.\" End of box enclosure.
+.\"
+.\" .CS
+.\" Begin code excerpt.
+.\"
+.\" .CE
+.\" End code excerpt.
+.\"
+.\" .VS ?version? ?br?
+.\" Begin vertical sidebar, for use in marking newly-changed parts
+.\" of man pages. The first argument is ignored and used for recording
+.\" the version when the .VS was added, so that the sidebars can be
+.\" found and removed when they reach a certain age. If another argument
+.\" is present, then a line break is forced before starting the sidebar.
+.\"
+.\" .VE
+.\" End of vertical sidebar.
+.\"
+.\" .DS
+.\" Begin an indented unfilled display.
+.\"
+.\" .DE
+.\" End of indented unfilled display.
+.\"
+.\" .SO ?manpage?
+.\" Start of list of standard options for a Tk widget. The manpage
+.\" argument defines where to look up the standard options; if
+.\" omitted, defaults to "options". The options follow on successive
+.\" lines, in three columns separated by tabs.
+.\"
+.\" .SE
+.\" End of list of standard options for a Tk widget.
+.\"
+.\" .OP cmdName dbName dbClass
+.\" Start of description of a specific option. cmdName gives the
+.\" option's name as specified in the class command, dbName gives
+.\" the option's name in the option database, and dbClass gives
+.\" the option's class in the option database.
+.\"
+.\" .UL arg1 arg2
+.\" Print arg1 underlined, then print arg2 normally.
+.\"
+.\" .QW arg1 ?arg2?
+.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation).
+.\"
+.\" .PQ arg1 ?arg2?
+.\" Print an open parenthesis, arg1 in quotes, then arg2 normally
+.\" (for trailing punctuation) and then a closing parenthesis.
+.\"
+.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
+.if t .wh -1.3i ^B
+.nr ^l \n(.l
+.ad b
+.\" # Start an argument description
+.de AP
+.ie !"\\$4"" .TP \\$4
+.el \{\
+. ie !"\\$2"" .TP \\n()Cu
+. el .TP 15
+.\}
+.ta \\n()Au \\n()Bu
+.ie !"\\$3"" \{\
+\&\\$1 \\fI\\$2\\fP (\\$3)
+.\".b
+.\}
+.el \{\
+.br
+.ie !"\\$2"" \{\
+\&\\$1 \\fI\\$2\\fP
+.\}
+.el \{\
+\&\\fI\\$1\\fP
+.\}
+.\}
+..
+.\" # define tabbing values for .AP
+.de AS
+.nr )A 10n
+.if !"\\$1"" .nr )A \\w'\\$1'u+3n
+.nr )B \\n()Au+15n
+.\"
+.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
+.nr )C \\n()Bu+\\w'(in/out)'u+2n
+..
+.AS Tcl_Interp Tcl_CreateInterp in/out
+.\" # BS - start boxed text
+.\" # ^y = starting y location
+.\" # ^b = 1
+.de BS
+.br
+.mk ^y
+.nr ^b 1u
+.if n .nf
+.if n .ti 0
+.if n \l'\\n(.lu\(ul'
+.if n .fi
+..
+.\" # BE - end boxed text (draw box now)
+.de BE
+.nf
+.ti 0
+.mk ^t
+.ie n \l'\\n(^lu\(ul'
+.el \{\
+.\" Draw four-sided box normally, but don't draw top of
+.\" box if the box started on an earlier page.
+.ie !\\n(^b-1 \{\
+\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
+.\}
+.el \}\
+\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
+.\}
+.\}
+.fi
+.br
+.nr ^b 0
+..
+.\" # VS - start vertical sidebar
+.\" # ^Y = starting y location
+.\" # ^v = 1 (for troff; for nroff this doesn't matter)
+.de VS
+.if !"\\$2"" .br
+.mk ^Y
+.ie n 'mc \s12\(br\s0
+.el .nr ^v 1u
+..
+.\" # VE - end of vertical sidebar
+.de VE
+.ie n 'mc
+.el \{\
+.ev 2
+.nf
+.ti 0
+.mk ^t
+\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
+.sp -1
+.fi
+.ev
+.\}
+.nr ^v 0
+..
+.\" # Special macro to handle page bottom: finish off current
+.\" # box/sidebar if in box/sidebar mode, then invoked standard
+.\" # page bottom macro.
+.de ^B
+.ev 2
+'ti 0
+'nf
+.mk ^t
+.if \\n(^b \{\
+.\" Draw three-sided box if this is the box's first page,
+.\" draw two sides but no top otherwise.
+.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
+.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
+.\}
+.if \\n(^v \{\
+.nr ^x \\n(^tu+1v-\\n(^Yu
+\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
+.\}
+.bp
+'fi
+.ev
+.if \\n(^b \{\
+.mk ^y
+.nr ^b 2
+.\}
+.if \\n(^v \{\
+.mk ^Y
+.\}
+..
+.\" # DS - begin display
+.de DS
+.RS
+.nf
+.sp
+..
+.\" # DE - end display
+.de DE
+.fi
+.RE
+.sp
+..
+.\" # SO - start of list of standard options
+.de SO
+'ie '\\$1'' .ds So \\fBoptions\\fR
+'el .ds So \\fB\\$1\\fR
+.SH "STANDARD OPTIONS"
+.LP
+.nf
+.ta 5.5c 11c
+.ft B
+..
+.\" # SE - end of list of standard options
+.de SE
+.fi
+.ft R
+.LP
+See the \\*(So manual entry for details on the standard options.
+..
+.\" # OP - start of full description for a single option
+.de OP
+.LP
+.nf
+.ta 4c
+Command-Line Name: \\fB\\$1\\fR
+Database Name: \\fB\\$2\\fR
+Database Class: \\fB\\$3\\fR
+.fi
+.IP
+..
+.\" # CS - begin code excerpt
+.de CS
+.RS
+.nf
+.ta .25i .5i .75i 1i
+..
+.\" # CE - end code excerpt
+.de CE
+.fi
+.RE
+..
+.\" # UL - underline word
+.de UL
+\\$1\l'|0\(ul'\\$2
+..
+.\" # QW - apply quotation marks to word
+.de QW
+.ie '\\*(lq'"' ``\\$1''\\$2
+.\"" fix emacs highlighting
+.el \\*(lq\\$1\\*(rq\\$2
+..
+.\" # PQ - apply parens and quotation marks to word
+.de PQ
+.ie '\\*(lq'"' (``\\$1''\\$2)\\$3
+.\"" fix emacs highlighting
+.el (\\*(lq\\$1\\*(rq\\$2)\\$3
+..
+.\" # QR - quoted range
+.de QR
+.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3
+.\"" fix emacs highlighting
+.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3
+..
+.\" # MT - "empty" string
+.de MT
+.QW ""
+..
+.BS
+.SH NAME
+tkcon \- Controlling TkCon console
+.SH SYNOPSIS
+\fBtkcon\fR \fIattach\fR \fIinterpreter\fR
+.sp
+\fBtkcon\fR \fIbuffer\fR ?\fIsize\fR?
+.sp
+\fBtkcon\fR \fIbgerror\fR ?\fImsg\fR \fIerrorInfo\fR?
+.sp
+\fBtkcon\fR \fIclose\fR or \fBtkcon\fR \fIdestroy\fR
+.sp
+\fBtkcon\fR \fIcongets\fR
+.sp
+\fBtkcon\fR \fIconsole\fR \fIargs\fR
+.sp
+\fBtkcon\fR \fIerror\fR
+.sp
+\fBtkcon\fR \fIfind\fR \fIstring\fR ?\fI-case\fR \fITCL_BOOLEAN\fR \fI-regexp\fR \fITCL_BOOLEAN\fR?
+.sp
+\fBtkcon\fR \fIfont\fR ?\fIfontname\fR?
+.sp
+\fBtkcon\fR \fIgets\fR
+.sp
+\fBtkcon\fR \fIgetcommand\fR
+.sp
+\fBtkcon\fR \fIhide\fR
+.sp
+\fBtkcon\fR \fIhistory\fR ?\fI-newline\fR?
+.sp
+\fBtkcon\fR \fIiconify\fR
+.sp
+\fBtkcon\fR \fIlinelength\fR ?\fIvalue\fR?
+.sp
+\fBtkcon\fR \fIload\fR \fIfilename\fR
+.sp
+\fBtkcon\fR \fImain\fR ?\fIarg\fR \fIarg\fR \fI\&.\&.\&.\fR?
+.sp
+\fBtkcon\fR \fImaster\fR \fIargs\fR
+.sp
+\fBtkcon\fR \fInew\fR
+.sp
+\fBtkcon\fR \fIresultfilter\fR ?\fIcommand\fR?
+.sp
+\fBtkcon\fR \fIsave\fR ?\fIfilename\fR ?\fItype\fR??
+.sp
+\fBtkcon\fR \fIset\fR \fIvar\fR ?\fIvalue\fR?
+.sp
+\fBtkcon\fR \fIappend\fR \fIvar\fR ?\fIvalue\fR?
+.sp
+\fBtkcon\fR \fIlappend\fR \fIvar\fR ?\fIvalue\fR?
+.sp
+\fBtkcon\fR \fIshow\fR or \fBtkcon\fR \fIdeiconify\fR
+.sp
+\fBtkcon\fR \fIslave\fR ?\fIslavename\fR ?\fIarg arg \&.\&.\&.\fR??
+.sp
+\fBtkcon\fR \fItitle\fR ?\fItitle\fR?
+.sp
+\fBtkcon\fR \fIversion\fR
+.sp
+.BE
+.SH DESCRIPTION
+.PP
+This provides lots of useful control over a console:
+.TP
+\fBtkcon\fR \fIattach\fR \fIinterpreter\fR
+Attaches tkcon to the named interpreter\&.
+The name must be that returned by [\fBtk\fR \fIappname\fR] or a valid
+path to a slave interpreter\&.
+It's best to use this via the \fIConsole->Attach Console\fR menu\&.
+.TP
+\fBtkcon\fR \fIbuffer\fR ?\fIsize\fR?
+Sets or queries the allowed size of the console text widget in lines\&.
+The text widget will automatically delete leading lines once this
+number has been exceeded (read: this is the scroll buffer size)\&.
+.TP
+\fBtkcon\fR \fIbgerror\fR ?\fImsg\fR \fIerrorInfo\fR?
+Does bgerror stuff in the tkcon master interpreter\&.
+.TP
+\fBtkcon\fR \fIclose\fR or \fBtkcon\fR \fIdestroy\fR
+Destroys this tkcon widget\&.
+.TP
+\fBtkcon\fR \fIcongets\fR
+Behaves like the traditional Tcl gets, but instead of using stdin,
+it uses the tkcon console window\&.
+By default, tkcon replaces the standard gets with this command\&.
+This behavior can be controlled by altering the \fB::tkcon::OPT(gets)\fR
+parameter at startup\&.
+This should not be called directly - instead rely on the overloaded
+gets, which has support for the optional varName parameter\&.
+.TP
+\fBtkcon\fR \fIconsole\fR \fIargs\fR
+Passes the args to the tkcon text widget (the console)\&.
+.TP
+\fBtkcon\fR \fIerror\fR
+Pops up a dialog that gives the user a full trace of the
+last error received in the tkcon console\&.
+.TP
+\fBtkcon\fR \fIfind\fR \fIstring\fR ?\fI-case\fR \fITCL_BOOLEAN\fR \fI-regexp\fR \fITCL_BOOLEAN\fR?
+Highlights all instances of string in the console\&.
+If the string is empty, it clears any previous highlighting\&.
+.TP
+\fBtkcon\fR \fIfont\fR ?\fIfontname\fR?
+Sets or returns the font used by tkcon text widgets\&.
+.TP
+\fBtkcon\fR \fIgets\fR
+Behaves like the traditional Tcl gets, but instead of needing
+stdin, it pops a dialog box up for the user\&.
+The overloaded gets has support for the optional varName parameter\&.
+.TP
+\fBtkcon\fR \fIgetcommand\fR
+A variation of the congets method that requires a full
+command to be input before returning\&.
+.TP
+\fBtkcon\fR \fIhide\fR
+Withdraw the tkcon display from the screen (make sure you
+have a way to get it back)\&.
+.TP
+\fBtkcon\fR \fIhistory\fR ?\fI-newline\fR?
+Displays the tkcon history in sourceable form\&.
+If \fI-newline\fR is specified, it separates each command by
+an extra newline\&.
+.TP
+\fBtkcon\fR \fIiconify\fR
+Iconifies the tkcon display\&.
+.TP
+\fBtkcon\fR \fIlinelength\fR ?\fIvalue\fR?
+Sets or displays the number that specifies the limit of long result lines\&.
+True result is still captured in $_ (and 'puts $_' works)\&.
+.TP
+\fBtkcon\fR \fIload\fR \fIfilename\fR
+Sources named file into the slave interpreter\&.
+If no filename is given, it will attempt to call
+\fBtk_getOpenFile\fR to pop up the file select box\&.
+.TP
+\fBtkcon\fR \fImain\fR ?\fIarg\fR \fIarg\fR \fI\&.\&.\&.\fR?
+Passes the args to the main tkcon interpreter to be
+evaluated and returns the result\&.
+.TP
+\fBtkcon\fR \fImaster\fR \fIargs\fR
+Passes the args to the master interpreter to be evaluated
+and returns the result\&.
+.TP
+\fBtkcon\fR \fInew\fR
+Creates a new tkcon widget\&.
+.TP
+\fBtkcon\fR \fIresultfilter\fR ?\fIcommand\fR?
+Specify a command to process the results before outputting it to the console
+window\&. The command receives one argument (the result string) and the string
+returned is placed in the console\&.
+.TP
+\fBtkcon\fR \fIsave\fR ?\fIfilename\fR ?\fItype\fR??
+Saves the console buffer to the given filename\&.
+If no filename is given, it will attempt to call
+\fBtk_getSaveFile\fR to pop up the file select box\&.
+If no type is given, a dialog will ask you to specify
+what portion of the text you want to save\&.
+.TP
+\fBtkcon\fR \fIset\fR \fIvar\fR ?\fIvalue\fR?
+Queries or sets a master interpreter variable\&.
+.TP
+\fBtkcon\fR \fIappend\fR \fIvar\fR ?\fIvalue\fR?
+Like set, but uses append on the variable\&.
+.TP
+\fBtkcon\fR \fIlappend\fR \fIvar\fR ?\fIvalue\fR?
+Like set, but uses lappend on the variable\&.
+.TP
+\fBtkcon\fR \fIshow\fR or \fBtkcon\fR \fIdeiconify\fR
+Redisplays tkcon on the screen\&.
+.TP
+\fBtkcon\fR \fIslave\fR ?\fIslavename\fR ?\fIarg arg \&.\&.\&.\fR??
+If called with no args, it returns the name of all the tkcon interpreters\&.
+Otherwise given an interp name it passes the args to the named interpreter
+to be evaluated and returns the result\&.
+If no args are passed, then it returns the [\fBtk\fR \fIappname\fR] of that
+interpreter\&.
+.TP
+\fBtkcon\fR \fItitle\fR ?\fItitle\fR?
+Sets or returns the title for tkcon\&.
+.TP
+\fBtkcon\fR \fIversion\fR
+Returns of version of tkcon\&.
+.PP
+.SH "SEE ALSO"
+\fBdump\fR(n), \fBobserve\fR(n), \fBtkcon\fR(1), \fBtkcon\fR(n), \fBtkconrc\fR(5)
+.SH KEYWORDS
+Tk, console, debug
+.SH COPYRIGHT
+.nf
+Copyright (c) Jeffrey Hobbs <jeff at hobbs\&.org>
+
+.fi
diff --git a/development/tkcon/slack-desc b/development/tkcon/slack-desc
index d8bb0232c3..4d6aa5fd41 100644
--- a/development/tkcon/slack-desc
+++ b/development/tkcon/slack-desc
@@ -8,11 +8,11 @@
|-----handy-ruler------------------------------------------------------|
tkcon: tkcon (replacement for the standard Tk console)
tkcon:
-tkcon: The console itself provides many more features than the standard
-tkcon: console and works on all platforms where Tcl/Tk is available. It
-tkcon: is meant primarily to aid one when working with the little details
-tkcon: inside tcl and tk, giving Unix users the GUI console provided by
-tkcon: default in the Mac and Windows Tk.
+tkcon: tkcon itself provides many more features than the standard console
+tkcon: and works on all platforms where Tcl/Tk is available. It is meant
+tkcon: primarily to aid one when working with the little details inside
+tkcon: tcl and tk, giving Unix users the GUI console provided by default
+tkcon: int the Mac and Windows Tk implementations.
tkcon:
tkcon:
tkcon: http://tkcon.sourceforge.net
diff --git a/development/tkcon/tkcon.SlackBuild b/development/tkcon/tkcon.SlackBuild
index f041e8352a..dcc5336c02 100644
--- a/development/tkcon/tkcon.SlackBuild
+++ b/development/tkcon/tkcon.SlackBuild
@@ -26,17 +26,10 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=tkcon
VERSION=${VERSION:-2.7.11}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-3}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
-
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
-fi
+ARCH=noarch
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
@@ -47,20 +40,6 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
@@ -77,37 +56,41 @@ find -L . \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
chmod -R -x .
-# correct version number
-sed -i 's/VERSION "2\.7\.10"/VERSION "2\.7\.11"/' tkcon.tcl
-install tkcon.tcl -Dm755 $PKG/usr/lib${LIBDIRSUFFIX}/tkcon/tkcon.tcl
+
+# correct version number and .desktop file
+sed -i 's/2\.7/2\.7\.11/' pkgIndex.tcl
+sed -i 's/VERSION "2\.7\.10"/VERSION "2\.7\.11"/' tkcon.tcl
sed -i 's/Utility\;//;/Encoding=UTF-8/d;/Comment=/d' tkcon-console.desktop
+
+install tkcon.tcl -Dm755 $PKG/usr/lib/tkcon/tkcon.tcl
install tkcon-console.desktop -Dm644 $PKG/usr/share/applications/tkcon-console.desktop
install icons/tkcon-small48.png -Dm644 $PKG/usr/share/pixmaps/tkcon-icon.png
-sed -i 's/2\.7/2\.7\.11/' pkgIndex.tcl
-install pkgIndex.tcl -Dm644 $PKG/usr/lib${LIBDIRSUFFIX}/tkcon/pkgIndex.tcl
+install pkgIndex.tcl -Dm644 $PKG/usr/lib/tkcon/pkgIndex.tcl
install icons/tkcon-small48.png -Dm644 $PKG/usr/share/icons/tkcon-icon.png
mkdir -p $PKG/usr/bin
-( cd $PKG/usr/bin ; ln -s ../lib${LIBDIRSUFFIX}/tkcon/tkcon.tcl tkcon )
-
-# if dtplite tool is installed (tcllib package), generate man pages
-if [ -x /usr/bin/dtplite ]; then
- mkdir -p $PKG/usr/man/mann $PKG/usr/man/man5 $PKG/usr/man/man1
- dtplite -o $PKG/usr/man/mann/dump.n nroff docs/dump.n.man
- dtplite -o $PKG/usr/man/mann/idebug.n nroff docs/idebug.n.man
- dtplite -o $PKG/usr/man/mann/observe.n nroff docs/observe.n.man
- dtplite -o $PKG/usr/man/man1/tkcon.1 nroff docs/tkcon.1.man
- dtplite -o $PKG/usr/man/mann/tkcon.n nroff docs/tkcon.n.man
- dtplite -o $PKG/usr/man/man5/tkconrc.5 nroff docs/tkconrc.5.man
- find $PKG/usr/man -type f -exec gzip -9 {} \;
- for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-fi
+( cd $PKG/usr/bin ; ln -s ../lib/tkcon/tkcon.tcl tkcon )
+
+# install man pages
+install -Dm0644 $CWD/man/man1/tkcon.1 $PKG/usr/man/man1/tkcon.1
+install -Dm0644 $CWD/man/man5/tkconrc.5 $PKG/usr/man/man5/tkconrc.5
+install -Dm0644 $CWD/man/mann/dump.n $PKG/usr/man/mann/dump.n
+install -Dm0644 $CWD/man/mann/observe.n $PKG/usr/man/mann/observe.n
+install -Dm0644 $CWD/man/mann/idebug.n $PKG/usr/man/mann/idebug.n
+install -Dm0644 $CWD/man/mann/tkcon.n $PKG/usr/man/mann/tkcon.n
+
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ); do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/html/docs
cp -a \
README.txt docs/license.terms \
-$PKG/usr/doc/$PRGNAM-$VERSION
-cp -a docs/*.html docs/demopic.png docs/style.css $PKG/usr/doc/$PRGNAM-$VERSION/html/docs
-cp -a index.html $PKG/usr/doc/$PRGNAM-$VERSION/html/
+ $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ docs/*.html docs/demopic.png docs/style.css \
+ $PKG/usr/doc/$PRGNAM-$VERSION/html/docs
+cp -a \
+ index.html \
+ $PKG/usr/doc/$PRGNAM-$VERSION/html/
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install