Archive-name: tcl-commercial-faq
 Version: 2.0
 Last-modified: March 31, 1993
 Posted:	Around the 1st of each month

                       COMMERCIAL USE OF TCL/TK

This file contains brief descriptions of how Tcl/Tk is being used in
commercial products.  If you have questions about specific postings,
contact the person who made the submission directly.  The purpose of
this listing is to show that Tcl/Tk is being used in commercial products
and to discuss that use.

INDEX

0. Rumors and other miscellaneous...
1. Use of TCL/TK for Computational Fluid Dynamics Applications
2. CASE Tool Code Generation
3. CPU's Supervisory Control And Data Aquisition Sytem (SCADA)
4. NeoSoft Tcl
5. Other NeoSoft products
6. Training by AT&T: 
	"Object Oriented Programming with [incr Tcl]"
7. Training by Computerized Processes Unlimied: 
	"Introduction to Programming in Tcl/Tk"
8. Training by Computerized Processes Unlimied: 
	"Building Graphical User Interfaces in Tk"
9. Training by NeoSoft:
	"Tcl and Tk: An Applications-Based Approach"

Each posting is prefaced by a line with dashes so you can search to the
beginning of the next message.  

Please submit further postings to gwl@cpu.com

---------------------------------
ENTRY 0.

Several companies are using Tcl or Tcl/Tk in their products but
do not advertise that fact.  

It is rumored that the following computer vendors may be using tlc/tk in
a future version of some of their management tools: SCO, Digital, Cray.

In addition, numerous companies are using Tcl to automate regression
testing.  In essence, they are using the framework developed by folks
at Sun that is used to test the Tcl implementation.  Take a look at
the files in tcl/tests.

---------------------------------
ENTRY 1.
Usage: Computational Fluid Dynamics Applications
Company: Pacific Marketing and Communication, Berkeley CA
Contact: Wayne A. Christopher
Email: pmac!faustus@uunet.uu.net

P.M.A.C. is a small company that develops software for computational
fluid dynamics.  Our programs are used for generating meshes to
represent objects such as mechanical parts, which are used as input to
fluid flow solvers that typically run on supercomputers.

We have used TCL and TK for two products so far.  The first is a
"manager" or graphical shell that coordinates many other programs
that have different and often idiosyncratic interfaces, and presents a
unified view of the high-level data they manipulate.  This is a
natural task for TCL and TK, since it is very easy to add new programs
and options, and the simplicity of TCL makes it feasible to include
instructions for users to customize it for their own applications.

The second application is a grid and surface visualizer.  This allows
the user to view the grids generated by the system prior to the fluid
flow analysis step, and later, the results of the analysis.  The most
graphics-intensive section of the code, which involves calls to both X
and GL and must be able to store and render up to a million polyhedra,
was implemented as a special TK widget, but most of the other code,
including all user interface code, was written in TCL.

-----------------------------------
ENTRY 2.
Usage: CASE Tool Code Generation
Company: Westmount Technology BV, Holland
Contact: Eko Bousema
Email: ekbo@wmt.nl
US Subsidary: Westmount Inc, Boulder, CO 80302
Telephone: +1-303-4439733
Fax: +1-303-4439835

Products:
ISEE is an Open Integrated CASE tool for RDBMS and 4GL developers.
It supports Yourdon SA/SD including Dataflow Diagrams, Entity Relationship 
Diagrams and Structure Charts. Full code generation for database and 
3GL and 4GL applications is provided. Supported 4GL's include Ingres,
Informix and ACCELL/SQL.

TSEE  is a Open Integrated CASE tool for developers of technical systems.
It supports Yourdon SA/SD including Dataflow Diagrams, Entity Relationship 
Diagrams and Structure Charts.  Code can be generated for C and C with 
embedded SQL applications.


TCL/Tk:
The code generation is based on parsing diagrams and generating code
from that. This conversion is written in C++, the generation in Tcl.
The advantage of that is that user can adapt the codegeneration themself,
which is even more interesting because they can also extend the
diagram definitions.

We have extended Tcl with some features which converts diagrams
from the repository into an internal datastructure (model) which
can be accessed from within Tcl.

---------------------
ENTRY 3.
Usage: Supervisory Control And Data Aquisition (SCADA)
Company: Computerized Processes Unlimited 
Contact: Gerald W. Lester
Email: gwl@cpu.com


Computerized Processes Unlimited primary business is Systems Integration
Consulting, especially in the area of Supervisory Control And Data Aquisition
(SCADA) systems.  Our traditional area of business is in Oil & Gas Production
and Pipelines, but we also do SCADA outside of that, from Electric Utilities to
Food Processing control systems.

Our current generation SCADA system is based on a product from HP called RTAP.
This is toolkit for building SCADA systems, not a complete SCADA package. One
is expected to write the remaining applications, including the GUI, to make it
a SCADA system.   What we have done is to bring all of RTAP's API (call
interface) up into tcl as tcl commands (this is the only C/C++ programming we
do anymore).  All of our GUI and any application programs we now write are in
SCL Plus (tcl/tk with our RTAP extensions).   Our current system is a
distributed client/server model.

We have deployed this system at client sites, the most notable one being the
Shell Auger production platform in the Gulf of Mexico.  Auger is a Tension Leg
Platform (TLP) that is expected to produce 150 million cubic feet of natural
gas and 40,000  barrels of crude oil per day.  The total cost of Auger was
$1.35 billion, of which about $5 million was for the control systems we put on
the platform.  Our control systems operate all aspects of the platform.

We currently have produced over 250,000 lines of tcl/tk code, counting
comments. This, to the best of my knowledge, is the largest tcl/tk project to
date.


For pricing and more detailed information, please contact:

 Gerald W. Lester                        
 Computerized Processes Unlimited        
 4200 S. I-10 Service Road, Suite #205   
 Metairie, LA  70001

Voice:  (504)-889-2784
FAX:    (504)-889-2799
E-Mail: gwl@cpu.com 

---------------------
ENTRY 4.
Usage: Support
Company: NeoSoft
Contact: Karl Lehenbauer
Email: sales@NeoSoft.com.

NeoSoft Commercial Tcl Support

Thank you for your interest in NeoSoft's commercial Tcl support.
We offer a flexible support plan that can be tailored to your
organization's needs.

NeoSoft Tcl is our integration of the core Tcl technologies into a
professionally maintained and supported release.

Below is a description of NeoSoft Tcl and our Tcl services.

To set up a support contract, or if you need more information, please 
contact us at +1 713 684 5969 9-4 M-F, or send email to sales@NeoSoft.com.


NeoSoft Tcl:

    Includes the latest Tcl, Extended Tcl, Tk, and XF source.

    Includes the graph and photo widgets, compiled in at your option.
	
    NeoSoft's Tcl support libraries are included, providing useful tools 
       such as dialog boxes, a file requester, and many additional functions.

    Includes xpm pixmap library to allow any widget's bitmap to be a
       color pixmap, TIFF, GIF, etc.

    Point releases of Tcl, Extended Tcl, Tk and XF integrated and
       made available within thirty days.

    Major releases made when code is stable and needed tools are
       available.

    No license is required to redistribute with an application.

    Documentation comes in nroff and postscript (tm) formats.

    Available via FTP, DC-600A data cartridge, DAT tape 
       (in DATA/DAT format) or 3.5" high density floppy disks.



Service types:

Basic service:
    Source copy of NeoSoft Tcl.
    Binaries built on your machine using telnet or modem, if needed.
    Free updates for a year (available via FTP or media).
    20 hours of remote support, including consulting, bug fixing, etc.
    Standard documentation set.
    Release notes.
    NeoSoft Tcl T-shirt (specify L or XL).
    Additional support available on an hourly basis.

    Price: $2500/year


Additional services (billed as Time and Materials):
    Help desk.
    24 hour emergency support.
    Training.
    On-site work.
    Hard-copy documentation sets.
    Software development.
    Software integration, release building and porting.
    Builds for additional architectures.


---------------------
ENTRY 5.
Usage: Other
Company: NeoSoft
Contact: Karl Lehenbauer
Email: sales@NeoSoft.com.

Additional NeoSoft products:
    Tcl source encryption system.
    Tcl X-windows desktop.
    Control Station - programmable network monitoring software.
    CUTE - programmable, Tcl-based telecommunications program.

To set up a support contract, or if you need more information, please 
contact us at +1 713 684 5969 9-4 M-F, or send email to sales@NeoSoft.com.

---------------------
ENTRY 6.
Usage: Training
Company: AT&T Bell Laboratories
Contact: Michael J. McLennan
Email: michael.mclennan@att.com


Course Title:		Object-Oriented Programming with [incr Tcl]

Course Length:		2 Days

Course Format:		Course material is presented in a lecture format.

Course Fee:		$600.00

Course Description:	When Tcl/Tk scripts grow larger than a few hundred
			lines, the code complexity can be difficult to manage.
			[incr Tcl] provides a set of object-oriented extensions
			for the Tcl language, enabling programmers to write
			high-level building blocks that are more easily
			assembled into a finished application.  This course
			describes object-oriented programming with [incr Tcl].
			Fundamental concepts are presented on the first day,
			showing how [incr Tcl] can be used to write more modular
			code.  On the second day, these same concepts are used
			to create "mega-widgets", high-level widgets that look
			and act like the usual Tk widgets but are constructed
			entirely with [incr Tcl] code.

			Topics include:
				- Designing object classes
				- Public/protected data members
				- Shared data members
				- Member functions (methods)
				- Inheritance
				- Multiple inheritance
				- Object construction/destruction
				- Manipulating scope
				- Persistent objects
				- Anatomy of a mega-widget
				- A mega-widget base class
				- Example widgets
				- Adding new bindings
				- Creating reusable libraries

Course Level:		Technical: Beginner to Intermediate

Prerequisites:		Exposure to tcl/tk programming concepts

For pricing and availablity information, please contact:

 Michael J. McLennan
 AT&T Bell Laboratories
 1247 S. Cedar Creast Blvd., Rm 2C-226
 Allentown, PA 18103

Voice:  (610)-712-2842
FAX:    (610)-712-3843
E-Mail: michael.mclennan@att.com

---------------------
ENTRY 7.
Usage: Training
Company: Computerized Processes Unlimited 
Contact: Gerald W. Lester
Email: gwl@cpu.com

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)

For pricing and availablity information, please contact:

 Gerald W. Lester                        
 Computerized Processes Unlimited        
 4200 S. I-10 Service Road, Suite #205   
 Metairie, LA  70001

Voice:  (504)-889-2784
FAX:    (504)-889-2799
E-Mail: gwl@cpu.com 

---------------------
ENTRY 8.
Usage: Training
Company: Computerized Processes Unlimited 
Contact: Gerald W. Lester
Email: gwl@cpu.com

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

For pricing and availablity information, please contact:

 Gerald W. Lester                        
 Computerized Processes Unlimited        
 4200 S. I-10 Service Road, Suite #205   
 Metairie, LA  70001

Voice:  (504)-889-2784
FAX:    (504)-889-2799
E-Mail: gwl@cpu.com 

---------------------
ENTRY 9.
Usage: Training
Company: NeoSoft
Contact: Karl Lehenbauer
Email: sales@NeoSoft.com.

NeoSoft Tcl and Tk Training Information


NeoSoft is perhaps the premier corporate contributor to the Tcl and Tk toolkit
efforts.  Our groundbreaking work in Tcl and Tk dates back to its first
appearance in 1990, and is reflected by the copious amount of concepts and code
taken from Extended Tcl for use in the Tcl baseline.  We continue to
collaborate with Dr. John Ousterhout, the author of baseline Tcl and Tk, on the
forthcoming release of Tcl 7.0 and Extended Tcl 7.0.

NeoSoft's Tcl training efforts have been a natural outgrowth of our work with,
and extensions of, Tcl.

The philosophy of the course is one of immediate, maximum impact by rapid
immersion into hands-on building of X-windows graphical user interfaces and the
Tcl programs that underly a number of useful applications.  This approach grew
out of our first-generation Tcl training course, where we discovered that
students became very excited once the Tk toolkit was introduced and they could
begin typing statements and interactively creating sophisticated X-windows
interfaces.

This same philosophy is the backbone of a book we're writing, Tcl and Tk:  An
Applications-Based Approach, due to be published in the first quarter of 1994
by Prentice-Hall Technical Publications.

Training Options

We are flexible and can customize a course to your specific needs.  We have
found that almost everyone is content with one of a few options.  The class
lasts for two or three days, at your option.  The class can be structured to
support new Tcl and Tk users and/or users with significant prior experience. 
In either case, it is nice to allocate some unstructured time at the end of the
class to talk about specific applications and issues that the students are
interested in, including new users, approaches, tools, environments, and the
future of Tcl itself.

Course Location and Times

The course can be taught at your company's facility, or at our training
facility located in Houston, Texas.  Enrollment is limited to ten people per
class to provide a substantial amount of instructor attention to each student. 
If the course it to be held at your company's facility, there should be no less
than one workstation per two students, if at all possible.  The class can be
taught over a weekend.  Contact NeoSoft for pricing and availability.

Instructor

The class will be taught by Karl Lehenbauer, the co-author of Extended Tcl. 
Karl is an experienced trainer, having taught and/or developed previous courses
on Unix, Unix system administration and Tcl/Tk.


Course Goals

Teach Tcl and Tk with the maximum impact by building real world applications in
the classroom.

Site Prerequisites

Integrated copy of Tcl and Tk, including Extended Tcl, running on site.

Course Contents
Below is the list of basic sections of the class, beginning with the elementary
things that we would teach to users without prior Tcl experience and ending
with building several tools that are useful, real-world applications in their
own right.  We can work with you to tailor the course to your organization's
specific needs. 

Section 1 Hello, World

Concepts:
	Typing commands interactively into the interpreter.
	The most important command in Tcl: "proc"
	Passing arguments to Tcl procedures.
	The C "Hello, World" koan in a graphical context:
The button command
The pack command

Section 2 Making Choices with Buttons

Concepts:
	Variables and variable substitution
	Radiobuttons
	Checkbuttons
	More on the pack command

Section 3 A quartet of application launchers

Concepts:
	Launching applications
	Tcl Language elements:
		Variable assignment
		Conditional expressions
		Beginning file I/O
		Square-bracket substitution
		Generating window elements from data
		Accessing command line arguments

Section 4 Building a support library:  The dialog box

Concepts:
	The message widget
	Control structures:  if/else/endif
	Default values for procedure arguments
	First mention of Tk's event loop
	Subordinate toplevel windows
	'tkwait' to support sequential control
	
Section 5 Building pulldown and popup menus

Concepts:
	The menu widget
	Binding commands to keypress events

Section 6 A few simple but useful applications

Concepts:
	Intermediate file I/O
	Delayed execution with 'after'
	Temporal commands (getclock, fmtclock)
	Capturing a spawned command's output in a variable

Section 7 Building a support library: The file selector

Concepts:
	The listbox and scrollbar widgets
	The frame widget
	More about the packer

Section 8 Creating a text editor with the text widget

Concepts:
	The text widget
	Text widget tags
	More about key bindings
Integrating support library examples

Section 9 Creating a hypertext system with the text widget

Concepts:
	More about the text widget
	More about text widget tags
	Builds on the text editor



Section 10 X resource customizer

Concepts:
	Use of the "send" command to access another interpreter.
	More about text widget tags.
	Builds on the text editor to make a new tool.

Section 11 Introduction to the canvas widget

Concepts:
	Introduces the canvas widget.
	Tags and tag processing.
	More on list processing.
           Use of different canvas widget types.

Section 12 A second encounter with the canvas widget

Concepts:
	Commands and options within the canvas widget.
	Combining items with actions.
	A new application launcher.

Section 13 Creating a drawing tool with the canvas widget

Concepts:
	Traversing items within a canvas widget.

Section 14 Sysadmin tool:  New user creator

Section 15 Sysadmin tool:  ttytab editor

Section 16 Developer tool:  The proc browser

Concepts:
	More on using "send" to access another interpreter.
	Using "info" to find variables and procedures.
           Using entry widgets.

Section 17 Color editor

Concepts:
	Slider widget
	Performing math with the "expr" command

To set up a support contract, or if you need more information, please 
contact us at +1 713 684 5969 9-4 M-F, or send email to sales@NeoSoft.com.
Newsgroups: comp.lang.tcl,comp.answers,news.answers
Path: lvirden
From: lwv26@cas.org (Larry W. Virden)
Subject: FAQ: comp.lang.tcl Frequently Asked Questions (1/5)
	(Last updated: April 20, 1994)
Followup-To: comp.lang.tcl
Summary: A regular posting of the comp.lang.tcl Frequently Asked Questions 
	(FAQ) and their answers.  This is the first of five parts.
	This part introduces Tcl and Tk and discusses documentation, etc.
Originator: lvirden@cas.org
Keywords: tcl, extended tcl, tk, expect
Sender: lvirden@cas.org
Reply-To: lvirden@cas.org (Larry W. Virden)
Approved: news-answers-request@MIT.Edu

Archive-name: tcl-faq/part1
Version: 5.0
Last-modified: April 20, 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 and OSF/1.

	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  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" , 
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"  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 
PSPRENG@CIPVAX.BIOLAN.UNI-KOELN.DE (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, version 7.3, to MS-DOS, done by
tpoind@advtech.uswest.com (Tom Poindexter), is available as
ftp://harbor.ecn.purdue/edu/pub/tcl/distrib/mstcl73*.zip .  This
also includes TclX 7.3a and Tk ported to Desqview/X libraries.

	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 .  Contact him for more details.

	A Windows DLL was made by ekki@prakinf.tu-ilmenau.de (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.

	miyata@sra.co.jp (Shigeaki Miyata) reports being in a group
which is preparing a commercial port of Tk to MSDOS Windows.  More
details are to follow.

	Omar Stanford  reported in March of 1994
that he had almost completed his port of Tcl 7.3 to MS-Windows 3.1.
He had incorporated extensions for networking (including NetWare),
Windows Sockets, and many Windows API functions.  He also was working on
a facility for dynamically allocating commands to the Tcl environment.
If there are other extensions that one would like to see under Windows 3.1,
or if you are interested in beta testing, drop him a line.

	Also, Simon Kenyon  of the Information
Technology Centre, Dublin, IRELAND, mentions that they are starting to
port Tk to MS-Windows.  There is a mailing list (see below) for
folk who are interested.

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

	A port of Tcl 7.3, except for glob or commadn pipelines, to OS/2 2.x
using C Set++ has been done by wwb@wwa.com (Bud Bach).  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 7.3 and Tk 3.6 to VMS was done by Angel Li
.  The files are at
ftp://mango.rsmas.miami.edu/pub/VMS-tcl/tcl73-tk36-itcl13.tar.Z
and were compressed with the Unix compress command.  The pathname may
be subject to change as I have seen notes from Angel Li mentioning that
BLT 1.6 and the photo widget have also been ported.  These were compiled
on an Alpha running OpenVMS T6.1.

	A port of Tcl 6.3 onto VMS 5.5 was done by Wolfgang Kechel
 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
 to VMS 5.5.  The files are on:
ftp://src.honeywell.com/pub/tcl67-tk32-on-vms55.tar.Z .

	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
or
ftp://src.honeywell.com/pub/tcl70-tk33-on-vms55.tar.Z

	Gerald W. Lester (gwlester@cpu.com) 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.

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


E. AmigaDOS

	Karl Lehbauer  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  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, colas@opossum.inria.fr (Colas Nahaboo), mentioned
that using Amiga gcc and the PD X server DaggeX and Xlibs that a port of
Tk might be possible.

	hnm@hermes.bouw.tno.nl (Marco van der Heiden) has completed a port
to the Amiga, and suggests Amiga developers contact him by email.  

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


F. NeXT

Gianmaria Bertanzon  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 
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  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 carroll@udel.edu, who asked the
question, and I will post them if there seems to be general interest.

D. Eiffel
	stephan@cs.tu-berlin.de (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
	dennis@dennis.cs.colorado.edu (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  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 bmiller@cs.berkeley.edu 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", Don Libes, 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", Don Libes, 
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", Don Libes, 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",
Don Libes, 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",
Don Libes, 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

6. "X Wrappers for Non-Graphic Interactive Programs", Don Libes,
draft for Xhibition 94.

	This paper discusses encapsulating standard command interfaces
into a graphical user interface.  This paper's address is:

ftp://ftp.cme.nist.gov/pub/expet/expectk.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.gz 

Many thanks to "Jeff Tranter"  for 
contributing it.

2. PostScript versions of the man pages were provided by 
"Adrian Ho" .  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 Ousterhout text book was available on the net.

	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 ,
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
 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 theobald@fzi.de (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:
 Radar Control PS 

11. Mark A. Harrison   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
<278ml0$457@news.utdallas.edu>.  Contact him for a copy.

12. Cedric Beust  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  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.gz 

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.  Note that this page is also available for those behind a
firewall as:
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tclhtml.tar.gz


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 Common Gateway
Interface (known as CGI) can be found at:

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

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

31. Information about the SIMON Mosaic hotlist management tool can be
found at http://web.elec.qmw.ac.uk:12121/ .

32. Information about Fritz Heinrichmeyer's experimental Schematic SPICE
interface is available from http://ES-sun2.fernuni-hagen.de/editor.html .

33. Information about ical is now accessible from
http://clef.lcs.mit.edu/~sanjay/ical.html .

34. An attempt to provide various views on the lists of applications and
extensions available to the Tcl community can be found at the URL
http://web.cs.ualberta.ca/~wade/Auto/Tcl.html

35. The URL for a page describing threaded tknews is 
http://www.cis.ohio-state.edu/hypertext/people/mdm/tknews.html
showing what the next release should be like.

36. The URL for a Tk-based Karel the Robot project is
http://www.cis.ohio-state.edu/hypertext/people/mdm/karel.html

37. A Tk reference card can be found at:
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tkrefcard.tar.gz
This TeX and Postscript version of a Tk 3.3 card was provided by
Paul Raines .

38. A good document on Xauth is available at:
ftp://ph-meter.beckman.uiuc.edu/security/xsecurity.ps
or
ftp://ph-meter.beckman.uiuc.edu/security/xsecurity.txt

39. The documentation for the Xf command is available in European page format
as:
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/xf-doc.ps.gz
as well as United States page format as:
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/xf-doc-us.ps.gz

40. Vivek Khera  has written a primer on setting up your
environment for xauth (by default a requirement under Tk 3.3) in the
document:
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/Xauthority.gz

41. Wade Holst has begun a hypertext document pointing to all Tcl
applications that he can locate.  His URL is
http://web.cs.ualberta.ca/~wade/Auto/Tcl.html

42. A list of MPEG animations, done with Tcl scripts using TSIPP can
be found at: http://www.mcs.csuhayward.edu/tebo/Anims .


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 pradeeps@aw.com (Pradeepa Siva) to request a copy
of the newsletter, or call him at Addison-Wesley Publishing Company
617/944-3700, ext 2940, or call Addison-Wesley directly to request
it at 800/238-9682.

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.

16. iX, January 1994, pp 148-152, another German article about the
interpretative  class system that is a part of the GOOD graphics system.

17. The first text book dedicated to Tcl and Tk has been published.
The title is _Tcl and the Tk Toolkit_, by John K. Ousterhout.  The
publisher is Addison-Wesley, and it became available in April, 1994.
The ISBN for the book is 0-201-63337-X.  A note from the author about
the book:

"The Tcl book is more up-to-date than the drafts;  for example, the
draft of Part II predates the Tk 3.6 release, so some of the example
scripts don't work with the current Tk release, and the drafts contain
a number of bugs that have been fixed in the final book.  The book
also has more information about the individual widget classes than
the draft, an explanation of Tcl_AppInit, and a number of other
improvements.  Finally, it has an index."

If you cannot find it in your local bookstore, one place you can call
is Addison-Wesley Publishing Company at 800/822-6339.  It is paperback
and the reference price is $36.75.

Note that the examples from the book are available in one large file
as ftp://ftp.cs.berkeley.edu/ucb/tcl/book.examples.Z .

18. Walnut Creek CDROM has published the Tcl/Tk CDROM.  This 
is a snapshot of the ftp.cs.berkeley.edu and harbor.ecn.purdue.edu
archives, as well as the archives for comp.lang.tcl newsgroup.
The snapshot of the current CDROM is from early April, 1994.
The price is $39.95, plus shipping and handling.  Contact:
 
        Walnut Creek CDROM
        1547 Palos Verdes Mall, Suite 260
        Walnut Creek, CA  94596
 
        1 800 786-9907
        1 510 674-0783
        1 510 674-0821 FAX
 
        orders@cdrom.com

The disc is available for FREE to anyone that has contributed any of their
own work to the Sprite or Harbor Tcl archives.  Just email me your name,
address, and the name of the files(s) that you contributed.  Overseas
addresses are okay.
 

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 ( info@NeoSoft.com, (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 ellyn@neosoft.com for more details.

3. Computerized Processes Unlimited ( gwl@cpu.com, (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. 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 (tchrist@usenix.org)
Extended abstracts due June 30, 1994

2. The 1994 Tcl/Tk Workshop and Seminars is scheduled to occur June
20-25, 1994, in New Orleans, LA.  The seminars will be occuring on June
20-22.  They will last from 1-3 days and the number of seminars and
attendance is limited due to space constraints.  Cost depends on the
seminar chosen.  The seminars being offered are:

Title:          Building Graphical User Interfaces in Tcl/TclX/Tk
Duration:       3 Days
Format:         Lecture/Lab
Cost:           $1,300.00
Provider:       Gerald W. Lester, Computerized Processes Unlimited
Min:            10 persons
Max:            20 persons
Dates:          June 20-22
 
Title:          Object-Oriented Programming with [incr Tcl]
Duration:       2 Day
Format:         Lecture Only
Cost:           $600.00
Provider:       Michael J. McLennan, ATT&T Bell Laboratories
Min:            15 persons
Max:            30 persons
Dates:          June 21-22
 
Registration fees are due by May 20, 1994.

The workshop will be help June 23-25 and consist of current work and
future direction sessions and attendance will be limited.  Registration
fees are $200 and are also due May 20, 1994.

For more details on dates, fees, seminar topics, hotel special rates, etc.
etc., contact gwl@cpu.com.


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

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

ouster@cs.berkeley.edu (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	Basic Object Systems (BOS) 

	BOS is a SELF-like objects extension to Tcl.

	To join, send email to snl+bos-requests@cmu.edu and then
	send messages to snl+box@cmu.edu .

o	Dejagnu 

	This set of mailing lists are NOT maintained by Cygnus, the
	developers of Dejagnu.

	Dejagnu is an expect 5.x based package designed to be a framework
	for testing other software.  Test suites exist for various GNU
	products such as GDB and binutils.

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

	To subscribe, send the line:

	subscribe dejagnu-bugs yourname@yoursite.com 

	to the email address listserv@yggdrasil.com where you put your
	own email address in place of yourname@yoursite.com and you put
	the name of the mailing list you wish to join after subscribe.

o	Comp.Lang.Tcl by email

		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 listserv@cernvm.cern.ch 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 listserv@cernvm.cern.ch with one line 
	   in the body:

	signoff tcltk

	4) again, signing off will be confirmed by listserv

o	Macintosh Tcl

		W. Ross Brown  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 "listserv@aic.lockheed.com" 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
	"listserv@aic.lockheed.com" 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 mactcl@aic.lockheed.com.

o	Microsoft Windows port of Tk

		Simon Kenyon  announced in early
	April 1994 that the Information Technology Centre of Dublin, IRELAND
	was undertaking the port of Tk to MS-Windows.  He has set up the
	mstk mailing list for those interested in discussing it.

		If interested, send mail to mstk-list-request@itc.icl.ie
	to join the list and send comments and code to mstk@itc.icl.ie .

o	Ptolomy 

	Ptolomy is a simulation and prototyping system which uses tcl.
	To join the mailing list, send email to
	ptolemy-request@ohm.eecs.berkeley.edu .

o	safe-tcl 

	Safe-tcl is an extension to Tcl which one can use to process
	incoming email msgs as tcl scripts.

	To subscribe, send a msg to safe-tcl-request@uunet.uu.net and
	then further email msgs to safe-tcl@uunet.uu.net .


o	ServiceMail Toolkit 

	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 servicemail-help@eitech.com
	or subscribe to servicemail-help mailing list by sending a message
	to the "listserv subscribe servicemail-help your-real-name" service at
	"services@eitech.com".

o	tclMotif

	tclMotif is an extension which provides true Motif access to a
	Tcl program.

	This mailing list is maintained by listserv@ise.canberra.edu.au .
	To subscript, send mail to this address with the request

	subscribe tclMotif 

	and you will receive a mail message acknowledging this.  From then
	on, send mail to tclMotif@ise.canberra.edu.au and it will be 
	distributed.

o	TeenyMUD

	TinyMUD is a multi-user dungeon program - allows multiple users
	to role play and converse in 'real time'.  It uses Tcl.

	To join the mailing list, contact
	teeny-list-request@fido.econlab.arizona.edu and then send your 
	mail to teeny-list@fido.econlab.arizona.edu .

o	tkWWW

	tkWWW is a tk-based WorldWideWeb client.  Contact
	tk-www-request@athena.mit.edu to join the mailing list and send
	your messages to tk-www@athena.mit.edu .

o	VMS Tcl/Tk

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

o	WAFE

	WAFE is a Athena Widget front end which uses Tcl.  To join
	the wafe mailing list, contact wafe@wu-wien.ac.at .

o	XF 

	XF is a Graphical User Interface builder which generates Tk and
	Tcl code.  To subscribe to the xf mailing list,
	send a "sub xf-l Your Name" line to listserv@tubvm.cs.tu-berlin.de

o	X Protocol Engine Library (XPEL) 

	To join, send email to xpel-request@cs.unc.edu .

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


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

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 a Northern European archive for the FAQ at
ftp://src.doc.ic.ac.uk/usenet/news.answers/comp.lang.tcl/ .

	There is also a mail server from which you can obtain a copy of
the FAQ.  Send an email message to mail-server@rtfm.mit.edu or
archive-server@nic.switch.ch) 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.

	Other news.answers/FAQ archives (which carry some or all of the FAQs
in the rtfm.mit.edu archive), sorted by country, are:

Belgium
-------

  gopher                cc1.kuleuven.ac.be port 70
  anonymous FTP         cc1.kuleuven.ac.be:/anonymous.202
  mail-server           listserv@cc1.kuleuven.ac.be  get avail faqs

Canada
------

  gopher		jupiter.sun.csd.unb.ca port 70

France
------

  anonymous ftp		cnam.cnam.fr:/pub/FAQ
  		 	grasp1.univ-lyon1.fr:/pub/faq
  			grasp1.univ-lyon1.fr:/pub/faq-by-newsgroup
  gopher		gopher.univ-lyon1.fr, port 70
  mail server		listserver@grasp1.univ-lyon1.fr
  
Germany
-------

  anonymous ftp		ftp.Germany.EU.net:/pub/newsarchive/news.answers
			ftp.informatik.uni-muenchen.de:/pub/comp/usenet/news.answers
			ftp.uni-paderborn.de:/doc/FAQ
			ftp.saar.de:/pub/usenet/news.answers (local access only)
  gopher		gopher.Germany.EU.net, port 70.
  			gopher.uni-paderborn.de
  mail server		archive-server@Germany.EU.net
			ftp-mailer@informatik.tu-muenchen.de
			ftp-mail@uni-paderborn.de
  World Wide Web	http://www.Germany.EU.net/
  FSP			ftp.Germany.EU.net, port 2001
  gopher index		gopher://gopher.Germany.EU.net:70/1.archive
			gopher://gopher.uni-paderborn.de:70/0/Service/FTP

The Netherlands
---------------

  anonymous ftp		ftp.cs.ruu.nl:/pub/NEWS.ANSWERS
  		 	ftp.win.tue.nl:/pub/usenet/news.answers
  gopher		ftp.win.tue.nl, port 70
			gopher.win.tue.nl, port 70
  mail server		mail-server@cs.ruu.nl
  World Wide Web	http://www.cs.ruu.nl/pub/NEWS.ANSWERS/tcl-faq/part[1-5]

Switzerland
-----------

  anonymous ftp		nic.switch.ch:/info_service/usenet/periodic-postings
  anonymous UUCP	chx400:ftp/info_service/Usenet/periodic-postings
  mail server		archiver-server@nic.switch.ch
  telnet		nic.switch.ch, log in as "info"


Taiwan
------

  anonymous ftp		nctuccca.edu.tw:/USENET/FAQ

United States
-------------

  anonymous ftp		ftp.uu.net:/usenet
  World Wide Web	http://www.cis.ohio-state.edu/hypertext/faq/usenet/top.html

	The Uniform Resource Locator (URL) id for the FAQ is:

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

The user can use a WorldWideWeb client to access the FAQ from this point.

	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/archive/usenet/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!

	The Tcl commercial use FAQ is available as
ftp://harbor.ecn.purdue.edu/pub/tcl/docs/tcl-commercial-faq.gz
currently.  The author, Gerald W. Lester , may in the future
expand the locations where you may find this.  It contains information
either about commercial products which incorporate Tcl as a part of them
or which teach about Tcl and Tk in some manner.
	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 lvirden@cas.org.


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

End of comp.lang.tcl Frequently Asked Questions (1/5)
*****************************************************
Newsgroups: comp.lang.tcl,comp.answers,news.answers
Path: lvirden
From: lwv26@cas.org (Larry W. Virden)
Subject: FAQ: comp.lang.tcl Frequently Asked Questions (2/5)
	(Last updated: April 20, 1994)
Followup-To: comp.lang.tcl
Summary: A regular posting of the comp.lang.tcl Frequently Asked Questions 
	(FAQ) and their answers.  This is the second of five parts.
	This part covers the how-to questions and answers.
Originator: lvirden@cas.org
Keywords: tcl, expect, extended tcl, wish, tk
Sender: lvirden@cas.org
Reply-To: lvirden@cas.org (Larry W. Virden)
Approved: news-answers-request@MIT.Edu

Archive-name: tcl-faq/part2
Version: 5.0
Last-modified: April 20, 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?
	Q8P. How do I build expect on Solaris 2.3?
	Q8Q. How do I add BLT to a TclX/Tk ?

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  and  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  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 jkimball@src.honeywell.com (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 

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

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  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  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 

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 ouster@cs.Berkeley.EDU (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' 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  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) $<

Peter NEELIN  also noted that:

I get tclX 7.3a to compile on an SGI (irix 4.0.5) with the following
changes to the Config.mk file:
 
71c71
< CFLAGS=-cckr -D__GNU_LIBRARY__
---
> #CFLAGS=
106,107c106,107
< TCL_PLUS_BUILD=TCL_PLUS
< CCPLUS=g++
---
> #TCL_PLUS_BUILD=TCL_PLUS
> CCPLUS=CC
191,193c191
< MAN_DIR_SEPARATOR=
< 
< LIBOBJS=strftime.o
---
> #MAN_DIR_SEPARATOR=.
 
The -D__GNU_LIBRARY solves the srandom problem and I think that the -cckr gets
around the prototype error with waitpid (it's crude, but it works).
I've forgotten why I needed the strftime.
 
If you want the version of Config.mk that worked for me, send me mail.

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

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q8P- How do I build expect on Solaris 2.3?

A8P. From jra@hrcms.jazz.att.com (Jeff Abramson) we are told that,

> using either SunPro cc 2.0.1 or gcc 2.5.8 with
> no problems.  For SunPro I do:
>  
>         CC=cc ./configure --prefix=directory_of_your_choice
>         make CC=cc
>  
> For gcc I do:
>  
>         CC="gcc -fwritable-strings" ./configure \
>		--prefix=directory_of_your_choice
>        make CC="gcc -fwritable-strings"
 
------------------------------

From: -IX-  How, in Tcl, can I XXX:
Subject: -Q8Q- How do I add BLT to a TclX/Tk ?

A8Q. From gah@grenache.mhcnet.att.com (George A. Howlett) we get
the answer:

Instead of adding TclX to blt_wish, try it the other way.  Add
BLT to wishx.  It's pretty simple.
 
In the file ./tksrc/tkXAppInit.c, add the a call to the BLT
initialization routine right after line 116.
 
    if (TkX_Init(interp) == TCL_ERROR) {
        return TCL_ERROR;
    }
    if (Blt_Init(interp) != TCL_OK)) {
        return TCL_ERROR;
    }
 
Link wishx with libBLT.a and that's it.
 
Others recommend the tkmkmf or make-a-wish packages.
 
 
------------------------------

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:

karl@NeoSoft.com (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?  kennykb@dssv01.crd.ge.com (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"  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 , we got:

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

From Fred Feirtag  :

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

From Dan R. Schenck :

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
brad@NeoSoft.com (Brad Morrison) and bachww@rtsg.mot.com (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 gwlester@cpu.com (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 karl@NeoSoft.com (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 brad@NeoSoft.com (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" 

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

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 


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

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.

d9jesper@dtek.chalmers.se (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  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"  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  {%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  {}

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

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  rather than .  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  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 brad@NeoSoft.com (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 joe@astro.as.utexas.edu (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 mgc@cray.com (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 .

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

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 faustus@CS.Berkeley.EDU (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  and  to a frame containing 
	other widgets?

A10.C.6. From John Ousterhout, ouster@cs.Berkeley.EDU):

Each  or  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]  ]
	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  ]
	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  ]
	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"  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  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" .

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

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 :

> 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  "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. george.howlett@att.com (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 , 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"  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  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  posted:

In article <1993Jun23.065417.4302@ericsson.se>, 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  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
 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  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.  kesch@kappco.kapp-coburg.de (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)
*****************************************************
Newsgroups: comp.lang.tcl,comp.answers,news.answers
Path: lvirden
From: lwv26@cas.org (Larry W. Virden)
Subject: FAQ: comp.lang.tcl Frequently Asked Questions (3/5)
	(Last updated: April 20, 1994)
Followup-To: comp.lang.tcl
Summary: A regular posting of the comp.lang.tcl Frequently Asked Questions
	(FAQ) and their answers.  This is the third of five parts.
	This part is a catalog of miscellaneous Tcl-based items.
Originator: lvirden@cas.org
Keywords: tcl, expect, extended tcl, wish, tk
Sender: lvirden@cas.org
Reply-To: lvirden@cas.org (Larry W. Virden)
Approved: news-answers-request@MIT.Edu

Archive-name: tcl-faq/part3
Version: 5.0
Last-modified: April 20, 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://coma.cs.tu-berlin.de/pub/tcl/
ftp://ftp.cs.columbia.edu/pub/archives/tcl/ <- shadow of harbor, etc.
ftp://ftp.funet.fi/pub/languages/tcl/
ftp://ftp.ibp.fr/pub/tcl/		<- shadow of harbor and expect
ftp://ftp.uu.net/languages/tcl/	<- shadow of ftp.cs only
ftp://ftp.x.org/contrib/tcl*/
ftp://ftp.x.org/contrib/tk*/
ftp://gatekeeper.dec.com/pub/UCB/tcl/sprite/ <- shadow of ftp.cs only
ftp://harbor.ecn.purdue.edu/pub/tcl/sprite-mirror/
ftp://iskut.ucs.ubc.ca/pub/X11/tcl/
ftp://nic.funet.fi/pub/languages/tcl/
ftp://oskgate0.mei.co.jp/free/X/toolkits/tcl/ <- shadow of ftp.cs only
ftp://src.doc.ic.ac.uk/packages/tcl/tcl-archive <- shadow of harbor
ftp://src.doc.ic.ac.uk/usenet/news.answers/comp.lang.tcl/ <- shadow of FAQs
ftp://sunsite.unc.edu/pub/languages/tcl/
ftp://syd.dit.csiro.au/pub/tk/	<- shadow of harbor and ftp.cs
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: ouster@cs.Berkeley.EDU (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 -       Patch file that fixes bugs in Tk version 3.6.
                        See the beginning of the patch file for information
                        about the bugs it fixes and how to apply it.

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.p*.ps.Z            Compressed Postscript for an early draft of the
                        book "Tcl and the Tk Toolkit", which was published
                        by Addison-Wesley in April 1994 (ISBN 0-201-63337-X).
                        The draft is in four parts, each in a separate file.
                        You're probably better off with the published version
                        of the book, though;  it has a number of improvements
                        and an index.
 
book.p1.ps.Z            This part describes the Tcl language and how to write
			scripts in it.  About 130 pages in length.

book.p2.ps.Z            This part of the book describes how to write
			Tcl scripts for Tk.  About 125 pages in length.

book.p3.ps.Z            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            This part of the book describes how to write new
			widgets and geometry managers in C, using the Tk
			library procedures.  About 70 pages in length.

book.examples.Z         Compressed file containing ASCII text for nearly all    
                        of the examples from the Tcl book.

tclUsenix90.ps -	Postscript for a paper on Tcl that appeared in the
			Winter 1990 USENIX Conference.

tkUsenix91.ps -		Postscript for a paper on Tk that appeared in the
			Winter 1991 USENIX Conference.

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 email address.  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 end up with a corrupted file.

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.

Any file with a .gz extension is a file compressed with gzip, the gnu
portable compression standard.  To get a copy, ftp to prep.ai.mit.edu and 
look in pub/gnu.  For example, to uncompress tc-tcl93.ps.gz, type
 
    gunzip tc-tcl93.ps.gz
 
once you've retrieved the file.  This will produce a file named "tc-tcl93.ps".

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" .

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

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  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 
Others:         "DEC ftpmail" 
Europe:         ftpmail@grasp1.univ-lyon1.fr
		mail-server@ftp.tu-clausthal.de

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 tcl-archive@harbor.ecn.purdue.edu 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 tcl-archive@harbor.ecn.purdue.edu.

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 library@cme.nist.gov .

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

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

"Sean Levy"  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"  was also working on an Emacs Tcl
minor mode to fundamental.

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

tromey@cns.caltech.edu (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 .
It is also located at
ftp://archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive/modes/tcl.el.Z
It is also on harbor.ecn.purdue.edu in the pub/tcl archives somewhere.

schmid@fb3-s7.math.TU-Berlin.DE (Gregor Schmid) has written a major mode
for tcl scripts.  He posted tcl-mode 1.1 to gnu.emacs.sources in March and
it should appear on
ftp://archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive/modes/
shortly.


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

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 has been, in the past, 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
linux-activists-request@niksula.cs.hut.fi .

To write to the list, send messages to to
linux-activists@niksula.cs.hut.fi
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 linux-activists-request@niksula.cs.hut.fi .

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 tlukka@snakemail.hut.fi or lukka@helsinki.fi .

Unfortunately, the development effort has currently come to a stop on this
project and it is not yet known when it will be started again.

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

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

"Martin Hamilton"  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


andyr@wizzy.com (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

tb06@CS2.cc.lehigh.edu (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

raines@bohr.physics.upenn.edu (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  wrote, and
Julian.Anderson@comp.vuw.ac.nz (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)))

Dwight Shih  later posted the following font lock mode:
 
(defvar tcl-font-lock-keywords
  (list
   (list (concat "\\b\\("
                 (mapconcat 'identity
                            '("set" "lset" "list" "if" "case" "while"
                              "switch" "then" "else" "for" "foreach"
                              "return" "expr" "catch" "puts" "proc"
                              "trace")
                            "\\|")
                 "\\)\\b")
         1 'font-lock-keyword-face t)
   (list (concat "\\b\\("
                 (mapconcat 'identity
                            '("global" "upvar" "uplevel" "error" "debug")
                            "\\|")
                 "\\)\\b")
         1 'font-lock-type-face t)
   (list "^\\s *proc\\s +\\(\\(\\w\\|[_']\\)+\\)" 1 'font-lock-function-name-fac
e t))
  "keywords for tcl-mode")
 
(defun font-lock-set-defaults ()
  "Set `font-lock-keywords' to something appropriate for this mode."
  (setq font-lock-keywords
        (cond ((eq major-mode 'lisp-mode)       lisp-font-lock-keywords)
              ((eq major-mode 'emacs-lisp-mode) lisp-font-lock-keywords)
              ((eq major-mode 'c-mode)          c-font-lock-keywords)
              ((eq major-mode 'c++-c-mode)      c-font-lock-keywords)
              ((eq major-mode 'c++-mode)        c++-font-lock-keywords)
              ((eq major-mode 'tex-mode)        tex-font-lock-keywords)
              ((eq major-mode 'perl-mode)       perl-font-lock-keywords)
              ((eq major-mode 'tcl-mode)        tcl-font-lock-keywords)
              ((eq major-mode 'texinfo-mode)    texi-font-lock-keywords)
              (t nil))))
 
 
------------------------------

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

Mike Hopkirk  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. 

The man pages provided here were made using a perl script called
man2html originally written by "Brooks Cutter" 
and slightly post processed.

Note that the Tcl and Tk man pages are also available courtesy of Tom Phelps
, 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)
*****************************************************
Newsgroups: comp.lang.tcl,comp.answers,news.answers
Path: lvirden
From: lwv26@cas.org (Larry W. Virden)
Subject: FAQ: comp.lang.tcl Frequently Asked Questions (4/5)
	(Last updated: April 20, 1994)
Followup-To: comp.lang.tcl
Summary: A regular posting of the comp.lang.tcl Frequently Asked Questions
	(FAQ) and their answers.  This is the fourth of five parts.
	This part is a catalog of Tcl-based programs.
Originator: lvirden@cas.org
Keywords: tcl, expect, extended tcl, wish, tk
Sender: lvirden@cas.org
Reply-To: lvirden@cas.org (Larry W. Virden)
Approved: news-answers-request@MIT.Edu

Archive-name: tcl-faq/part4
Version: 5.0
Last-modified: April 20, 1994

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

	Note that a Contact address with ??? at the end means that I was
unable to verify the address.  Also, Contacts without addresses or marked
as Unknown mean that I had limited to no information about the contact
person.

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 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 dateicon
	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 evaluate_parameters
	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 (Chan)
	o Graphical Interface to CVS (Marwood)
	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 Karel the Robot
	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 Math Teaching Aid
	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 Newsspy
	o Objectify
	o Oracle wrap for Tk/Tcl
	o OS/2 port of Tcl 7.3
	o Palm
	o Parseargs
	o pgbrowse
	o PhoneStation
	o Picasso
	o pixmap
	o Point
	o PostgresBrowswer
	o ProTcl
	o Ptolemy
	o RasMol
	o Remote control of Tk apps
	o reversi
	o Roger's Interface Language (RIL)
	o rolodex
	o RosettaMan
	o Rmth
	o scotty
	o ServiceMail(TM) Toolkit
	o ServiceMail extras
	o SGI GL interpreter
	o Shiva
	o SimCity demo
	o SIMON
	o smaillog
	o Spice interface
	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 tcltkgrass
	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 tk WWW interface
	o Tk xworld
	o TkBible
	o tkchrom
	o TkDispCalc
	o tkdvi
	o tkelm
	o TkFibs
	o tkfire
	o tkfonts
	o tkgnats
	o tkgoph - wade
	o tkgopher
	o tkined
	o tkinfo
	o tkinspect
	o TkIspell
	o tkkids
	o TkLayers
	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 tkprompt
	o tkSketch
	o TkSol
	o tk_stattab
	o tkview
	o Tkwm
	o tkwool
	o tkxpilots
	o Towers of Hanoi
	o trajectory
	o TUA
	o tupact
	o twoClocks
	o Tx
	o unix.tk
	o USE
	o Usenet gateways for Compuserve and GEnie
	o User-Maint
	o user-setup
	o VMS port of Tcl/Tk (Angel Li)
	o VMS port of Tcl/Tk (Kimball)
	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 xbible
	o XBrowse
	o xcal
	o Xdig
	o xdrum
	o xelem
	o xf
	o xf, Japanization version
	o xibc
	o xka
	o xmpeg
	o xmotd
	o Xnetlib
	o xpel
	o xpole
	o xreconfirm
	o xscript
	o XTeXShell
	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: kobialka@gmd.de, meyke@gmd.de

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: pete@cs.rice.edu

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" 

What: Amiga NetBSD Tcl 3.x port
Where: From the contact
Description: A port of Tcl and Tk for Amiga NetBSD running X11R5.
Contact: "Markus Illenseer" 

What: arswm
Where: From the contact
Description: Window manager configurable using Tcl.
Contact: "Bill Burdick" 

What: arTCLs
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/artcls.tar.gz
Description: a Wish-based USENET news reader
Contact: "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: "J. K. Wight" 

What: BETH
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/beth.4.0.tar.gz
Description: Browsing and Editing Tcl Hypertool (BETH).
Contact: "David Svoboda" 

What: biff clock
Where: From the contact
Description: Tk example program showing biff and xclock like functions
Contact: "Karl Lehenbauer" 

What: bitmap browser
Where: From the contact
Description: bmb.tk is a bitmap browser reminiscent of the xbmbrowser.
Contact: "Bob Bagwill"   

What: Bowling
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xbowl-1.4.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/xbowl-dist-2.0.tar.gz
Description: Tk based bowling game, using the core Tcl/Tk.
Contact: "Peter Grina" 

What: browse.tcl
Where: alt.sources archives
Description: Directory browser w/Tcl
Contact: "Peter da Silva" 

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

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: "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" 

What: calc.tk
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/calc.tk.gz
Description: a simple calculator.
Contact: "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: "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: "Brent Welch" 

What: CGI <-> Tcl and/or Tk
Where: From the contact
Description: Simple Common Gateway Interface scripts for invoking
	Tcl scripts or Tk scripts.
Contact: "Yechezkal-Shimon Gutfreund" 

What: CGI Forms based mailing
Where: From the contact
Description: A Tcl script to allow Common Gateway Interface forms-based
	mailing to a specific user.
Contact: "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: "Bill Burdick" 

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

What: Compare Manifest
Where: From the contact
Description: Extended Tcl program that reads a MANIFEST and compares
	directory hierarchy to it.
Contact: "Karl Lehenbauer" 

What: coloredit
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/coloredit.tk.gz
Description: Tk script to edit colors
Contact: "Sam Shen" 

What: Tk cron interface
Where: ftp://avahi.inria.fr/tcl/tkcron
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkcron-1.18.tcl.gz
Description: Tk 3.3 simple interface to crontab creation
Contact: "Cedric Beust" 

What: CUTE
Where: From the contact
Description: Call Unix/Tcl Environment - a serial port 'expect' like
	program.
Contact: "Karl Lehenbauer" 

What: dateicon
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/dateicon-0.1.tar.gz
Description: Attach an icon (which displays the current date) to a Tk
	window.
Contact: "Peter Williams" 

What: DejaGnu
Where: ftp://ftp.cygnus.com/pub/dejagnu/dejagnu-1.2.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.  Additional testsuites are available.
Contact: "Rob Savoye" 

What: DGC Tools
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/dgctools-0.2.tar.gz
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: "Dave Clemans" 

What: directory browser
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/dir.shar.gz
Description: Simple directory browser behaving similar to NeXT file browser.
Contact: "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: isode@nic.ddn.mil

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: "Hume Smith" <850347s@dragon.acadiau.ca> ???

What: Drag and Drop file browser
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/dragndrop.tk.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkfb.shar.gz
Description: Drag and drop based directory browser (tkfb) and helper 
	programs with a NeXTStep like interface.  Version 2 of
	dragndrop.tk was renamed to tkfb.
Contact: "Scott Schwartz" 

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" 

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: "Martin Wendel" 

What: evaluate_parameters
Where: ftp://ftp.Lehigh.EDU/pub/evap/evap-2.x/evap-2.0.tar.Z
Description: Perl program that generates a Tcl/Tk GUI wrapper around
	one's Perl or C program to gather command line arguments interactively.
Contact: lusol@lehigh.edu

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: "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: "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: "Christopher J. Matheus"  and
	weissman@gte.com (Mark D. Weissman)

What: exmh
Where: ftp://parcftp.xerox.com/pub/exmh/exmh-1.2.tar.Z
	ftp://parcftp.xerox.com/pub/exmh/exmh-1.3.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/exmh-1.2.tar.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/exmh-1.3gamma.tar.gz
Description: A Tk based UI to MH.  Supports nested folders, MIME/metamail.
Contact: "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: "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: "Sean Casey"  ???
	"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: "Mark Linton" 

What: FSP client
Where: ftp://genie.lut.ac.uk/murf/
Description: Wafe/Perl based interface to FSP.
Contact: "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"  ???

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: "Steve Osborn" 

What: GOOD
Where: ftp://metallica.prakinf.tu-ilmenau.de/pub/PROJECTS/GOOD0.70/
Description: An object oriented C++/Tcl framework for interactive 3D
	applications running under the X window system, with special
	support to SGI GL, PHIGS, etc.  Features a Tcl shading/
	raytracing/radiosity kernel, a Tk interaction application builder
	and a C++ classlib.  There is also an extension available
	that implements additional objects for scientific 
	visualization.  There is a Tcl set of objects
	for generating interactive 3D graphics included.
Contact: "YART mailing list" ,
	"Ekkehard Beier" 

What: Graphical Interface to CVS (Chan)
Where: From the contact
Description: Software Engineering Class project.
Contact: "Tony Chan" 

What: Graphical Interface to CVS (Marwood)
Where: ftp://ftp.cpsc.ucalgary.ca/pub/projects/grouplab/software/gic-1.2b1.tar.Z
Description: GIC is a Tk interface to the Concurrent Version System, a
	revision control system.
Contact: "David Marwood"  or
	"David Marwood" 
	saul@cpsc.ucalgary.ca

What: Hierarchical Help System (HLP)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/HLP.tar.gz
Description: Tk routines that implement a hierarchical menu type help system.
Contact: "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: "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" 

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: "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.
	This is implemented as a set of date management extensions and a
	wish interpreter.
Contact: "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: "Justin Seiferth" 

What: Iplace - interactively place widgets on a frame
Where: From the contact
Description: A poor-man's GUI builder.
Contact: "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
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/jstools-tk3.6v2.0.LIBRARIES
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"  ???

What: Jungle
Where: From the contact
Description: The contact is developing a "WWW server" (sic) using
	Tk/Tcl/Tcl-DP.
Contact: jungle@catless.ncl.ac.uk

What: Karel the Robot
Where: From the contact
Description: This is a program in development by the contact.
Contact: "Michael D. Moore" 

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: "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: "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"  ???

What: Lightwave
Where: From the contact
Description: An animation program for the Video Toaster
Contact: "Karl Lehenbauer" 

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

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: "David Engel" 

What: lookup
Where: From the contact
Description: Look up words in /usr/dict/word file.
Contact: "Paul Raines" 

What: Machete
Where: From the contact
Description: Simple html editor in tk.
Contact: "Lindsay Marshall" 

What: MacOS Tcl, 6.1
Where: From the contact
Description: Tcl6.1 Mac port (ThinkC 5.0.1)
Contact: "Parag Patel" 

What: MacTcl, 6.1v2
Where: From the contact
Description: Mac port (ThinkC 5.0.1) with a few extensions and fixes
Contact: "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" 

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" 

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" 
	"Tom Poindexter" 

What: man.tk
Where: From the contact
Description: Tk based man page browser.
Contact: "John Bowe" 

What: Math Teaching Aid
Where: ftp://web.cs.ualberta.ca/~wade/Code/mta.tar.gz
Description: Simple application to graph mathimatical functions.
	Allow graphing of arbitrary number of functions at the same time.
	Auto or manual axis range, user control of colors,
	line widths, etc.
Contact: "Wade Holst" 

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: mercurius-bugs@lii.unitn.it

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" 

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: "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" 

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: "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: "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" 
	"Tom Poindexter" 

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" 

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" 

What: Mxedit
Where: ftp://parcftp.xerox.com/pub/mxedit/mxedit.2.3.1.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/mxedit.2.3.1.tar.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/mxedit.menus.gz
Description: A Tk text editor.  Note that the edit
	widget itself is stand-alone so that you can use it in other
	applications.  Also, mxedit.menus is a Tk script to
	put a veneer over Tk menus.
Contact: "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 netrek.
Contact: "Sam Shen" 
	James Hawtin (J.W.Hawtin@lut.ac.uk)

What: Newsspy
Where: ftp://134.93.129.91/pub/newsspy/
Description: A tcl program to connect to a NNTP news server and scan 
	article headers for special keywords.  If found, read article 
	and append to a file.  Can be invoked from cron.
Contact: "hofmann" 

What: Objectify
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/objectify-2.0.tar.gz
Description: Preprocessor to turn a C++ class into a Tcl object type.
Contact: "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: "Mark Andrew Hale" 

What: OS/2 port of Tcl 7.3
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/distrib/tcl2-73a.zip
	ftp://ftp.cdrom.com/pub/os2/2_x/unix/tcl2-73a.zip
Description: Port of Tcl 7.3 except for glob or command pipelines
	to OS/2 2.x, using C Set++.
Contact: "Bud Bach" 

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: "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" 
	"Peter da Silva" 
	"Brad Appleton" 

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: "Stephen A Uhler" 

What: Picasso
Where: ftp://zenon.inria.fr/pub/tk/picasso3.8.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/picasso3.8.tar.gz
Description: Interactive drawing tool similar to idraw.
	Requires Extended Tcl/Tk and Pbmplus comands.
Contact: "Frank Mangin" 

What: pixmap
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/pixmap-0.1.tar.gz
Description: A color pixmap editor written in Tk.
Contact: "Sam Shen" 

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" 

What: PostgresBrowswer
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/postgresbrowser.tcl.gz
Description: An experimental postgres frontend.
Contact: "Frank Sauer" 

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: "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: ptolemy-request@ohm.eecs.berkeley.edu

What: RasMol
Where: ftp://ftp.dcs.ed.ac.uk/pub/rasmol/RasMol2.tar.Z
	ftp:////ftp.dcs.ed.ac.uk/pub/rasmol/raswin.zip
Description: A molecular graphics visualisation program intended
	for proteins and nucleic acids.  Available for X Window System,
	IBM PC MS-Windows and VMS/DecWindows environments.
Contact: rasmol@dcs.ed.ac.uk
	rasmol@ggr.co.uk

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: "Bill Burdick" 

What: reversi
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/reversi-1.0.tk.gz
Description: Reversi (othello) game.
Contact: "Joel Fine" 

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" 

What: rolodex
Where: From the Tk demos directory
Description: John Ousterhout's entry to Tom Solbourne's 1992 X toolkit
	challenge.
Contact: "John Ousterhout" 

What: RosettaMan
Where: ftp://ftp.cs.berkeley.edu/ucb/people/phelps/tcl/rman.tar.Z
Description: UNIX man page filter - converts to other formats.
Contact: "Tom Phelps" 

What: Rmth
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/beth4.0.tar.gz
Description: A combination shell emulator, remote command interpreter,
	and wish tutorial.
Contact: "David Mark Svoboda" 

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

What: ServiceMail(tm) Toolkit (servicemail.tar.Z)
Where: ftp://eitech.com/pub/servicemail/servicemail2.0.1.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: "ServiceMail questions" ,
	or subscribe to servicemail-help mailing list by sending a message
	to the "listserv subscribe servicemail-help your-real-name" service at
	"services@eitech.com".

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: services@keck.tamu.edu 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: "Ekkehard Beier" 

What: SIMON
Where: ftp://ftp.elec.qmw.ac.uk/pub/simon/
Description: A Tk/Tcl based Mosaic Hotlist/subject space management program.
	A subject space server maintains a database for the users of
	the software.
Contact: "M. J. Johnson" 

What: smaillog
Where: alt.sources archives
Description: email activity report for smail 2.5
Contact: "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: Spice interface
Where: http://ES-sun2.fernuni-hagen.de/editor.html
Description: Experimental schematic SPICE interface.
Contact: "Johann Friedrich Heinrichmeyer" 

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: "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: "Pierre David" 

What: Symbolic derivations
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tderiv-1.0.tar.gz
Description: A simple symbolic derivation solver.
Contact: "Michael Tiller" 

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" 

What: Tcl / Tk install softlink
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/installtk.gz
Description: installtk is a script which creates a set of softlinks
	from the distribution directory to the public installation
	directories.
Contact: "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: "Dietmar Theobald" 

What: tcl++
Where: From the contact
Description: Tcl based code providing SELF-like prototype-based tcl objects.
Contact: "Hansel Wan" 

What: tclbot
Where: ftp://belch.berkeley.edu/pub/mud_robots/tclbot
Description: MUD robot for Tcl programmers
Contact: "Rusty C. Wright"  ???

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: "Adam Sah" 

What: Brannon's Tcl to C compiler
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/ttc.tar.gz
Description: Compiles Tcl scripts into corresponding C code.
Contact: "TERRENCE MONROE BRANNON"  ???

What: tcltags (Hoegeman)
Where: From the contact
Description: Tcl command to generate vi tags file.
Contact: "Michael Hoegeman" 

What: tcltags (LoVerso)
Where: From the contact
Description: /bin/sh command to generate vi tags file.
Contact: "John Robert LoVerso" 

What: tcltags (Tromey)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tcltags.tcl.gz
Description: Emacs TAGS generation for Tcl source.
Contact: "Tom Tromey" 

What: tcltkgrass
Where: ftp://moon.cecer.army.mil/grass/incoming/tcltkgrass.tar.Z
Description: Tcl/Tk frontend for GRASS
Contact: "Mark Line" 

What: tcltools
Where: ftp://cygnus.com/pub/tcltools-930124.tar.Z
	 ftp://harbor.ecn.purdue.edu/pub/tcl/code/tcltools-930124.tar.gz
Description: Version of Tcl 6.5 and Tk 3.0 which uses autoconfig for
	configuration purposes.  Not needed for Tcl 7/Tk 3.4.
Contact: "david d 'zoo' zuhn" 

What: tcltt, v1
Where: ftp://ftp.white.toronto.edu/pub/muds/tcltt
Description: Tcl TinyTalk
Contact: "Chris Siebenmann" 

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: "David Fenger" 

What: tdcad
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tdcad0_1a.tar.gz
Description: A little Tk CAD drawing program in early Alpha stage.
Contact: "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: "TeenyMUD admin addr" 
	teeny-list@fido.econlab.arizona.edu (Teeny MUD Mailing List)
	downsj@atlantis.CS.ORST.EDU (jason downs)
		
What: tess
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tess.2.0.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: "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: tickle@ice.com

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" 

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" 

What: Tk extensions via imake
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmkmf-3.6.tar.gz
Description: An imake based utility that simplifies wish extensions so that
	no Tk code modification is needed.
Contact: "Jim Wight" 

What: Tk terminal widget
Where: From the contact
Description: A Tk terminal emulator-like widget.
Contact: "Rudi Stouffs" 

What: tk WWW interface
Where: ftp://www.w3.org/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: "administration of mailing list" 
	tk-www@athena.mit.edu (WWW Tk Browser Discussion List)

What: Tk xworld
Where: From the contact
Description: Tk world builder for the xworld server
Contact: "Michael D. Moore" 

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: "Michael D. Moore" 

What: tkchrom
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkchrom-1.1.gz
Description: A clock that uses the orientation of a wedge in a circle to
	indicate the time.
Contact: "Tom Phelps" 

What: TkDispCalc
Where: From the contact
Description: A Tk display calculator, with memory of previous commands.
Contact: "Eric J. Schwertfeger" 

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: lingnau@math.uni-frankfurt.de

What: tkelm
Where: From the contact
Description: Tk elm-based mail reader.
Contact: "Budi Rahardjo" 

What: TkFibs
Where: ftp://shuksan.cs.berkeley.edu/pub/tkfibs/
Description: Tk client that provides an interface to the Fibs 
	backgammon server.
Contact: tkfibs@shuksan.cs.berkeley.edu

What: tkfire
Where: From the contact
Description: Tk Defender like game
Contact: "Wayne A. Christopher" 

What: tkfonts
Where: From the contact
Description: Font selection program.
Contact: "Jay Schmidgall" 

What: tkgnats
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkgnats.tar.gz
Description: Tk front ends for the GNATS bug management system.
Contact: "Mike Hoegeman" 

What: tkgoph - wade
Where: From the contact
Description: A quick and dirty Tk based gopher client.
Contact: "Reed Wade" 

What: tkgopher
Where: From the contact
Description: Tk based gopher client which will use TclX, tkPixmap, and
	Japanized text if available.
Contact: "Hoshi Takanori" 

What: tkined
Where: ftp://ftp.ibr.cs.tu-bs.de/ibr/pub/local/tkined-0.9.tar.Z
Description: A Network Configuration drawing program.
Contact: netman@ibr.cs.tu-bs.de, 
	tkined-request@ibr.cs.tu-bs.de,
	schoenw@ibh.cs.tu-bs.de

What: tkinfo
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkinfo-0.6.tar.gz
	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: "Kennard White" 

What: tkinspect
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkinspect-4d.tar.gz
Description: Allow browsing/inspection of running Tk applications.
Contact: "Sam Shen" 

What: TkIspell
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkispell-1.6.tar.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkispell-1.6.patch1
	ftp://bohr.physics.upenn.edu/pub/tk/tkispell-1.6beta.tar.Z
Description: Interface to ispell command.  Version 1.6 is intended to
	share utility files with TkMail v1.6.
Contact: "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: "Peter Grina" 

What: TkLayers
Where: From the contact
Description: Tk/Expectk interface to ulayers, a windowing package
	for serial protocol Unix users.
Contact: "Dan Wallach" 

What: TkMail
Where: ftp://bohr.physics.upenn.edu/pub/tk/tkmail-1.6.tar.Z
	ftp://bohr.physics.upenn.edu/pub/tk/tkmail-1.6.patch1
	ftp://bohr.physics.upenn.edu/pub/tk/tkmail-1.6.patch2
	ftp://bohr.physics.upenn.edu/pub/tk/tkmail-1.6.patch3
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmail-1.6.tar.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmail-1.6.patch1.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmail-1.6.patch2.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmail-1.6.patch3.gz
Description: Tk interface to bsd's Mail command.
Contact: "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: "Cedric Beust" 

What: TkMan
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkman-1.5.tar.gz
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: "Tom Phelps" 

What: tkmess
Where: ftp://hplyot.obspm.fr/tcl/tkmess
Description: Tk version of xmessage.
Contact: "Laurent Demailly" 

What: TkMH
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmh1.1.tar.gz
Description: Interface for the MH mailing system.  Depends on Tcl 7.0 and
	Tk 3.3.
Contact: "Martien Verbruggen" 

What: TkMHn
Where: From the contact
Description: Interface for the MH mailing system.
Contact: "Thillier Pyves" 

What: tkmines
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkmines.1.5.shar.gz
Description: Mines game.
Contact: "Joel Fine" 

What: tkmotd
Where: From the contact
Description: Tk based tool to display the motd file with acknowlege button.
Contact: "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 D. Moore" 

What: Tkolumns
Where: From the contact
Description: Tk Columns game.
Contact: "Tony Bates" 

What: tkpbiff
Where: From the contact
Description: Tk version of xpbiff, a pop-up bitmap version of biff.
Contact: "Benjamin Lurie" 

What: tkpostage
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkpostage-1.3.tar.gz
Description: An xbiff replacement.  Requires Tk 3.[34].
Contact: "Dan Wallach" 

What: TkPostit
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkPostit-1.4.tar.gz
Description: A Tk program behaving like xpostit.
Contact: "Alessandro Rubini" 

What: tkprompt
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/tkprompt.shar.gz
Description: Tk xprompt/xprompt2 replacement.  Pop up a window with some
	prompts and input areas.
Contact: "John Robert LoVerso" 

What: tkSketch
Where: From the contact
Description: Tk based Sketch and Schematic editor.
Contact: "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: "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: "Dan Serachitopol" 
	bwb@odin.mda.uth.tmc.edu (Barry W. Brown)

What: tkview
Where: From the contact
Description: View one or more files from a scrollable Tk text widget.
Contact: "Eric J. Schwertfeger" 

What: Tkwm
Where: ftp://busco.lanl.gov/pub/tkwm-0.1a11.tar.gz
Description: A Tcl/Tk window manager, based on extensions to Tk.
Contact: "Eric Schenk" 

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: "Colas Nahaboo" 

What: tkxpilots
Where: From the contact or alt.sources archives
Description: Tk/Tcl script that allows you to create configured
	xpilots servers.  Best with xpilots-3.1.0 or newer.
Contact: "Richard Oak" 

What: Towers of Hanoi
Where: From the contact
Description: Sample of Towers of Hanoi solution in Tk.
Contact: "Damon Permezel" 

What: trajectory
Where: From the contact
Description: Program to edit piecewise linear paths in space as a
	function of time.
Contact: "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: "Lele Gaifax" 

What: tupact
Where: alt.sources archives
Description: 9X faster C-news active file "minimum article" updater
Contact: "Karl Lehenbauer" 

What: twoClocks
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/twoClocks.tcl.gz
Description: Two different kinds of clock
Contact: "Charles Read"  ???

What: Tx
Where: ftp://ftp.cs.berkeley.edu/pub/tcl/mx.tar.Z
Description: an old Tcl/Sx based terminal emulator
Contact: "John Ousterhout" 

What: unix.tk
Where: ftp://ftp.cs.berkeley.edu - in the Tcl mailing list archive file
Description: a Unix Tk browser
Contact: "Brent Welch" 

What: USE
Where: ftp://cranach.rz.tu-ilmenau.de/pub/unix/tcl/extensions/use1.0.tar.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/use1.0.tar.gz
Description: Provides a graphical tool for designing user shells.
Contact: "Ruediger Franke" 

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: "David Beckemeyer" 

What: User-Maint
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/UserMaint_V1.0.tar.gz
Description: a Tk based user account maintenance package for maintaining
	/etc/passwd, /etc/group, etc.
Contact: "Charles A. 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: "Richard Elling" 

What: VMS port of Tcl/Tk (Angel Li)
Where: ftp://mango.rsmas.miami.edu/pub/VMS-tcl/tcl73-tk36-itcl13.tar.Z
Description: Tcl 7.3, Tk 3.6, [incr tcl] 1.3 ported to VMS from Kimball's
	source.  Apparently new extensions are being ported as we speak -
	BLT 1.6 and the photo widget were just announced.
	These were compiled on an Alpha running OpenVMS T6.1.
Contact: "Angel Li" 

What: VMS port of Tcl/Tk (Kimball)
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: "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" 

What: Wafe
Where: ftp://ftp.wu-wien.ac.at/pub/src/X11/wafe/wafe-0.97.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: wafe@wu-wien.ac.at

What: Wafe graphical cross-reference browser
Where: From the contact
Description: A graphical interface to cref written in Wafe and perl.
Contact: "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: "Gustaf Neumann" 

What: widget server
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/ws1.0.tar.gz
Description: Widget server designed for use with the X11/emacs program epoch.
Contact: "Brian L. Kahn" 

What: wish compiler
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/wish_compiler.shar.gz
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" 

What: wtour
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/wtour2.0.tar.gz
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" 

What: xbible
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xbible.tar.gz
Description: Simple Tk front-end to Bible: BRS Rel. 4.00
Contact: "Alan Mak" 

What: XBrowse
Where: From the contact
Description: Tk file browser.  Uses some of the Sekora jlibrary routines.
Contact: "Phil J Smith" 

What: xcal
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xcal.tcl.gz
Description: Simple calendar display.
Contact: "Mitch Dsouza" 

What: Xdig
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/Xdig.shar.gz
Description: A Wish-based interface to the Domain Internet Groper (dig)
Contact: "Dave Collier-Brown"  ???

What: xdrum
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xdrum-1.0.tar.gz
	ftp://ftp.sterling.com/usenet/comp.sources.misc/packages/xdrum
Description: A script based on the Tcl MIDI extensions that allows you
	to create and edit drum patterns.
Contact: "Mike Durian" 

What: xelem
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xelem-1.10.tar.gz
Description: A Wish-based hypertext periodic table of chemical elements.
Contact: "Przemek Klosowski" 

What: xf
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xf2.3-pl0.tar.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/code/xf2.3-pl0.pat.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 listserv@tubvm.cs.tu-berlin.de
	to subscribe to the XF mailing list
	"Sven Delmas" 

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: "Yoshiyuki NISHINAKA" 

What: xibc
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xibc-0.31.tar.gz
Description: Requires expectk - provides an X11 frontend for the Internet
	Backgammon Server.
Contact: "Jesper Blommaskog" 

What: xka
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xka-0.91.tar.gz
Description: Tk based rolodex-like application.
Contact: "Pierre David" 

What: xmotd
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xmotd.gz
Description: Simple Tk script that displays the motd and forces the user
	to acknowledge that they have read it by pressing a key.
Contact: "Doug Hughes" 

What: xmpeg
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/xmpeg_0.5.tar.gz
	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" 

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" 

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: xpel-request@cs.unc.edu to get on mailing list.

What: xpole
Where: ftp://ptolemy.eecs.berkeley.edu/pub/misc/
Description: A digital filter design and exploration program
	written in tcl/tk (with a few widgets written in C).
Contact: "Kennard White" 

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: "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: "Jan Newmarch" 

What: XTeXShell
Where: ftp://tsx-11.mit.edu/pub/linux/packages/TeX/XTeXShell-0.91.tar.gz
Description: Tk based shell around LaTeX/TeX, providing hypertext
	help, interactive editor, and spell checking.
Contact: "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: "Ekkehard Beier" 

What: Zap Interpreters
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/zapinterps.shar.gz
Description: Simple Tk script to clear out all wish interpreters which
	died without being removed.
Contact: "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.15.tar.gz
	ftp://coombs.anu.edu.au:/pub/irc/tcl/
	http://catless.ncl.ac.uk/Programs/Zircon
Description: A Tk interface to IRC, requiring Tcl 6.7, Tk 3.2 and Tcl-DP V1.0ak.
Contact: zircon-request@catless.newcastle.ac.uk

What:
Where:
Description:
Contact:

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

End of comp.lang.tcl Frequently Asked Questions (4/5)
*****************************************************
Newsgroups: comp.lang.tcl,comp.answers,news.answers
Path: lvirden
From: lwv26@cas.org (Larry W. Virden)
Subject: FAQ: comp.lang.tcl Frequently Asked Questions (5/5)
	(Last updated: April 20, 1994)
Followup-To: comp.lang.tcl
Summary: A regular posting of the comp.lang.tcl Frequently Asked Questions
	(FAQ) and their answers.  This is the fifth of five parts.
	This part is a catalog of Tcl-based extensions.
Originator: lvirden@cas.org
Keywords: tcl, expect, extended tcl, wish, tk
Sender: lvirden@cas.org
Reply-To: lvirden@cas.org (Larry W. Virden)
Approved: news-answers-request@MIT.Edu

Archive-name: tcl-faq/part5
Version: 5.0
Last-modified: April 20, 1994

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

	Note that a Contact address with ?? at the end means that I was
unable to verify the address.  Also, Contacts without addresses or marked
as Unknown mean that I had limited to no information about the contact
person.

Index of questions:

XIII. Since Tcl/Tk appear to be extensible, are there any common extensions?
	o adatcl
	o addinput
	o after command extended
	o argument processing for Tcl
	o argument parsing with defaults
	o array name string matching extension
	o binary I/O
	o BLT toolkit
	o BOS
	o Bumgarner misc tcl functions
	o busy window
	o C or C++ function called from Tcl
	o C++ compilation of tk
	o calculator
	o Calc_Object
	o calendar
	o Canvas bitmap mask extension (Earls)
	o Canvas bitmap mask extension (Fine)
	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 Compound itcl widget class
	o Convert strings to and from WWW escape notation
	o Tcl crypt
	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 Disjoint listbox selections (Wunderli)
	o Dynamic loading wish
	o eiftcl
	o Enabled Mail
	o every command
	o file I/O as events
	o file select (da Silva)
	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 (Doan)
	o GDBM Tcl interface (Lindig)
	o getdate
	o GLXAux bindings
	o graph
	o GRASS GIS widget
	o GroupKit
	o heirarchy class
	o HTML for Alpha
	o Hush
	o iconbutton
	o [incr Tcl]
	o [incr Tcl] file selection dialog
	o [incr Tcl] stacks and queues
	o [incr Tcl] widget base class
	o Informix interface
	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 Linear sort on list of lists
	o lisp2wish (Kaye)
	o lisp2wish (Kramer)
	o list select
	o list quicksort
	o Metacanvas
	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 (Johnson)
	o NextStep / Tcl MAB
	o NIS+ interface library
	o Objective C / Tcl library
	o Open Scripting Architecture (Apple) Extension
	o OpenWindows tkBind mod
	o Oracle extension to Tcl.
	o Pacco (Pavia Active-Component Compound Objects)
	o Pack widget with no shrink option
	o package extension
	o Password widget
	o Pie menus
	o Pixel position of a character
	o Photo widget
	o Pixmap support
	o Postgres extensions
	o procedure tracing
	o Prolog / Tcl interface
	o pset
	o PV-WAVE interface
	o Eichin random numbers
	o Libes random numbers
	o Salmon random numbers
	o Schoenwaelder 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 getopt - roydhouse
	o Tcl IPC interface
	o Tcl modifications to support threads
	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 16 bit text support
	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 menu postcommand fix
	o tk mwm enhancements
	o Tk Perl 4
	o Tk Perl 5
	o Tk private color maps
	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 VUM widgets
	o warp
	o widgetTree
	o wincr
	o wmstuff
	o X11 Selection support enhancement
	o X11 visual selection subcommand
	o X11 XID enhancement - kaplan
	o X11 XID enhancement - hoegeman
	o Xt replay library
	o XView Drop support

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: "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" 

What: after command extended
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/TknewAfterCmd3.6a.tar.gz
Description: The after command is extended to support new subcommands to
	query pending commands, abort pending commands, prevent
	resubmission of identical commands, edit the command script
	after submission, or reschedule submitted command.
ContacT: wolf@molout.tutkie.tut.ac.jp (Wolf-D. Ihlenfeldt)

What: argument processing for Tcl
Where: From the contact
Description: Provides Tk-like argument processing to Tcl proc writers.
Contact: "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: "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: "Stephen A Uhler" 

What: binary I/O
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/binary-io-hack
Description: Tcl based way of reading binary data containing nulls.
Contact: "John Robert LoVerso" 

What: BLT toolkit
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/BLT-1.6.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: "George A. Howlett" 

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 extension.
Contact: "Admin. requests for BOS mailing list" 
	snl+box@cmu.edu (BOS mailing list)

What: Bumgarner misc tcl functions
Where: From the contact
Description: A set of misc Tcl functions, such as a version of file
	that returns true if all the list of options supplied return true,
	a proc to clear an array of all elements, a proc to determine
	whether a proc exists, and a proc to evaluate a command and then
	undefine it.
Contact: "Bill Bumgarner" 
	
What: busy window
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/busy-1.1.tar.gz
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: "George A. Howlett" 

What: C or C++ function called from Tcl
Where: ftp://ftp.forwiss.uni-passau.de/pub/unix/x11/programming/tcl/extensions/min_extention.tar.gz
	ftp://ftp.forwiss.uni-passau.de/pub/unix/x11/programming/tcl/extensions/tkminext.tar.gz
Description: A minimal example (in German) of including a C or C++
	function in Tcl or Tk.
Contact: "Stefan Iglhaut" 

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" 

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"  ??

What: calculator
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/calculator.tk.tar.gz
Description: Simple Tk calculator
Contact: "Richard V. Booth" 

What: calendar
Where: From the contact
Description: Tk calendar widget
Contact: "Sani Nassif [227]"  ??

What: Canvas bitmap mask extension (Earls)
Where: From the contact
Description: Patch tkCanvBmap to add a -mask option to Canvas Bitmaps.
Contact: "Johnson Michael Earls" 

What: Canvas bitmap mask extension (Fine)
Where: From the contact
Description: Patch file for tkCanvBmap to add a -mask option for drawing
	bitmaps.
Contact: "Thomas A Fine" 

What: Canvas support of printing umlaut
Where: From the contact
Description: Patch to prolog.ps to allowing printing of umlauts.
Contact: "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: "Tom Tromey" 

What: CASTE
Where: From the contact
Description: o-o programming based on Common Lisp Object System (CLOS)
Contact: "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: "Gregor Schmid" 

What: colorfocus replacement system
Where: From the contact
Description: Tk replacement code to inform the window manager about
	non-standard colormaps.
Contact: "Paul Mackerras" 

What:  color settings
Where: From the contact
Description: Tcl procedure to select appropriate color whether machine is
	color or monochrome
Contact: "Juergen Wagner" 

What: Compound itcl widget class
Where: From the contact
Description: An itcl abstract base class for compound widgets.
Contact: "Nat Pryce" 

What: Convert strings to and from WWW escape notation
Where: From the contact
Description: Set of routines to do the expansion and condensation of
	special characters to escape characters for HTML.  These
	were called xh2a and ah2x.
Contact: "Joachim Mueller" 

What: Tcl crypt
Where: From the contact
Description: While useful in it's own right, the intention here was
	to provide a very small example of how to integrate C functions
	into Tcl and Tk.
Contact: "Juergen Nickelsen" 

What: ctaxt
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/ctaxt1.2.tar.gz
Description: Combine Tcl/Tk with other X Window toolkits (like Motif)
	into a single graphical user interface.
Contact: "Holger Pleiss" 

What: dashproc
Where: From the contact
Description: Defines procedures that take Tk like options and forces them
	to become variables in your procedure.
Contact: "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: "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: "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: "Makoto Ishisone" 

What: deck.tk	
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/deck.tk.gz
Description: A simple implementation of InterViews "deck" widget
Contact: "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: "Juergen Wagner" 

What: Disjoint listbox selections (Ewing)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/Listbox.patch.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/MListbox-patch
Description: Tk 3.x listbox Disjoint selections.  MListbox-patch is
	specifically for Tk 3.6.
Contact: "Marc R. Ewing" 
	"Heiko Schroeder" 

What: Disjoint listbox selections (Ewing/Lutz)
Where: From the contact
Description: Port of Ewing's patch to the latest Tk.
Contact: "Dale Lutz" 

What: Disjoint listbox selections (Raines)
Where: From the contact
Description: Code similar to that used by TkMail generalized.
Contact: "Paul E. Raines" 

What: Disjoint listbox selections (Wunderli)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/MListbox-patch
Description: Enables Tk 3.6 to have non-contiguous selections.
Contact: "Martin Andre Wunderli" 

What: SunOS dld package
Where: From the contact
Description: Tcl front end for SunOS 4.x dynamic loading routines.
Contact: "Jean-Luc Chatelain" 

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.  Has been
	superseded by shells-1.1.
Contact: "Michael D. Moore" 

What: eiftcl
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/eiftcl.tar.gz
Description: Provide basic facilities for combining the programming
	languages Eiffel and Tcl into a hybrid program
	architecture.
Contact: "Stephan Herrmann" 

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: safe-tcl-request@uunet.uu.net

What: every command
Where: From the contact
Description: Execute a command immediately and every n seconds thereafter.
Contact: "Bill Burdick" 

What: file I/O as events
Where: From the contact
Description: A Tk file handler command which uses Tk_CreateFileHandler().
Contact: "Stuart Clayman" 

What: file select (sherman)
Where: From the contact
Description: A "more over-developed file-selection mechanism".
Contact: "Aaron Sherman" 

What: file select (Silva)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/fileselect.tcl.gz
Description: file selector box
Contact: "Mario Jorge Silva" 

What: Tk focus follows pointer
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/focus3.1a.PATCH.gz
Description: Tk 3.[12] patch to implement focus follows pointer and
	key propagation model.
Contact: "Kennard White" 

What: font settings
Where: From the contact
Description: Tcl package "getfont" which returns a font matching request
	as closely as possible.
Contact: "Spencer W. Thomas" 

What: foreach additional list enhancement
Where: From the contact
Description: Enhance the Tcl foreach to support more than one list.
Contact: "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.gz
Description: Tk 3.x File Selection dialog box
Contact: "Sven Delmas" 

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: "Duncan Sinclair" 

What: GDBM Tcl interface (Doan)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclgdbm1.0.tar.gz
Description: A Tcl interface to the GNU dgm database software.
Contact: "Tuan Doan" 

What: GDBM Tcl interface (Lindig)
Where: From the contact
Description: A rewrite of Doan's tclgdbm, removing some
	restrictions.
Contact: "Christian Lindig" 

What: getdate
Where: From the contact
Description: Adds getdate command to tcl interpreter.
Contact: "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: "Dan Wallach" 

What: graph
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/graph-1.1.tar.gz
Description: XY graphic plot and hypertext widgets for Tk 2.x
	The author/contact recommends you move to the BLT toolkit.
Contact: "George Howlett" 

What: GRASS GIS widget
Where: From the contact
Description: Contact has an alpha version of a GRASS GIS display only
	widget.  Can display multiple themes in overlay or replace mode.
	More details when contact has progressed.
Contact: "Tom Moore"  ,
	grassu-request@moon.cecer.army.mil (GRASS Users' email list)
	
What: GroupKit
Where: ftp://ftp.cpsc.ucalgary.ca/pub/projects/grouplab/software/groupkit-2.3.tar.Z
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/groupkit-1.0.tar.gz
Description: Tcl/Tk based version of InterViews GroupKit.
Contact: "Saul Greenberg" ,
	Mark Roseman 

What: heirarchy class
Where: From the contact
Description: Mentioned in passing by a comp.lang.tcl poster as
	being related to a query made about collapsible hierarcy widgets.
	Not yet released.
Contact: "Phil Gordon" 

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" 

What: Hush
Where: ftp://ftp.cs.vu.nl/eliens/hush-1.2.tar.Z
	ftp://ftp.cs.vu.nl/eliens/hush-contrib-1.0.tar.Z
Description: C++ API for Tcl/Tk
Contact: "A Eliens" 

What: iconbutton
Where: From the contact
Description: Tk 1.4 button widget which displays bitmap
Contact: "Trevor Lowe"  ??

What: [incr Tcl]
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/itcl-1.3.tar.gz
Description: Set of extensions to support object-oriented programming in Tcl.
	Provides the notion of a class of objects, allowing related
	procedures to be encapsulated together with their shared data
	in a local namespace hidden from the rest of the program.
Contact: "Michael J. McLennan" 

What: [incr Tcl] file selection dialog
Where: From the contact
Description: Motif-like file selection dialog using [incr Tcl].
Contact: "Mark L. Ulferts" 

What: [incr Tcl] stacks and queues
Where: From the contact
Description: Stacks and queues implemented in [incr Tcl] arrays.
Contact: "David Megginson" 

What: [incr Tcl] widget base class
Where: From the contact
Description: A modification of Pryce's widget base class to
	support proper destroy handling.
Contact: "Mark Sterin" 

What: Informix interface
Where: From the contact
Description: Interface between Informix and Tcl/TK.
Contact: Sean.Levy@cs.cmu.edu

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: "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: "Nick Ing-Simmons" 

What: Key symbols enhanced support
Where: From the contact
Description: Tk enhancement for additional keysym support.
Contact: "Michael Salmon" 

What: Lamda pure Tcl functions - noble
Where: From the contact
Description: Provide support for unnamed procs in Tcl.
Contact: "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: "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: "Tom Tromey" 

What: Lamda functions - Wallach
Where: From the contact
Description: Simple proc to provide a lamda-like capability in Tcl.
Contact: "Dan Wallach" 

What: lassign
Where: From the contact
Description: Assign elements of list to the given variables.
Contact: "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" 

What: Linear sort on list of lists
Where: From the contact
Description: Alphanumeric comparison for linear sort of lists.
Contact: "Matthew Newman" 

What: lisp2wish (Kaye)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/lisp2wish6.tar.Z
Description: Wish to Common Lisp interface
Contact: "Jonathan Kaye" 

What: lisp2wish (Kramer)
Where: From the contact
Description: Common Lisp to tk interface
Contact: "Bryan M Kramer" 

What: list select
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/listselect.tcl.gz
Description: Simple file selector
Contact: "Mario Jorge Silva" 

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: "Nat Pryce" 

What: Metacanvas
Where: From the contact
Description: Tk extension to read and write canvas metafiles.
Contact: "Nat Pryce" 

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.gz
Description: A Tcl shell (moat) which uses Motif widgets rather than
	Tk widgets.  A mailing list is available on
	listserv@ise.canberra.edu.au ; send a subscribe tclMotif 
	line to join.
Contact: "Jan Newmarch" 

What: moreButtons
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/moreButtons-1.0.tar.gz
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: "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: "Andy Golding" 

What: Multibyte Support for Tk
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/patch-16bit.0.2.1.tar.gz
Description: Tk 3.2 support for 2 byte character strings.
Contact: "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: "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: "Alessandro Bollini" 
	"Alessandro Rubini" 

What: Multiple interpreter support
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/minterp-0.9.tar.gz
Description: Create/control Multiple Interpreters from TCL, and also
	Object Oriented Programming.
Contact: "David Herron" 

What: Nautilus
Where: From the contact
Description: A browser for [incr tcl] classes.
Contact: Lindsay.Marshall@newcastle.ac.uk

What: net CDF
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/net_tcl.tar.gz
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.gz
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: "Mailing service daemon" 

What: NeXTSTEP / Tcl interface (Johnson)
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" 

What: NextStep / Tcl MAB
Where: ftp://cs.orst.edu/pub/next/submissions/
Description: A Tcl 7.3 MAB - unfortunately, I don't speak NextStep so
	that's about all I know.
Contact: Unknown

What: NIS+ interface library
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/nistcl-0.02.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: "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: "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: OpenWindows tkBind mod
Where: From the contact
Description: One line patch to change the Alt modifier from using Mod2
	to using Mod4.
Contact: "Johnson Michael Earls" 

What: Oracle extension to Tcl.
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/oratcl-2.11.tar.gz
Description: Provide access to a Oracle Database server from within Tcl.
	Based on Tcl 7.3.
Contact: "Tom Poindexter"  or
	"Tom Poindexter" 

What: Pacco (Pavia Active-Component Compound Objects)
Where: ftp://iride.unipv.it/pub/Pacco/pacco-0.6.tz
	ftp://iride.unipv.it/pub/Pacco/pacco-docs-0.6.tz
Description: A way to manage binary objects in a distributed environment.
	Adds image display capabilities to the tk widget set.
	Uses Tcl 7.3/Tk 3.6, and prefers use of the shells-1.1 environment.
Contact: "Alessandro Rubini" 
	alberto@ipvvis.unipv.it (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: "Brent Welch" 

What: package extension
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/package0.1.patch.gz
Description: Tcl 7 extension to allow collections of related variables
	and procedures.
Contact: "Cimarron Taylor" 

What: Password widget
Where: From the contact
Description: Tk entry box widget which does not show it's contents.
	Should appear in tkauxlib 2.0.
Contact: "Kevin B. Kenny" 

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: "Don Hopkins" 

What: Pixel position of a character
Where: From the contact
Description: Get the pixel positions of characters.
Contact: "Eric J. Schwertfeger" 

What: Photo widget
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/photo-2.4.tar.gz
	ftp://dcssoft.anu.edu.au/pub/tk/photo-2.4.tar.Z
Description: widget which displays a monochrome or color image using dithering
Contact: "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: "Sven Delmas" 

What: Postgres extensions
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/PQTcl.tar.gz
Description: C and C++ versions of interface to the UCB libPQ Postgres
	relational database.
Contact: "Robin J. Maxwell" 

What: procedure tracing
Where: From the contact
Description: Tcl procedure tracing package.
Contact: "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: binprolog@info.umoncton.ca.

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: "Ted Dunning" 

What: PV-WAVE interface
Where: From the contact
Description: Tcl interfaces to PV-WAVE.
Contact: "Joe VanAndel" 

What: Eichin random numbers
Where: From the contact
Description: Tcl random number generator using Knuth 3.6 algorithm to
	generate 16 bit numbers.
Contact: "Mark Eichin" 

What: Libes random numbers
Where: From the contact
Description: Modified Samon random function for better behavior.
Contact: "Don Libes" 

What: Salmon random numbers
Where: From the contact
Description: Tk script displaying Salmon random function.
Contact: "Glen Fullmer" 

What: Schoenwaelder random numbers
Where: From the contact
Description: Simple Tcl script to generate random numbers.
Contact: "Juergen Schoenwaelder" 

What: structure like objects in Tcl
Where: From the contact
Description: A Tcl command that lets you use arrays similarly to structs.
Contact: "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: "Roger West" 

What: readline-like function support for tk - miguel
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tk_readline-1.2.patch.gz
Description: Tk 3.6 patches for GNU readline support.
Contact: "Miguel de Icaza" 

What: RenderMan bindings
Where: From the contact
Description: Set of bindings to external RenderMan toolkit.
Contact: "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: "Brent Welch" 

What: Safe Tcl Interpreter
Where: From the contact
Description: Tcl cmds to provide some level of security.
Contact: "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: "Tom Phelps" 

What: secure tcl
Where: From the contact
Description: Extension to provide a send message evaluator
Contact: "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: "Gallesio Erick" 

What: showproc.tcl
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/showproc.tcl.Z
Description: A new showproc
Contact: "Lance Ellinghouse" 

What: SIPP extensions
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tsipp-3.0c.tar.gz
	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: "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: "Craig Struble" 

What: SQL support
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/isqltcl.tar.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/sql_tcl.tar.gz
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" 

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" 

What: Sybase Tcl
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/sybtcl-2.11.tar.gz
Description: Tcl 7.3 interface to Sybase database server, using SQL.
	Also requires the Sybase Open Client (DB-Library) package.
Contact: "Tom Poindexter" 
	"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: "Joe Touch" 

What: tclcompare
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclcompare.gz
Description: Compare two lists for equality
Contact: "David Herron" 

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: "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: "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: "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: "Don Libes" 

What: tcl debugger (extended tcl)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tcl.debugger.gz
Description: tclX source level limited debugger (patch to tclX)
Contact: "Karl Lehenbauer" 

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: tcl-dp@roger-rabbit.CS.Berkeley.EDU or
	tcl-dp-bugs@roger-rabbit.CS.Berkeley.EDU

What: Tcl extension tools
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/majorminor.tar.gz
Description: Extension to provide a development environment to ease
	implementing new commands within Tcl/Tk.
Contact: "David Herron" 

What: Tcl getopt - earls
Where: From the contact
Description: A Tcl-based getopt function.
Contact: "Johnson Michael Earls" 

What: Tcl getopt - mangin
Where: From the contact
Description: A Tcl based getopt function.
Contact: "Frank Mangin" 

What: Tcl getopt - roydhouse
Where: From the contact
Description: A Tcl getopt function with expanded options.
Contact: "Aaron Roydhouse" 

What: Tcl IPC interface
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclipc1-0.tar.gz
Description: Implements Tk's send command without requiring Tk or X11.
Contact: "Kim Gillies" 

What: Tcl modifications to support threads
Where: From the contact
Description: A set of changes to Tcl 7.3 to make it more thread-sturdy.
Contact: "Earl Chew" 

What: tclIV
Where: ftp://ftp.cpsc.ucalgary.ca/pub/roseman/tclIV.tar.Z
Description: Tk wrappers for InterViews 3.1 widgets.
Contact: "Mark Roseman" 

What: tclMIDI
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclm-1.0.tar.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclMIDI0.1.tar.gz
	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.  Note that a new version, renamed tclmidi-2.0, is now 
	in beta testing.  It has been rewritten in C++.  It will be built 
	around tcl7.3.
Contact: "Mike Durian" 

What: tclOBST
Where: ftp://ftp.fzi.de/pub/OBST/OBST3-3/
Description: Tcl library for the OBST persistent object management system.
Contact: stone@fzi.de

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: "Patrick C. Beard" 

What: Tcl Packages simplified
Where: ftp://ftp.fzi.de/pub/OBST/OBST3-3/tclshells.tar.Z
	ftp://prep.ai.mit.edu/pub/gnu/tclOBST-1.1.tar.gz
Description: Small support package which simplifies building a
	customized Tcl/Tk interpreter.
Contact: stone@fzi.de

What: tclprof
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclprof.shar.gz
Description: Tcl performance profiling facility.  Works with Tcl 6.4.
	Comes as a part of tclX, but does not require it.
Contact: "Mark Diekhans" 

What: tclRawTCP
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclRawTCP.shar.gz
Description: Raw TCP package for Tcl/Tk based on tcpConnect
Contact: "Vivek Khera" 

What: tclsockets
Where: From the contact
Description: Tcl extension to BSD sockets
Contact: "Lance Ellinghouse" 

What: Tcl SQL
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclsql-1.0.tar.gz
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: "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 VanAndel" 

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-patch.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tcl7.3jp-update1.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tk3.6jp-patch.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tk3.6jp-update1.gz
Description: Patch to enable Tk/Tcl to use Kanji.
Contact: "Japanized Tcl Project" 

What: tclvogle
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclvogle.tar.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclvogleDOCS.tar.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/vogleWish.sun4.exe.gz
Description: Tk [23]-D drawing widgets (alpha)
Contact: "Mike Hoegeman" 

What: tcl_object
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tcl_object.tar.gz
Description: C++ code which allows you to develop a bi-directional interface
	to Tcl.  Especially designed for using with the xf interface
	builder.
Contact: "Stephan Herrmann" 

What: tcl_streams
Where: From the contact
Description: System V stream I/O library for Tcl
Contact: "Peter da Silva" 

What: Extended Tcl (tclX)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclX7.3a-p2.tar.gz
	ftp://ftp.neosoft.com/pub/tcl/distrib/tclX7.3a-p2.tar.Z
Description: An essential package of extensions for Tcl.  Version 7.3a
	is compatible with Tcl 7.3/Tk 3.6.
	Adds advanced code loading facility, new programming constructs,
	debugging and profiling facilities, unix access commands, file 
	i/o facilities including awk-like scanning for strings, extended
	list and a new key list capability, extended character and
	string manipulation commands, and time and date manipulation
	commands.
Contact: tcl-project@NeoSoft.com

What: tclX dynamic library patches
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclX_dld.shar.gz
Description: Patches to tclX to support GNU dld (v. 3.2.3) dynamic libraries.
Contact: "Adrian J Ho" 

What: tclX / Tk merge
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tclX-tk2.0.shar.gz
Description: Replacement files to incorporate tclX with Tk 2.x
Contact: "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: "Jan Newmarch" 

What: tcpConnect
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tcpConnect.shar.gz
Description: Tcl/Tk TCP connect and Tk file handler extensions
Contact: "Pekka Nikander" 

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: "Gregor Schmid" 

What: text widget 16 bit text support
Where: http://srg01.csd.hku.hk:8000/~ypyau/chinese-patch-for-tk
	http://harbor.ecn.purdue.edu/pub/tcl/extensions/chinese-patch-for-tk.patch.gz
Descritpion: tkFonts.c change to make it display Chinese text.
Contact: "Carl Y.P. Yau" 

What: text widget enhancements
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/code/text.constrained.shar
Description: A variety of constrained Tk text widget, placing a set of 
	wrappers around the text widget.
Contact: "John Robert LoVerso" 

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: "Eric J. Schwertfeger" 

What: text widget underline colors
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/TextUnderline.patch.gz
Description: Modification to text widget to support color for tagged text
	and different color for underline.
Contact: "Francois-Xavier Fornari" 

What: theObjects
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/theObjects-3.1.tar.gz
Description: Small prototype-oriented object system.
Contact: "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: "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: "Brian Smith" 

What: Tk auxilary library of bindings
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkauxlib.tar.gz
Description: Extensive set of Tk enhancements to add more Motif
	compatibility in keyboard bindings, as well as add validation
	capabilities and other things.
Contact: "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.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkBellCutbuffer.shar.gz
Description: Tk 3.2, 2.3, and 2.1 patches to add bell and cutbuffer commands.
Contact: "Jim Davis" 
	Rick_Ohnemus@imd.sterling.com (Richard Ohnemus)

What: Tk Canvas Segments
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkCanSeg.patch.gz
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" 

What: Tk Emacs bindings
Where: From the contact
Description: A set of Tk bindings for Text and Entry widgets to look like
	Emacs.  This includes a kill ring, keyboard macros, undo,
	numeric prefixes and multikey chords.
Contact: "Mark Weissman" 

What: Tk Emacs widget
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/TkEmacs1.3.tar.gz
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" 

What: tkCanvSeg
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkCanvSeg.patch.gz
Description: Patch to Tk 3.2 to add canvas segments, which allows one
	to draw disjoint line segments more quickly.
Contact: "Scott Schwartz" 

What: tkFScale
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkFScale-1.4.tar.gz
Description: Tk 3.3 Scale widget which uses floating-point values.
Contact: "Paul Mackerras" 

What: tkGLXwin
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkGLXwin-1.3.2.tar.gz
	ftp://media.mit.edu/pub/tkGLXwin-1.3.2.tar.Z
Description: Tk 3.x Silicon Graphics Graphics Library widget interface.
Contact: "Michael Halle" 

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: tkemacs@cs.tu-berlin.de

What: tk-mod.shar
Where: From the contact
Description: Alternative geometry managers for Tk 1.4
Contact: pnr@innopoli.ajk.tele.fi

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: "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" 

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: "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: "Tom Tromey" 

What: Tk menu postcommand fix
Where: From the contact
Description: Tk 3.6 tkMenu -postcommand fix for keeping menu on-screen.
Contact: "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: "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: smile@ira.uka.de,
	guenther@ira.uka.de 

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: "Malcolm Beattie" 

What: Tk private color maps
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/TkPC0.03.tar.gz
Description: Add private colormaps to Tk.
Contact: "Rainer Kliese" 

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: "Ian Smith" 

What: tkText (Tk 1.3 compatible - Cole)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkText-inst.tar.gz
Description: A Tk 1.3 tkText text widget and installation patches
Contact: "Derrick C. Cole" 

What: tkText (Tk 1.3 compatible - Christenson)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkText.shar.gz
Description: A Tk 1.3 tkText text widget
Contact: "M. G. Christenson" 

What: tkText (Tk 2.0 compatible)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tkText-2.0.tar.gz
Description: A Tk 2.0 tkText text widget
Contact: "M. G. Christenson" 

What: TkWindow access
Where: From the contact
Description: Trivial function to get at the Tk_Window of an event.
Contact: "Nick Ing-Simmons" 

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: "John May" 

What: Tooltalk interface
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/toocl-1.4.tar.gz
	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: "Cedric Beust" 

What: Transportable Objects
Where: From the contact
Description: A [incr Tcl] class implementing a base transportable object class.
Contact: "Donald Edgar - SUN Scotland"  ??

What: tree widget (brighton)
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/tree3.6.tar.gz
Description: Tk 3.6 based widget for displaying dynamic trees,
	written in C++.
Contact: "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" 

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: "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: "Joe VanAndel" 

What: varframe
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/varframe.tar.gz
Description: Extension to provide variable environment language-visible
	objects (user defined call frames) within Tcl.
Contact: "Cimarron Taylor" 

What: VUM widgets
Where: From the contact
Descriptions: Tk bargraph, dial, pie, strip chart widgets.
	Steve just ported the widgets to the latest Tcl/Tk.
Contact: "Steve Hocking" 

What: warp
Where: From the contact
Description: Tk warp command to move the mouse point to specific locations.
Contact: "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: "Hiroshi Sakoh" 

What: wincr
Where: From the contact
Description: A Tcl 'word' increment command - increment string 'aa' to 
	'ab', 'ac', etc.
Contact: "Bill Bumgarner" 

What: wmstuff
Where: ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/wmstuff.tar.gz
	ftp://harbor.ecn.purdue.edu/pub/tcl/extensions/wmstuff.patch1.shar.gz
Description: Tk support for ICCCM WM_PROTOCOLS & WM_DELETE
Contact: "Mike Hoegeman" 

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" 

What: X11 visual selection subcommand
Where: From the contact
Description: Adds a -visual subcommand to Tk's frame and top-level widgets.
Contact: "Paul Mackerras" 

What: X11 XID enhancement - kaplan
Where: From the contact
Description: Set of replacement functions for default X Consortium XID
	management routines.
Contact: "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: "Michael Hoegeman" 

What: Xt replay library
Where: ftp://csc.canberra.edu.au/pub/motif/replayXt/replayXt.*.tar.z
	ftp://harbor.ecn.purdue.edu/pub/motif/replayXt/replayXt.*.tar.z
Description: A library with one entry point that allows an Intrinsics
	or Xt based application to be executed from a script file.
	In particular, Athena or Motif toolkit applications
	can be played back.  Scripts are written in Tcl.
Contact: "Jan Newmarch" 

What: XView Drop support
Where: From the contact
Description: First hack at receiving XView drops in Tk.
Contact: "Nick Ing-Simmons" 


What:
Where:
Description:
Contact:

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

From: FAQ Tcl/Tk Package Catalog
Subject: -XIV- Is there any commercial use of Tcl/Tk?

NeoSoft Communications Services , (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 ( gwl@cpu.com, (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)
*****************************************************