Subject: FAQ: comp.lang.tcl Frequently Asked Questions (1/5) (Last updated: February 22, 1994)

From: [email-masked] (Larry W. Virden)
Date: Tue, 22 Feb 1994 21:37:17 GMT

Archive-name: tcl-faq/part1
Version: 4.6
Last-modified: February 22, 1994

	For more information concerning Tcl (see "tcl-faq/part2"),
(see "tcl-faq/part3"), (see "tcl-faq/part4"), or (see "tcl-faq/part5").

Index of questions:

I.   Origin of the comp.lang.tcl FAQ information.
II.  What is Tcl?  Tk?  Extended Tcl?
III. Do these packages run on my machine?
	A. Unix
	B. MacOS
	C. INTEL DOS-like systems
	D. VMS
	E. AmigaDOS
	F. NeXT
	G. Other
IV.  Other than C, What languages can talk to tcl/tk?
	A. Shell
	B. C++
        C. Modula-3
	D. Eiffel
	E. Ada
	F. Other
V.   Is there a bibliography of material relating to these programs?
	A. The Tcl distribution 
	B. The Expect distribution
	C. Miscellaneous other online materials
	D. Published articles, books, and similarly available resources
	E. Training courses, materials, etc.
	F. Time-related seminars, conferences, sessions.
VI.  Where do I report problems, bugs, or enhancements - or -
	What is comp.lang.tcl?
VII. Are there any mailing lists covering topics related to Tcl/Tk?
VIII. Where can I find the FAQ and who do I contact for more information 
	about it?
	
End of FAQ Index

----------------------------------------------------------------------

------------------------------

From: FAQ General information
Subject: -I- Origin of the comp.lang.tcl FAQ information.

	The information in this set of FAQs comes from several sources.  The
primary source of information is the group itself - I spend (much too
much) time each month culling through what I feel are some of the best
answers, gathering up new information on ports, etc. and adding it
here.  I also gather new application information and add it as
best I can.  The next most predominant source of information comes from
the authors of the various software packages.  Finally, a small amount
comes from my personal experiences.

	I am always on the search for folk to assist in the maintenance
of these FAQs.  In fact, if you feel that you would like to coordinate
this effort, PLEASE let me know!

------------------------------

From: FAQ General information
Subject: -II- What is Tcl?  Tk?  Extended Tcl? 

	Tcl and Tk originated with Dr. John Ousterhout (Oh'-stir-hout -
last syllable rhymes with rout, not root) from the University of California,
Berkeley, California.

	Tcl (current release version 7.3) stands for ``tool command
language'' and is pronounced ``tickle.'' The author's home ftp site for
the Tcl source code is ftp.cs.berkeley.edu.  Tcl is actually two
things: a language and a library.  First, Tcl is a simple textual
language, intended primarily for issuing commands to interactive
programs such as text editors, debuggers, illustrators, and shells.  It
has a simple syntax and is also programmable, so Tcl users can write
command procedures to provide more powerful commands than those in the
built-in set.

	Second, Tcl is a library package that can be embedded in
application programs.  The Tcl library consists of a parser for the Tcl
language, routines to implement the Tcl built-in commands, and
procedures that allow each application to extend Tcl with additional
commands specific to that application.  The application program
generates Tcl commands and passes them to the Tcl parser for
execution.  Commands may be generated by reading characters from an
input source, or by associating command strings with elements of the
application's user interface, such as menu entries, buttons, or
keystrokes.  When the Tcl library receives commands it parses them into
component fields and executes built-in commands directly.  For commands
implemented by the application, Tcl calls back to the application to
execute the commands.  In many cases commands will invoke recursive
invocations of the Tcl interpreter by passing in additional strings to
execute (procedures, looping commands, and conditional commands all
work in this way).

	An application program gains three advantages by using Tcl for
its command language.  First, Tcl provides a standard syntax:  once
users know Tcl, they will be able to issue commands easily to any
Tcl-based application.  Second, Tcl provides programmability.  All a
Tcl application needs to do is to implement a few application-specific
low-level commands.  Tcl provides many utility commands plus a general
programming interface for building up complex command procedures.  By
using Tcl, applications need not re-implement these features.  Third,
extensions to Tcl, such as the Tk toolkit, provide mechanisms for
communicating between applications by sending Tcl commands back and
forth.  The common Tcl language framework makes it easier for
applications to communicate with one another.

	Tk (current release 3.6) - an extension to Tcl which provides
the programmer with an interface to the X11 windowing system.  The
author's home ftp site for the Tk source is ftp.cs.berkeley.edu.
Note that many users will encounter Tk via the ``wish'' command.  Wish
is a simple windowing shell which permits the user to write Tcl
applications in a prototyping environment.

	Extended Tcl (tclX) (Version 7.3a) - This is an extended set of
commands for Tcl developed by Karl Lehenbauer and Mark Diekhans.  The
authors' home ftp site for Extended Tcl is ftp.neosoft.com.  Extended
Tcl is oriented towards system programming tasks, with many additional
interfaces to the Unix operating system along with other useful
utilities.

------------------------------

From: FAQ General information
Subject: -III- Do these packages run on my machine?

A. Unix

	Tcl runs on Sun 3s and 4s running SunOS 4 and SunOS 5 (Solaris
1.x and 2.x), DECstations running Ultrix, DEC VAXen running Ultrix or
BSD, DEC Alphas running OSF/1, 386s running SCO Unix, Xenix, Bell-Tech,
Silicon Graphics running IRIX, HPs running HP-UX as well as HP Snakes
running OSF/1 and HP-UX.  Intel [34]86 systems running 386bsd, netbsd,
freebsd, BSDI, and Linux have Tcl ported.  Various CPUs running System
V.4 report having ported Tcl.  Tcl also appears to be running on
Sequent Symmetry running Dynix as well as OSF/1.  It also has been
reported to run fine on IBM RS6000 under AIX 3.x as well as IBM ES/9000
and AIX/ESA.  There were few problems getting it running under Mt. Xinu
Mach.  It also has been ported to Encore 91's running UMAX V (an 88k
based System V with BSD extension Unix).  It also runs on Apollos
running BSD/SYSV.  Tcl runs on a Cray running Unicos.  At least one
person has ported Tcl to a Mac (IIfx) running A/UX v3.0.  Someone
ported Tcl to a Sony NeWS machine running NEWS-OS 4.2.
A port to a Convex 3220 and 3880 was also reported.

	Tk (being based on Tcl) generally requires X11R4 or better as the only 
additional software requirement.  It runs on any of the above Unix
systems with that base of software.  It also runs on VMS, OSF/1 and Windows.

	For information on Tcl/Tk/TclX availability (see "tcl-faq/part4").

B. MacOS

	See below for details of a Macintosh Tcl Mailing list.

---

	Ray Johnson <[email-masked]> has a package called
MacTcl.  This is a fairly straight port of Tcl to the Macintosh.  It is
designed to be used as libraries to be embedded into other
applications.  A basic shell is included.  Most Tcl features are
present, including many Unix-like features.  Additional features
include supporting the env variable and sourcing Tcl code from a 
resource.  The current version is available at
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/MacTcl7.3.sea.hqx

	As of this time, I have no leads on anyone porting Tk to MacOS.
I also have not heard of anyone porting Tcl/Tk to an Apple PowerPC.

	Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
for the latest port locations and versions.

C. INTEL DOS-like systems

	Numerous ports to DOS are available.  One unsupported port to MS-DOS
of Tcl and Extended Tcl V6.0a, done by "Karl Lehenbauer" <[email-masked]>, 
is available on ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/dostcl.zoo for
binaries and ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/dostcl60.zoo for
source.

	A port of Tcl V6.2 to MS-DOS was done by 
"John Martin" <[email-masked]> and is available via FTP from
ftp://cajal.uoregon.edu/pub/tcl.dos.port/ and
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tcl62.dos.tar.Z .

	A source code only port of Tcl V6.7 to MS-DOS, done by 
[email-masked] (Peter Sprenger), is available from
him, somewhere on wuarchive.wustl.edu
or as
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tcl67dos.zip .

	A port of Tcl, V6.1 ?, done by unknown, to MS-DOS Windows
V 3.1 ?, is available as binary at
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/w_tclbin.zip and as source at
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/w_tclsrc.zip .

	An MS-DOS Windows DLL instance of Tcl 6.2 was generated by
Ugo Cei <[email-masked]>.  Contact him for more details.

	A port of Tcl Generic V6.7 (plus some minor extensions to OS/2 2.x
has been done by [email-masked] (Bud Bach).

	A Windows DLL was made by [email-masked] (Ekkehard Beier)
by slightly modifying a DOS 6.2 Tcl port.  There are still problems
with the system/WinExec command.  A very rudimentary Debugger User Interface
using Borland's Classlib is part of the zip-file, too.
I used it with BC3.1++/AF on MS W3.1.  You can get a copy from

ftp://metallica.prakinf.tu-ilmenau.de/pub/DOS/wintcl.zip

via anonymous ftp.  Unfortunately Ekki doesn't have time currently to
finish the Windows port and user Interface.

	Someone, whose name I don't have, reported porting Tcl to QNX
with a fair amount of hacking.

	As of this date, I have no leads on anyone porting Tk to any version
of OS/2.

	Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
for the latest port locations.

D. VMS

	A port of Tcl 6.2 and Tk 1.4 to VMS was done by Angel Li
<[email-masked]>.  The files were at
ftp://mango.rsmas.miami.edu/pub/tcl-vms.bck.Z and
ftp://mango.rsmas.miami.edu/pub/tk-vms.bck.Z
and were compressed with the Unix compress command.  The files were VMS
BACKUP files.  A recent report has it that these files are no longer
available.

	A port of Tcl 6.3 onto VMS 5.5 was done by Wolfgang Kechel
<[email-masked]> and Till Imanuel Panzschke.  Contact them
directly for assistance.

	A port of most of Tcl 6.7 and Tk 3.2 was done by John Kimball
<[email-masked]> to VMS 5.5.  The files are on:
ftp://src.honeywell.com/pub/tcl67-tk32-on-vms55.tar.Z .

	Gerald W. Lester ([email-masked]) says the following _should_ work.
If you installed the POSIX package on VMS (its free), then you should be 
able to configure and make tcl.  To access tcl you would have to do one 
of the following: 1) Use the POSIX shell, or 2) do a "psx tcl".
Tcl scripts would not execute directly from DCL; to execute a script foo.tcl
>from DCL you would have to do "psx foo.tcl".
DISCLAIMER: I have not built any version of tcl under VMS POSIX, these
comments are based on other work I've done with VMS POSIX.

	A port of Tcl 7.0 and Tk 3.3 has being done to VMS on the
VAX and Alpha.  These are available as:
ftp://src.honeywell.com/pub/vms-tcl/tcl70-tk33-on-vms55.tar.Z

	Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
for the latest port locations.

E. AmigaDOS

	Karl Lehbauer <[email-masked]> has indicated that
he started a port of Tcl 3.x to the Amiga.  He has a working
version, but is no longer working on it.  His version uses the
Amiga's shared libraries and implements the "send" command.
He wrote a MIDI file loader and player as well.  Contact him for
further details.  

	Ty Sarna <[email-masked]> has ported Tcl 6.x to the Amiga.  
He says:
> I've ported 3.3 and several 6.x versions to the Amiga, and it can be
> done in under and hour if you leave out the "Unix" functionality.
> However, "Unix" functionality includes things like file I/O!

	Another Amiga user, [email-masked] (Colas Nahaboo), mentioned
that using Amiga gcc and the PD X server DaggeX and Xlibs that a port of
Tk might be possible.

	[email-masked] (Marco van der Heiden) has completed a port
to the Amiga, and suggests Amiga developers contact him by email.  Also
Ingo Wilken ([email-masked]) wrote that
he was working on a port to the Amiga, with a goal of creating
a shared library system.

	Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
for the latest port locations.

F. NeXT

Gianmaria Bertanzon <[email-masked]> reports:
> We are using tk3.2 on NeXT ( Motorola ) under NextStep 3.0 under X.
> The compilation was easy. (we do not remember precisely all the steps)

	Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
for the latest port locations.

G. Other

	A port to the Apple IIgs and GNO 1.1/GSOS environment is underway.

	A beta port of Tcl 7 has been done to VxWorks.
	You can find it at thor.atd.ucar.edu:~ftp/pub/vx/tclvx7.0.v2.tar.gz .

	Also (see "tcl-faq/part4"), the Tcl programs/packages catalog,
for the latest port locations.

------------------------------

From: FAQ General information
Subject: -IV- Other than C, what languages can talk to tcl/tk?

A. Shell
	There are at least two interfaces which are shell-like.  The
first is wish, which is a windowing shell like interface that is a part
of the Tk package.  The second is tcl, a line command interpreter that
is part of the Extended Tcl package.

B. C++
	Check out tcl++.h in Extended Tcl.  Based on an original
implementation by Parag Patel, it defines a Tcl interpreter class by
which Tcl interpreters can be created as objects under C++.

	Also, ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tk3.2forC++.patch
is a patch that allows tk 3.2 main.c and other extension routines
to be compiled with a C++ compiler.  Thanks to Ken Yap <[email-masked]>
for this code.

	Mark Diekhans and Karl Lehenbauer have used this, in
combination with the handle facility in Extended Tcl, to build Tcl
commands around C++ classes.

	The Tcl handle facility provides a way to manage table entries
that can be referenced by a textual handle from Tcl code.  This is
provided for applications that need to create data structures in one
command, return a reference (i.e. pointer) to that particular data
structure and then access that data structure in other commands.  An
example application is file handles.

	A handle table was built containing pointers to the instances
of a class that were to be accessed from Tcl, say a class `foo_cl', and
then a "new" command defined that created an instance of that class and
returned a Tcl handle to it.  The handle could then passed among Tcl
commands that accessed each member function.  The handle is in effect
an explicit `this' pointer.

	For example:

     set obj [foo_cl::new]
     foo_cl::baz $obj "Hello world"
     foo_cl::delete $obj

It's not totally object-oriented, but it's still very usable.

C. Modula-3
	Norman Ramsey <elan.uucp!nr> says:
	A long time back, Eric Muller posted a Modula-3 interface to
the C Tcl library.  I wrote down a Modula-3/Tcl interface that used
Modula-3 types rather than C types, and that used objects to build
closures for commands.  I wrote part of the implementation but never
finished it.  I have mailed copies to [email-masked], who asked the
question, and I will post them if there seems to be general interest.

D. Eiffel
	[email-masked] (Stephan Herrmann) says:
	... [the tclish package provides] the marriage of two very different
principles by means of combining two programming languages into a
hybrid program architecture.  

E. Ada
	[email-masked] (Dennis Heimbigner) introduced
an adatcl package which gives Ada programmers access to Tcl interpreters.
See the catalog for details of the package.

F. Other

	Duncan Sinclair <[email-masked]> has details of a hack
into wish.c some hooks for a Tk <-> any language system, and has been using 
it for communication with functional languages such as Haskell and Lazy ML.
A paper, plus sample code, is available by ftp from
ftp://ftp.dcs.gla.ac.uk/pub/glasgow-fp/authors/Duncan_Sinclair/fumx.* .

------------------------------

From: FAQ General information
Subject: -V- Is there a bibliography of material relating to these 
		programs?

A. The Tcl distribution 

	With the Tcl distribution there is a Postscript version of a Usenix
paper introducing Tcl.  With the Tk distribution, there is a Postscript
version of a Usenix paper introducing Tk.

Ousterhout, J.K., (1990) ``TCL: An Embeddable Command Language'', in
the Proceedings of the 1990 Winter USENIX Conference, pp 133-146.

Ousterhout, J.K., (1991) ``An X11 Toolkit Based on the TCL Language'',
in the Proceedings of the 1991 Winter USENIX Conference, pp 105-115.

Postscript file for introductory papers on Tcl and Tk are available as
the public FTP area on ftp.cs.berkeley.edu (Internet address
128.32.149.78).  Their address is:

ftp://ftp.cs.berkeley.edu/ucb/tcl/tclUsenix90.ps
ftp://ftp.cs.berkeley.edu/ucb/tcl/tkUsenix91.ps
ftp://ftp.cs.berkeley.edu/ucb/tcl/tkF10.ps

(The last of these files is the contents of Figure 10 of the Tk paper)

If you have trouble retrieving the papers via FTP or printing them,
send [email-masked] your U.S. Mail address and he will mail
you paper copies.

B. The Expect distribution

	With the Expect distribution, there are several Postscript documents
available which have been published.

1. "Curing Those Uncontrollable Fits of Interaction", Proceedings of the
Summer 1990 USENIX Conference, Anaheim, CA, June 11-15, 1990.  

	This paper is discussion of implementation, philosophy, and design.  
	It's address is:

ftp://ftp.cme.nist.gov/pub/expect/seminal.ps.Z 

2. "Using expect to Automate System Administration Tasks", Proceedings of
the 1990 USENIX Large Systems Administration Conference (LISA) IV,
Colorado Springs, CO, October 17-19, 1990.  

	This paper is discussion and examples, specifically aimed at system 
	administrators.  The address of this paper is:

ftp://ftp.cme.nist.gov/pub/expect/sysadm.ps.Z

3. "expect: Scripts for Controlling Interactive Programs", Computing
Systems, Vol. 4, No. 2, University of California Press Journals, 1991.

	A comprehensive paper of example scripts.  This paper's address is:

ftp://ftp.cme.nist.gov/pub/expect/scripts.ps.Z

4. "Regression Testing and Conformance Testing Interactive Programs",
Proceedings of the Summer 1992 USENIX Conference, San Antonio, CA,
June 8-12, 1992. 

	This paper discusses the application of expect to the verification
	of software.  This paper's address is:

ftp://ftp.cme.nist.gov/pub/expect/regress.ps.Z

5. "Kibitz - Connecting Multiple Interactive Programs Together",
Software - Practice & Experience, John Wiley & Sons, West
Susses, England, Vol. 23, No. 5, May 1993.

	This paper is a discussion of using Tcl and Expect to connect multiple
	interactive programs together.  This paper's address is:

ftp://ftp.cme.nist.gov/pub/expect/kibitz.ps.Z

C. Miscellaneous other online materials

1. The ftp address for a FrameMaker MIF file containing a Quick Reference guide 
to Tcl is:

ftp://harbor.ecn.purdue.edu/pub/tcl/docs/QuickRef.tar.Z 

Many thanks to "Jeff Tranter" <[email-masked]> for 
contributing it.

2. PostScript versions of the man pages were provided by 
"Adrian Ho" <[email-masked]>.  The addresses for these are:

ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tcl6.3.manps.tar.Z
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tclX6.2b.manps.tar.Z
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tk2.1.manps.tar.Z

3. An early draft of the following text book is available:

Title:                  Tcl and the Tk Toolkit
Author:                 John K. Ousterhout
Publisher:              Addison-Wesley
Expected availability:  April 1994
ISBN:                   0-201-63337-X

	The section dealing with writing Tcl scripts is:
ftp://ftp.cs.berkeley.edu/ucb/tcl/book.p1.ps.Z 

	The section dealing with writing Tcl scripts for Tk is:
ftp://ftp.cs.berkeley.edu/ucb/tcl/book.p2.ps.Z 

	The section dealing with writing Tcl applications in C is:
ftp://ftp.cs.berkeley.edu/ucb/tcl/book.p3.ps.Z 

	The section dealing with writing Tk widgets and geometry managers
in C is:
ftp://ftp.cs.berkeley.edu/ucb/tcl/book.p4.ps.Z 

The first two parts are about 130 pages in length and the third and fourth
parts are less than 70 pages in length each.  This is ONLY a draft and is not
permitted to be redistributed.

4. A series of PostScript slides used in a tutorial on Tcl and Tk at
the 1993 X Conference are available as:

ftp://ftp.cs.berkeley.edu/ucb/tcl/tut.tar.Z

5. A set of Postscript files collected for the Tcl 93 workshop proceedings
is available as:

ftp://harbor.ecn.purdue.edu/pub/tcl/workshop/tcl93-proceedings.tar.Z

	This file contains the following papers:

a. "A Debugger for Tcl Applications", by Don Libes, National Institute
of Standards and Technology.

	Describes a debugger for Tcl applications.

b. "A Compiler for the Tcl Language", by Adam Sah and Jon Blow, University
of California, Berkeley, CA.

	A discussion of the design issues for providing a compiler for the Tcl
	language.

c. "[incr tcl] - Object-Oriented Programming in TCL", by Michael J. McLennan,
AT&T Bell Laboratories, Allentown, PA.

	Describes a set of extensions for organizing Tcl procedures and
data into packages.

d. "CASTE: A class system for Tcl", by Michael S. Braverman, University of
California, Berkeley, CA.

	Introduces a structured object class extension for Tcl.

e. "Interfacing an Object-Oriented Database System from Tcl", by 
Dietmar Theobald, Forschungszentrum Informatik, Karlsruhe Germany

	A generic interface extension to an object-oriented database.

f. "Tcl Distributed Programming", by Brian C. Smith, Lawrence A. Rowe, and
Stephen C. Yen, University of California, Berkeley, CA.

	Introduces the Tcl-DP extension to Tcl.

g. "Cooperating Applications through Tcl/Tk and DCE", by David Richardson,
University of Michigan

	Description of integrating Tcl/Tk into Open Software Foundation's
Distributed Computing Environment.

h. "NeoSoft Whiteboard - A framework for Internet-based Collaboration",
by Karl Lehenbauer, Ellyn Mustard, NeoSoft, Inc., Brad Morrison,
Paranet, Inc.

	Describes a generic groupware framework using Tcl/Tk.

i. "Tcl/Tk as a Basis for Groupware", by Mark Roseman, University of Calgary,
Alberta Canada

	Why Tcl/Tk provides a good environment for groupware developers. 

j. "Tcl and Tk Use in the Artifact Based Collaboration System", by
John Menges and Mark Parris, University of North Carolina.

	Describes a collaboration system being built at UNC whose user
interfaces are based on Tk.

k. "Ak: An Audio Toolkit for Tcl/Tk", by Andrew C. Payne, Digital Equipment
Corporation, Cambridge Research Lab.

	Describes Ak, an audio extension for Tcl build on the AudioFile
System.

l. "A Tcl/Tk Continuous Media Player", by Brian C. Smith, Lawrence A. Rowe, and
Stephen C. Yen, University of California, Berkeley, CA.

	A Tk application that supports playback of live digital audio and
	video on a Unix workstation.

m. "Tcl in a High-Throughput Biological Lab", by Scott P. Hunicke-Smith &
Dan Mosedale, Stanford Yeast Genome Project

	Description of use of Tcl based control of a laboratory robot.

n. "Autonomous Knowledge Agents - How Agents use the Tool Command Language",
by Raymond W. Johnson, Lockheed Missiles and Space Corporation, Palo Alto,
CA.

	Descriptions of traits of a software agent and how one of these
traits led to the use of Tcl.

o. "Implementing a Visualization of an Industrial Productions Cell Using
Tcl/Tk", by Arthur Brauer, Claus Lewerentz, and Thomas Lindner,
Forschungszentrum Informatik, Karlsruhe Germany.

	Discussion of a complex animated simulation written using Tk/Tcl.

p. "Writing Object-oriented Tcl-based Systems using Objectify", by 
Wayne A. Christopher, University of California, Berkeley, CA.

	Describes Objectify, a facility for integrating C++ classes into
	Tcl-based systems.

q. "Use of Tcl/Tk in DTS, an Interactive Optimization and Scheduling System",
by Benjamin Fried, Aleks Gollu and Othar Hansson, Heuristicrats Research Inc.

	An abstract of the work being done with Tcl in a NASA scheduling
system.

r. "Embedding a Scheme Interpreter in the Tk Toolkit", by
Erick Gallesio, Valbonne, France.

	Describes STk, which is a Tk package with Scheme replacing Tcl.

s. "The Next, Best Thing in File Browsers", by Michael A. Harrison,
Thomas A. Phelps, University of California, Berkeley, CA.

	Describes NBT, an extended NeXTSTEP file selection box.

t. "Tcl/Tk - An Integration Vehicle for the Microwave/Millimeter-Wave
Pilot Sites (MMPS)", by Kevin B. Kenny, Brion D. Sarachan,
Robert N. Sum Jr., and Wayne H. Uejio, GE Corporate R&D.

	Describes developing wrappes for commercial vendor
applications like FrameMaker (R) and Xess (R).

u. "Generalising a File Manager into an Address Book and Other Things",
by J. D. Newmarch, University of Canberra, Australia

	Describing a redesign of an X file manager to allow the best
features of a command line environment and a graphical interface.

v. "Noosa: Execution Monitoring using Tcl and Tk", by Anthony M. Sloane,
University of Colorado.

	An overview of an event-based execution monitoring system.

w. "An Interactive Compiler Development System", by Gary S. Tyson,
Robert J.  Shaw and Matthew K. Farrens, University of California, Davis, CA.

	Describes an interactive graphical optimizer.

6. A second set of Postscript files consisting primarily of overhead slides
is available as:

ftp://harbor.ecn.purdue.edu/pub/tcl/workshop/tcl93-proceedings2.tar.Z

	This file (tcl93-proceedings2) contains the following slides:

a. "Cooperating Applications through Tcl/Tk and DCE", by David Richardson,
University of Michigan.

b. "Ak An Audio Toolkit for Tcl & Tk", by Andrew Payne, Digital Equipment
Corporation, Cambridge Research Laboratory.

c. "Tcl Distributed Programming", by Brian C. Smith, Lawrence A. Rowe,
Stephen C. Yen, University of California at Berkeley.

d. "Supervisory Control Language - Applying Tcl to the Realtime Arena"
presentation by Computerized Processes Unlimited, Inc.

e. "Tcl / Tk as a Basis for Groupware" by Mark Roseman

	This file (tcl93-proceedings2) contains the PostScript for the paper:

f. "A Table Manager for Tk", by G. A. Howlett <[email-masked]>,
ATT.

	This file (tcl93-proceedings2) also contains Usenet postings by:

h.	/* ???? */
i.	/* ???? */
j.	/* ???? */
k.	/* ???? */

7. The Tcl Compiler (TC) Frequently Asked Questions by Adam Sah
<[email-masked]> is a document describing TC, which is a work
in progress.  Contact Adam for details.

8. A compact yet detailed overview of Tcl, Tk and Xf is available thanks
to the graciousness of [email-masked] (Dietmar Theobald) at:

ftp://ftp.fzi.de/pub/OBST/OBST3-3/psfiles/TclTk_notes.ps.Z
(compressed format) and
ftp://ftp.fzi.de/pub/OBST/OBST3-3/psfiles/TclTk_notes.ps.gz (gzip format)

9. Softcopy of an article about PhoneStation, a tool using Tk and Tcl, was
presented at the 1993 Winter USENIX Conference.

Uhler, Stephen A. (1993) ``PhoneStation, Moving the Telephone onto the 
Virtual Desktop'', in the Proceedings of the 1993 Winter USENIX Conference,
pp ??-??

A softcopy of the paper is available as 
ftp://bellcore.com/pub/PhoneStation/USENIX.ps 

10. VanAndel, J.H., 1993: ``Design of a New Radar Control and Data Acquisition 
System''.  Preprints, 26th Conference on Radar Meteorology, Norman, Oklahoma

The paper is available in postscript form via the experimental web server:
<a href="http://www.atd.ucar.edu/jva/RadarControl.AMS.ps"> Radar Control PS </a>

11. Mark A. Harrison <[email-masked]>  has written a Tk/Tcl
information sheet, providing an introductory look at why one might want to 
use Tcl and Tk.  Version 1.0 was posted to comp.lang.tcl as
<[email-masked]>.  Contact him for a copy.

12. Cedric Beust <[email-masked]> has written a short article
giving guidelines on where to start when writing a Tcl extension.  You
may find it at ftp://avahi.inria.fr/tcl/writing-a-tcl-extension.ps .

13. Douglas Pan and Mark Linton <[email-masked]> have
written the paper ``Dish: A Dynamic Invocation Shell for Fresco''.
It is available at ftp://sgi.com/graphics/fresco/dish.ps.Z .  The FAQ
as well as some other papers are in ftp://sgi.com/graphics/fresco/ .
Fresco is an X Consortium project - non-members interested in contributing
to the effort should contact Mark Linton.

14. Michael Jipping, Hope College , (1993) ``Using Tcl as a Tool Talk
Encapsulation'', in the Sun User Group Eleventh Annual Conference and
Exhibition PROCEEDINGS, pp 161-174.  This details work done writing an
abstract extension to Tcl which enables one to encapsulate tools to
make them ToolTalk aware.

15. A WorldWideWeb (WWW) resource for Ada Tcl is available as:
http://www.cs.colorado.edu/homes/arcadia/public_html/adatcl.html

16. A WWW resource for the MBV Lab's Tcl/Tk support is:

http://cornea.mbvlab.wpafb.af.mil/tcl.html

17. A WWW resource for the HTCLtoTCL program is available at:

http://www.lbl.gov/~clarsen/clarsen.html

18. A WWW resource for describing the set of extra ServiceMail
Tcl scripts is available at:

http://keck.tamu.edu/cgi/staff/emailserver.html

19.  A WWW resource describing the HTML to Tcl preprocessor is
available at:

http://www.lbl.gov/~clarsen/projects/htcl.html

20. A WWW resource discussing Tk/Tcl style issues is available at:

http://www.atd.ucar.edu/jva/TCL.style.html

21. A WWW resource discussing Visual Numerics PV-Wave with Tk/Tcl is
available at:

http://www.atd.ucar.edu/jva/rds/wave_tk.html

22. A set of WWW resources discussing the Fermilab's use of Tcl within
a massive data manipulation package can be found at:

http://fndauh.fnal.gov:8000/spectro/doc/www/spectro.home.html
http://fndauh.fnal.gov:8000/shiva/doc/www/shiva.home.html

as well as various pages underneath this set of homes.

23. A soft file containing notes on Tcl and quoting philosophy can be
found at ftp://harbor.ecn.purdue.edu/pub/tcl/docs/README.programmer .

24. There are references to Tcl and Tk (and perhaps other Tcl based
interpreters) within the following WWW databases:

The Catalog of Free Compilers and Interpreters:
http://cui_www.unige.ch/freecomp

and
The Language List:
http://cui_www.unige.ch/langlist

25. The first Tcl 'home page' is now available via the WWW URL:

http://www.sco.com/IXI/of_interest/tcl/Tcl.html

Thanks to Mike Hopkirk for the time, energy and resources to make this
available.

26. The home page for Jungle - the Tcl-based WWW server - is available
as:

http://catless.ncl.ac.uk/Programs/Jungle

27.  The home page for Nautilus - the Tcl-based [incr tcl] browser -
is available at:

http://catless.ncl.ac.uk/Programs/Nautilus/

28.  The home page for Zircon - the Tcl-based Internet Relay Communication
(IRC) browser - is available at:

http://catless.ncl.ac.uk/Programs/Zircon/

29. Documentation on the Tcl processing of WWW's server communications
interface (known as CGI) can be found at:

http://www.lbl.gov/~clarsen/projects/htcl/http-proc-args.html

30. Mark Roseman <[email-masked]> has prepared a brief comparison
between Tcl/Tk and the Interviews C++ toolkit.  It is available via
email by contacting him.

D. Published articles, books, and similarly available resources

1. Computer Shopper, V12 N12, page 862 had an article referencing Tickle, 
the shareware package under Macintosh System 7 which is based on Tcl.

2. MacWEEK, Sept 14, 1992, V6 N32, page 91(1), Enhancing text editors for
Mac developers.
This article is a product announcement for Alpha 5.0, the Macintosh
editor which incorporates Tcl.

3. Computer Language, V9 N7, page 76 had an article referencing Tcl in
a hardware/software testing package which talks to a remote machine via 
a proprietary interface card.

4. SunWorld, V5 N10, pages 95-96 had a article discussing Tcl, Tk and
expect.

5. UNIX REVIEW, V11 N4, April 1993, pages 93-94, Tcl, Tk, and friends
by Richard Morin.
The article, a part of "The Internet Notebook", mentions a little about
Tcl and Tk, where to find the sources, where to find the draft of the
book, and where to find the contributed software.

6. SunExpert, V4 N3, pages 32-36, by Richard Morin.  As part of Morin's
I/Opener series of articles, this is just a brief overview of Tcl and Tk.
It mentions some of the technical ideas behind Tcl and Tk, where to find
the Tcl source and mentions that the draft of the book is available on
ftp.cs.berkeley.edu.  A 'hello, world' 3 line wish script is really
all that is shown.

7. Libes, Don, "Obfuscated C and Other Mysteries", Wiley & Sons,
January 1993.

This book has a whole chapter on Tcl.  Aimed at the C programmer, it
describes how to effectively use Tcl from C applications.  Another
chapter is on Expect - a walk-through of some of the more interesting
code in Expect.  These chapters originally appeared as separate
articles in The C Users Journal, Vol. 8, No. 7, July 1990, and Vol. 9,
No. 1, 1991.  (Incidentally, the reason the book has such a peculiar
title is that it also contains explanations of the Obfuscated C Code
Contest winners.)

8.  IEEE Design & Test of Computers, June 1993, pages 46-54,
"RISE++: A Symbolic Environment for Scan-Based Testing" by Steve Vinoski.
An article describing a system called the Remote Interactive Scan
Environment (RISE++) that marries Tcl with RPC for the purpose of
testing remote computer systems.

9. The X Journal, March-April 1993, pages 74-81, "HYPERTOOLS
A revolution in GUI applications" (listed in the TOC as "Hypertools: A GUI
revolution") by John K. Ousterhout and Lawrence A. Rowe.

10. Proceedings 1993 Tcl/Tk Workshop, Berkeley, CA, June, 1993.  See above
for online version information concerning these proceedings.

11. iX (multiuser/multitasking magazine), September 1993,
pages 76-84 and 182-185.  Two articles written in the German language.
These concern the design (interpreter and library) of Tcl/Tk and its
connections with C++.  The articles say where to find the packages and
some associated tools (such as XF).  There are short examples on how to
write programs with Tcl/Tk (taken from the demo-directory of the
package) and examples on using XF.  Very informative.

12. Network Computing (CMP Publishing, Inc), November 15, 1993, pp. 99 
"Very Rich E-Mail".  References safe-tcl.

13. The Addison-Wesley Publishing Company's quarterly newsletter "Innovations"
dated Winter 93/94 contains an interview with John K. Ousterhout on pp 2,9,10.
It mentions the April 1994 release date, Dr. Ousterhout's background
at UCB and involvement in Sprite.  John gives a overview of what Tk and
Tcl are, what companies are using Tcl, where Tcl/Tk fits in relationship
to AWK, Perl, Motif, and X Windows (sic), mentions there are between 10,000
and 50,000 people developing applications in Tcl/Tk, discusses where in
the classroom the textbook fits, and gives an overview of John's view
of the future of Tcl/Tk.

Also on page 3 of the same newsletter is the overview of the book 
listing it as 512 pages and a list price of $36.75.

One can send email to [email-masked] (Pradeepa Siva) to request a copy
of the newsletter, or call him at Addison-Wesley Publishing Company
800/447-2226, ext 2940.

14. EXE, Nov. 1993, V8 N6, p84(4), Ticklish X windows.
This is a tutorial as a part of a regular Unix column. It covers Tcl/Tk as a
scripting language for writing small X-Windows applications.

15. UNIX Review, March 1994, V12 N3, p87-90.  Tickled Pink, by
Kevin Richard and Eric F. Johnson.  This is part of the programming column
"CROSS THOUGHTS".

The authors attempt to provide a very brief taste for Tcl/Tk and to convey
the purposes for which they consider Tcl suited.  They provide a standard
example of "Hello, world" in Tcl, and also a version written in Motif/C.

There were quite a few surprisingly negative remarks in a column which
tried to be positive about Tcl/Tk.

Additional bibliographic references are still being sought.

E. Training courses, materials, etc.

1. There have been, in the past, seminars at Usenix and the MIT X
conference taught by John Ousterhout on Tcl and Tk.  See above for the
slides from the most recent of these presentations.  Other conferences
are also mentioning Tcl and Tk in their announcements.  Recently the
Usenix Very High Level Language Conference mentioned Tcl.

2. NeoSoft Communications Services ( [email-masked], (713) 684-5900 ,
9am - 4pm CDT M-F ) can teach introductory and advanced Tcl courses on
site or at their location in Houston, Texas.  A syllabus and pricing
information are available on request.  Please contact Ellyn Mustard at
(713) 684-5900 or via email to [email-masked] for more details.

3. Computerized Processes Unlimited ( [email-masked], (504) 889-2784 
4200 S. I-10 Service Road, Suite #205, Metairie, LA 70001 )
has a combined Tcl/Tclx reference manual for sale.  It groups the commands
by chapter based on functionality and has an extensive index.  They
also offer courses on Tcl.  For instance:

1. Course Title:           Introduction to Programming in Tcl

Course Length:          2 Days

Course Format:          Course material is presented in a lecture format and
                        through a hands on laboratory using a
                        network of X terminals connected to a RISC workstation.
Course Description:     This course introduces the participant to programming
                        in Tcl/TclX.

                        Topics include:
                                - Variables
                                - Arrays
                                - Lists
                                - Keyed Lists
                                - Syntax
                                - Flow control
                                - Procedures
                                    o Creating
                                    o Invoking
                                    o Passing variables
                                    o Passing arrays
                                    o Passing lists
                                - Running programs from Tcl
                                - Communicating with child processes
                                - Signal handling
                                - Error processing
                                - Accessing system facilities
                                - Programming techniques
                                   o Using autoloading procedures
                                   o Proper use of quoting

Course Level:           Technical: Beginner to Intermediate

Prerequisites:          Use of vi or emacs editors
                        Exposure to programming concepts
                        Use of csh/ksh (not programming)

2. Course Title:           Building Graphical User Interfaces in Tk

Course Length:          2 Days

Course Format:          Course material is presented in a lecture format and
                        re-enforced through a hands on laboratory using a
                        network of X terminals connected to a RISC workstation.
Course Description:     This course introduces the participant to building
                        graphical user interfaces using Tcl/Tk.

                        Topics include:
                                - Background Concepts
                                - A tour of the widgets
                                - Adding Bindings
                                - Widget Class Bindings
                                - Geometry Managers
                                - Running programs from Tcl/Tk
                                - Communicating with child processes
                                - Writing widgets in Tcl/Tk
                                - Programming techniques
                                   o Proper use of quoting
                                - Interface Builders for Tk

Course Level:           Technical: Beginner to Intermediate

Prerequisites:          CPU's "Introduction to Programming in Tcl" course
                        or understanding and experience using Tcl

4. A physical copy of the Tcl / Tk distributed documentation is
available at the Northside Copy Central in Berkeley under the name "TCL" and
is titled "Tcl/Tk Documents".  Northside Copy Central is at 1862 Euclid 
with a phone of (510) 849-9600.  It costs approx. $15-$20 for the book in
a spiral bound, pink cover, clear plastic front and back format.

F.  Time-related seminars, conferences, sessions.

1. A Tcl/Tk workshop was held June 10-11, 1993 at University of 
California at Berkeley.  The workshop proceedings are going to be made
available for ftp in the near future.  The bibliographic references for
the articles published will be added in the near future.

2. At the Eighth Annual X Technical Conference, on January 24th, 1994,
a day long Tcl/Tk tutorial was presented by [email-masked] (Andrew
Payne).  It was aimed at the beginning Tcl/Tk programmer and Andrew
did a narrated tour of the Tk widgets.

Also at this conference, John Menges presented the topic:
"Constructing X Pseudo-Servers with the X Protocol Engine Library (XPEL)"
in an all day tutorial.  This is a C++ library to which one can use Tcl
to communicate.

The entire conference was held at the Boston Marriott Copley Place.
Pre-Registration closed on January 7, 1993.  Contact

Massachusetts Institute of Technology
Conference Services Office
77 Massachusetts Ave., Rm. 7-111
Cambridge, MA  02139  U.S.A.

Fax:  617-253-7002, email: [email-masked]

for more details on future conferences.

3. A Tcl/Tk Workshop by Brent Welch and Lawrence A. Rowe was scheduled to 
occur on Wed, January 19, 1994 at 10:30 am at the San Francisco Usenix
Winter 1994 Technical Conference.  Dr. John Ousterhout also 
presented his Tcl/Tk tutorial on Thursday, January 20, 1994. 

4. An upcoming USENIX symposium will be dealing with Perl, Tcl and other
similar languages.  Here is the information I have to date.

Symposium on Very High Level Languages
October 26-28, 1994
El Dorado Hotel
Santa Fe, New Mexico
Program Chair: Tom Christiansen ([email-masked])
Extended abstracts due June 30, 1994

------------------------------

From: FAQ General information
Subject: -VI- Where do I report problems, bugs, or enhancements - or -
		What is comp.lang.tcl?

	There are two alternatives for reporting bugs and problems.
The first is the USENET news group news:comp.lang.tcl, an unmoderated USENET
newsgroup, created for the discussion of the Tcl programming language
and tools that embed it, such as the Tk toolkit for the X window
system, expect, and Extended Tcl.  Please note that postings of source
code to comp.lang.tcl do not get archived to harbor.ecn.purdue.edu - if
you want your code to be available from the User Contributions archive
you will need to make arrangements for someone to ftp it there.  See
elsewhere in the FAQ for more details on the archive site.

	The second would be to report problems, suggestions, new
ideas, etc. to the author.  Email to

[email-masked] (John Ousterhout)

will get comments to the author of Tcl and Tk - to find the email
address of the authors of other Tcl/Tk based programs,
(see "tcl-faq/part3"), (see "tcl-faq/part4"), and (see "tcl-faq/part5").

	At least one short term archive of comp.lang.tcl is available for 
anonymous ftp from ftp://csc.canberra.edu.au/pub/motif/comp.lang.tcl/ .

------------------------------

From: FAQ General information
VII. Are there any mailing lists covering topics related to Tcl/Tk?

	There are quite a number of mailing lists which cover topics
relating to the Tcl community.  As you begin one, if you will send
me information relating to the mailing list, I will add it below.

o	VMS Tcl/Tk

	Folks interested in Tcl on VMS in general can sign up to the
	[email-masked] mailing list for more details.
	An archive for the mailing list is available at:
	ftp://src.honeywell.com/pub/vms-tcl/mailinglist.archive

o	Macintosh Tcl

		W. Ross Brown <[email-masked]> previously maintained a
	mailing list for discussion of Tcl on the Macintosh.  This list
	is being phased out and users are encouraged to move to the new
	Macintosh Tcl Mailing list.  Here is it's announcement:

	---

		This Mailing List is devoted to the issues of Tcl on
	the Macintosh.  This includes (but not limited to) such
	topics as ports of Tcl to the Mac (MacTcl), Tcl questions
	relating only to the Mac (file I/O etc.), and porting of Tk to
	the Mac.

		A previous mailing list was supported by Ross Brown.
	Ross, however, had to manage the list by hand.  This list will
	be managed by listserv software and will hopefully be more
	active.  If you were previously on Ross's mailing list you are
	encouraged to switch to this new list.  Ross's mailing will be
	phased out shortly.

		To get more information about the mailing list send a message
	to "[email-masked]" with the line "information mactcl" in
	the body of the message (the subject is ignored).

		To subscribe to the mailing list send a message to
	"[email-masked]" with the line "subscribe mactcl Your Name"
	in the body of the message.  Substitute 'Your Name' with
	whatever your real name is.

		Otherwise, all posting of articles to the mailing list
	should be sent to [email-masked].

o Tcl general discussion mailing list

		For those USENET-deprived individuals who are thus unable
	to read comp.lang.tcl, an email alternative is available.
	If you get comp.lang.tcl you do not need to sign up for this list.

		A service called "listserv" is being run out of CERN to forward
	comp.lang.tcl postings via e-mail to people who don't have direct
	access to the newsgroup.  In addition, they are archiving the newsgroup
	so you can retrieve old postings from them.  Here is some more
	information about the service:

   1) send a mail to [email-masked] with one line in the body:

      subscribe tcltk

   2) see how it works (you will receive the mail with instructions from
      listserv);

   3) unsubscribe by a mail to [email-masked] with one line in the
      body:

      signoff tcltk

   4) again, signing off will be confirmed by listserv

o X Protocol Engine Library (XPEL) mailing list

	To join, send email to [email-masked] .

	XPEL uses Tcl for an embedded interpretor as well as uses
safe-tcl in external monitor programs.

o Basic Object Systems (BOS) mailing list

	BOS is a SELF-like objects extension to Tcl.

	To join, send email to [email-masked] 

o ServiceMail Toolkit mailing list

	ServiceMail is a stand-alone email server written in C and Tcl.
	It takes incoming email requests and can perform tasks for the
	sender.

	To join the mailing list, send email to [email-masked]
	or subscribe to servicemail-help mailing list by sending a message
	to the "listserv subscribe servicemail-help your-real-name" service at
	"[email-masked]".

o Dejagnu mailing list

	This set of mailing lists are NOT maintained by Cygnus.

	3 mailing lists - dejagnu-bugs, dejagnu-developers, and
	dejagnu-questions - have been created as a part of the
	yggdrasil.com listserv.

	To subscribe, send a line like:

echo subscribe dejagnu-bugs [email-masked] | mail [email-masked]

	where you put your own email address in place of [email-masked]
	and you put the name of the mailing list you wish to join after
	subscribe.

------------------------------

From: FAQ General information
Subject: -VII- Where can I find the FAQ and who do I contact for more 
		information about it?

	I am going to attempt to keep a copy of this file up to date on
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tcl-faq.p0[1-5].gz .  There
are mirrors of harbor.ecn.purdue.edu maintained elsewhere - for
instance, it appears that cs.huji.il, ftp.denet.dk, ftp.luth.se,
hplyot.obspm.fr, rs3.hrz.th-darmstadt.de, sunsite.unc.edu,
swdsrv.edvz.univie.ac.at all have some portion of the harbor archives
available.  Also, I will be posting it on a regular basis to at least
comp.lang.tcl, news.answers, and comp.answers.

	Many FAQs, including this one, are available on the archive
site ftp://rtfm.mit.edu/pub/usenet/news/answers/ .  The subdirectory and
name under which a FAQ is archived appears in the Archive-name line at
the top of the article.  For example, this part of the comp.lang.tcl
FAQ is archived as
ftp://rtfm.mit.edu/pub/usenet/news/answers/tcl-faq/part1.Z .

	There is also a mail server from which you can obtain a copy of
the FAQ.  Send an email message to [email-masked] or
[email-masked]) with the word help in the body of the
message to find out how to use it.

	Also, this FAQ is available from within gopher (by looking at
any one of the gopher holes presenting news.answers or FAQ lists), from
WAIS servers (such as the comp.lang.tcl.src), from a number of sites
which have available via ftp archives of news.answers and comp.answers
( use archie to locate one of these sites available around the world),
and probably other resources as well.

	A great new resource access point for the FAQ is WorldWideWeb.
The Uniform Resource Locator (URL) id for the FAQ is:

http://www.cis.ohio-state.edu:80/hypertext/faq/usenet/tcl-faq/top.html

Be sure to check this one out!

	A WWW URL for the FAQ, where the FAQ is treated simply as one
long scrollable document (suitable for doing a search against, for
instance) is:

http://realsoon.wpi.edu:8080/faqs/tcl.FAQ

	A complete archive of the newsgroup is available from:

ftp://ftp.neosoft.com/pub/usenet-archives/comp/lang/tcl/

A good place to start looking through this archive is:
ftp://ftp.neosoft.com/pub/usenet-archives/comp/lang/tcl/+Index
which contains a list of all the filenames and subject lines of each of the
articles.

	Let me know when you find the FAQ in new and unusual locations
so I can update this resource guide!

	If you have corrections, enhancements, modifications,
clarifications, suggestions, ideas, new questions, new answers to
questions which have never been asked, or something else that I have
not covered above, contact me at [email-masked].

------------------------------

End of comp.lang.tcl Frequently Asked Questions (1/5)
*****************************************************
-- 
:s Great net resources sought...
:s Larry W. Virden                 INET: [email-masked]
:s Personal: 674 Falls Place,   Reynoldsburg, OH 43068-1614
The task of an educator should be to irrigate the desert not clear the forest.
-- 
:s Great net resources sought...
:s Larry W. Virden                 INET: [email-masked]
:s Personal: 674 Falls Place,   Reynoldsburg, OH 43068-1614
The task of an educator should be to irrigate the desert not clear the forest.

---

From: [email-masked] (Larry W. Virden)
Date: Tue, 22 Feb 1994 21:37:27 GMT

Archive-name: tcl-faq/part2
Version: 4.6
Last-modified: February 22, 1994

Please do not be offended if I neglect to acknowledge your contribution
to this FAQ!  I sometimes forget to put an attribution in.  I especially
try to add them if it appears that there is further experimentation or
debugging being done though.

	For more information concerning Tcl (see "tcl-faq/part1"),
(see "tcl-faq/part3"), (see "tcl-faq/part4"), or (see "tcl-faq/part5").

Index of questions:

VIII. Questions on building Tcl and friends on your system:
	Q8A. Is there anywhere I can find help with the details of getting 
		Tcl to work on my machine?
	Q8B. Why does the link step says that some of the functions Tcl,
		needs are missing when I am trying to build it?
	Q8C. Has anyone built Tcl 6 on an RS/6000 AIX 3.1? 
	Q8D. Has anyone gotten Tcl to compile under HP-UX?
	Q8E. Has anyone gotten Tcl to compile under VMS?
	Q8F. What does it take to get Tcl to compile under SCO Unix?
	Q8G. Why do I get format and scan errors when I run tclTest
		(NeXT, AIX, etc.)?
	Q8H. Why do I get lots of errors under Irix 4.0.1 when I run
		tclTest?
	Q8I. Does anyone else have problems with Tcl on a Cray?
	Q8J. Does anyone know how to get Tk to run on a SparcBook or other
		laptop with a limited number of colors?
	Q8K. What does it take to get Tcl/Tk to compile on 386bsd/Linux 
		or other POSIX/ANSI C systems not already supported?
	Q8L. Why do I get a parse error in tkInit.c when I try to compile
		Tk on my Irix machine?
	Q8M. What do I need to do to install Tcl 7.x/Tk 3.x on NeXTSTEP 3.1?
	Q8N. Why can't I print the draft of the Tcl/Tk book?
	Q8O. Why am I getting errors on my SGI Indigo workstation?

IX.  How, in Tcl, can I XXX:
	Q9A. get association lists or property lists?
	Q9B. call one proc with the multi parameter value returned by 
		another proc?
	Q9C. pass an array into a proc?
	Q9D. pipe output of a command back into a Tcl parsing procedure?
	Q9E. merge extended Tcl into other programs such as wish or expect?
	Q9F. delete a procedure from within a script?
	Q9G. get parray to recognize an array variable I have created
		via upvar?
	Q9H. get more than 7 digits of double precision?
	Q9I. grab the command line whenever a non-built-in call is made?
	Q9J. get or set an environment variable?
	Q9K. use numbers with leading zeroes?
	Q9L. find the command line arguments to my application?
	Q9M. put comments in my script, for example in a case statement?
	Q9N. redirect stdin or stdout safely, including binary data?
	Q9O. trap signals, and other more Unix specific functions?
	Q9P. get quoted strings to work the way I want?
	Q9Q. share procedures between multiple tcl applications?
	Q9R. get items inserted into a list?
	Q9S. perform a non-blocking read on a file identifier?
	Q9T. read and write from a pipe without locking up?

X.  How, in Tk, can I XXX:
	A. Question on starting Tk applications

	Q10.A.1. get my wish application to execute - I just get a wish prompt!
	Q10.A.2. ,using a machine with less than 8 bit color, run?
	Q10.A.3. set X11 resources for a wish application in an 
		app-defaults file?
	Q10.A.4. specify bitmap patterns on the command line instead of 
		as a file name?
	Q10.A.5. get a Motif user interface?
	Q10.A.6. get an OpenLook user interface?
	Q10.A.7. get Tk 3.3 to even start - I get security error messages.

	B. Questions on Tk applications and the keyboard

	Q10.B.1. change the default class bindings?
	Q10.B.2. delete a binding?
	Q10.B.3. change a binding while it is being executed?
	Q10.B.4. bind the arrow key on my Sun keyboard?
	Q10.B.5. get root's mouse bindings to work in my Tk application?

	C. Questions on Tk and X11 interactions

	Q10.C.1. get an application to also use libXt?
	Q10.C.2. change the X11 cursor?
	Q10.C.3. raise or lower a window?
	Q10.C.4. re-map a withdrawn window id?
	Q10.C.5. use Tk in a subwindow of a non-Tk X11 application?
	Q10.C.6. bind <Enter> and <Leave> to a frame containing other widgets?
	Q10.C.7. mix interactions between Xt and Tk/Tcl?

	D. Questions on Tk listboxes

	Q10.D.1. resize a listbox?
	Q10.D.2. select two items that are not adjacent in the listbox at 
		one time?
	Q10.D.3. select items in more than one Tk listbox at a time?
	Q10.D.4. avoid fractional white space at the end of a resizable listbox?

	E. Questions on Tk canvases

	Q10.E.1. get output from a Tk canvas?
	Q10.E.2. fill a canvas which is bounded by lines as opposed to a
		shape like a polygon, oval, etc.?
	Q10.E.3. raise/lower canvas window objects or draw graphics onto a 
		window object inside a canvas?
	Q10.E.4. detect when the canvas has been resized?

	F. Other questions

	Q10.F.1. get the name of my own interpreter?
	Q10.F.2. get -relief to work on my text widgets?
	Q10.F.3. create a scrollable window of buttons?
	Q10.F.4. pack a text widget so that it can be resized interactively?
	Q10.F.5. create a widget with an upper case name?
	Q10.F.6. create equal sized buttons?
	Q10.F.7. vertically stack radio buttons aligning regardless of font?
	Q10.F.8. initialize an entry widget with some text?

End of FAQ Index

From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8A- Is there anywhere I can find help with the details of 
		getting Tcl to work on my machine?

A8A. Glad you asked!  Look in the Tcl distribution for the file called
"porting.notes".  This will contain a collection of notes that various people
have provided about porting Tcl to various machines and operating systems.
There are also a file called "README" which should be read FIRST - before
doing anything else with the code (this should always be one's first
step with any package).  Finally, there is a "changes" file which details
what has changed since the last release - be sure to read this to see
what might need to change in your programs.

From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8B- Why does the link step says that some of the functions Tcl,
		needs are missing when I am trying to build it?

A8B. Did you run the "config" program first, by doing a "csh ./config" or
equivalent?  Without doing this, things such as strtoul or strerror
are sometimes mentioned as missing.

Tcl includes equivalents for at least the following functions and include files
which may not be found on some systems:

dirent.h       limits.h	      stdlib.h	     string.h

opendir.c      strerror.c     strstr.c	     strtol.c	    strtoul.c

strtod.c

From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8C- Has anyone built Tcl 6 on an RS/6000 AIX 3.1? 

A8C. See porting notes - especially the note about strtoul.

One user got Tcl to compile with a few minor source modifications
(for example, duplicate case statements for errno and signal symbols in 
tclUnixStr.c). 

A few other problems arose in the tests.  One is caused by AIX printf
not formatting %#x and %#o correctly when the value to be printed is
zero:  they print "0x0" and "00" instead of "0" and "0" respectively.
This was reported as not a problem in earlier releases.  No fixes have
been posted.

Finally, a problem occurs in open.test.  test 13.6 hangs because "cat"
on the RS6000 is unbuffered.  A workaround is to change the execution
of "cat" in open.test to do a "cat -u".

Dov Grobgeld <[email-masked]> provided info on creating Tcl
and Tk shared libraries under AIX 3.1.5:

For Tcl:

cc -o tkshar.o *.o -bE:tclshar.exp -bM:SRE -berok -lX11 -lm
ar r libtclshr tclshar.o

For Tk:

cc -o tkshar.o *.o -bE:tkshar.exp -bM:SRE -berok -Ltcl -lX11 -lm -ltclshr
ar r libtkshr tkshar.o

where tckshar.exp and tkshar.exp had lists of the external functions.

There are also problems with fonts on AIX and the IBM.  A patch is needed
>from IBM to fix the X server so that fonts are working

From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8D- Has anyone gotten Tcl to compile under HP-UX?

A8D. See the porting notes.

From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8E- Has anyone gotten Tcl to compile under VMS?

A8E. Information from [email-masked] (John Kimball) on
May 4, 1993 was that he had gotten Tcl 6.7 and Tk 3.2 ported to VMS
5.5.  See the catalog for the file information.

From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8F- What does it take to get Tcl to compile under SCO Unix?

A8F. Add a "#undef select" to tkEvent.c, and remove the reference to 
TK_EXCEPTION around line 460 of main.c.

Tk uses its own scheme for allocating the border colors for its 3D
widgets, which causes problems when running TK on a system with
"PseudoColor" display class, and a 16-cell colormap.

If you can't go to eight bitplanes, you can instead start the server
with a "-static" (Xsco) or "-analog" (Xsight) option, making the
display class become "StaticColor".  This makes the entire colormap
read-only, and it will return the color that most closely maps to the
desired color as possible.

This information is from Keith Amann <[email-masked]>

From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8G- Why do I get format and scan errors when I run tclTest
		(NeXT, AIX, etc.)?

A8G. That's a problem (scanf/printf) many systems seem to have.  Don't
worry too much about it - just don't use these 'advanced' features.  If
you're hacking C, you'll have the same problems.

From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8H- Why do I get lots of errors under Irix 4.0.1 when I run
		tclTest?

A8H. There's a bug in the 4.0.1 optimizer that's fixed in 4.0.2.
Compile tclVar.c using -O0 (no optimization).

From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8I- Does anyone else have problems with Tcl on a Cray?

A8I. See the porting notes for a set of changes mentioned.  Also,
Booker C. Bense <[email-masked]> reports that version 3.0.1.6
has some real problems with char pointers, causing Tcl to crash.  Using
version 3.0.2.1, things are much better, except for a minor formatting
problem and serious problems with scan.

From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8J- Does anyone know how to get Tk to run on a SparcBook or other
		laptop with a limited number of colors?

A8J. On a SparcBook, if you start openwin (the OpenWindows server starting
command) as:

openwin -dev "/dev/fb staticvis"

you get a static visual color model that Tk copes with better than the
default.  Some things are ugly, but not as ugly as monochrome.

From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8K- What does it take to get Tcl/Tk to compile on 386bsd/Linux 
		or other Posix/ANSI C systems not already supported?

A8K. Patches for 386BSD were posted to comp.lang.tcl back in Nov. 1992 to
alt.sources.  See one of the ftp archive sites for this group for them.
Basically, there were some setting of defines and a few places where 
const char * had to be used in place of char *.  

From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8L- Why do I get a parse error in tkInit.c when I try to compile
		Tk on my Irix machine?

A8L. Jon Knight <[email-masked]> reports that the version of
Irix that he is using doesn't define a uid_t.  One needs to define one 
somewhere (or comment out the lines causing the problems) to get the compile
to continue.

From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8M- What do I need to do to install Tcl 7.1/Tk 3.4 on NeXTSTEP 3.1?

A8M.  I have indicated in the past that this particular question seems
to generate controversy - I have replaced previous explanations with the
latest msg from someone who sounds authoritative...

From: Robert Nicholson <[email-masked]>

This is for TCL7.1 and TK3.4 

This is a variation on Thomas Funke's entry.

Installing TCL7.1 on NeXT
=========================

To install tcl7.1 on NeXTSTEP 3.1 you must:

- run configure with predefined CPP:
	type "sh" to run a Bourne shell.
	then type
    CPP='cc -E' ./configure

- edit Makefile:

  add tmpnam.o to COMPAT_OBJS:
  COMPAT_OBJS =      getcwd.o waitpid.o strtod.o tmpnam.o

At this point you probably want to rename the all calls to strtod and
tmpnam to something else in order to distinguish them from those that
are supplied in the NeXT libraries libsys_a.a.  You can do this by 
adding the following line to AC_FLAGS

	-Dstrtod=newstrtod -Dtmpnam=newtmpnam

and renaming the names of the definitions in the appropriate
compat/*.c files.

To check everything is working correctly open a tclsh 

% expr {"0" == "+"} 
0

Using the wrong strtod function will cause this test to return 1 which
is a serious error.  Ignore the precision errors.

Installing TK3.4 on NEXTSTEP 3.1
================================

There is a call to strtod in TK3.4 so you should link against
../tcl-7.1/compat/strtod.o and apply the -Dstrtod=newstrtod
to AC_FLAGS in Tk also.

Note:Tk's raise test will fail when running the tvtwm window manager.
Changing to either twm or even better fvwm ensures that this test will
succeed. 

From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8N- Why can't I print the draft of the Tcl/Tk book?

A8N.  From [email-masked] (John Ousterhout):

Here's my form letter that seems to explain most of the problems people
have had printing parts of the book:

Some old versions of the Transcript spooler software cannot properly
handle encapsulated Postscript files within another Postscript file
when they do page reversal.  They tend to garble the page structure of
the file, causing an error at the point of the first EPS file.  Part
II of the Tcl book has lots of EPS files embedded in it, one for
each screen dump.  If your printer cannot print this file I suggest
checking to see if page reversal is enabled for your printer.  If
so, try asking your local system wizard to disable it for you;  this
should allow the file to print.  Or, find some other way to dump the
Postscript file directly to the printer without going through the
spooling software (e.g. perhaps you can simply cat it to the printer's
serial port).

Others have suggested:

 The embedded pictures have CR as the line separator instead of LF and
 this may be causing the problem. Try translating them to LFs ...
 
   tr '\015' '\012' <book.p2.ps >fixedbook.p2.ps

and:

 This is not the original poster's problem but in countries using A4
 paper and on a particular printer, the Dataproducts LZR1260E, the frame
 size causes the printing to be stretched vertically. This happens with
 other Framemaker generated documents by the way. A PS interpreter bug
 no doubt. The fix is to edit the dimensions for A4 paper. This shell
 script does both fixes.

#!/bin/sh
cat $1 | tr '\015' '\012' | sed '/FMDOCUMENT$/s/612 792/595 842/'

From: -VIII- Questions on building Tcl and friends on your system
Subject: -Q8O- Why am I getting errors on my SGI Indigo workstation?

A8O. From Gordon Lack <[email-masked]> we are told that
the SGI c compiler has some bugs with variable arguments.

tclVar.c must be compiled with -O0 at IRIX C 4.0.1 because of a
compiler bug with varargs.
 
   Done by placing specific rule into Makefile.
 
> # GGR SG needs -O0 for varargs at 4.0.1
>
> CC_SWITCHES0 =  -O0 -I. -I${SRC_DIR} ${AC_FLAGS} ${MATH_FLAGS} \
> ${GENERIC_FLAGS} ${PROTO_FLAGS} ${MEM_DEBUG_FLAGS} \
> -DTCL_LIBRARY=\"${TCL_LIBRARY}\"
>
> tclVar.o: tclVar.c
>         $(CC) -c $(CC_SWITCHES0) $<

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q9A- association lists or property lists?

A9A. Use Extended Tcl arrays or keyed lists.

For example, if you did a:

keylset ttyFields ttyName tty1a
keylset ttyFields baudRate 57600
keylset ttyFields parity strip

And then an "echo $ttyFields", you'd get:

    {ttyName tty1a} {baudRate 57600} {parity strip}

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q9B- call one proc with the multi parameter value returned by 
		another proc?

A9B. Assuming y requires multiple args and x returns multiple words, use 
	Tcl's eval command :

	eval y [x]

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q9C- pass an array into a proc?

A9C. Use upvar rather than try to use global variables when possible.  If
the function is event driven, you are forced to use global variables.

# print elements of an array
proc show_array arrayName {
    upvar $arrayName myArray

    foreach element [array names myArray] {
       puts stdout "${arrayName}($element) =  $myArray($element)"
    }
}

set arval(0) zero
set arval(1) one
show_array arval

To return an array from a procedures, just take the array name in as an
argument, as above.  Any changes you make in the array will be made in
the parent's array as well.

Extended Tcl introduces a concept called keyed lists which are arrays
made out of lists of key-value pairs and can be passed by value to routines,
over networks, etc.

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q9D- pipe output of a command back into a Tcl parsing 
		procedure?

A9D. For example, to grep a pattern out of a range of files, one might
do:

[email-masked] (Karl Lehenbauer) writes:

set files [glob /home/cole/stats/*]

proc parseInfo { site } {
   global files

#
# site is chosen from a listbox earlier
#
   set in [open [concat "|/usr/bin/grep $site $files"] r]

   while {[gets $in line]>-1} {
      puts stderr $line
   }
   catch {close $in}
}

One thing:  the matching strings are _not_ returned in directory order.

But what if I want to check the return code AND use the output of 
the command?  [email-masked] (Kevin B. Kenny) writes:

if [catch {exec ls} data] {
        # The exec got an error, and $errorCode has its termination status
} else {
        # The exec succeeded
}
# In any case, `data' contains all the output from the child process.

Note that Karl Lehenbauer adds that errorCode will be a list containing
three elements, the string "CHILDSTATUS", the process ID of the child,
and the exit status of the child.

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q9E- merge extended Tcl into other programs such as wish or expect?

A9E. The latest version of extended Tcl, tclX 6.7c, has been enhanced to
make it easier to incorporate into applications.

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q9F- delete a procedure from within a script?

A9F. rename procedureName ""

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q9G- get parray to recognize an array variable I have created
		via upvar?

A9G. Right now (June, 1992) upvar doesn't allow you to attach to an
individual element of an array.  This is considered a bug by 
Mr. Ousterhout and has been place on a bug list.

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q9H- get more than 7 digits of double precision ?

A9H. In Tcl 6.x, modify the tclExpr.c module to use %lf instead of %g.  In
Tcl 7.x, set the global variable tcl_precision instead.

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q9I- grab the command line whenever a non-built-in call is made?

A9I. The procedure "unknown" is called automatically with arguments 
containing the command and its arguments for any command that couldn't be 
found.  In fact, Tcl and Extended Tcl use this feature to provide demand
loaded commands, and even entire libraries.

So by modifying the unknown procedure you can provide your own extended
functionality, or even remove the demand loading capability if you so
desire.

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q9J- get or set an environment variable?

A9J. By using something like the following.

set olddisplay $env(DISPLAY)
set env(DISPLAY) unix:0

Thanks to "Joel Fine" <[email-masked]> for the answer.

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q9K- use numbers with leading zeroes?

A9K. Dave Morriss was recently having problems because he was trying
to do something like:

set index [expr [exec date +%W]%[llength $pop_server_list]]

but during the 9th and 9th week of the year, he got errors - 08 and 09
are not valid octal numbers in Tcl.

Some of the solutions provided were:

>From George A. Howlett <[email-masked]>, we got:

set wknum [format "%g" [exec date +%W]]
set index [expr [exec $wknum%[llength $pop_server_list]]

>From Fred Feirtag <[email-masked]> :

set index [expr (1[exec date +%W]-100)%[llength $pop_server_list]]

>From Dan R. Schenck <[email-masked]>:

set index [expr [string trimleft [exec date +%W] 0]%[llength $pop_server_list]]

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q9L- find the command line arguments to my application?

A9L.  If you are using extended Tcl or Expect, you will find the parameters in
the Tcl variable argv as a list.  Note that in extended Tcl, the name of 
the program is in the Tcl variable programName and NOT in argv[0].  Thanks to
[email-masked] (Brad Morrison) and [email-masked] (Bud Bach) for
this answer.

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q9M- put comments in my script, for example in a case statement?

A9M. You can't have comments where you have them.  Move the comments inside
of the "{" for the case that you want.  Your code should read:

case 1 {
  -1    {
        #
        # Cannot find information sought
        #
        exit 2
        }
   0    {
        #
        # Error in arguments
        #
        exit 1
        }
   default    {
        #
        # Desired information found
        #
        exit 0
        }
}

Thanks to [email-masked] (Gerald W. Lester).

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q9N- redirect stdin or stdout safely, including binary data?

A9N. With Extended Tcl you can safely do stuff like:

        set infp [open "|compress -dc $fileName"]
        set outfp [open "|gzip -c $newFileName" w]

        copyfile $infp $outfp

Thanks to [email-masked] (Karl Lehenbauer) for the code example.

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q9O- trap signals, and other more Unix specific functions?

A9O. Extended Tcl offers many of these types of functions.  For instance,
extended Tcl has the 'signal' command:

        signal action siglist [command]

        where action is one of "default", "ignore", "error", "trap", "get",
        plus the POSIX "block" and "unblock" actions (available only on
        POSIX systems, of course).  Siglist is a list of either the symbolic
        or numeric Unix signal (the SIG prefix is optional).  Command is your
        error handler (or a simple {puts stdout "Don't press *that* key!"}  :-)

"trap" does what you expect, and I find "error" and "get" to be
extremely useful in interactive programs which demand keyboard
traversal.

Extended Tcl also has things like fork, etc.

Answer by [email-masked] (Brad Morrison).

From: -X-  How, in Tcl, can I XXX:
Subject: -Q9P- get quoted strings to work the way I want?

A long article dealing with the issues can be found at
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/README.programmer

Here are some short answers:

Q. I'm trying to build up a command for later execution but am
having trouble with variable values that include whitespace
or special characters.

A. The safest way to build up commands is to use the list command
so that you can keep track of the list structure.  Avoid using
double quotes because you can end up with an extra trip through
the evaluator.  We'll illustrate this with a command to create
a button that prints out the label on the button when you click it.
    Wrong answer #1:
	button $myname -text $label -command "puts stdout $label"
    Why? because if $label has whitespace then the puts command will
	be passed the wrong number of arguments.  If $label has $ or [ ]
	characters, they will be interpreted instead of printed.
    Good answer #2:
	button $myname -text $label -command [list puts stdout $label]
    Why? because list will properly quote the value of $label

Q. I'm trying to build up a command for later execution but am
having trouble getting some variables to evaluate now, and some
to evaluate later when the command is run.

A. The cleanest way to do this is to define a procedure that hides
the use of the variables at run time, and then build up a call to
that procedure using the list command as described previously.  (You
can even define the procedure on the fly.  It will have global scope
even it if is created within another procedure.)
    Wrong answer #1:
	button $myname -text $label -command \
	    [list puts stdout $ArrayOfDynamicStuff($label)]
    Why? The array value will be substituted when the button is created,
	not later on when the button is clicked.  Also, note that the
	command is executed at the global scope, so it is not necessary
	to include a "global ArrayOfDynamicStuff" in the command.
    Wrong answer #2 (backquotes and list):
	button $myname -text $label -command \
	    [list puts stdout \$ArrayOfDynamicStuff($label)]
    Why? Here the list command and the backquote of $ are fighting with
	each other.  The command ends up being something like:
	    puts stdout {$ArrayOfDynamicStuff(foo)}
	which prevents the substitution of the value of the array element.
    Dubious answer #3 (backquotes and double-quotes):
	button $myname -text $label -command \
	    "puts stdout \$ArrayOfDynamicStuff($label)"
    Why? This only works if the value of $label has no special characters
	or whitespace.
    Clean answer #4 (proc):
	proc doit { i } {
	    global ArrayOfDynamicStuff
	    puts stdout $ArrayOfDynamicStuff($i)
	}
	button $myname -text $label -command [list doit $label]
    Why? Using little TCL procs for your button commands is a good habit
	because it eliminates most needs for fancy quoting, and it
	makes it easier to tweak the button command later on.

Q. I'm trying to pass along a variable number of args to another procedure
but I'm having trouble getting the $args to expand right.

A. Avoid using eval and double quotes because that results in
an extra trip through the interpreter.  The eval command will do
a concat of its arguments if there are more than one, so that
pretty much eliminates the need to group things with double quotes.
Let's extend the button example:
    Wrong answer #1:
	proc mybutton { myname label args } {
	    button $myname -text $label -command [list puts stdout $label] $args
	}
    Why? All the extra arguments to mybutton are grouped into one list element
	that is but into the value of $args.  However, the button command
	expects to see individual arguments, not a sub-list.
    Wrong answer #2:
	proc mybutton { myname label args } {
	    eval "button $myname -text $label -command [list puts stdout $label] $args"
	}
    Why? The double quotes allow expansion of $label as well as $args, so if
	$label has any whitespace, the button command will be malformed
    Good answer #3:
	proc mybutton { myname label args } {
	    set cmd {button $myname -text $label -command [list puts stdout $label]}
	    eval $cmd $args
	}
    Why? Eval will first concatenate its two arguments and then run the
	result through the interpreter.  Think of this as stripping off the
	outer curly braces from $cmd and $arg and making a single list
	with all the elements of both.  $label will be evaluated exactly
	once, so the puts command will remain good, and whatever went into
	args will also be processed exactly one time.

Q. Why do I get a syntax error in an if/while/for statement?
A. You may have written something like
	wish: set foo bar
	wish: if {$foo == bar} {puts stdout bar}
	syntax error in expression "$foo == bar"

in which bar is interpreted as neither a string nor a variable, since
strings as operands in expressions MUST be surrounded by double quotes
or braces. 

Change to
	wish: if {$foo == "bar"} {puts stdout bar}
or
	wish: if {$foo == {bar}} {puts stdout bar}

always in expressions, depending on if you want expansion performed or
not. 

Contributed by "Jesper Blommaskog" <[email-masked]>

From: -X-  How, in Tcl, can I XXX:
Subject: -Q9Q- share procedures between multiple tcl applications?

A9Q.  Rather than sourcing the files explicitly, build a tcl library:

Step 1.  Put the files in a common directory

Step 2.  Build the tclIndex for the "library".  I use a Makefile with
a convention like:

install.index:
        (cd ${DESTDIR}/tclscripts/lib; \
        echo 'source /usr/local/lib/tcl/init.tcl;\
	 auto_mkindex . *.tk' | tcl ; exit 0)

Step 3. Modify your tcl scripts to reference the library:

e.g.:

# local additions
lappend auto_path /usr/local/lib/tcl_local $env(RDS_TCL_SCRIPTS)/lib

Now, as soon as your script tried to reference a procedure in the library,
the "unknown" command autoloads the procedure for you.

Contributed by Joe VanAndel <[email-masked]>

From: -X-  How, in Tk, can I XXX:
Subject: -Q9R- get items inserted into a list?

A9R.  A user asked why

	linsert $list 0 ..

did not result in .. being inserted into list.

[email-masked] (Jesper Blommaskog) replied:

When doing list operations other than lappend, you must save the
returned value. This applies to list, lindex, lrange, lreplace at
least.

In this example, you would perhaps want to do something like:

	set list [ linsert $list 0 .. ] 

From: -X-  How, in Tk, can I XXX:
Subject: -Q9S- perform a non-blocking read on a file identifier?

A9S.  From Frank Smith <[email-masked]> we are told that
if you have Extended Tcl, you can

   read $fileId [fstat $fileId size]

This will read only the number of bytes currently available on 'fileId'
and consequently will not block.

From: -X-  How, in Tk, can I XXX:
Subject: -Q9T- read and write from a pipe without locking up?

A9T. The stdio package has an optimization for speed that buffers characters so 
that you can avoid un-necessary system calls. This isn't very good for 
interactive use so stdio changes it's behaviour if the file is a terminal. When 
you write to a pipe you are not writing to a terminal and so your output is 
buffered, similarly when the program at the other end of the pipe writes its 
response it is also buffered. The end result is the programs at both end of the 
pipe stall waiting for input. It is possible to force the buffers to be written 
using flush in Tcl and fflush() in C, often though, you don't have control over 
the program at the other end of the pipeline and in that case your only 
solution is to use a pseudo-teletype (pty). Unfortunately this isn't all that 
easy.

While this isn't directly supported in Tcl the spawn command in expect opens a 
pty and starts a command.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.A.1- get my wish application to execute - I just get a
		wish prompt!  Or I just get error msgs about permission
		denied, not found, etc.

A10.A.1. Most systems require a full pathname to the interpreter.  
So you cannot start a wish script out as 

#! wish -f

Likewise, many Unix systems have a maximum length of characters that you can
put on a #! line.  If you exceed this, you do not get the behaviour you
expect.  So do not try to put something like:

#! /projects/somethingbig/bin/sun4/wish -f

followed by your wish code.  Keep the lines short - under 32 characters is
recommended.

Finally, on some machines, white space after the -f causes a problem.  Be
sure that the -f are the last characters on the first line of the file.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.A.2- ,using a machine with less than 8 bit color, run?

A10.A.2. Tk doesn't behave very well with less than 8-bit color screens.  To
try to use it, find all the places in the Tk/wish source where 
DefaultDepthOfScreen is invoked to test the number of bit-planes.  Change all
of these to pretend there is just 1 bit-plane, or call a procedure which
monitors a Tcl variable so that it is configurable, and you should be okay.

Another alternative is to see if the server you are using has alternative
visual / color models, such as static visual, etc.  One of the alternatives
may allow Tk to work better.

Thanks to "Nathaniel Borenstein" <[email-masked]> for this info!

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.A.3- set X11 resources for a wish application in an 
		app-defaults file?

A10.A.3. Read the documentation for the option command.
Then you should consider something like the following - assume the program
name is xwf.

The following are two general purpose functions to put into a library:

# envVal envValName
#   Looks up the envValName environment variable and returns its
#   value, or {} if it does not exists
proc envVal {envValName} {
  global env
  if [info exists env($envValName)] {return $env($envValName)} {return {}}
}

# loadAppDefaults classNameList ?priority?
#   Searches for the app-default files corresponding to classNames in
#   the order specified by X Toolkit Intrinsics, and loads them with
#   the priority specified (default: startupFile).
proc loadAppDefaults {classNameList {priority startupFile}} {
  set filepath "[split [envVal XUSERFILESEARCHPATH] :] \
		[envVal XAPPLRESDIR] \
		[split [envVal XFILESEARCHPATH] :] \
		/usr/lib/X11"
  foreach i $classNameList {
    foreach j $filepath {
      if {[file exists $j/$i]} {
	option readfile $j/$i $priority; break
      }
    }
  }
}

# Now, here is what you would put into xwf:

option add Tk.BoldFont "*-lucida sans-Bold-R-Normal-*-100-*" widgetDefault
loadAppDefaults {xwf XWF} userDefault

This sets a program default, then load any defaults specified in the user's
default resources and finally any site or general app-defaults resource.  
Of course, you would want to add some xwf command line handling to allow 
the user to override things at execution time.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.A.4- specify bitmap patterns on the command line instead of 
		just as a file name?

A10.A.4. You can not, at least as of June, 1992.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.A.5- get a Motif user interface?

A10.A.5. Tk does not currently use the Xt toolkit, so a strict adherence
to Motif via the libXm.a routines is not possible.  However, the authors
of Tk prefer the Motif style of user interface, so you will find that Tk
makes quite an attempt to implement a Motif-like interface.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.A.6- get an OpenLook user interface?

A10.A.6. Unfortunately, Tk does not currently use either XView or Xt based
widgets in its user interface, so an OpenLook compliant (or even
similar) interface is probably not easily achievable in the near future.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.A.7- get Tk 3.3 to even start - I get security error messages.

A10.A.7.  Alternate forms of this question often mention that Tk 3.3 send
is broken, or ask how to use xauth.

Under Tk 3.3, the X11 xauth security mechanism is used.  While this
provides more security, it does require the user to do a bit more
setup.  The user needs to create an Xauthority file (typically
$HOME/.Xauthority) and then restart the X server with the
-auth argument, along with the name of the Xauthority file created.
Read the X11 documentation for your system for the details on how to
use xauth or comparable software to create the authority files needed.
An intro to xauth is available as
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/Xauthority .

Also note that you can configure Tk to not depend on xauth by modifying
the tk3.3/Makefile.in to comment out the following:

# To turn off the security checks that disallow incoming sends when
# the X server appears to be insecure, reverse the comments on the
# following lines:
#SECURITY_FLAGS =
SECURITY_FLAGS = -DTK_NO_SECURITY

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.B.1- change the default class bindings?

A10.B.1. All default class bindings for Tk widgets are initialized in
$tk_library/tk.tcl.  Use this file as a guide to implement new
bindings.  For instance, the following code duplicates Button 1's
drag-select facility in Button 3 for all listboxes:

bind Listbox <3> {%W select from [%W nearest %y]}
bind Listbox <B3-Motion> {%W select to [%W nearest %y]}

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.B.2- delete a binding?

A10.B.2. Give an empty-string command to the "bind" invocation.  For
example, to disable the Delete key in all entry fields:

	bind Entry <Delete> {}

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.B.3- change a binding while it is being executed?

A10.B.3. As of June, 1992, this was not a safe thing to do in Tk.  It was
put on the bug list by John Ousterhout to be fixed in a future version.

The solution for now is not to change the bindings, but to change
something in the code they execute.  For example, keep a state variable
that indicates which binding you'd like, but always have the binding
call a given procedure.  Then that procedure checks the variable and
executes one piece of code or another.  Or, you could just make the
binding's command "eval $cmd" and then change the variable "cmd"
depending on your application's state.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.B.4- bind the arrow key on my Sun keyboard?

A10.B.4. You have to call it <Left> rather than <R10>.  Under X11, keys are
referred to by their keysym.  One can use either xmodmap -pk or the xev
program to determine what the keysym a particular key on a keyboard is
currently generating.

If the keysym that is being used is not known by Tk, you may have to edit
its ks_names.h file.  There is a note in this file that indicates that
one should not edit it - but this is where the keysym must be for it to
be recognized.

Thanks to Wayne Christopher <[email-masked]> for this
note.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.B.5- get root's mouse bindings to work in my Tk application?

A10.B.5. Some window managers, such as mwm, define mouse button bindings
which cause Tk some problems.  Try saving off the window manager's startup
file (something like /.mwmrc for instance) and then copy in a startup
file from a login id that works.  Thanks to [email-masked] (Brad Morrison)
for this invaluable tip!

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.C.1- get an application to also use libXt?

A10.C.1. Tk2.1 and Xt have different X connections, and XtAppNextEvent will
block is there is nothing coming from the X connection.  One way
of fixing this is get the connection number of Tk using

   ConnectionNumber(Tk_Display(tk_window));

and using XtAddInput to register this with the Xt event handler.  The
callback procedure for XtAddInput wrapper procedure that runs
Tk_OneEvent(1).  There might be problems with Tk file sources which
aren't registered with Xt.

Thanks to [email-masked] (Joe Wang) for this information.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.C.2- change the X11 cursor?

A10.C.2. Here is a tip from [email-masked] (M. G. Christenson).

Look at /usr/include/X11/cursorfont.h for a list of available cursors.
You can use the names in there by removing the 'XC_'.  

Here's a little proc I use to make my entire application go 'busy'
while it's doing something. Just call it with the commands you want to
execute, and the watch cursor will be displayed for the time it takes
the commands to complete.  Note that any new windows will have their
normal cursor.

proc busy {cmds} {
    global errorInfo

    set busy {.app .root}
    set list [winfo children .]
    while {$list != ""} {
	set next {}
	foreach w $list {
	    set class [winfo class $w]
	    set cursor [lindex [$w config -cursor] 4]
	    if {[winfo toplevel $w] == $w || $cursor != ""} {
		lappend busy [list $w $cursor]
	    }
	    set next [concat $next [winfo children $w]]
	}
	set list $next
    }

    foreach w $busy {
	catch {[lindex $w 0] config -cursor watch}
    }

    update idletasks

    set error [catch {uplevel eval [list $cmds]} result]
    set ei $errorInfo

    foreach w $busy {
	catch {[lindex $w 0] config -cursor [lindex $w 1]}
    }

    if $error {
	error $result $ei
    } else {
	return $result
    }
}

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.C.3- raise or lower a window?

A10.C.3. This is on the (semi-infinite) list of things to be done in the future.
If you have the time, please go ahead and add it and submit the code and all
will be grateful.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.C.4- re-map a withdrawn window id?

A10.C.4. Use wm deiconify <windowid>.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.C.5- use Tk in a subwindow of a non-Tk X11 application?

A10.C.5. From [email-masked] (Wayne A. Christopher):

[C]reate the Tk toplevel window but don't map it (wm withdraw).  Then
re-parent the window to be a subwindow of your other one and then map
it.  I have done this when the Tk application is a separate process,
but if it's the same process I think you will get into trouble with the
event loop, since each toolkit wants control.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.C.6- bind <Enter> and <Leave> to a frame containing 
	other widgets?

A10.C.6. From John Ousterhout, [email-masked]):

Each <Enter> or <Leave> event has a "detail" field, which you can access
>from bindings with "%d".  If the detail is "NotifyInferior" it means the
pointer has moved into or out of a child window (so it's really still in
the area of the window receiving the event).  You should be able to check
the detail in your scripts and ignore events with a detail of NotifyInferior.
Check the Xlib documentation for Enter/Leave events for complete
information on the detail field.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.C.7- mix interactions between Xt and Tk/Tcl?

A10.C.7.

[From YIP Chi Lap [Beta] <[email-masked]> ]
	I have come up with a CPU hogging polling loop that
works (till now) for my application which not much
direct interaction between a Tk window and an Xt window is made.
(e.g., it won't draw something on a Tk window by a Xt-dispatched routine)

  XEvent xevent;
  for (;;)
  {
    if (XtAppPending(appcontext))
    {
      XtAppNextEvent(appcontext,&xevent);
      XtDispatchEvent(&xevent);
    }
    Tk_DoOneEvent(TK_DONT_WAIT);
  }

[ From David C Mudie <[email-masked]> ]
	We use the main event loop below.  The basic idea
is to watch for events arriving from either the Xt server
connection or the Tk server connection and then call
the library dispatchers.

	The code fragment below will need to be cleaned up for
your usage; there are some missing include statements
and global declarations buried elsewhere in the file.

/* Allow Tcl/Tk and Xt to work at the same time. */
void tkGo(void)
{
  extern Widget topLevel;
  int width = ulimit(4, -1);
  fd_set readfds;
  struct timeval timeout;
  int nfds;
  int tkfd = ConnectionNumber(Tk_Display(mainWindow));
  int xtfd = ConnectionNumber(XtDisplay(topLevel));

  Tcl_VarEval(interp, "update", NULL);
  while (1) {

    /* Select on X server connections to wait for event. */
    /* Timeout every half second to allow processing of non-X events */

    FD_ZERO(&readfds);
    FD_SET(tkfd, &readfds);
    FD_SET(xtfd, &readfds);
    timeout.tv_sec = 0;
    timeout.tv_usec = 500000;

    nfds = select(width, &readfds, NULL, NULL, &timeout);
    if (nfds < 0 && errno != EINTR) {
      perror("select");
    } else if (nfds == 0) {
      /* printf("timeout\n"); */
    }

    while (XtPending()) {
      XtProcessEvent(XtIMAll);
    }

    while (Tk_DoOneEvent(1)) {
      /* do nothing */
    }
  
    if (mainWindow == NULL) {
//      Tcl_DeleteInterp(interp);
//      Tcl_DStringFree(&command);
      Tcl_Eval(interp, "exit");
      return;
    }
  }
}

[ From Davide Frisoni <[email-masked]> ]
	One may use Xt properties to communicate between different
applications.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.D.1- resize a listbox?

A10.D.1. Use wm min/maxsize - in a uniform manner.  Here is a resizable listbox:

        #!/usr/local/bin/wish -f
        wm minsize . 20 20
        wm maxsize . 1152 900
        pack append . [listbox .l -borderwidth 2 -relief raised] {expand fill}

Doing the same with the text widget brings its resizing under control too.

Thanks to "John C Ellson" <[email-masked]).

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.D.2- select two items that are not adjacent in the listbox at 
		one time?

A10.D.2.  See Marc R. Ewing's Listbox.patch for a way to modify Tk to allow
selection of non-contiguous entries.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.D.3- select items in more than one Tk listbox at a time?

A10.D.3. The default for Tk's listbox widget exports its selection as the
X selection.  There can only be one of these at a time.

To turn off this behavior in Tk, use the -exportselection false when
you create the listbox.  Or, use the

option add *Listbox.exportselection false

command in the beginning of your script.

Thanks to David Herron <[email-masked]> for this tip.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.D.4- avoid fractional white space at the end of a resizable
		listbox?

A10.D.4. First, let's state the problem more clearly. I want to make a
resizable listbox and I don't want to constrain it by setting a
minimum size. So I pack it with fill expand, I use it to set the grid
(so that resizing the window always gives me whole lines) and I set an
initial geometry of 1x1 to override the default. However what I get
is... (run the code below for a demo and try to resize)

listbox .l -geom 1x1 -setgrid 1 -yscrollcommand ".s set" -relief sunken -bd 2
scrollbar .s -command ".l yview"
pack .s -side right -fill y
pack .l -side top -fill both -expand 1
.l insert end one two three four five six seven eight nine ten "THE END"

...a situation where the partially filled listbox has a blank
half-line at the bottom even if there are more items in the list. This
is very confusing because it fools the user into thinking that there
is nothing else beyond what's visible. Why does it happen?

Now for the answer.
	Look at the window as it is created, before the resizing. See that
poor, tiny little scrollbar squeezed in that microscopic window? It,
too, requests a minimum size, and it so happens that the starting
geometry for the listbox (i.e. the situation referred to as "1x1")
receives some free fractional space at the bottom. And you never get
rid of it, since the resizing is constrained to be in whole
characters.

The thing to do is to define the initial layout in such a way that the
widget that has -setgrid actually displays an integer number of lines
and columns. In the above example, setting -geom 1x2 does the trick.

Thanks to Frank Stajano <[email-masked]> for this tip.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.E.1- get output from a Tk canvas?

A10.E.1. The latest Tk has a save suboption on canvas which allows one
to create a file describing the canvas.  The default output is Encapsulated
Postscript, but there is an xpm3 suboption as well.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.E.2- fill a canvas which is bounded by lines as opposed to a
		shape like a polygon, oval, etc.?

A10.E.2. No, you have to at least use a polygon if you want to fill an area
bounded by some lines.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.E.3- raise/lower canvas window objects or draw graphics onto a 
		window object inside a canvas?

A10.E.3. You can't yet. 

"Jesper Blommaskog" <[email-masked]>.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.E.4- detect when the canvas has been resized?

A10.E.4. From Nathaniel Pryce <[email-masked]>:

> I have a window with a canvas containing some stuff that logically
> fills the canvas (say, a chess board or a map of the world). I want
> this toplevel window to be resizable and of course, when the win is
> resized, I want the stuff inside the canvas to be scaled
> accordingly. Now, I can manage the scaling of the stuff, but what
> I'm having trouble with is DETECTING that I should do it. How can I
> be notified that the window has been resized?

Nat's answer is:

You need to bind a command to the Configure event, like this:

	proc config {w h} {
	   puts stdout ".canvas - width = $w, height = $h"
	}

	bind .canvas <Configure> "config %w %h"

.canvas - width = 224, height = 251
.canvas - width = 224, height = 151
.canvas - width = 224, height = 243
# and so forth

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.F.1- get the name of my own interpreter?

A10.F.1. [email-masked] (George A. Howlett) points us to the winfo manual
page - winfo name . gets the name of the current application.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.F.2- get -relief to work on my text widgets?

A10.F.2. From Owen Rees <[email-masked]>, we find out that we must:

"[m]ake the border width non-zero as in"

   text .t -width 20 -height 20 -relief sunken -borderwidth 4

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.F.3- create a scrollable window of buttons?

A10.F.3. There are at least two ways to do this.  First, there is a hypertext
widget that one can get from the Tcl User Contributed Code Archive -
(see "tcl-faq/part4") and (see "tcl-faq/part5") for details -
 which provides such a facility.

And here is some sample code from 
"Michael Moore" <[email-masked]> which shows a way to 
do this using just Tk.

#! /bin/wish -f
#
# This demonstrates how to create a scrollable canvas with multiple
# buttons.
#
# Author : Michael Moore
# Date   : November 17, 1992
#

#
# This procedure obtains all the items with the tag "active"
# and prints out their ids.

proc multi_action {} {
    set list [.frame.canvas find withtag "active"]
    puts stdout "Active Item Ids : "
    foreach item $list {
	puts stdout $item
    }
}

# 
# This simulates the toggling of a command button...
# Note that it only works on a color display as is right now
# but the principle is the same for b&w screens.
# 
proc multi_activate {num id} {
    
    set tags [.frame.canvas gettags $id]
    if {[lsearch $tags "active"] != -1} {
	.frame.canvas dtag $id "active"
	.frame.canvas.button$num configure \
	    -background "#060" \
	    -activebackground "#080" 
    } else {
	.frame.canvas addtag "active" withtag $id
	.frame.canvas.button$num configure \
	    -background "#600" \
	    -activebackground "#800"
    }
} 

proc setup {} {
     frame .frame

     scrollbar .frame.scroll \
         -command ".frame.canvas yview" \
         -relief raised

     canvas .frame.canvas \
         -yscroll ".frame.scroll set" \
         -scrollregion {0 0 0 650} \
         -relief raised \
	 -confine false \
	 -scrollincrement 25

     pack append .frame \
         .frame.scroll    {left frame center filly} \
         .frame.canvas    {left frame center fillx filly}

     pack append .\
         .frame   {left frame center fillx filly}

     button .frame.canvas.action  \
         -relief raised \
         -text "Action" \
	 -command "multi_action"
     .frame.canvas create window 1 25 \
	 -anchor w \
         -window .frame.canvas.action
     for {set i 2} {$i < 26} {incr i} {
	 button .frame.canvas.button$i  \
	    -relief raised \
	    -background "#060" \
	    -foreground wheat \
	    -activebackground "#080" \
	    -activeforeground wheat \
	    -text "Button $i" 
	 set id [.frame.canvas create window 1 [expr $i*25] \
	    -anchor w \
	    -window .frame.canvas.button$i]
	 .frame.canvas.button$i configure \
	    -command "multi_activate $i $id"
    }
}

setup

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.F.4- pack a text widget so that it can be resized interactively?

A10.F.4. From Spencer W. Thomas <[email-masked]> we find that we need to:

wm minsize . 0 0
text .text
pack append . .text {fill expand}

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.F.5- create a widget with an upper case name?

A10.F.5. During a recent revision of Tk, things were changed so that names
beginning with a capital letter are reserved for class names.  Specific
instances of widgets must begin with a lower case letter.  This enables
X11 resource definitions to distinguish between a class and instance.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.F.6- create equal sized buttons?

A10.F.6. Recently, Micael Salmon <[email-masked]> posted:

In article <[email-masked]>, I write:
|> I am currently working on yet another tn3270 emulator and I have run
|> into a problem with creating equal sized buttons. I have created an
|> array of buttons for PF and cursor keys and I would now like to make
|> them all the same size. Arranging them into columns was not
|> a problem but when I add bitmaps the buttons lose their horizontal
|> alignment. What I tried was to read the height and width of the buttons
|> using winfo, determine the largest and then use pads to force them to
|> be the same size, this doesn't seem to work. The technique of using
|> pre-set height and width doesn't seem applicable when using a mixture
|> of bitmaps and text as the size in pixels of a text button is font
|> dependent. All suggestions welcome.

Jim Wight <[email-masked]> suggested using reqheight and reqwidth
and then specifying padx and pady in the pack command for each button.
Jim says:
I think it only fair to point out that it was Tuomas J Lukka
<[email-masked]> who suggested the use of reqwidth and reqheight when I asked how to get over the deficiencies in my first attempt at a solution
that I posted to this group.

Since you're all agog I might as well post the final solution (more or less)
that I mailed to Michael.

frame .frame1
frame .frame2
button .frame1.a -text "pretty long button text"
button .frame1.b -text "short one"
button .frame2.c -bitmap "@/usr/include/X11/bitmaps/xlogo32"
button .frame2.d -text "tiny"

set long [winfo reqwidth .frame1.a]
set short [winfo reqwidth .frame1.b]
set medium [winfo reqwidth .frame2.c]
set tiny [winfo reqwidth .frame2.d]
set pady [expr [winfo reqheight .frame2.c]-[winfo reqheight .frame2.d]]

pack append .frame1 .frame1.a "filly pady $pady"
pack append .frame1 .frame1.b "fillx padx [expr $long-$short] filly pady $pady"pack append .frame2 .frame2.c "fillx padx [expr $long-$medium] filly"
pack append .frame2 .frame2.d "fillx padx [expr $long-$tiny] filly pady $pady"
pack append . .frame1 {left} .frame2 {left}

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.F.7- vertically stack radio buttons aligning regardless of font?

A10.F.7.  Till Brychcy <[email-masked]> provides
the following example:

	radiobutton .times -text Times -anchor w
	radiobutton .helvetica -text Helvetica -anchor w
	radiobutton .courier -text Courier -anchor w
	pack .times .helvetica .courier -side top -fill x

Note that you are using anchor west in the widgets themselves, and not in
the packer.  This lets the packer produce full width buttons.

From: -X-  How, in Tk, can I XXX:
Subject: -Q10.F.8- initialize an entry widget with some text?

A10.F.8.  [email-masked] (Peter Kesch) provides us with
one example:

set default "foobar"
entry .foo -width 25 -state disabled -textvariable default

End of comp.lang.tcl Frequently Asked Questions (2/5)

---

From: [email-masked] (Larry W. Virden)
Date: Tue, 22 Feb 1994 21:37:35 GMT

Archive-name: tcl-faq/part3
Version: 4.6
Last-modified: February 22, 1994

	For more information concerning Tcl (see "tcl-faq/part1"),
(see "tcl-faq/part2"), (see "tcl-faq/part4") or (see "tcl-faq/part5").

Index of questions:

XI. Where can I get these packages?
	A. Retrieving Tcl and Tk
	B. Accessing the Tcl/Tk User Contributions Archive
	C. Expect available via e-mail.
	D. EMACS modes for Tcl
	E. The tk toolbox project
	F. [tv]grind definitions for tcl/tk/expect
	G. BNF style notation for Tcl
	H. Tk Quick Reference Card
	I. Hilit 19 Tcl mode
	J. HTML versions of Tcl man pages and FAQ.

End of FAQ Index

From: FAQ Tcl/Tk Package Catalog
Subject: -XI- Where can I get these packages?

The "home site" for Tcl on the Internet is ftp.cs.berkeley.edu.

Tcl and Extended Tcl were posted to comp.sources.misc, appearing
In volume 25 and then Tcl appeared again in volume 26 and can be found at
most comp.sources.misc archive sites in the tcl and tclx directories.
These are quite old versions actually, but are still usable.

a. Tcl	- available on ftp.cs.berkeley.edu and harbor.ecn.purdue.edu
b. Tk	- available on ftp.cs.berkeley.edu and harbor.ecn.purdue.edu
c. Extended Tcl - available on ftp.cs.berkeley.edu and harbor.ecn.purdue.edu
	Note that currently the beta version of Extended Tcl is only
	available on harbor.ecn.purdue.edu.

The IP address for harbor.ecn.purdue.edu is 128.46.128.76 .

Other sites which either mirror the Tcl/Tk submissions or have special
versions are:

ftp://ftp.uu.net/languages/tcl/	<- ftp.cs only
ftp://gatekeeper.dec.com/.0/BSD/UCB/sprite/ <- ftp.cs only
ftp://sunsite.unc.edu/pub/languages/tcl/
ftp://ftp.ibp.fr/pub/tcl/		<- distrib, contrib, expect
ftp://syd.dit.csiro.au/pub/tk/	<- contrib and ftp.cs

ftp://iskut.ucs.ubc.ca/pub/X11/tcl/
ftp://ftp.funet.fi/pub/languages/tcl/
ftp://coma.cs.tu-berlin.de/pub/tcl/
ftp://nic.funet.fi/pub/languages/tcl/
ftp://oskgate0.mei.co.jp/free/X/toolkits/tcl/ <- ftp.cs only

ftp://sunsite.unc.edu/pub/Linux/	<- contains port of extended Tcl and
					extended Tk to this OS.

From: -XI- Where can I get these packages?
Subject: -A- Retrieving Tcl and Tk

>From: [email-masked] (John Ousterhout)
>Newsgroups: comp.lang.tcl
>Subject: Obtaining Tcl/Tk sources

For people new to the Tcl/Tk community, here is information on how
to obtain Tcl and Tk sources.  The information below describes what
I distribute; other information is available from other machines
also, such as harbor.ecn.purdue.edu.

The sources and documentation for the Tcl command
language library, for the Tk toolkit, and for a few Tcl-based
applications, are in the public FTP area on ftp.cs.berkeley.edu.
All of these files are in the "tcl" subdirectory of the FTP area.
Here is a catalog of what's available.  Most of the files are
compressed tar files ("xxx.tar.Z").  There is some overlap
between the contents of the various packages.

tk3.6.tar.Z -         	This is the latest and most stable release of the
                        Tk toolkit, released in November 1993 (patch level
                        206).  It includes the sources for the Tk library
                        and the "wish" windowing shell, plus reference
                        manual entries and a number of demonstration scripts.

tk3.6p1.patch.Z -	A patch for the tk3.6 distribution.

tcl7.3.tar.Z -          This is the latest and most stable release of the
                        Tcl library, released in November 1993 (patch level
                        106).  It includes the sources for the Tcl library
                        and the "tclsh" application, plus reference manual
                        entries.

tclX7.3a.tar.Z -        Extended Tcl (or NeoSoft Tcl), created by Mark
                        Diekhans and Karl Lehenbauer, which adds a number
                        of useful facilities to the base Tcl release.
                        Among the things in Extended Tcl are a Tcl shell,
                        many new commands for things like UNIX kernel
                        call access, keyed lists, and time conversion, and an
                        on-line help facility.  This package works with Tcl
                        versions 7.3 or later and Tk versions 3.6 or later.

mx.tar.Z -		Sources and documentation for a mouse-based text
			editor (mx) and terminal emulator (tx) based on
			Tcl.  This is a very old release:  it uses an old
			version of Tcl (which is included) and doesn't
			even use Tk;  it uses an ancient toolkit called
			"Sx".  These tools will eventually be replaced
			with new tools based on Tk and the newest Tcl.

mx-2.5.tar.Z - 		Newer version of mx (see above) that uses the
			standard X selection mechanism rather than the
			home-grown mechanism used by previous versions.
			Version 2.5 is not backwards compatible with
			previous versions (you can't cut and paste between
			the two). Still uses sx and an old version of
			Tcl (both of which are included).

book.p1.ps.Z		Compressed Postscript for a draft of the first part
			of an upcoming book on Tcl and Tk to be published in
			1993 by Addison-Wesley.  This part of the book
			describes the Tcl language and how to write scripts
			in it.  About 130 pages in length.

book.p2.ps.Z		Compressed Postscript for a draft of the second part
			of an upcoming book on Tcl and Tk to be published in
			1993 by Addison-Wesley.  This part of the book
			describes how to write Tcl scripts for Tk.  About
			125 pages in length.

book.p3.ps.Z            Compressed Postscript for a draft of the third part
                        of an upcoming book on Tcl and Tk to be published in
                        1993 by Addison-Wesley.  This part of the book
                        describes how to write Tcl applications in C, using
                        the Tcl library procedure.  64 pages in length.

book.p4.ps.Z            Compressed Postscript for a draft of the last part
                        of an upcoming book on Tcl and Tk to be published in
                        1993 by Addison-Wesley.  This part of the book
                        describes how to write new widgets and geometry
                        managers in C, using the Tk library procedure.  About
                        70 pages in length.

tclUsenix90.ps -	Postscript for a paper on Tcl that appeared in the
			Winter 1990 USENIX Conference.  This paper is also
			included in the Tcl and Tk distributions.

tkUsenix91.ps -		Postscript for a paper on Tk that appeared in the
			Winter 1991 USENIX Conference.  This paper is also
			included in the Tk distribution.

tkF10.ps -		Postscript for Figure 10 of the Tk paper.

tut.tar.Z -		A collection of materials from a full-day tutorial
			on Tcl and Tk.  Includes viewgraphs from five one-hour
			talks plus a sample widget.

tc-tcl93.ps.gz -        PostScript formatted copy of Tcl Compiler paper
                        presented at the Tcl'93 Workshop.

tc-tcl93.tex.gz -       LaTeX source for the Tcl Compiler paper presented
                        at the Tcl'93 Workshop.

In addition, there may be older releases of some or all of the above
files;  look for files with earlier release numbers.

To retrieve any or all of these packages, use anonymous FTP to
ftp.cs.berkeley.edu (Internet address 128.32.149.78).  Use user
"anonymous"; when asked for a password, type your login name.  Then
retrieve the relevant file(s) with the commands like the following:
		type image (try "type binary" if this command is rejected)
		cd tcl
		get tk3.6.tar.Z

Be sure to retrieve files in image mode (type "type image" to FTP)
in order to make sure that you don't lose bits.

Any file with a .Z extension is a compressed file, which means you must
use the "uncompress" program to get back a normal file.  For example, for
the file tk3.6.tar.Z, you should type

	uncompress tk3.6.tar.Z

once you've retrieved the file.  This will produce a file named "tk3.6.tar".
Then you will need to use tar to extract the members.  Typically one
would use a command such as:

	tar xv tk3.6.tar

to extract the pieces.

Each of the releases has a README file in the top-level directory that
describes how to compile the release, where to find documentation, etc.

Questions or problems about any of these distributions should be directed
to "John Ousterhout" <[email-masked]>.

If you don't have access to ftp.cs.berkeley.edu, you can also retrieve some or
all of the above files from other FTP repositories.  Here is a
sampler of machines that store some or all of the Tcl/Tk information,
plus the directories in which to check:

ftp://ftp.ibp.fr/pub/tcl/
ftp://ftp.uu.net/languages/tcl/
ftp://ftp.x.org/contrib/tcl*
ftp://ftp.x.org/contrib/tk*
ftp://gatekeeper.dec.com/pub/UCB/tcl/sprite/
ftp://harbor.ecn.purdue.edu/pub/tcl/sprite-mirror/
ftp://syd.dit.csiro.au/pub/tk/

From: -XI- Where can I get these packages?
Subject: -B- Accessing the Tcl/Tk User Contributions Archive

Contributions to the Tcl/Tk Contrib Archive are most welcome --
please upload them to:

	ftp://harbor.ecn.purdue.edu/incoming	[128.46.128.76]

send the archive maintainer <[email-masked]> a note stating
the names of the files you uploaded and a brief description for the
index.

Harbor is the central file server for the software staff of the
Engineering Computer Network, so please try to refrain from FTPing
stuff between 9am and 5pm EST (GMT -0500).  No mail-archive service is
planned as yet -- users without FTP capability should use one of the
following mail-based FTP services (send mail to the appropriate address
with "help" in the body):

BITNET users:   BITFTP <[email-masked]>
Others:         "DEC ftpmail" <[email-masked]>
Europe:         [email-masked]
		[email-masked]

WARNING!  The archive maintainer will NOT be automatically archiving anything
posted to comp.lang.tcl or previously to the mailing list.  So if you want
your nifty porting instructions for getting Tcl up on your Seiko wrist watch
or your pen computer to be saved for others benefit, be sure to ftp them into
the archive.

All contributions should be placed in harbor's ~ftp/incoming
subdirectory.  Please send [email-masked] and a short
mail message stating the filename(s) of your contribution and a brief
description (for the Index).  If you've posted some code to
comp.lang.tcl or the Tcl mailing list, and you want it to be archived
at this site, please deposit it in ~ftp/incoming or mail it in a
suitable form (preferably uuencoded compressed tar file, but a shar
file's OK) to [email-masked].

Note: I have noticed that some authors prefer to use plain names rather than
version level type names.  This means that you should a) make note of when
you get a package, and b) check the archive occasionally to see if a newer
version of the package has appeared.

From: -XI- Where can I get these packages?
Subject: -C- Expect available via e-mail.

Besides being available via ftp://ftp.cme.nist.gov/pub/expect/ ,
expect can also be received by email by sending the message
"send pub/expect/expect.shar.Z" to [email-masked] .

From: -XI- Where can I get these packages?
Subject: -D- EMACS modes for Tcl

"Sean Levy" <[email-masked]> has hacked a version of Emacs's C mode into
a tcl-mode.el.  He mentions that you must use semi-colons at the end
of each statement to get indentation to work right, but he found that
easier than doing without.

The code is on [128.2.214.236]
ftp://ftp.cs.cmu.edu/afs/cs/user/snl/pub/tcl-mode.el.z
(don't forget binary mode) as well as
ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tcl-mode.el.Z .

"Julian Anderson" <[email-masked]> was also working on an Emacs Tcl
minor mode to fundamental.

"Chris Lindblad" <[email-masked]> has contributed tcl.el, a Tcl mode for
GNU emacs.  It's address is
ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tcl.el .

[email-masked] (Tom Tromey) has contributed tcl-help.el, an
Extended Tcl help mode for GNU emacs.  It's address is
ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tcl-help.el .

[email-masked] (Gregor Schmid) has written a major mode
for tcl scripts.  Contact him for details.

From: -XI- Where can I get these packages?
Subject: -E- The tk toolbox project

The Tk Toolbox & Toolchest project.

The Toolchest consists of convenience routines for Tcl and Tk - a kind of a
libc for Tcl.  The toolbox is a collection of commonly used code and
some specialized code such as file selectors, dialogs that take care of
keyboard traversal through items automatically, etc.

The project has currently not yet reached a usable state, but each formal
release will be announced in comp.lang.tcl as well as other newsgroups.

There is a mailing list for discussion of the tk toolbox, kindly provided by
Ari Lemmke.  To subscribe, write a message with the line:
X-Mn-Admin: join tktools

in the body or header of the message.  Send this message to
[email-masked] .

To write to the list, send messages to to
[email-masked]
and add the line
X-Mn-Key: TKTOOLS
to the header or the body of the message. Especially remember this when
replying to messages from the list.

For more info about the list server (mailnet), write
an empty message to [email-masked] .

The intermediate snapshots are announced on this mailing list.

If you have problems or are willing to donate code or whatever,
you can contact the code maintainer (one of the three main implementors)
at [email-masked] or [email-masked] .

From: -XI- Where can I get these packages?
Subject: -F- [tv]grind definitions for tcl/tk/expect

"Martin Hamilton" <[email-masked]> has come up with a preliminary
grindcap definition for Tcl, Tk and expect.  These are available as:
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/vgrind.defs
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/vgrind.defs.README

[email-masked] (Andy Rabagliati) has come up with a preliminary grindcap
definition for Tcl.  Contact him for more details.

From: -XI- Where can I get these packages?
Subject: -G- BNF style notation for Tcl

[email-masked] (TERRENCE MONROE BRANNON) in July of 1993, posted
some yacc code for a tcl-to-c parser.  This, along with Adam Sah's Tcl
compiler, are a couple of sources with which folk could start.

From: -XI- Where can I get these packages?
Subject: -H- Tk Quick Reference Card

[email-masked] (Paul E. Raines) has uploaded a quick
reference card for Tk 3.3.  You may find it at:

ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tkrefcard.tar.Z
ftp://bohr.physics.upenn.edu/pub/tk/tkrefcard.tar.Z

The tar contains the TeX and PostScript versions of a 3 column listing
of all widget methods and options and summaries of the wm, winfo, pack,
place and bind commands.

From: -XI- Where can I get these packages?
Subject: -I- Hilit 19 Tcl mode

AI. Aaron Roydhouse <[email-masked]> wrote, and
[email-masked] (Julian Anderson) posted, the following:

(hilit-set-mode-patterns
 'tcl-mode
 '(("\\s #.*$" nil comment)
   ("^#.*$" nil comment)
   ("\"[^\\\"]*\\(\\\\\\(.\\|\n\\)[^\\\"]*\\)*\"" nil string)
   ("\\$[-_a-zA-Z]+" nil varref)
   ("^source.*$" nil include)
   ("\\b\\(global\\|upvar\\)\\b" nil decl)
   ("\\b\\(error\\|debug\\)\\b" nil decl)
   ("^\\s *proc\\s +\\(\\w\\|[_']\\)+" nil defun)
   ("\\b\\(set\\|lset\\|list\\|if\\|case\\|while\\|switch\\|then\\|else\\|
for\\|foreach\\|return\\|expr\\|catch\\)\\b" nil keyword)))

From: -XI- Where can I get these packages?
Subject: -J- HTML versions of Tcl man pages and FAQ.

Mike Hopkirk <[email-masked]> has provided a tar archive of HyperText Markup 
Language (HTML) versions of the comp.lang.tcl FAQ, the Tcl/Tk man pages,
index pages for the man pages, and a top level access page to tie together
all the above.  It is

ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tclhtml.tar.z

Note that once these have been untarred, one can use a WorldWideWeb (WWW)
browser such as Mosaic, Lynx, etc. to begin at the Tcl.html page and read
the entire distribution.  The original source of this package can be
examined at:
http://www.sco.com/IXI/of_interest/tcl/Tcl.html

Having the package in this way provides a means for those behind a firewall
to examine the docs frozen at this point in time.  There are no commitments
to continue providing updates to this package.

Note that the Tcl and Tk man pages came courtesy of Tom Phelps
<[email-masked]>, who has made the man pages available
at ftp://ftp.cs.berkeley.edu/pub/mhgs/tcltk/tcltk-man.html.tar.Z
where, Tom tells us, they will be deleted later after TkMan has been updated
to generate these pages automatically.

End of comp.lang.tcl Frequently Asked Questions (3/5)

---

From: [email-masked] (Larry W. Virden)
Date: Tue, 22 Feb 1994 21:37:44 GMT

Archive-name: tcl-faq/part4
Version: 4.6
Last-modified: February 22, 1994

	For more information concerning Tcl (see "tcl-faq/part1"),
(see "tcl-faq/part2"), (see "tcl-faq/part3") or (see "tcl-faq/part5").

Index of questions:

XII. What are some examples of applications using Tcl and/or Tk?
	o ADDD (A Depository of Development Documents)
	o Alpha
	o Amiga OS Tcl 3.x port
	o Amiga NetBSD Tcl 3.x port
	o arswm
	o arTCLs
	o aXe
	o BETH
	o biff clock
	o bigwish
	o bitmap browser
	o BOS
	o Bowling
	o browse.tcl
	o budge
	o bulletin board
	o BYO
	o calc.tk
	o Calendar / Rolodex
	o canvas_ui - a Tk sketcher
	o CGI <-> Tcl and/or Tk
	o CGI Forms based mailing
	o classifyMail
	o Clock (Analog)
	o Compare Manifest
	o coloredit
	o Tk cron interface
	o CUTE
	o DejaGnu
	o DGC Tools
	o directory browser
	o Directory User Agent interface
	o dodirectory
	o Drag and Drop file browser
	o edit-html
	o Emil
	o Expect
	o Expect (Tcl 6.5 compatible)
	o expecTerm
	o exmh
	o folderbiff
	o fn and ForumNet
	o Fresco CORBA interpreter
	o FSP client
	o Gash - a Galaxy interpreter
	o getcons - get console
	o GOOD
	o Graphical Interface to CVS
	o Hierarchical Help System (HLP)
	o Host Monitoring (hm)
	o hp-tcl-cdplay
	o HTCLtoTCL
	o ical - a calendar manager
	o IDL/Pvwave/Matlab <-> Tk
	o Iplace - interactively place widgets on a frame
	o js tools
	o Jungle
	o Klondike
	o KosherDill
	o Lassen
	o Libsearch
	o Lightwave
	o lily
	o Linux port of Tcl/Tk
	o lookup
	o MacOS Tcl, 6.1
	o MacTcl, 6.1v2
	o MacTcl, 6.7b
	o MacTcl, 7.3
	o Make-A-Wish
	o man.tk
	o mercurius
	o Modules
	o Moog
	o MS-DOS Tcl, 6.0a
	o MS-DOS Tcl, 6.2
	o MS-DOS Tcl, 6.7
	o MS-DOS Tk/Tcl
	o MS-DOS Windows Tcl
	o MS-DOS Windows DLL for Tcl
	o Mx
	o Mxedit
	o Netrek Metaserver Monitor
	o Objectify
	o Oracle wrap for Tk/Tcl
	o Palm
	o Parseargs
	o pgbrowse
	o PhoneStation
	o Picasso
	o pixmap
	o Point
	o PostgresBrowswer
	o ProTcl
	o Ptolemy
	o Remote control of Tk apps
	o reversi
	o Roger's Interface Language (RIL)
	o rolodex
	o scotty
	o ServiceMail(TM) Toolkit
	o ServiceMail extras
	o SGI GL interpreter
	o Shiva
	o SimCity demo
	o smaillog
	o STk
	o Subway Navigator
	o Symbolic derivations
	o Tcl
	o Tcl / Tk install softlink
	o Tcl shells
	o tcl++
	o tclbot
	o Tcl Compiler
	o Brannon's Tcl to C compiler
	o tcltags (Hoegeman)
	o tcltags (LoVerso)
	o tcltags (Tromey)
	o tcltools
	o tcltt, v1
	o tclXt, v2
	o tdcad
	o TeenyMUD
	o tess
	o tickle
	o Tk
	o Tk and C++
	o Tk extensions via imake
	o Tk terminal widget
	o tkview
	o Tkwm
	o tk WWW interface
	o Tk xworld
	o TkBible
	o tkchrom
	o tkdvi
	o tkelm
	o tkfire
	o tkfonts
	o tkgnats
	o tkgoph - wade
	o tkgopher
	o tkined
	o tkinfo
	o tkinspect
	o TkIspell
	o tkkids
	o TkMail
	o tkmaillist
	o TkMan
	o tkmess
	o TkMH
	o TkMHn
	o tkmines
	o tkmotd
	o tknews
	o Tkolumns
	o tkpbiff
	o tkpostage
	o TkPostit
	o tkSketch
	o TkSol
	o tk_stattab
	o tkwool
	o Towers of Hanoi
	o trajectory
	o TUA
	o tupact
	o twoClocks
	o Tx
	o unix.tk
	o Usenet gateways for Compuserve and GEnie
	o User-Maint
	o user-setup
	o VMS port of Tcl/Tk
	o VxWorks port of Tcl 7.0
	o Wafe
	o Wafe graphical cross-reference browser
	o Wafeperl
	o widget server
	o wish compiler
	o wtour
	o XBrowse
	o xcal
	o Xdig
	o xelem
	o xf
	o xf, Japanization version
	o xka
	o xmpeg
	o Xnetlib
	o xpel
	o xpole
	o xreconfirm
	o xscript
	o XTeX
	o YART
	o Zap Interpreters
	o Zircon

End of FAQ Index

From: FAQ Tcl/Tk Package Catalog
Subject: -XII- What are some examples of applications using Tcl and Tk?

What: Simple name of package
Where: ftp site or 'From the contact'
Description: One to two line description of package, including Tk/Tcl version
	requirements.
Contact: Email address for questions, comments, etc.

What: ADDD (A Depository of Development Documents)
Where: ftp://ftp.gmd.de/gmd/addd/
Description: An object oriented Software Engineering Environment extended using
	Tcl.
Contact: [email-masked], [email-masked]

What: Alpha
Where: ftp://cs.rice.edu/public/Alpha/Alpha_5.31.sea.hqx
Description: Alpha version 5.x is a Macintosh System 7.0 shareware ($25)
	Tcl programmable editor.  The Think C 5.0 Tcl source for the Mac
	is available on cs.rice.edu as well.
Contact: [email-masked]

What: Amiga OS Tcl 3.x port
Where: From the contact
Description: A port of Tcl 3.x to the Amiga.  Uses Amiga share libraries
	and implements "send" under the Amiga OS, plus a post.  Includes
	a MIDI file loader and player.  Works, but is not up to the latest
	version of Tcl nor is further work occurring.
Contact: "Karl Lehenbauer" <[email-masked]>

What: Amiga NetBSD Tcl 3.x port
Where: From the contact
Description: A port of Tcl and Tk for Amiga NetBSD running X11R5.
Contact: [email-masked] (Markus Illenseer)

What: arswm
Where: From the contact
Description: Window manager configurable using Tcl.
Contact: "Bill Burdick" <[email-masked]>

What: arTCLs
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/artcls.tar.Z
Description: a Wish-based USENET news reader
Contact: [email-masked] (Mike Hoegeman)

What: aXe
Where: ftp://export.lcs.mit.edu/contrib/aXe-5.1.tar.Z
	ftp://arjuna.ncl.ac.uk/pub/aXe/aXe-5.1.tar.Z
Description: An easy to use X11R5 text editor.  Allows user to optionally
	include Tcl as an extension language.
Contact: [email-masked]

What: BETH
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/beth3.1.tar.gz
Description: Browsing and Editing Tcl Hypertool (BETH).
Contact: [email-masked] (David Svoboda)

What: biff clock
Where: From the contact
Description: Tk example program showing biff and xclock like functions
Contact: [email-masked] (Karl Lehenbauer)

What: bigwish
Where: From the contact
Description: Set of configuration files, .c's, etc. to allow you to build
	a Tcl and Tk interpretor with tclX, BLT, and incr Tcl all in it.
Contact: [email-masked] (John Ellson)

What: bitmap browser
Where: From the contact
Description: bmb.tk is a bitmap browser reminiscent of the xbmbrowser.
Contact: [email-masked] (Bob Bagwill)

What: BOS
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/bos-1.31.tar.Z
	ftp://ftp.cs.cmu.edu/afs/cs/user/snl/pub/bos-1.31.tar.z
Description: BOS - the Basic Object System; SELF-like Tcl objects.
	This is also an extension to Tcl.
Contact: [email-masked] (Admin. requests for BOS mailing list)
	[email-masked] (BOS mailing list)

What: Bowling
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xbowl-1.4.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/xbowl-dist-2.0.tar.Z
Description: Tk based bowling game, using the core Tcl/Tk.
Contact: [email-masked] (Peter Grina)

What: browse.tcl
Where: alt.sources archives
Description: Directory browser w/Tcl
Contact: [email-masked] (Peter da Silva)

What: budge
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/budge.tar.Z
Description: Tk based arcade/puzzle game - a cross between Sokoban, Pac-Man
	and Blind Date (the TV show).
Contact: Nat Pryce <[email-masked]>

What: bulletin board
Where: From the contact
Description: Program based on [incr tcl] which can be used to store
	various pieces of info, represented by icons.
Contact: [email-masked] (Mark Roseman)

What: BYO
Where: Locations removed by request of contact
Description: Work is no longer being carried out on BYO and the version
	on the archives is out of date, so it has been removed.
Contact: Peter Wood <[email-masked]>

What: calc.tk
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/calc.tk.Z
Description: a simple calculator.
Contact: [email-masked] (David Herron)

What: Calendar / Rolodex
Where: From the contact
Description: A calendar/rolodex written in Tk.  Also can browse/edit other
	colon-separated field files.
Contact: [email-masked] (Marc Mengel)

What: canvas_ui - a Tk sketcher
Where: From the contact
Description: a Tk sketching program which uses a canvas and creates Postscript
	files.
Contact: [email-masked] (Brent Welch)

What: CGI <-> Tcl and/or Tk
Where: From the contact
Description: Simple CGI scripts for invoking Tcl scripts or Tk scripts.
Contact: [email-masked] (Yechezkal-Shimon Gutfreund)

What: CGI Forms based mailing
Where: From the contact
Description: A Tcl script to allow forms-based mailing to a specific user.
Contact: [email-masked] (Jon P. Knight)

What: classifyMail
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tcl-slocal.tcl.gz
Description: Tcl replacement for MH slocal, providing extended capabilities.
Contact: [email-masked] (Bill Burdick)

What: Clock (Analog)
Where: From the contact
Description: Graphical representation of non-digital clock.
Contact: [email-masked] (Karl Lehenbauer)

What: Compare Manifest
Where: From the contact
Description: Extended Tcl program that reads a MANIFEST and compares
	directory hierarchy to it.
Contact: [email-masked] (Karl Lehenbauer)

What: coloredit
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/coloredit.tk.Z
Description: Tk script to edit colors
Contact: "Sam Shen" <[email-masked]>

What: Tk cron interface
Where: ftp://avahi.inria.fr/tcl/tkcron
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkcron-1.18.tcl.Z
Description: Tk 3.3 simple interface to crontab creation
Contact: [email-masked] (Cedric Beust)

What: CUTE
Where: From the contact
Description: Call Unix/Tcl Environment - a serial port 'expect' like
	program.
Contact: [email-masked] (Karl Lehenbauer)

What: DejaGnu
Where: ftp://ftp.cygnus.com/pub/dejagnu/dejagnu-1.1.4.tar.z
	and other GNU sites.
Description: an expect 5.x based package designed to be a framework
	for testing other software.  Separate test suites exist for
	GDB and binutils.  Note that the tar includes a complete release
	of Tcl 7.3 and expect 5.x.
Contact: "Rob Savoye" <[email-masked]>

What: DGC Tools
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/dgctools-0.2.tar.Z
Description: Tke, a multi-window X11 text editor and "Tkt" - a
	Terminal Emulator/Command line/Shell window program, and "tkb"
	an experimental C++/C source browser.  Requires TclX/Tk.
Contact: [email-masked] (Dave Clemans)

What: directory browser
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/dir.shar.Z
Description: Simple directory browser behaving similar to NeXT file browser.
Contact: [email-masked] (Taj Khattra)

What: Directory User Agent interface
Where: ftp://ftp.ics.uci.edu/mrose/fredtcl/fredtcl-sunos4.tar.Z
	ftp://ftp.ics.uci.edu/mrose/fredtcl/fredtcl.tar.Z
Description: A program that interrogates the OSI Directory about information
	objects, people, programs, organizations, etc.
Contact: [email-masked]

What: dodirectory
Where: From the contact
Description: A tclsh that goes through a directory and copies the user's
	permissions to other and group, except that it denies them write.
Contact: [email-masked] (Hume Smith)

What: Drag and Drop file browser
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/dragndrop.tk.Z
Description: Drag and drop based directory browser (tkfb) and helper programs
	with a NeXTStep like interface.
Contact: "Scott Schwartz" <[email-masked]>

What: edit-html
Where: ftp://ftp.x.org/contrib/edit-html.tcl.Z
Description: Tk wish script for creating HTML-based documents.
Contact: "Nathan Torkington" <[email-masked]>

What: Emil
Where: ftp://ftp.sunet.se/pub/unix/mail/email/
	ftp://ftp.uu.se//pub/unix/networking/mail/emil/
	ftp://scr.doc.ic.ac.uk/computing/mail/emil/
Description: A tool for converting between MIME, Eudora, Mailtool,
	PC client, Mac client email formats.  Header handling and conversion
	control configured in Tcl.
Contact: [email-masked]

What: Expect
Where: ftp://ftp.cme.nist.gov/pub/expect/expect.shar.Z
Description: a scripting language to talk to interactive programs like ftp,
	telnet, fsck, and others that cannot be automated from a shell script.
	Version 4 is Tcl 6 compatible.
Contact: [email-masked] (Don Libes)

What: Expect (Tcl 7 compatible)
Where: ftp://ftp.cme.nist.gov/pub/expect/alpha.shar.Z
Description: a scripting language to talk to interactive programs like ftp,
	telnet, fsck, and others that cannot be automated from a shell script.
	Version 5 is Tcl 7 compatible.
Contact: [email-masked] (Don Libes)

What: expecTerm
Where: ftp://ceylon.gte.com/pub/expecterm/expecTerm1.0beta.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/expecTerm1.0beta.tar.Z
Description: expect with terminal emulation
Contact: [email-masked] (Christopher J. Matheus) and
	[email-masked] (Mark D. Weissman)

What: exmh
Where: ftp://parcftp.xerox.com/pub/exmh/exmh-1.2.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/exmh-1.2.tar.gz
	ftp://parcftp.xerox.com/pub/exmh/exmh-1.3alpha.tar.Z
Description: A Tk based UI to MH.  Supports nested folders, MIME/metamail.
Contact: [email-masked] (Brent Welch)

What: folderbiff
Where: From the contact
Description: Tk program to watch MH/slocal folders and, when button clicked,
	start up an exmh session on a folder that gets new mail
Contact: [email-masked] (Bill Burdick)

What: fn and ForumNet
Where: ftp://f.ms.uky.edu/u/ftp/pub/misc/vms-fn/
Description: ForumNet - teleconferencing system,
	fn - client to access ForumNet
Contact: [email-masked] (Sean Casey)

What: Fresco CORBA interpreter
Where: From the contact
Description: As part of Fresco, a Tcl-based interpreter that uses
	CORBA dynamic invocation was developed.
Contact: [email-masked] (Mark Linton)

What: FSP client
Where: ftp://genie.lut.ac.uk/murf/
Description: Wafe/Perl based interface to FSP.
Contact: [email-masked] (Martin Hamilton)

What: Gash - a Galaxy interpreter
Where: From the contact
Description: a Tcl-based interpreter system for the Galaxy Application
	Libraries. Software was not available Jun 29, 1993.  See contact
	for progress.
Contact: "Ross Huitt" <[email-masked]>

What: getcons - get console
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/getcons.shar.Z
Description: Console management tool - a wish based contool so to speak.
Contact: [email-masked] (Steve Osborn)

What: GOOD
Where: ftp://metallica.prakinf.tu-ilmenau.de/pub/PROJECTS/GOOD0.60/
Description: An object oriented framework for graphical applications
	running under X windows, with special support to SGI GL,
	PHIGS, etc.
Contact: [email-masked] (Ekkehard Beier)

What: Graphical Interface to CVS
Where: ftp://ftp.cpsc.ucalgary.ca/pub/grouplab/software/gic-1.1.tar.Z
Description: GIC is a Tk interface to the Concurrent Version System, a
	revision control system.
Contact: [email-masked]
	[email-masked]

What: Hierarchical Help System (HLP)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/HLP.tar.Z
Description: Tk routines that implement a hierarchical menu type help system.
Contact: [email-masked] (Paul Amaranth)

What: Host Monitoring (hm)
Where: ftp://vela.acs.oakland.edu/pub/amaranth/hm0.3-beta.tar.Z
Description: This Tk program current monitors various threshold values
	for caution and warning levels for things such as system
	load (excluding SYSV), number of users, percent of swap space used,
	etc.
Contact: [email-masked] (Paul Amaranth)

What: hp-tcl-cdplay
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/hp-tcl-cdplay.tar.Z
Description: a Tk interface to the HP CD-ROM player
Contact: "Mike Hoegeman" <[email-masked]>

What: HTCLtoTCL
Where: ftp://www.lbl.gov/pub/htcl.tar
	http://www.lbl.gov/~clarsen/projects/htcl.tar
	http://www.lbl.gov/~clarsen/projects/htcl.html
Description: Extracts Tcl from HTML/Tcl merged file.  Requires itcl.
	Also has contains program which parses arguments passed by httpd
	type server from FORM input.
Contact: [email-masked] (Case Larsen)

What: ical - a calendar manager
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/ical-1.8.tar.gz
	ftp://ftp.lcs.mit.edu/pub/sanjay/ical-1.8.tar.Z
Description: A calendar application - previously required InterViews
	libraries but now uses only tk.  Designed for Tcl 7/Tk 3.3.
Contact: [email-masked] (Sanjay Ghemawat)

What: IDL/Pvwave/Matlab <-> Tk
Where: From the contact
Description: A Modified version of Tk which communicates with a 
	custom RPC interface designed for WAVE and now IDL.
Contact: [email-masked] (Justin Seiferth)

What: Iplace - interactively place widgets on a frame
Where: From the contact
Description: A poor-man's GUI builder.
Contact: [email-masked] (Wayne A. Christopher)

What: js tools
Where: ftp://princeton.edu/pub/js/jstools-tk3.6v2.0.tar.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/jstools-tk3.6v2.0.tar.gz
Description: A configurable directory browser (similar to the NeXT browser),
	a extensible text editor, and a multi-font help viewing system.
	Note that there are a large number of useful procecures that come
	as a part of this package including a set of rich text management
	procedures.
Contact: "Jay Sekora" <[email-masked]>

What: Jungle
Where: From the contact
Description: The contact is developing a "WWW server" (sic) using
	Tk/Tcl/Tcl-DP.
Contact: [email-masked]

What: Klondike
Where: ftp://ftp.cs.ucla.edu/pub/ficus/johnh/klondike.1.2.tar.gz ,
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/klondike.1.2.tar.gz ,
	comp.sources.games archives.
Description: Extended Tcl/Tk based solitaire game.
Contact: [email-masked] (John Heidemann)

What: KosherDill
Where: One of the programs in the BLT distribution
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/BLT-1.3.tar.gz
Description: Tk program to display the largest and oldest files in your
	file system and allow you to look at it, compress it or delete it
	using drag&drop operations.
Contact: [email-masked] (George A. Howlett)

What: Lassen
Where: ftp://s2k-ftp.cs.berkeley.edu/pub/sequoia/src/lassen.tar.Z
Description: Multimedia/Information Retrieval research project
Contact: Unknown

What: Libsearch
Where: From the contact
Description: expect driven interface to Internet library databases.
Contact: "Terrence Brannon" <[email-masked]>

What: Lightwave
Where: From the contact
Description: An animation program for the Video Toaster
Contact: [email-masked] (Karl Lehenbauer)

What: lily
Where: ftp://ftp.ece.cmu.edu/cad/lily1.4.tar.Z
Description: A layout editor developed by Dave Svoboda.
Contact: Unknown

What: Linux port of Tcl/Tk
Where: ftp://sunsite.unc.edu/pub/Linux/Incoming/tcl7.3-bin.tar.z
	ftp://sunsite.unc.edu/pub/Linux/Incoming/tcl7.3-src.tar.z
	ftp://sunsite.unc.edu/pub/Linux/Incoming/tk3.6-bin.tar.z
	ftp://sunsite.unc.edu/pub/Linux/Incoming/tk3.6-src.tar.z
	ftp://sunsite.unc.edu/pub/Linux/Incoming/tclX7.3a-bin.tar.z
	ftp://sunsite.unc.edu/pub/Linux/Incoming/tclX7.3a-src.tar.z
	ftp://sunsite.unc.edu/pub/Linux/Incoming/blt1.0-bin.tar.z
	ftp://sunsite.unc.edu/pub/Linux/Incoming/blt1.0-src.tar.z
	ftp://sunsite.unc.edu/pub/Linux/Incoming/itcl1.3-bin.tar.z
	ftp://sunsite.unc.edu/pub/Linux/Incoming/itcl1.3-src.tar.z
Description: Binary portion of Tcl 7.3 and Tk 3.6.  These will be
	moved into the Linux hierarchy at some point.
	Requires libc-4.4.4 or later and tk/blt and tkX require
	XFree86-2.0 or later.
Contact: [email-masked] (David Engel)

What: lookup
Where: From the contact
Description: Look up words in /usr/dict/word file.
Contact: [email-masked] (Paul Raines)

What: MacOS Tcl, 6.1
Where: From the contact
Description: Tcl6.1 Mac port (ThinkC 5.0.1)
Contact: [email-masked] (Parag Patel)

What: MacTcl, 6.1v2
Where: From the contact
Description: Mac port (ThinkC 5.0.1) with a few extensions and fixes
Contact: [email-masked] (Ray Johnson)

What: MacTcl, 6.7b
Where: From the contact
Description: MacTcl is a 'straight port' of Tcl to Think C [56].0
	The source is included.  MacTcl also supports
	rm, mv, mkdir, cd, pwd, etc. as well as
	the env variable and the auto_load facility.
Contact: "Ray Johnson" <[email-masked]>

What: MacTcl, 7.3
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/MacTcl7.3.sea.hqx
Description: Tcl 7.3 source ported to the Mac Think C 6.0 and MPW.
	Not that this is _not_ a developement environment but a tool
	for embedding Tcl into other applications.  This version 
	includes more robust unix commands and an extended source 
	command.
Contact: "Ray Johnson" <[email-masked]>

What: Make-A-Wish
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/make-a-wish-1.2.tar.gz
Description: Set of steps and a simple sh script that tries to aid in
	creating Tcl/Tk interpreters with various extensions.
Contact: Tom Poindexter <[email-masked]>

What: man.tk
Where: From the contact
Description: Tk based man page browser.
Contact: [email-masked] (John Bowe)

What: mercurius
Where: ftp://ftp.lii.unitn.it/pub/mercurius/mercurius.tar.Z
Description: Mercurius facilitates composing and reading multimedia electronic
	messages compliant with the Multipurpose Internet Mail Extensions
	(MIME).
Contact: [email-masked]

What: Modules
Where: ftp://ftp.eng.auburn.edu/pub/Modules/Modules-v2.0.tar.Z
Description: a dynamic user environment customization package
Contact: "John L. Furlani" <[email-masked]>

What: Moog
Where: ftp://genie.lut.ac.uk/moog-0.2.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/moog-0.2.tar.gz
Description: An X Window gopher client for Unix boxes, written using
	Tk and Perl.  This is an Alpha release.
Contact: [email-masked] (Martin Hamilton)

What: MS-DOS Tcl, 6.0a
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/dostcl.zoo
	ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/dostcl60.tar.Z
Description: Experimental MS-DOS Tcl 6.0a port
Contact: "Karl Lehenbauer" <[email-masked]>

What: MS-DOS Tcl, 6.2
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tcl62.dos.tar
	ftp://Cajal.uoregon.edu/pub/tcl.dos.port/*
Description: stable port of Tcl 6.2, and extra libraries, ported to MS-DOS
Contact: [email-masked] (John Martin)

What: MS-DOS Tcl, 6.7
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tcl67dos.zip
	ftp://wuarchive.wustl.edu/incoming
Description: Port of Tcl 6.7 to MS-DOS.
Contact: [email-masked] (Peter Sprenger)

What: MS-DOS Tk/Tcl
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/mstcl73e.zip
	ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/mstcl73s.zip
Description: Standard and Extended Tcl and Tk under MS-DOS, using
	the DJ Delorie's GO32 32 bit extended and linked with
	Quarterdeck's libraries for Desqview/X.  Requires Desqview/X
	to run.
Contact: Tom Poindexter <[email-masked]>

What: MS-DOS Windows Tcl
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/w_tclbin.zip
	ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/w_tclsrc.zip
Description: Port of Tcl (version unknown) to MS-DOS Windows (version unknown).
Contact: Unknown

What: MS-DOS Windows DLL for Tcl
Where: From the contact
Description: An experimental MS-Windows DLL instance of Tcl 6.2.
Contact: "Ugo Cei" <[email-masked]>

What: Mx
Where: ftp://ftp.cs.berkeley.edu/pub/tcl/mx.tar.Z
	ftp://ftp.cs.berkeley.edu/pub/tcl/mx-2.5.tar.Z
Description: a old Tcl/Sx based text editor
Contact: "John Ousterhout" <[email-masked]>

What: Mxedit
Where: ftp://parcftp.xerox.com/pub/mxedit/mxedit.2.1.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/mxedit.2.1.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/mxedit.menus
Description: A fully functional Tk based editor.  Note that the edit
	widget itself is stand-alone so that you can use it in other
	applications.  Also, mxedit.menus is a Tcl script to
	put a veneer over Tk menus.
Contact: [email-masked] (Brent Welch)

What: Netrek Metaserver Monitor
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/wishmetaserver.tar.gz
Description: Tk 2.1/tclRawTCP based Tk program to monitor the metaserver.
Contact: [email-masked] (Sam Shen)
	James Hawtin ([email-masked])

What: Objectify
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/objectify-2.0.tar.Z
Description: Preprocessor to turn a C++ class into a Tcl object type.
Contact: [email-masked] (Wayne A. Christopher)

What: Oracle wrap for Tk/Tcl
Where: ftp://ftp.cad.gatech.edu/pub/tk/oracle.tar.Z
Description: A simple ORACLE wrap that implements SQL commands in Tk/Tcl.
Contact: [email-masked] (Mark Andrew Hale)

What: Palm
Where: ftp://mango.rsmas.miami.edu/pub/palm/palm.shar.gz
Description: A Tk mail program which uses the c-client library.  No
	support for MIME yet.  You need to get c-client, BLT,
	and Tcl 7.[01]/Tk 3.[34].
Contact: [email-masked] (angel li)

What: Parseargs
Where: From comp.sources.misc archives, volume 29
	ftp://wuarchive.wustl.edu/usenet/comp.sources.misc/volume29/parseargs
Description: Utility library for parsing command line arguments in various
	languages (including Tcl) and on various hardware platforms
Contact: "Eric P. Allman" <[email-masked]>
	"Peter da Silva" <[email-masked]>
	"Brad Appleton" <[email-masked]>

What: pgbrowse
Where: ftp://crseo.ucsb.edu/pub/pgbrowse/
Description: Tk Postgres browser and query tool.
Contact: Unknown

What: PhoneStation
Where: ftp://bellcore.com/pub/PhoneStation
Description: Software for incorporating a telephone into the Workstation
	environment.
Contact: [email-masked] (Stephen A Uhler)

What: Picasso
Where: ftp://zenon.inria.fr/pub/tk/picasso3.8.tar.Z
Description: Interactive drawing tool similar to idraw.
	Requires Extended Tcl/Tk and Pbmplus comands.
Contact: "Frank Mangin" <[email-masked]>

What: pixmap
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/pixmap-0.1.tar.Z
Description: A color pixmap editor written in Tk.
Contact: "Sam Shen" <[email-masked]>

What: Point
Where: ftp://ftp.cs.unm.edu/pub/Point/point1.63.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/point1.63.tar.gz
Description: a Tk based text editor - 1.60+ works with Tk 3.
Contact: "Charlie Crowley" <[email-masked]>

What: PostgresBrowswer
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/postgresbrowser.tcl.Z
Description: An experimental postgres frontend.
Contact: "Frank Sauer" <[email-masked]>

What: ProTcl
Where: ftp://ftp.ecrc.de/pub/eclipse/progs/protcl/
Description: A Prolog interface to Tcl/Tk.  Version 1.1 now works with Tcl 7.
Contact: [email-masked] (Micha Meier)

What: Ptolemy
Where: ftp://ptolemy.eecs.berkeley.edu/pub/ptolemy/
Description: Simulation and prototyping system, written in C++ and using
	Tk/Tcl for user interface.
Contact: [email-masked]

What: Remote control of Tk apps
Where: From the contact
Description: A read-eval-print loop that connects you to a registered Tk
	interpreter.
Contact: [email-masked] (Bill Burdick)

What: reversi
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/reversi-1.0.tk.Z
Description: Reversi (othello) game.
Contact: "Joel Fine" <[email-masked]>

What: Roger's Interface Language (RIL)
Where: alt.sources archives
	ftp://ftp.x.org/contrib/ril.tar.Z
Description: a preprocessor for resource files.
Contact: "Roger Reynolds" <[email-masked]>

What: rolodex
Where: From the Tk demos directory
Description: John Ousterhout's entry to Tom Solbourne's 1992 X toolkit
	challenge.
Contact: [email-masked] (John Ousterhout)

What: scotty
Where: ftp://ftp.ibr.cs.tu-bs.de/ibr/pub/local/scotty-0.8.tar.Z
Description: A Tcl interpreter extended to set up TCP connections, submit
	ping packets, and query RPC services.
Contact: [email-masked]

What: ServiceMail(tm) Toolkit (servicemail.tar.Z)
Where: ftp://eitech.com/servicemail1.2.tar.Z
Description: ServiceMail is a standalone email server written in C and Tcl.
	It takes incoming email requests and can perform tasks for the
	sender.
Contact: [email-masked] (ServiceMail questions),
	or subscribe to servicemail-help mailing list by sending a message
	to the "listserv subscribe servicemail-help your-real-name" service at
	"[email-masked]".

What: ServiceMail extras
Where: ftp://keck.tamu.edu/pub/EmailServer/additional_tcl_scripts*.tar.Z
Description: See http://keck.tamu.edu/cgi/staff/emailserver.html for
	a description of the various email services that can be added
	using the above tar file.  Since the date is embedded in the
	file name, a * has been used in this catalog entry to represent
	the current version.  Package includes ability to send GIF files,
	.au files, an ftp status, gopher style searches, etc.
Contact: [email-masked] with a subject of help

What: SGI GL interpreter
Where: ftp://metallica.prakinf.tu-ilmenau.de/pub/GLIP/glip0.8.tar.Z
	ftp://metallica.prakinf.tu-ilmenau.de/pub/GLIP/glip0.8.doc.ps.Z
Description: Tcl based interpreter for Silicon Graphics GL.
Contact: [email-masked] (Ekkehard Beier)

What: smaillog
Where: alt.sources archives
Description: email activity report for smail 2.5
Contact: [email-masked] (Karl Lehenbauer)

What: Shiva
Where: Unknown
Description: Survey Human Interface and Visualization Environment
	(Shiva) is the supported toolkit to be used
	for assembling data reduction pipelines and host software for
	the SDSS data acquisition system.
Contact: Unknown

What: SimCity demo
Where: ftp://world.std.com/pub/SimCity/
Description: This is a demo of a commercial product written in Tk/Tcl.
Contact: Unknown

What: STk
Where: ftp://kaolin.unice.fr/pub/STk-2.0.tar.gz
Description: A graphical package which relies on Tk and the Scheme
	programming language - think Tk and Scheme rather than Tk and Tcl.
Contact: [email-masked] (Gallesio Erick)

What: Subway Navigator
Where: Source not available at this time
Description: Tk-based Internet service to find routines in the world's
	subway systems.  Reach the subway via telnet://metro.jussieu.fr:10000
	or gopher://gopher.jussieu.fr:70/1/metro .
Contact: [email-masked]

What: Symbolic derivations
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tderiv-1.0.tar.Z
Description: A simple symbolic derivation solver.
Contact: "Michael Tiller" <[email-masked]>

What: Tcl
Where: ftp://ftp.cs.berkeley.edu/ucb/tcl/tcl6.7.tar.Z
	ftp://ftp.cs.berkeley.edu/ucb/tcl/tcl7.3.tar.Z
Description: the complete base package for Tcl.
Contact: "John Ousterhout" <[email-masked]>

What: Tcl / Tk install softlink
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/installtk.Z
Description: installtk is a script which creates a set of softlinks
	from the distribution directory to the public installation
	directories.
Contact: [email-masked] (Maurice J. LeBrun)

What: Tcl shells
Where: ftp://ftp.fzi.de/pub/OBST/OBST3-3/tclshells.tar.Z
Description: Package to assist users who want to build customized
	shells by choosing among Tcl/Tk extensions.
Contact: [email-masked] (Dietmar Theobald)

What: tcl++
Where: From the contact
Description: Tcl based code providing SELF-like prototype-based tcl objects.
Contact: [email-masked] (Hansel Wan)

What: tclbot
Where: ftp://belch.berkeley.edu/pub/mud_robots/tclbot
Description: MUD robot for Tcl programmers
Contact: "Rusty C. Wright" <[email-masked].>

What: Tcl Compiler (TC)
Where: From the contact (not available for release yet)
Description: An extensible compiler and runtime system for the Tcl language.
Contact: [email-masked] (Adam Sah)

What: Brannon's Tcl to C compiler
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/ttc.tar.Z
Description: Compiles Tcl scripts into corresponding C code.
Contact: [email-masked] (TERRENCE MONROE BRANNON)

What: tcltags (Hoegeman)
Where: From the contact
Description: Tcl command to generate vi tags file.
Contact: [email-masked] (Michael Hoegeman)

What: tcltags (LoVerso)
Where: From the contact
Description: /bin/sh command to generate vi tags file.
Contact: [email-masked] (John Robert LoVerso)

What: tcltags (Tromey)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tcltags.tcl.Z
Description: Emacs TAGS generation for Tcl source.
Contact: "Tom Tromey" <[email-masked]>

What: tcltools
Where: ftp://cygnus.com/pub/tcltools-930124.tar.Z
	 ftp://harbor.ecn.purdue.edu/pub/tcl/code/tcltools-930124.tar.Z
Description: Version of Tcl 6.5 and Tk 3.0 which uses autoconfig for
	configuration purposes.
Contact: [email-masked] (david d 'zoo' zuhn)

What: tcltt, v1
Where: ftp://ftp.white.toronto.edu/pub/muds/tcltt
Description: Tcl TinyTalk
Contact: "Chris Siebenmann" <[email-masked]>

What: TCLtt (TCL-TinyTalk)
Where: From the contact
Description: Programmable client for connecting to MUDs (effectively, chat
	servers with role playing).  Uses TCL 6.7, should be OK with earlier.
Contact: [email-masked] (David Fenger)

What: tdcad
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tdcad1.0a.tar.Z
Description: A little Tk CAD drawing program in early Alpha stage.
Contact: [email-masked] (Tuan Doan)

What: TeenyMUD
Where: From the contact
Description: a small Multi User Dungeon program which is based on a
	heavily modified version of Tcl.
Contact: [email-masked] (TeenyMUD admin addr)
	[email-masked] (Teeny MUD Mailing List)
	[email-masked] (jason downs)
		
What: tess
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tess.1.1.tar.gz
Description: tess (tar extraction simplification script) is a tcl/tk based
	tar file extraction tool.  tess will automatically uncompress/unzip
	files ending in .Z or .gz respectively.
Contact: [email-masked] (Paul E. Coad)

What: tickle
Where: ftp://ftp.msen.com/pub/vendor/ice/tickle/AppOnly.hqx
	ftp://ftp.msen.com/pub/vendor/ice/tickle/DocOnly.hqx
	ftp://ftp.msen.com/pub/vendor/ice/tickle/EngineOnly.hqx
	ftp://ftp.msen.com/pub/vendor/ice/tickle/scripts.hqx
	ftp://ftp.msen.com/pub/vendor/ice/tickle/XTCL.hqx
	ftp://ftp.msen.com/pub/vendor/ice/tickle/Tickle5.0v1.hqx
Description: Tickle is a Macintosh text editor and file converter
	handling binhex, uudecode, compress, tar, MacBinary,
	Apple Single/Double, etc.  Supports System 7's drag and drop.
	Also handles OSA events.
Contact: [email-masked]

What: Tk
Where: ftp://ftp.cs.berkeley.edu/ucb/tcl/tk3.6.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tk3.6.tar.Z
Description: Tk is an X11 extension for Tcl.  Version 3.6 is for Tcl 7.3.
	You need to get the Tcl 7.3 package as well.
Contact: "John Ousterhout" <[email-masked]>

What: Tk and C++
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tk3.3forC++.patch.Z
Description: A patch to make tk3.3 usable with C++.
Contact: Ken Yap <[email-masked]>

What: Tk extensions via imake
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmkmf-3.3b3.tar.Z
Description: An imake based utility that simplifies wish extensions so that
	no Tk code modification is needed.
Contact: [email-masked] (Jim Wight)

What: Tk terminal widget
Where: From the contact
Description: A Tk terminal emulator-like widget.
Contact: Rudi Stouffs <[email-masked]>

What: tkview
Where: From the contact
Description: View one or more files from a scrollable Tk text widget.
Contact: [email-masked] (Eric J. Schwertfeger)

What: Tkwm
Where: From the contact
Description: A Tcl/Tk window manager, based on extensions to Tk.
Contact: [email-masked] (Eric Schenk)

What: tk WWW interface
Where: ftp://info.cern.ch/pub/www/dev/tkWWW-0.10.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkWWW-0.10.tar.Z
	ftp://ftp.x.org/contrib/tkWWW-0.10.tar.Z
Description: A Tk World Wide Web (WWW) browser, requires tk 3.1 or greater.
Contact: [email-masked] (administration of mailing list)
	[email-masked] (WWW Tk Browser Discussion List)

What: Tk xworld
Where: From the contact
Description: Tk world builder for the xworld server
Contact: "Michael D. Moore" <[email-masked]>

What: TkBible
Where: From the contact.
Description: Present the user with a menubar of the books of the Bible
	(obtained from ftp://sifon.cc.mcgill.ca/pub/things_of_interest/bible/)
	and display the current book.
Contact: [email-masked] (Michael Moore)

What: tkchrom
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkchrom-1.1.Z
Description: A clock that uses the orientation of a wedge in a circle to
	indicate the time.
Contact: [email-masked] (Tom Phelps)

What: tkdvi
Where: ftp://ftp.math.uni-frankfurt.de/pub/tkdvi/tkdvi-0.1.tar.gz
Description: Manipulate .dvi files via a Tk interface.  Still in alpha
	stage.
Contact: [email-masked]

What: tkelm
Where: From the contact
Description: Tk elm-based mail reader.
Contact: [email-masked] (Budi Rahardjo)

What: tkfire
Where: From the contact
Description: Tk Defender like game
Contact: [email-masked] (Wayne A. Christopher)

What: tkfonts
Where: From the contact
Description: Font selection program.
Contact: [email-masked] (Jay Schmidgall)

What: tkgnats
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkgnats.tar.Z
Description: Tk front ends for the GNATS bug management system.
Contact: "Mike Hoegeman" <[email-masked]>

What: tkgoph - wade
Where: From the contact
Description: A quick and dirty Tk based gopher client.
Contact: [email-masked] (Reed Wade)

What: tkgopher
Where: From the contact
Description: Tk based gopher client which will use TclX, tkPixmap, and
	Japanized text if available.
Contact: [email-masked] (Hoshi Takanori)

What: tkined
Where: ftp://ftp.ibr.cs.tu-bs.de/ibr/pub/local/tkined-0.7.tar.Z
Description: A Network Configuration drawing program.
Contact: [email-masked], 
	[email-masked],
	[email-masked]

What: tkinfo
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkinfo-0.6.tar.Z
	ftp://ptolemy.eecs.berkeley.edu/pub/misc/tkinfo-0.6.tar.Z
	ftp://ptolemy.eecs.berkeley.edu/pub/misc/tkinfo-0.7-beta.tar.Z
Description: GNU info parsing and interpretation code and a Tk program
	providing a sample of how to use it.
Contact: [email-masked] (Kennard White)

What: tkinspect
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkinspect-4d.tar.Z
Description: Allow browsing/inspection of running Tk applications.
Contact: [email-masked] (Sam Shen)

What: TkIspell
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkispell-1.5.tar.gz
	ftp://bohr.physics.upenn.edu/pub/tk/tkispell-1.6beta.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkispell-1.6beta.tar.Z
Description: Interface to ispell command.  Version 1.6 is intended to
	share utility files with TkMail v1.6.
Contact: [email-masked] (Paul Raines)

What: tkkids
Where: From the contact
Description: Two kids' games - a Concentration-like memory game and
	a spelling game (requires speak/scat software).
Contact: [email-masked] (Peter Grina)

What: TkMail
Where: ftp://bohr.physics.upenn.edu/pub/tk/tkmail.*
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmail-1.5.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmail-1.5p1.patch.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmail-1.5p2.patch.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmail-1.6p1.tar.Z
	ftp://bohr.physics.upenn.edu/pub/tk/tkmail-1.6p1.tar.Z
Description: Tk interface to bsd's Mail command.
Contact: [email-masked] (Paul Raines)

What: tkmaillist
Where: ftp://avahi.inria.fr/tcl/tkmaillist
Description: Tk front-end that lets you subscribe and unsubscribe from
	mailing lists.
Contact: [email-masked] (Cedric Beust)

What: TkMan
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkman-1.5.tar.Z
Description: A Tk based man page reader with hypertext links.  As of version
	1.5 support for Silicon Graphics man pages is in the std distribution.
Contact: [email-masked] (Tom Phelps)

What: tkmess
Where: From the contact
Description: Tk version of xmessage.
Contact: [email-masked] (Laurent Demailly)

What: TkMH
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmh1.1.tar.Z
Description: Interface for the MH mailing system.  Depends on Tcl 7.0 and
	Tk 3.3.
Contact: Martien Verbruggen ([email-masked])

What: TkMHn
Where: From the contact
Description: Interface for the MH mailing system.
Contact: [email-masked] (Thillier Pyves)

What: tkmines
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmines.1.5.shar.Z
Description: Mines game.
Contact: "Joel Fine" <[email-masked]>

What: tkmotd
Where: From the contact
Description: Tk based tool to display the motd file with acknowlege button.
Contact: [email-masked] (Doug Hughes)

What: tknews
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tknews.1.2b.tar.gz
Description: Tk-based news reader.
Contact: Michael Moore <[email-masked]>

What: Tkolumns
Where: From the contact
Description: Tk Columns game.
Contact: [email-masked] (Tony Bates)

What: tkpbiff
Where: From the contact
Description: Tk version of xpbiff, a pop-up bitmap version of biff.
Contact: [email-masked] (Benjamin Lurie)

What: tkpostage
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkpostage-1.3.tar.Z
Description: An xbiff replacement.  Requires Tk 3.[34].
Contact: Dan Wallach <[email-masked]>

What: TkPostit
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkPostit-1.4.tar.gz
Description: A Tk program behaving like xpostit.
Contact: [email-masked] (Alessandro Rubini)

What: tkSketch
Where: From the contact
Description: Tk based Sketch and Schematic editor.
Contact: [email-masked] (Johann Friedrich Heinrichmeyer)

What: TkSol
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tksol-0.9.tar.gz
	ftp://ftp.cs.umd.edu/pub/tksol/tksol-0.9.tar.Z
Description: Solitaire card game in Tk.
Contact: [email-masked] (Bao Trinh)

What: tk_stattab
Where: ftp://odin.mda.uth.tmc.edu/pub/unix/tk_stattab.tar.Z
Description: A packaging of the scientific application Stattab using
	Tcl/Tk.
Contact: [email-masked] (Dan Serachitopol)
	[email-masked] (Barry W. Brown)

What: tkwool
Where: From the contact
Description: A version of Tk which uses the wool language rather than
	Tcl.  A Sun 4 binary is available on avahi.inria.fr/wtk/ .
Contact: [email-masked] (Colas Nahaboo)

What: Towers of Hanoi
Where: From the contact
Description: Sample of Towers of Hanoi solution in Tk.
Contact: [email-masked] (Damon Permezel)

What: trajectory
Where: From the contact
Description: Program to edit piecewise linear paths in space as a
	function of time.
Contact: [email-masked] (Wayne A. Christopher)

What: TUA
Where: ftp://itnsg1.science.unitn.it/pub/tua/tua-4.0.tar.gz
Description: Collect all the info that UUCP packages put in their logs
	and summarize it.
Contact: [email-masked] (Lele Gaifax)

What: tupact
Where: alt.sources archives
Description: 9X faster C-news active file "minimum article" updater
Contact: [email-masked] (Karl Lehenbauer)

What: twoClocks
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/twoClocks.tcl.Z
Description: Two different kinds of clock
Contact: "Charles Read" <[email-masked]>

What: Tx
Where: ftp://ftp.cs.berkeley.edu/pub/tcl/mx.tar.Z
Description: an old Tcl/Sx based terminal emulator
Contact: "John Ousterhout" <[email-masked]>

What: unix.tk
Where: ftp://ftp.cs.berkeley.edu - in the Tcl mailing list archive file
Description: a Unix Tk browser
Contact: "Brent Welch" <[email-masked]>

What: Usenet gateways for Compuserve and Genie
Where: From the contact
Description: Software using Expect, Bourne shell, and C which provides
	a gateway between GEnie and/or Compuserve Information Systems and
	a local moderated Usenet newsgroup.
Contact: [email-masked] (David Beckemeyer)

What: User-Maint
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/UserMaint_V1.0.tar.Z
Description: a Tk based user account maintenance package for maintaining
	/etc/passwd, /etc/group, etc.
Contact: eads@mickey (Charles Eads)

What: user-setup
Where: ftp://ftp.eng.auburn.edu/pub/Modules/user-setup2.0.tar.Z
Description: Menu driven interface to the Modules package.
Contact: [email-masked] (Richard Elling)

What: VMS port of Tcl/Tk
Where: ftp://src.honeywell.com/pub/tcl67-tk32-on-vms55.tar.Z
Description: Port of most of Tcl 6.7 and Tk 3.2 done by a number of folk.
Contact: [email-masked] (John Kimball)

What: VxWorks port of Tcl 7.0
Where: ftp://thor.atd.ucar.edu/pub/vx/tclvx7.0.v4.tar.gz
Description: This is a beta version of the Tcl 7.0 port to VxWorks.
Contact: Joe VanAndel <[email-masked]>

What: Wafe
Where: ftp://ftp.wu-wien.ac.at/pub/src/X11/wafe/wafe-0.96.tar.Z
Description: Symbolic interface to Athena Widgets.  Note that this
	can be used with Xaw3d-0.1.tar.Z to get 3-D Athena widget
	presentation.
Contact: [email-masked]

What: Wafe graphical cross-reference browser
Where: From the contact
Description: A graphical interface to cref written in Wafe and perl.
Contact: [email-masked] (Mike Eggleston)

What: Wafeperl
Where: ftp://ftp.wu-wien.ac.at/pub/src/X11/wafe/wafeperl-0.2.tar.gz
Description: A version of Perl enhanced with Wafe extensions.  Contact
	has also posted at least one patch.
Contact: [email-masked] (Gustaf Neumann)

What: widget server
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/ws1.0.tar.Z
Description: Widget server designed for use with the X11/emacs program epoch.
Contact: [email-masked] (Brian L. Kahn)

What: wish compiler
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/wish_compiler.shar.Z
Description: Builds a self-contained "wish" application binary that can
	be executed independently of the presence of Tcl 7 and Tk 3.3 on
	the target system.
Contact: Stephen Uhler <[email-masked]>

What: wtour
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/wtour2.0.tar.Z
Description: Source for the Tk 3.x Widget tour.  Binaries for 386BSD, HP/Apollo
	DEC Alpha AXP (OSF), DEC MIPS (ULTRIX), Linux (386),
	HP PA-RISC, IBM RS/6000, SCO 386, Sun SPARC, SGI Irix are
	available.
Contact: "Andrew Payne" <[email-masked]>

What: XBrowse
Where: From the contact
Description: Tk file browser.  Uses some of the Sekora jlibrary routines.
Contact: [email-masked] (Phil J Smith)

What: xcal
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xcal.tcl.Z
Description: Simple calendar display.
Contact: Mitch Dsouza <[email-masked]>

What: Xdig
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/Xdig.shar.Z
Description: A Wish-based interface to the Domain Internet Groper (dig)
Contact: "Dave Collier-Brown" <[email-masked]>

What: xelem
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xelem-1.10.tar.Z
Description: A Wish-based hypertext periodic table of chemical elements.
Contact: [email-masked] (Przemek Klosowski)

What: xf
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xf2.3pl0.tar.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/docs/xf-doc.ps.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/docs/xf-doc-us.ps.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/docs/xf-doc-legal-nopics.dvi.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/docs/xf-doc-legal-nopics.ps.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/docs/xf-doc-legal.ps.Z
	ftp://ftp.cs.tu-berlin.de/pub/tcl/contrib/code/xf2.3pl0.tar.gz
Description: user interface builder for Tk 2 and 3.
Contact: send a "sub xf-l Your Name" line to [email-masked]
	to subscribe to the XF mailing list
	"Sven Delmas" <[email-masked]>

What: xf, Japanization version
Where: ftp://srawgw.sra.co.jp/pub/lang/tcl/jp/xf2.2pl5jp-patch.Z
Description: This Japanization patch includes the Japanese translation
	of xftutorial scripts. Requires Japanized Tk extension.
Contact: [email-masked] (Yoshiyuki NISHINAKA)

What: xka
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xka-0.91.tar.gz
Description: Tk based rolodex-like application.
Contact: [email-masked]

What: xmpeg
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xmpeg_0.5.tar.Z
	ftp://ftp.cis.ufl.edu/pub/xmpeg/xmpeg_0.5b.tar.Z
Description: a Tk/Tcl based front end to mpeg_play.
Contact: Alexei Rodriguez <[email-masked]>

What: Xnetlib
Where: From the contact
Description: A file retrieval application, developed to support file
	distribution similar to Netlib.  A demo of the software was
	planned for a November conference.
Contact: "Reed Wade" <[email-masked]>

What: xpel
Where: ftp://cs.unc.edu/pub/XPEL/
Description: X Pseudo-servers built with X Protocol Engine Library.  Uses
	both Tcl and Safe-Tcl for various purposes.
Contact: [email-masked] to get on mailing list.

What: xpole
Where: Unknown
Description: A digital filter design and exploration program
	written in tcl/tk (with a few widgets written in C).
Contact: Unknown

What: xreconfirm
Where: From the contact
Description: Provide user-friendly interface to repetitive tasks which need
	logged.  Requires TclX's tcl command for the daemon, and no
	more than core Tcl/Tk for the remainder.
Contact: [email-masked] (Peter Grina)

What: xscript
Where:  ftp://ftp.x.org/contrib/xscript.tar
Description: Collection of X11 shell programs which can be used in pipelines.
	Some of the tools need tclMotif to link.
Contact: [email-masked] (Jan Newmarch)

What: XTeX
Where: ftp://tsx-11.mit.edu/pub/linux/packages/TeX/XTeX-0.9.tar.gz
Description: Tk based shell around LaTeX/TeX, providing hypertext
	help, interactive editor, and spell checking.
Contact: [email-masked] (hofmann)

What: YART
Where: ftp://metallica.prakinf.tu-ilmenau.de/pub/PROJECTS/YART.tar.Z
	ftp://ftp.luth.se/pub/graphics/sources/oographics/YART.tar.Z
	ftp://wuarchive.wustl.edu/graphics/graphics/mirrors/
	ftp://metallica.prakinf.tu-ilmenau.de/YART.tar.Z
Description: A C++/Tk 3.2 Raytracer/Renderer.
Contact: [email-masked]

What: Zap Interpreters
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/zapinterps.shar.Z
Description: Simple Tk script to clear out all wish interpreters which
	died without being removed.
Contact: [email-masked] (Spencer W. Thomas)

What: Zircon
Where: ftp://catless.ncl.ac.uk/Programs/Zircon/zircon1.15.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/zircon-1.14.tar.gz
	ftp://coombs.anu.edu.au:/pub/irc/tcl/
Description: A Tk interface to IRC, requiring Tcl 6.7, Tk 3.2 and Tcl-DP V1.0ak.
Contact: [email-masked]

What:
Where:
Description:
Contact:

End of comp.lang.tcl Frequently Asked Questions (4/5)

---

From: [email-masked] (Larry W. Virden)
Date: Tue, 22 Feb 1994 21:37:53 GMT

Archive-name: tcl-faq/part5
Version: 4.6
Last-modified: February 22, 1994

	For more information concerning Tcl (see "tcl-faq/part1"),
(see "tcl-faq/part2"), (see "tcl-faq/part3"), or (see "tcl-faq/part4").

Index of questions:

XIII. Since Tcl/Tk appear to be extensible, are there any common extensions?
	o adatcl
	o addinput
	o argument processing for Tcl
	o argument parsing with defaults
	o array name string matching extension
	o binary I/O
	o BLT toolkit
	o busy window
	o C++ compilation of tk
	o C++ Tcl objects
	o calculator
	o Calc_Object
	o calendar
	o Canvas bitmap mask extension
	o Canvas support of printing umlaut
	o Canvas support of open Tcl file
	o CASTE
	o command line bindings for entry widget
	o colorfocus replacement system
	o color settings
	o ctaxt
	o dashproc
	o dashed items in canvas
	o DBM 1.6 interface
	o define bitmaps in tk scripts
	o deck.tk
	o Directed Acyclic Graph (DAG) widgets
	o Disjoint listbox selections (Ewing)
	o Disjoint listbox selections (Ewing/Lutz)
	o Disjoint listbox selections (Raines)
	o Dynamic loading wish
	o Enabled Mail
	o file I/O as events
	o file select (sherman)
	o file select (Silva)
	o font settings
	o foreach additional list enhancement
	o FSBox - file selection box
	o fumx
	o GDBM Tcl interface
	o getdate
	o GLXAux bindings
	o graph
	o GroupKit
	o HTML for Alpha
	o Hush
	o iconbutton
	o [incr Tcl]
	o Informix interface
	o Jungle
	o Key List printing procedures
	o Key symbol dynamic support
	o Key symbols enhanced support
	o Lamda pure Tcl functions - noble
	o Lamda anonymous procedures - thomas
	o Lamda functions - Tromey
	o Lamda functions - Wallach
	o lassign
	o Lightweight plotting to canvas
	o lisp2wish (Kaye)
	o lisp2wish (Kramer)
	o list select
	o list quicksort
	o Major / Minor command support
	o Moat
	o moreButtons
	o mouse button release command
	o Multibyte Support for Tk
	o Multi-column menus for Tk 3.6
	o Multiple Extensions Management and Dynamic Linking
	o Multiple interpreter support
	o Nautilus
	o net CDF
	o Network management
	o NextStep / Tcl interface
	o NIS+ interface library
	o Objective C / Tcl library
	o Open Scripting Architecture (Apple) Extension
	o Oracle extension to Tcl.
	o Pacco (Pavia Active-Component Compound Objects)
	o Pack widget with no shrink option
	o package extension
	o Pie menus
	o Photo widget
	o Pixmap support
	o Postgres extensions
	o procedure tracing
	o Prolog / Tcl interface
	o pset
	o PV-WAVE interface
	o Salmon random numbers
	o structure like objects in Tcl
	o readline-like function support for tcl
	o readline-like function support for tk
	o readline-like function support for tk - miguel
	o RenderMan bindings
	o Reregister interpreter name
	o Safe Tcl Interpreter
	o Scheme-based Tk
	o searchbox
	o secure tcl
	o showproc.tcl
	o SIPP extensions
	o Spreadsheet
	o SQL support
	o SunOS dld package
	o Sybase Tcl
	o System V ipc
	o tcl and tk shared library support (Brown)
	o tcl and tk shared library support (Salmon)
	o tcl and tk shared library support (Zhu)
	o tcl debugger (libes)
	o tcl debugger (extended tcl)
	o Tcl externals
	o Tcl getopt - earls
	o Tcl getopt - mangin
	o Tcl IPC interface
	o Tcl Packages
	o Tcl Packages simplified
	o Tcl SQL
	o Tcl-DP
	o tcl2array
	o tclcompare
	o tclIV
	o tclMIDI
	o tclOBST
	o tclprof
	o tclRawTCP
	o tclsockets
	o tclTCP
	o Tcl/Tk Japanized; support for Kanji
	o tclvogle
	o Extended Tcl (tclX)
	o tclX / Tk merge
	o tclX dynamic library patches
	o tclXt
	o tclXtsend
	o tcl_object
	o tcl_streams
	o tcpConnect
	o TDebug
	o text widget enhancements
	o text widget improved bindings
	o text widget underline colors
	o theObjects
	o Tix widget set
	o Tk auxilary library of bindings
	o tk Bell and Cutbuffer patches
	o Tk Canvas Segments
	o Tk Emacs bindings
	o Tk Emacs widget
	o Tk focus follows pointer
	o TkIcon
	o tkInput
	o TkMegaWidget
	o Tk menu insert subcommand
	o tk mwm enhancements
	o Tk Perl 4
	o Tk Perl 5
	o tk RichText Format widget
	o Tk without X (beta)
	o tk-mod.shar
	o tkCanvSeg
	o tkFScale
	o tkGLXwin
	o TkSteal
	o tkText (Tk 1.3 compatible - Christenson)
	o tkText (Tk 1.3 compatible - Cole)
	o tkText (Tk 2.0 compatible)
	o TkWindow access
	o tk equivalent of XTextWidth
	o Tooltalk interface
	o Transportable Objects
	o tree widget (brighton)
	o tree widget (richardson)
	o turtle graphics
	o validate
	o varframe
	o warp
	o widgetTree
	o wmstuff
	o X11 Selection support enhancement
	o X11 visual selection subcommand
	o X11 XID enhancement - kaplan
	o X11 XID enhancement - hoegeman
	o XView Drop support
	o Zircon

XIV. Is there any commercial use of Tcl/Tk?

End of FAQ Index

From: FAQ Tcl/Tk Package Catalog
Subject: -XIII- Since Tcl/Tk appear to be extensible, are there any
		common extensions?

What: adatcl
Where: ftp://ftp.cs.colorado.edu/pub/cs/distribs/arcadia/adatcl7.3.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/adatcl7.3.tar.gz
Description: Interface between Verdix/Sunada compiler and Tcl.
Contact: [email-masked] (Dennis Heimbigner)

What: addinput
Where: ftp://ftp.neosoft.com/pub/distrib/addinput-3.6a.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/addinput-3.6a.gz
Description: Implements two new Tk file handle callback commands.
Contact: "Mark Diekhans" <[email-masked]>

What: argument processing for Tcl
Where: From the contact
Description: Provides Tk-like argument processing to Tcl proc writers.
Contact: [email-masked] (Karl Lehenbauer)

What: argument parsing with defaults
Where: From the contact
Description: Tcl code to parse arguments and provide default values.
	See theObjects-2.x for a C version.
Contact: [email-masked] (Juergen Wagner)

What: array name string matching extension
Where: From the contact
Description: A small extension to tclVar to allow a pattern to be
	used with the "array names" command.  An array used as a
	2D-array by having elements of the form:  matrix(x,y) could be
	accessed by: array names matrix "1,*" to return all elements in
	the first column.
Contact: [email-masked] (Stephen A Uhler)

What: binary I/O
Where: From the contact
Description: Tcl based way of reading binary data containing nulls.
Contact: "John Robert LoVerso" <[email-masked]>

What: BLT toolkit
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/BLT-1.5.tar.gz
Description: Library of Tk extensions.  Includes new versions of
	x/y graph, barchart, hypertext, and busy widgets, a table geometry
	manager, read and write bitmap commands, cut buffer, bell,
	minor window manager interfaces, drag and drop support,
	and several useful debugging commands.
Contact: [email-masked] (George A. Howlett)

What: busy window
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/busy-1.1.tar.Z
Description: Tk extension to create a busy command which prevents the
	user from clicking on application buttons while the program is busy.
	The author/contact recommends you move to the BLT toolkit.
Contact: [email-masked] (George A. Howlett)

What: C++ compilation of tk
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tk3.6forC++.patch.gz
Description: A patch that allows tk 3.2 main.c and other extension routines
	to be compiled with a C++ compiler.
Contact: Ken Yap <[email-masked]>

What: C++ Tcl objects
Where: From the contact
Description: C++ code which allows you to develop software in C++
	and create C++ objects which implemented in Tcl/Tk.
Contact: [email-masked] (Stephan Herrmann)

What: Calc_Object
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/bc.tar.Z
Description: A Tcl object which talks to bc via expect.
Contact: "Terrence Brannon" <[email-masked]>

What: calculator
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/calculator.tk.tar.Z
Description: Simple Tk calculator
Contact: "Richard Booth" <[email-masked]>

What: calendar
Where: From the contact
Description: Tk calendar widget
Contact: [email-masked] (Sani Nassif [227])

What: Canvas bitmap mask extension
Where: From the contact
Description: Patch file for tkCanvBmap to add a -mask option for drawing
	bitmaps.
Contact: [email-masked] (Thomas A Fine)

What: Canvas support of printing umlaut
Where: From the contact
Description: Patch to prolog.ps to allowing printing of umlauts.
Contact: jfh@ES-sun2 (Johann Friedrich Heinrichmeyer)

What: Canvas support of open Tcl file
Where: From the contact
Description: Tk 3.6 canvas postscript subcommand enhancement to accept
	open Tcl file in -file option.
Contact: [email-masked] (Tom Tromey)

What: CASTE
Where: From the contact
Description: o-o programming based on Common Lisp Object System (CLOS)
Contact: [email-masked] (Michael Braverman)

What: command line bindings for entry widget
Where: From the contact
Description: Bindings to turn an entry widget into a command line.
Contact: [email-masked] (Gregor Schmid)

What: colorfocus replacement system
Where: From the contact
Description: Tk replacement code to inform the window manager about
	non-standard colormaps.
Contact: [email-masked] (Paul Mackerras)

What:  color settings
Where: From the contact
Description: Tcl procedure to select appropriate color whether machine is
	color or monochrome
Contact: [email-masked] (Juergen Wagner)

What: ctaxt
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/ctaxt1.1.tar.gz
Description: Combine Tcl/Tk with other X Window toolkits (like Motif)
	into a single graphical user interface.
Contact: Holger Pleiss <[email-masked]>

What: dashproc
Where: From the contact
Description: Defines procedures that take Tk like options and forces them
	to become variables in your procedure.
Contact: [email-masked] (Phil Gordon)

What: dashed items in canvas
Where: ftp://zenon.inria.fr/pub/tk/tkCanvDashed.tar.Z.
Description: New function to be linked into interpreter.
Contact: [email-masked] (Frank Mangin)

What: DBM 1.6 interface
Where: From the contact
Description: A Tcl interface to db-1.6 , the new BSD dbm replacement.
Contact: [email-masked] (Poul-Henning Kamp)

What: define bitmaps in tk scripts
Where: From the contact
Description: Add a Tk command called defbitmap which allows you to define the
	hex codes for a bitmap to be used in a script.
Contact: [email-masked] (Makoto Ishisone)

What: deck.tk	
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/deck.tk.Z
Description: A simple implementation of InterViews "deck" widget
Contact: [email-masked] (Joe VanAndel)

What: Directed Acyclic Graph (DAG) widgets
Where: From the contact
Description: Tk DAG display widget (computed in LISP and visualized in Tk).
	To be made available in May, 1993.
Contact: [email-masked] (Juergen Wagner)

What: Disjoint listbox selections (Ewing)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/Listbox.patch.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/MListbox-patch
Description: Tk 3.x listbox Disjoint selections.
Contact: "Marc R. Ewing" <[email-masked]>
	"Heiko Schroeder" <[email-masked]>

What: Disjoint listbox selections (Ewing/Lutz)
Where: From the contact
Description: Port of Ewing's patch to the latest Tk.
Contact: [email-masked] (Dale Lutz)

What: Disjoint listbox selections (Raines)
Where: From the contact
Description: Code similar to that used by TkMail generalized.
Contact: [email-masked] (Paul E. Raines)

What: SunOS dld package
Where: From the contact
Description: Tcl front end for SunOS 4.x dynamic loading routines.
Contact: "Jean-Luc Chatelain" <[email-masked]>

What: Dynamic loading wish
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/dlwish.tar.gz
Description: Assists in building a wish with a load command which can
	be used to incorporate a Tcl/Tk library which has been
	dynamically linked and follows the Bollini format.
Contact: [email-masked] (Michael Moore)

What: Enabled Mail
Where: ftp://ftp.ics.uci.edu/mrose/safe-tcl/safe-tcl.tar.Z
Description: Incoming email processing tool based on Tcl.  Software
	also available which can build MIME messages and send them.
	Incoming email processing includes ability to execute
	encapsulated Tcl programs at delivery or upon viewing.
Contact: [email-masked]

What: file I/O as events
Where: From the contact
Description: A Tk file handler command which uses Tk_CreateFileHandler().
Contact: [email-masked]

What: file select (Silva)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/fileselect.tcl.gz
Description: file selector box
Contact: "Mario Jorge Silva" <[email-masked]>

What: file select (sherman)
Where: From the contact
Description: A "more over-developed file-selection mechanism".
Contact: [email-masked] (Aaron Sherman)

What: Tk focus follows pointer
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/focus3.1a.PATCH.Z
Description: Tk 3.[12] patch to implement focus follows pointer and
	key propagation model.
Contact: "Kennard White" <[email-masked]>

What: font settings
Where: From the contact
Description: Tcl package "getfont" which returns a font matching request
	as closely as possible.
Contact: [email-masked] (Spencer W. Thomas)

What: foreach additional list enhancement
Where: From the contact
Description: Enhance the Tcl foreach to support more than one list.
Contact: [email-masked] (Wayne A. Christopher)

What: FSBox - file selection box
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/FSBox.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkFSBox.tar.Z
Description: Tk 3.x File Selection dialog box
Contact: "Sven Delmas" <[email-masked]>

What: fumx
Where: ftp://ftp.dcs.gla.ac.uk/pub/glasgow-fp/authors/Duncan_Sinclair/fumx.*
Description: Tk/Tcl extention that allows it to front-end other languages.
Contact: [email-masked]

What: GDBM Tcl interface
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclgdbm1.0.tar.gz
Description: A Tcl interface to the GNU dgm database software.
Contact: [email-masked] (Tuan Doan)

What: getdate
Where: From the contact
Description: Adds getdate command to tcl interpreter.
Contact: [email-masked] (Michael Hoegeman)

What: GLXAux bindings
Where: ftp://ftp.cs.princeton.edu:/incoming/dwallach/glxaux-1.0.tar.gz
Description: Set of Tcl bindings for most GL commands and
	Perl script to generate Tcl bindings given prototypes of
	C procedures.
Contact: [email-masked] (Dan Wallach)

What: graph
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/graph-1.1.tar.Z
Description: XY graphic plot and hypertext widgets for Tk 2.x
	The author/contact recommends you move to the BLT toolkit.
Contact: "George Howlett" <[email-masked]>

What: GroupKit
Where: ftp://ftp.cpsc.ucalgary.ca/pub/grouplab/software/groupkit-2.3.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/groupkit-1.0.tar.Z
Description: Tcl/Tk based version of InterViews GroupKit.
Contact: Saul Greenberg <[email-masked]>,
	Mark Roseman <[email-masked]>

What: HTML for Alpha
Where: From the contact.
Description: an early version of an HTML editing mode for
	the MacOS Tcl-based Alpha editor.
Contact: Scott W Brim <[email-masked]>

What: Hush
Where: ftp://ftp.cs.vu.nl/eliens/hush-1.0.tar.Z
	ftp://ftp.cs.vu.nl/eliens/hush-contrib-1.0.tar.Z
Description: C++ API for Tcl/Tk
Contact: [email-masked] (A Eliens)

What: iconbutton
Where: From the contact
Description: Tk 1.4 button widget which displays bitmap
Contact: [email-masked] (Trevor Lowe)

What: [incr Tcl]
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/itcl-1.3.tar.Z
Description: Set of extensions to support object-oriented programming in Tcl.
Contact: [email-masked] (Michael J. McLennan)

What: Informix interface
Where: From the contact
Description: Interface between Informix and Tcl/TK.
Contact: [email-masked]

What: Jungle
Where: From the contact
Description: Tcl based WWW server
Contact: [email-masked]

What: Key List printing procedures
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/keylprint.tlib.Z
Description: Pretty printing TclX keylists for human consumption.
Contact: [email-masked] (Spencer W. Thomas)

What: Key symbol dynamic support
Where: From the contact
Description: patch to tkBind.c to look up non-standard Key symbols using Xlib.
Contact: [email-masked]

What: Key symbols enhanced support
Where: From the contact
Description: Tk enhancement for additional keysym support.
Contact: [email-masked] (Michael Salmon)

What: Lamda pure Tcl functions - noble
Where: From the contact
Description: Provide support for unnamed procs in Tcl.
Contact: [email-masked] (R James Noble)

What: Lamda anonymous procedures - thomas
Where: From the contact
Description: Set of Tcl modifications to allow definition of anonymous
	(unnamed) procedures
Contact: [email-masked] (Spencer W. Thomas)

What: Lamda functions - Tromey
Where: From the contact
Description: Hack to the unknown function to provide a simple
	implementation of anonymous lamda functions.
Contact: [email-masked] (Tom Tromey)

What: Lamda functions - Wallach
Where: From the contact
Description: Simple proc to provide a lamda-like capability in Tcl.
Contact: [email-masked] (Dan Wallach)

What: lassign
Where: From the contact
Description: Assign elements of list to the given variables.
Contact: [email-masked] (Michael Halle)

What: Lightweight plotting to canvas
Where: From the contact
Description: Extension to TkPixmap to support plotting, clearning and
	copying of user-defined pixmaps to a canvas.
Contact: Martin Smith <[email-masked]>

What: lisp2wish (Kaye)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/lisp2wish6.tar.Z
Description: Wish to Common Lisp interface
Contact: [email-masked] (Jonathan Kaye)

What: lisp2wish (Kramer)
Where: From the contact
Description: Common Lisp to tk interface
Contact: [email-masked] (Bryan M Kramer)

What: list select
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/listselect.tcl.Z
Description: Simple file selector
Contact: "Mario Jorge Silva" <[email-masked]>

What: list quicksort
Where: From the contactd
Description: short set of Tcl routines which implement the quicksort
	algorithm over lists using user-defined comparison function.
Contact: [email-masked] (Nat Pryce):w

What: Major / Minor command support
Where: From the contact
Description: Set of modifications to Tcl 6.7/Tk 3.2 to allow the
	dynamic definition of new major and minor commands into Tcl/Tk.
Contact: David Herron <[email-masked]>

What: Moat
Where: ftp://ftp.x.org/contrib/tclMotif.1.1.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclMotif.1.1.tar.Z
Description: A Tcl shell (moat) which uses Motif widgets rather than
	Tk widgets.
Contact: [email-masked] (Jan Newmarch)

What: moreButtons
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/moreButtons-1.0.tar.Z
Description: Small collection of extensions to Tk 3.4 which add a simple
	triangular button like the ones at the ends of scroll bar
	and a button which can have both bitmap and text.
Contact: [email-masked] (Daniel Simmons)

What: mouse button release command
Where: From the contact
Description: A Tk command to indicate explicitly that the mouse button
	has been released - resolves problems where local grabs and
	mouse button conflicts are encountered.
Contact: [email-masked] (Andy Golding)

What: Multibyte Support for Tk
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/patch-16bit.0.2.1.tar.Z
Description: Tk 3.2 support for 2 byte character strings.
Contact: [email-masked] (Kazuro Furukawa)

What: Multi-column menus for Tk 3.6
Where: From the contact
Description: Patch to implement multi-column menus for tk3.6.
Contact: [email-masked] (Thomas Schilz)

What: Multiple Extensions Management and Dynamic Linking
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/shells-1.1.tar.gz
Description: A small package for dynamic loading of Tcl/Tk extensions as
	suggested during the Tcl 93 Workshop.  Includes a basic Tcl shell,
	a modified wish shell, and a dynamic extension loader for SunOS.
Contact: [email-masked] (Alessandro Bollini)
	"Alessandro Rubini" <[email-masked]>

What: Multiple interpreter support
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/minterp-0.9.tar.Z
Description: Create/control Multiple Interpreters from TCL, and also
	Object Oriented Programming.
Contact: David Herron <[email-masked]>

What: Nautilus
Where: From the contact
Description: A browser for [incr tcl] classes.
Contact: [email-masked]

What: net CDF
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/net_tcl.tar.Z
Description: Tcl wish with hooks for netCDF (??)
Contact: Unknown

What: Network Management / SNMP
Where: ftp://nexus.yorku.ca/pub/tcl_snmp/
	ftp://ftp.ibr.cs.tu-bs.de/pub/languages/tcl/contrib/tcl_snm/
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tcl_curses.shar.Z
Description: An initial implementation of an API for SNMP.  This is currently
	being reworked in the light of SNMPv2.  Please check with the mail-
	server for current status.  Send a help line to the mailserver
	for details of signing up for the SNMP tcl mailing list.
	Also note that packages such as
	tcl_curses, tcl_dbm, tcl_mib, tclnm, and tcl_snmp or tk_snmp
	are available.
	Contact the mailing list to ask for details.
Contact: [email-masked] (Mailing service daemon)

What: NeXTSTEP / Tcl interface
Where: ftp://media.mit.edu/pub/WavesWorld/WW1.0B2Complete.tar
	ftp://media.mit.edu/pub/WavesWorld/WW1.0B2SrcOnly.tar
Description: This is a strictly NeXTSTEP interface.  One of the two palettes
	included in this release is WWTCLWidgets one take on how to integrate
	Tcl into the NeXTSTEP development environment.
	The other palette makes use of the Tcl widget pallette.
	The other WavesWorld palettes, on media.mit.edu:pub/WavesWorld,
	integrate Tcl into IB, complete with a suite of UI objects,
	and a 3D modeling language called eve, which is basically tcl with a
	full RenderMan binding.  The WWTCLWidgetsPalette includes a WWTCLInterp,
	which is an objective-C wrapper around a Tcl interp.
Contact: "Michael B. Johnson" <[email-masked]>

What: NIS+ interface library
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/nistcl-0.01.tar.gz
	ftp://csi.jpl.nasa.gov/pub/tcl/nistcl-0.01.tar.gz
Description: Super pre-alpha release of a TCL interface SunOS 5.x NIS+ library.
Contact: [email-masked] (Matt Wette)

What: Objective C / Tcl library
Where: ftp://cs.rochester.edu/pub/libcoll/libtclobjc-0.1.tar.gz
	ftp://ftp.informatic.uni-muenchen.de/pub/comp/platforms/next/Developer/resources/libraries/
Description: A library consists of objects and support functions for
	communicating between Objective-C and Tcl/Tk.  From Tcl you can send
	messages to Objective-C objects and get textual representations of
	what's returned.  The library requires gcc-2.5.2 or higher,
	tcl-7.3, tk-3.6, libcoll-931026, libreadline and GNU make.
Contact: [email-masked] (R. Andrew McCallum)

What: Open Scripting Architecture (Apple) Extension
Where: ftp://ftp.msen.com/pub/vendor/ice
Description: Mac tickle extension for Apple's OSA communication.
Contact: Tim Endres

What: Oracle extension to Tcl.
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/oratcl-2.0.tar.gz
Description: Provide access to a Oracle Database server from within Tcl.
	Based on Tcl 7.3.
Contact: "Tom Poindexter" <[email-masked]>

What: Pacco (Pavia Active-Component Compound Objects)
Where: ftp://iride.unipv.it/pub/Pacco/
Description: A way to manage objects in a distributed environment.  Uses
	Tcl 6.7/Tk 3.2, and prefers use of the shells-1.0 environment.
Contact: [email-masked] (Alessandro Rubini)
	[email-masked] (Alberto Biancardi)

What: Pack widget with no shrink option
Where: From the contact
Description: Code to add a noshrink option to Pack so that each button
	can be the same size.
Contact: [email-masked] (Brent Welch)

What: package extension
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/package0.1.patch.Z
Description: Tcl 7 extension to allow collections of related variables
	and procedures.
Contact: [email-masked] (Cimarron Taylor)

What: Pie menus
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkpie.tar.Z
Description: Menus presented as a slice of a pie rather than a box.
Contact: [email-masked] (Don Hopkins)

What: Photo widget
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/photo-2.3.tar.Z
	ftp://dcssoft.anu.edu.au/pub/tk/photo-2.3.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/photo.tar.Z
Description: widget which displays a monochrome or color image using dithering
	(photo.tar.Z is an older version).
Contact: [email-masked] (Paul Mackerras)

What: Pixmap support
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/TkPixmap3.6d.tar.gz
	ftp://coma.cs.tu-berlin.de/pub/tcl/extensions/TkPixmap3.6d.tar.Z
Description: Tk 3.x tkBitmap.c modification to support pixmap images with
	-bitmap option.  Supports Xpm3, bitmap, and gif.
Contact: [email-masked] (Sven Delmas)

What: Postgres extensions
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/PQTcl.tar.Z
Description: C and C++ versions of interface to the UCB libPQ Postgres
	relational database.
Contact: [email-masked] (Robin J. Maxwell)

What: procedure tracing
Where: From the contact
Description: Tcl procedure tracing package.
Contact: [email-masked] (Brian Smith)

What: Prolog / Tcl interface
Where: ftp://clement.info.umoncton.ca/pub/BinProlog/BinProlog.2.20.tar.gz
Description: Prolog environment which allows one to also manipulate
	Tcl and Tk objects.
Contact: [email-masked].

What: pset
Where: From the contact
Description: Proc which allows a parallel set command.  Note that at least
	two versions of this were posted.
Contact: [email-masked] (Ted Dunning)

What: PV-WAVE interface
Where: From the contact
Description: Tcl interfaces to PV-WAVE.
Contact: Joe Van Andel <[email-masked]>

What: Salmon random numbers
Where: From the contact
Description: Tk script displaying Salmon random function.
Contact: [email-masked] (Glen Fullmer)

What: Libes random numbers
Where: From the contact
Description: Modified Samon random function for better behavior.
Contact: [email-masked] (Don Libes)

What: structure like objects in Tcl
Where: From the contact
Description: A Tcl command that lets you use arrays similarly to structs.
Contact: [email-masked] (Bill Burdick)

What: readline-like function support for tcl
Where: From the contact
Description: Mods to tclMain to provide support for the GNU readline
	interface or with a few changes another similar interface.
Contact: [email-masked] (Roger West)

What: readline-like function support for tk
Where: From the contact
Description: Mods to bind readline into wish.
Contact: [email-masked] (Matt Wette)

What: readline-like function support for tk - miguel
Where: From the contact
Description: Tk 3.6 patches for readline support.
Contact: [email-masked] (Miguel de Icaza)

What: RenderMan bindings
Where: From the contact
Description: Set of bindings to external RenderMan toolkit.
Contact: [email-masked] (Michael B. Johnson)

What: Reregister interpreter name
Where: From the contact (or from the mxedit source code)
Description: Code allows user to change the name of the interpreter.
Contact: [email-masked] (Brent Welch)

What: Safe Tcl Interpreter
Where: From the contact
Description: Tcl cmds to provide some level of security.
Contact: [email-masked] (Karl Lehenbauer)

What: searchbox
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/searchbox-1.0.1.tar.Z
Description: Tk widget written that provides Emacs-like searching bindings
	and incremental, exact and regular expression searching
	abilities to Tk text widgets.
Contact: [email-masked] (Tom Phelps)

What: secure tcl
Where: From the contact
Description: Extension to provide a send message evaluator
Contact: [email-masked] (Thomas A Fine)

What: Scheme-based Tk
Where: ftp://kaolin.unice.fr/pub/STk-1.00.tar.gz
Description: Implementation of Tk replacing Tcl with Scheme.
Contact: [email-masked] (Gallesio Erick)

What: showproc.tcl
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/showproc.tcl.Z
Description: A new showproc
Contact: [email-masked] (Lance Ellinghouse)

What: SIPP extensions
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tsipp-3.0c.tar.Z
	ftp://ftp.neosoft.com/pub/tcl/distrib/tsipp3.0c.tar.Z
Description: 3D rendering toolkit for Tcl and Tk based on the SImple
	Polygon Processor (SIPP)
Contact: [email-masked] (Mark Diekhans)

What: Spreadsheet
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/newspread.tar.Z
Description: Tk spreadsheet like widget, built using canvas and text
	widgets.
Contact: [email-masked]. (Craig Struble)

What: SQL support
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/isqltcl.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/sql_tcl.tar.Z
Description: A standard document for adding SQL support in Tcl and
	full blown support for INFORMIX in Tcl/Tk.  Now at version 2.1.
Contact: "Srinivas Kumar" <[email-masked]>

What: System V ipc
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/svipc-2.1.1.tar.gz
Description: Tcl interface to System V IPC facilities.  Supports
	Tcl 7.3, Tk 3.6, TclX 7.3a.
Contact: "Joe Kelsey" <[email-masked]>

What: Sybase Tcl
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/sybtcl-2.0.tar.gz
Description: Tk 3.0+ interface to Sybase database server, using SQL.
Contact: [email-masked] (Tom Poindexter)

What: tcl2array
Where: ftp://ftp.isi.edu/pub/hpcc-papers/touch/tcl2array.tar.Z
Description: This package assists a developer in creating stand-alone
	tk/tcl applications.  This treats Tcl/Tk as truely embedded - the
	user of an application using this package won't have to install
	Tcl/Tk before using the application.
Contact: [email-masked] (Joe Touch)

What: tclcompare
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclcompare.Z
Description: Compare two lists for equality
Contact: "David Herron" <[email-masked]>

What: tcl and tk shared library support (Brown)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tk3.6.sharedlibs.patch.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tcl7.3.sharedlibs.patch.gz
Description: Set of patches which assume you use gcc 2.x.x which supports
	the -shared option
Contact: [email-masked] (Philip Brown)

What: tcl and tk shared library support (Salmon)
Where: From the contact
Description: Patches to Makefile.in that allows both HP/UX and SunOS 4
	to build shared libraries.
Contact: [email-masked] (Michael Salmon)

What: tcl and tk shared library support (Zhu)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tcltk_shlib0.4.tar.Z
Description: new Makefile.in files for Tcl and Tk to support
	building both shared and static libraries.
Contact: [email-masked] (Xiaokun Zhu)

What: tcl debugger (libes)
Where: ftp://ftp.cme.nist.gov/pub/expect/tcl-debug.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/tcl-debug.tar.gz
Description: Tcl debugger patterned after gdb and dbx which can be added
	easily to any Tcl/Tk application.
Contact: [email-masked] (Don Libes)

What: tcl debugger (extended tcl)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tcl.debugger.Z
Description: tclX source level limited debugger (patch to tclX)
Contact: "Karl Lehenbauer" <[email-masked]>

What: Tcl-DP
Where: ftp://mm-ftp.cs.berkeley.edu/pub/multimedia/Tcl-DP/tcl-dp3.1.tar.Z  
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tcl-dp3.1.tar.gz
	ftp://hplyot.obspm.fr/tcl/mirrors/tcl-dp/
	ftp://ftp.ibp.fr/pub/tcl/contrib/extensions/
Description: Tcl Distributed Programming - a public domain extension
	which adds TCP/IP connection management, remote
	procedure call and distributed object protocols to Tcl/Tk.
	Version 3.0 is a major rewrite.
Contact: [email-masked] or
	[email-masked]

What: Tcl extension tools
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/majorminor.tar.Z
Description: Extension to provide a development environment to ease
	implementing new commands within Tcl/Tk.
Contact: "David Herron" <[email-masked]>

What: Tcl externals
Where: From the contact
Description: Tcl 6.x package to implement external variables.
Contact: [email-masked] (Andreas Stolcke)

What: Tcl getopt - earls
Where: From the contact
Description: A Tcl-based getopt function.
Contact: [email-masked] (Johnson Michael Earls)

What: Tcl getopt - mangin
Where: From the contact
Description: A Tcl based getopt function.
Contact: [email-masked] (Frank Mangin)

What: Tcl IPC interface
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclipc1-0.tar.Z
Description: Implements Tk's send command without requiring Tk or X11.
Contact: "Kim Gillies" <[email-masked]>

What: tclIV
Where: ftp://ftp.cpsc.ucalgary.ca/pub/roseman/tclIV.tar.Z
Description: Tk wrappers for InterViews 3.1 widgets.
Contact: [email-masked] (Mark Roseman)

What: tclMIDI
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclm-1.0.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/xdrum-1.0.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclMIDI0.1.tar.Z
	ftp://ftp.sterling.com/usenet/comp.sources.misc/packages/xdrum
	ftp://ftp.sterling.com/usenet/comp.sources.misc/packages/tclm
	other comp.sources.misc archives
Description: Tclm is Tcl extended with Standard MIDI file manipulation
	commands.  xdrum is an extended Tk user interface with a new
	drum widget, which combines to create wishm.  Also includes Xdrum
	wishm script, which allows you to edit MIDI drum patterns.
Contact: [email-masked] (Mike Durian)

What: tclOBST
Where: ftp://ftp.fzi.de/pub/OBST/OBST3-3/
Description: Tcl library for the OBST persistent object management system.
Contact: [email-masked]

What: Tcl Packages
Where: ftp://toadflax.cs.ucdavis.edu/pub/TclPackage.tar.Z
Description: Provide ability to create enclosed groups of code which the
	user can load as a unit.
Contact: [email-masked] (Patrick C. Beard)

What: Tcl Packages simplified
Where: ftp://ftp.fzi.de/pub/OBST/OBST3-3/tclshells.tar.Z
Description: Small support package which simplifies building a
	customized Tcl/Tk interpreter.
Contact: [email-masked]

What: tclprof
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclprof.shar.Z
Description: Tcl performance profiling facility.  Works with Tcl 6.4.
	Comes as a part of tclX, but does not require it.
Contact: [email-masked] (Mark Diekhans)

What: tclRawTCP
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclRawTCP.shar.Z
	ftp.cs.tu-berlin.de
Description: Raw TCP package for Tcl/Tk based on tcpConnect
Contact: "Tim MacKenzie" <[email-masked]>

What: tclsockets
Where: From the contact
Description: Tcl extension to BSD sockets
Contact: [email-masked] (Lance Ellinghouse)

What: Tcl SQL
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclsql-1.0.tar.Z
Description: tclsql is a Tcl interface  to  SQL
	(Structured  Query Language).  Tclsql is probably INGRES 6.4
	specific, but it could be ported  to  other  SQL  platforms.
Contact: [email-masked] (Christopher Hylands)

What: tclTCP
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclTCP2.0.tar.gz
Description: Tcl BSD socket library extension
Contact: Joe Van Andel <[email-masked]>

What: Tcl/Tk Japanized; support for Kanji
Where: ftp://srawgw.sra.co.jp/pub/lang/tcl/jp/tcl7.3jp-update1.gz
	ftp://srawgw.sra.co.jp/pub/lang/tcl/jp/tk3.6jp-update1.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tcl7.3jp-update1.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tk3.6jp-update1.gz
Description: Patch to enable Tk/Tcl to use Kanji.
Contact: [email-masked] (Japanized Tcl Project)

What: tclvogle
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclvogle.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclvogleDOCS.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/vogleWish.sun4.exe.Z
Description: Tk [23]-D drawing widgets (alpha)
Contact: "Mike Hoegeman" <[email-masked]>

What: tcl_object
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tcl_object.tar.gz
Description: Combine C++ and Tcl.
Contact: Stephan Herrmann [email-masked]>

What: tcl_streams
Where: From the contact
Description: System V stream I/O library for Tcl
Contact: [email-masked] (Peter da Silva)

What: Extended Tcl (tclX)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclX7.3a-p1.tar.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclX7.3a-patch1.gz
	ftp://ftp.neosoft.com/pub/tcl/distrib/tclX7.3a-p1.tar.Z
	ftp://ftp.neosoft.com/pub/tcl/distrib/tclX7.3a-patch1.Z
Description: an essential package of extensions for Tcl.  Version 7.3a
	is compatible with Tcl 7.3/Tk 3.6.
Contact: [email-masked]

What: tclX dynamic library patches
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclX_dld.shar.Z
Description: Patches to tclX to support GNU dld (v. 3.2.3) dynamic libraries.
Contact: [email-masked] (Adrian J Ho)

What: tclX / Tk merge
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclX-tk2.0.shar.Z
Description: Replacement files to incorporate tclX with Tk 2.x
Contact: [email-masked] (Mark Diekhans)

What: tclXt
Where: posted to comp.lang.tcl - other locations unknown
Description: Tk hooks to allow calls to Xt routines.
Contact: Unknown

What: tclXtsend
Where: ftp://csc.canberra.edu.au/pub/motif/tclXtSend/tclXtSend.1.0.tar.Z
	ftp://ftp.x.org/contrib/tclXtSend.1.0.tar.Z
Description: Allow Xt applications to send msgs to Tk applications.
Contact: [email-masked] (Jan Newmarch)

What: tcpConnect
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tcpConnect.shar.Z
Description: Tcl/Tk TCP connect and Tk file handler extensions
Contact: "Pekka Nikander" <[email-masked]>

What: TDebug
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tdebug-0.9.tar.gz
Description: Tk debugger one sources into their scripts.  Allows single
	stepping, etc.
Contact: [email-masked] (Gregor Schmid)

What: text widget enhancements
Where: From the contact
Description: text widget wrapper
Contact: John Robert LoVerso <[email-masked]>

What: text widget improved bindings
Where: From the contact
Description: Improved text widget bindings, allowing you to get the
	pixel XY coordinates of an index, move up and down one display
	line, and select text using shift cursor movements.
Contact: [email-masked] (Eric J. Schwertfeger)

What: text widget underline colors
Where: From the contact
Description: Modification to text widget to support color for tagged text
	and different color for underline.
Contact: [email-masked] (Xavier Fornari)

What: theObjects
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/theObjects-2.3.tar.Z
Description: Small prototype-oriented object system.
Contact: [email-masked] (Juergen Wagner)

What: Tix widget set
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/Tix3.6a.tar.gz
Description: FileSelectBox, ComboBox, LabelFrame, ScrolledListBox
	DialogButtons widgets and more, all implemented in Tcl scripts.
	Includes more Motif-like bindings as well.
	Also includes a paper on writing Tk widgets in Tcl.
Contact: [email-masked]. (Ioi Kim Lam)

What: Tk without X (beta)
Where: ftp://toe.cs.berkeley.edu/pub/multimedia/misc/tknx0.3.tar.Z
Description: A version of Tk without the X dependent code.  Allows the
	construction of programs using send, after and a few of the
	other non-X specific commands.  Useful to use with Tcl-DP.
Contact: [email-masked] (Brian Smith)

What: Tk auxilary library of bindings
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkauxlib.tar.Z
Description: Extensive set of Tk enhancements to add more Motif
	compatibility in keyboard bindings, as well as add validation
	capabilities and other things.
Contact: [email-masked] (Kevin B. Kenny)

What: tk Bell and Cutbuffer patches
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/bellcut3.2.pat
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/bellcut.shar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkBellCutbuffer.shar.Z
Description: Tk 3.2, 2.3, and 2.1 patches to add bell and cutbuffer commands.
Contact: "Jim Davis" <[email-masked]>
	[email-masked] (Richard Ohnemus)

What: Tk Canvas Segments
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkCanSeg.patch.Z
Description: Create a Canvas Segment object which is one or more disjoint
	line segments.  A version for Tk 3.3b1 is also available.
Contact: "Scott Schwartz" <[email-masked]>

What: Tk Emacs bindings
Where: From the contact
Description: A set of Tk bindings for Text and Entry widgets to look like
	Emacs.
Contact: "Mark Weissman" <[email-masked]>

What: Tk Emacs widget
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/TkEmacs1.3.tar.Z
Description: Emacs widget for the Tk widget set.  Allows emacs-lisp code to
	be sent to emacs and Tcl code to be sent from emacs to Tcl.
	Works with tk2.3 and tk3.0 (and should work with tk3.1 when it
	is available).  Contains patches for GNU Emacs 18.58 and 18.59.
Contact: "Sven Delmas" <[email-masked]>

What: tkCanvSeg
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkCanvSeg.patch.Z
Description: Patch to Tk 3.2 to add canvas segments, which allows one
	to draw disjoint line segments more quickly.
Contact: "Scott Schwartz" <[email-masked]>

What: tkFScale
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkFScale-1.3.tar.Z
Description: Tk 3.3 Scale widget which uses floating-point values.
Contact: "Paul Mackerras" <[email-masked]>

What: tkGLXwin
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkGLXwin-1.3.2.tar.Z
	ftp://media.mit.edu/pub/tkGLXwin-1.3.2.tar.Z
Description: Tk 3.x Silicon Graphics Graphics Library widget interface.
Contact: "Michael Halle" <[email-masked]>

What: TkSteal
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/TkSteal3.6b.tar.gz
Description: Package to allow embedding of external applications
	(like emacs, ghostscript, xterm, etc.) into a Tk widget
	without changing the application.  Replaces TkEmacs.
Contact: [email-masked]

What: tk-mod.shar
Where: From the contact
Description: Alternative geometry managers for Tk 1.4
Contact: [email-masked]

What: TkIcon
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/TkIcon3.6a.tar.gz
Description: An extension to the canvas widget that adds native support
	for icons, edges and graphs.
Contact: [email-masked] (Sven Delmas)

What: tkInput
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkInput.tar.gz
Description: A transparent input-only Tk widget.
Contact: "Mark G. Christenson" <[email-masked]>

What: TkMegaWidget
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/TkMegaWidget3.6a.tar.gz
Description: Support new Tcl/Tk widgets allowing you to attach minor commands
	and options to a widget, or even a private interpreter.
Contact: [email-masked] (Sven Delmas)

What: Tk menu insert subcommand
Where: From the contact
Description: Tk 3.6 menu widget insert subcommand allowing you to
	insert anywhere in the menu.
Contact: [email-masked] (Tom Tromey)

What: tk mwm enhancements
Where: From the contact
Description: Tk patches to allow you to set the mwm decoration, add
	protocols to the mwm menus, etc.
Contact: [email-masked] (Ioi Kim Lam)

What: Tk Perl 4
Where: ftp://ftp.ira.uka.de/pub/misc/tkperl-0.010.tar.z
	ftp://ftp.cis.ufl.edu/pub/perl/src/tkperl/tkperl-0.010.tar.z
Description: An attempt to rewrite Tk under native Perl 4.x.
Contact: [email-masked],
	[email-masked] <Guenther Schreiner>

What: Tk Perl 5
Where: ftp://black.ox.ac.uk/src/ALPHA/tkperl5a1.tar.gz
Description: An attempt to rewrite Tk under native Perl 5.x, using its
	object oriented features and with callbacks/tracing not involving
	Tcl.
Contact: [email-masked] (Malcolm Beattie)

What: tk RichText Format widget
Where: ftp://multimedia.cc.gatech.edu/pub/tk-rtf-0.1.tar.Z
Description: Tk based Microsoft RichText File Format widget reader (pre-alpha).
Contact: [email-masked] (Ian Smith)

What: tkText (Tk 1.3 compatible - Cole)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkText-inst.tar.Z
Description: A Tk 1.3 tkText text widget and installation patches
Contact: "Derrick C. Cole" <[email-masked]>

What: tkText (Tk 1.3 compatible - Christenson)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkText.shar.Z
Description: A Tk 1.3 tkText text widget
Contact: "M. G. Christenson" <[email-masked]>

What: tkText (Tk 2.0 compatible)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkText-2.0.tar.Z
Description: A Tk 2.0 tkText text widget
Contact: "M. G. Christenson" <[email-masked]>

What: TkWindow access
Where: From the contact
Description: Trivial function to get at the Tk_Window of an event.
Contact: [email-masked]

What: tk equivalent of XTextWidth
Where: From the contact
Description: Tk wrapper for XTextWidth that computes the width of
	a medium width character in pixels.
Contact: [email-masked] (John May)

What: Tooltalk interface
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/toocl-1.4.tar.Z
	ftp://avahi.inria.fr/pub/toocl.tar.gz
Description: A Tcl/Tk interface to Tooltalk, based on Tcl 6.7 and Tk 3.2a.
Contact: [email-masked] (Cedric Beust)

What: Transportable Objects
Where: From the contact
Description: A [incr Tcl] class implementing a base transportable object class.
Contact: [email-masked] (Donald Edgar - SUN Scotland)

What: tree widget (brighton)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tree-3.4.tar
Description: Tk 3.6 based widget for displaying dynamic trees,
	written in C++.
Contact: [email-masked] (Allan Brighton)

What: tree widget (richardson)
Where: ftp://ftp.cs.tu-berlin.de/pub/tcl/code/hierQuery.tcl.gz
Description: Tk 3.3 based tree display widget, used by XF now.
Contact: david richardson <[email-masked]>

What: turtle graphics
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/TkTurtle-1.0.shar.Z
Description: Extended Tcl/Tk simple Logo-like turtle graphics package.
Contact: [email-masked] (R James Noble)

What: validate
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/validate.shar.Z
Description: example of using bindings to validate entry widget data.
Contact: [email-masked] (Joe VanAndel)

What: varframe
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/varframe.tar.Z
Description: Extension to provide variable environment language-visible
	objects (user defined call frames) within Tcl.
Contact: [email-masked] (Cimarron Taylor)

What: warp
Where: From the contact
Description: Tk warp command to move the mouse point to specific locations.
Contact: [email-masked] (Thomas A Fine)

What: widgetTree
Where: From the contact
Description: Provide the ability to describe a tree of widgets to ease
	creation, etc.  Also includes matrix, a widget which supports a two
	dimensional plane of widgets or widget trees.
Contact: [email-masked] (Hiroshi Sakoh)

What: wmstuff
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/wmstuff.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/wmstuff.patch1.shar.Z
Description: Tk support for ICCCM WM_PROTOCOLS & WM_DELETE
Contact: "Mike Hoegeman" <[email-masked]>

What: X11 Selection support enhancement
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tk_select_patch.gz
Description: Tk 3.6 Patch for non-XA_PRIMARY selections.  Useful for
	cut and paste support between Tk and XView toolkit-based tools.
Contact: "Nick Ing-Simmons" <[email-masked]>

What: X11 visual selection subcommand
Where: From the contact
Description: Adds a -visual subcommand to Tk's frame and top-level widgets.
Contact: [email-masked] (Paul Mackerras)

What: X11 XID enhancement - kaplan
Where: From the contact
Description: Set of replacement functions for default X Consortium XID
	management routines.
Contact: [email-masked] (George C. Kaplan)

What: X11 XID enhancement - hoegeman
Where: From the contact
Description: tkXID function to allow tk to override the default
	XID allocation scheme. Add included header to tk.h and tkInt.h
	to have it used by libtk.a.
Contact: [email-masked] (Michael Hoegeman)

What: XView Drop support
Where: From the contact
Description: First hack at receiving XView drops in Tk.
Contact: [email-masked]

What:
Where:
Description:
Contact:

From: FAQ Tcl/Tk Package Catalog
Subject: -XIV- Is there any commercial use of Tcl/Tk?

A list of commercial packages which use Tcl/Tk is being maintained by
[email-masked] (Larry Rowe).  Contact him for details.

NeoSoft Communications Services <[email-masked]>, (713) 684-5900,
9am - 4pm CDT M-F - provides commercial support for developing Tcl
applications, in short-term hourly, long-term hourly, or fixed-price
variations.  They have long term experience with Tcl.  The
also provide training, porting, bug fixing and independent software
development.

Computerized Processes Unlimited ( [email-masked], (504) 889-2784
4200 S. I-10 Service Road, Suite #205, Metairie, LA 70001 )
offer courses on Tcl and Tk amoung other things.

End of comp.lang.tcl Frequently Asked Questions (5/5)