development/tkcon: Updated for version 2.7.11.

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Juan M. Lasca 2023-01-12 20:32:58 +00:00 committed by Willy Sudiarto Raharjo
parent 17c2e07dd4
commit 8ac0f6dc5b
No known key found for this signature in database
GPG Key ID: 3F617144D7238786
9 changed files with 48 additions and 2650 deletions

View File

@ -5,3 +5,6 @@ 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.

View File

@ -1,625 +0,0 @@
'\"
'\" 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

View File

@ -1,517 +0,0 @@
'\"
'\" 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

View File

@ -1,322 +0,0 @@
'\"
'\" 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

View File

@ -1,369 +0,0 @@
'\"
'\" 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

View File

@ -1,335 +0,0 @@
'\"
'\" 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

View File

@ -1,464 +0,0 @@
'\"
'\" 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

View File

@ -22,18 +22,21 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# 2022-09-07: Changed ARCH to 'noarch'
# Added pregenerated man pages
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=tkcon
VERSION=${VERSION:-2.7.10}
BUILD=${BUILD:-3}
VERSION=${VERSION:-2.7.11}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
ARCH=noarch
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
@ -44,6 +47,20 @@ 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
@ -60,25 +77,35 @@ find -L . \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
chmod -R -x .
install tkcon.tcl -Dm755 $PKG/usr/lib/tkcon/tkcon.tcl
# 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
sed -i 's/Utility\;//;/Encoding=UTF-8/d;/Comment=/d' tkcon-console.desktop
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\.10/' pkgIndex.tcl
install pkgIndex.tcl -Dm644 $PKG/usr/lib/tkcon/pkgIndex.tcl
sed -i 's/2\.7/2\.7\.11/' pkgIndex.tcl
install pkgIndex.tcl -Dm644 $PKG/usr/lib${LIBDIRSUFFIX}/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/tkcon/tkcon.tcl tkcon )
( cd $PKG/usr/bin ; ln -s ../lib${LIBDIRSUFFIX}/tkcon/tkcon.tcl tkcon )
# install pregenerated man pages
cp -r $CWD/man $PKG/usr/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
# 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
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/html/docs
cp -a \
README.txt docs/license.terms \
$PKG/usr/doc/$PRGNAM-$VERSION
$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

View File

@ -1,8 +1,8 @@
PRGNAM="tkcon"
VERSION="2.7.10"
VERSION="2.7.11"
HOMEPAGE="http://tkcon.sourceforge.net"
DOWNLOAD="https://github.com/wjoye/tkcon/archive/v2.7.10/tkcon-2.7.10.tar.gz"
MD5SUM="797a81bfe93d4181c4cf0f6d4c41b69a"
DOWNLOAD="https://github.com/wjoye/tkcon/archive/v2.7.11/tkcon-2.7.11.tar.gz"
MD5SUM="3e7d3afd971165b880e5a54a30792004"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""