OSDN Git Service

Initial revision
authorhunt <hunt>
Tue, 21 Jan 2003 20:42:51 +0000 (20:42 +0000)
committerhunt <hunt>
Tue, 21 Jan 2003 20:42:51 +0000 (20:42 +0000)
12 files changed:
itcl/iwidgets/.cvsignore [new file with mode: 0644]
itcl/iwidgets/CHANGES [new file with mode: 0644]
itcl/iwidgets/ChangeLog [new file with mode: 0644]
itcl/iwidgets/Makefile.in [new file with mode: 0644]
itcl/iwidgets/README [new file with mode: 0644]
itcl/iwidgets/aclocal.m4 [new file with mode: 0644]
itcl/iwidgets/configure [new file with mode: 0755]
itcl/iwidgets/configure.in [new file with mode: 0644]
itcl/iwidgets/iwidgets.tcl.in [new file with mode: 0644]
itcl/iwidgets/license.terms [new file with mode: 0644]
itcl/iwidgets/pkgIndex.tcl.in [new file with mode: 0644]
itcl/iwidgets/tcl.m4 [new file with mode: 0644]

diff --git a/itcl/iwidgets/.cvsignore b/itcl/iwidgets/.cvsignore
new file mode 100644 (file)
index 0000000..58652af
--- /dev/null
@@ -0,0 +1,5 @@
+Makefile
+config.log
+confdefs.h
+iwidgets.tcl
+pkgIndex.tcl
diff --git a/itcl/iwidgets/CHANGES b/itcl/iwidgets/CHANGES
new file mode 100644 (file)
index 0000000..d012c1f
--- /dev/null
@@ -0,0 +1,1604 @@
+[incr Widgets] CHANGES
+----------------------
+
+==========================================================================
+CURRENT VERSION:  4.0.1
+PREVIOUS VERSION: 4.0.0
+DATE: 9/16/02
+CONTACT: Chad Smith (itclguy@attbi.com)
+
+  This is primarily a bug-fix release of the [incr Widgets].  Please see
+the ChangeLog for a detailed explanation of the changes made to the various
+widgets and the SourceForge tickets to which each change is associated.
+
+  Check out the incoming/demos directory.  I've added a couple new widgets
+that were submitted to SourceForge.  Let me know if you think they are
+useful or not.  If so, they can be added to the distribution in a future
+release.
+
+  Many thanks to Marty Backe for his tireless efforts closing out numerous
+SF tickets for this release!
+
+==========================================================================
+
+
+
+==========================================================================
+ -------------------------- iwidgets-4.0.0 ------------------------------
+ -------------------- CHANGES FROM iwidgets-3.1.0 -----------------------
+==========================================================================
+DATE: 8/07/01
+CONTACT: Chad Smith (itclguy@yahoo.com)
+
+--------
+CHANGES:
+--------
+  This release of the [incr Widgets] marks the first time they are
+released independently of the [incr Tcl] distribution.  The Iwidgets
+package is now separate from Itcl and can be optionally downloaded
+and built as a true extension to Itcl (well actually Itk).
+
+  Along with the Makefile/configuration-type changes necessary for
+removing the Iwidgets from Itcl, there are many other changes you
+should note in this release.  I'll try to list each of these:
+
+o - The most important change is that doing a 'package require Iwidgets'
+    no longer pulls the itcl namespace commands into the global namespace.
+    Previously, this was done because none of the itcl-specific commands
+    such as class, configbody, etc. were properly resolved in the [incr
+    Widgets] classes.  Now, all references to itcl commands use proper
+    namespace resolution.  For example, "class iwidgets::Checkbox" is now
+    replaced with "itcl::class iwidgets::Checkbox".
+
+    Here is a list of itcl commands that are now properly scoped:
+       class
+       body
+       configbody
+       scope
+       code
+
+    There are likely many folks in the community that have come to rely
+    on the exporting of itcl commands into the global namespace, so if you're
+    one of these folks you have two choices if you want to use this version
+    of the [incr Widgets]: (1) You can add a "namespace import -force itcl::*"
+    at the beginning of your application (this is what 'package require
+    Iwidgets' used to do); or (2) you can add "itcl::" in front of each of the
+    itcl-specific commands in your code.
+
+o - A new mega-widget, extbutton, was added to the distribution.  Note that
+    this new widget will only work with Tk 8.4 or later.  A man page and
+    test case is available in the distribution.
+
+o - "readonly" was added as a new value for the combobox's -state option.
+
+o - A new option, -gmt, was added to the datefield.  It accepts boolean values.
+
+o - A new option, -state, was added to the radiobox.
+
+o - A new method, bbox, was added to tabset to return the bounding box that
+    will completely enclose all tabs.
+
+o - A new option, -automount, was added to extfileselectionbox and
+    fileselectionbox.
+
+o - Error checking was added to hierarchy's -alwaysquery option to enforce
+    boolean values, and some memory leaks were plugged in the 'clear' method.
+
+==========================================================================
+
+
+
+==========================================================================
+ -------------------------- iwidgets-3.0.0 ------------------------------
+ -------------------- CHANGES FROM iwidgets-2.2.0 -----------------------
+==========================================================================
+
+  [incr Widgets] version 3.0.0 is compatable with itcl3.0
+
+  [incr Widgets] has undergone a major overhaul between the last version 
+and 3.0.0.  Since so many changes have taken place it made more since to 
+list them by widget class name rather than the old style of new features
+and bug fixes.  The majority of the changes are under the covers and will
+have minimal impact of existing scripts, but there are a few that may 
+bite you.  To locate possible incompatabilities, just search this file
+for the key words "POSSIBLE INCOMPATIBILITY".  
+
+  In addition, quite a few new widgets have been added to the set.  They 
+include the following:
+
+       Calendar
+       Checkbox
+       Dateentry
+       Datefield
+        Disjointlistbox
+       Extfileselectionbox
+       Extfileselectiondialog
+       Finddialog
+       Hierarchy
+       Labeledframe
+       Mainwindow
+       Messagebox              
+       Scrolledwidget
+       Timeentry
+       Timefield
+       Watch
+
+  Thanx to the following contributors who have been kind enough to help 
+me support this effort through enhancements, bug fixes, and new widgets.
+
+       John Tucker             jatucker@austin.dsccc.com
+       Mitch Gorman            emrys@net-gate.com
+       John Reekie             johnr@EECS.Berkeley.EDU
+       Alfredo Jahn            ajahn@spd.dsccc.com
+       Michael McLennan        mmclennan@lucent.com
+       
+
+Labeledwidget
+______________________________________________________________________________
+
+>> Reimplemented geometry management using the grid instead of the packer.
+
+>> Changed component option basis to be that of the "usuals".
+
+>> Removed a redundant frame component named "shell" just below the hull.
+
+>> Corrected labelvariable bug.  Setting the labelvariable had no effect.
+   The code has been corrected such that a trace is installed on the variable
+   which forces an update of the label text upon writes to the variable.
+
+>> Removed the labmargin frame component used for implementing a margin.
+   This is now accomplished via the grid by maintaining an empty row/column
+   for the margin and adjusting its minsize.
+
+>> POSSIBLE INCOMPATIBILITY - The childsite is now a protected component.
+   If you need access to it, use the childsite command.
+
+>> Added new label position orientation settings.  The current label 
+   positions are nw, n, ne, sw, s, se, en, e, es, wn, w, and ws.
+
+>> Updated the test script and man page.
+
+
+Scrolledlistbox
+______________________________________________________________________________
+
+>> Derived from the Scrolledwidget class which provides the vertical
+   and horizontal scrollbars along with the options to control their
+   display.
+
+>> Reimplemented geometry management using the grid instead of the packer.
+
+>> Changed component option basis to be that of the "usuals".
+
+>> Added a -state option that allows you to disable the listbox.  Selection
+   is blocked.  The foreground of the scrolledlistbox label is changed 
+   to disbabledforeground.
+
+>> Fixed the infinite looping problem which would occur with -hscrollmode 
+   set to dynamic and a really long line added just out of the view port.  
+   As you'd scroll down the horizontal scrollbar bar would start flashing 
+   on and off.  
+
+>> Removed the margin frame components used for implementing a margin
+   between the listbox and scrollbars.  This is now accomplished via 
+   the grid by maintaining an empty row/column for the margin and 
+   adjusting its minsize.
+
+>> POSSIBLE INCOMPATIBILITY - Removed -items option.  This was originally
+   put in as a convienence, but it turns out to be quite costly in terms
+   of performance.  It had to go.  The insert/delete/get commands can be
+   used instead which is much more in line with Tk.
+
+>> Updated the test script, demo, and man page.
+
+
+Entryfield
+______________________________________________________________________________
+
+>> Reimplemented geometry management using the grid instead of the packer.
+
+>> Modified the real type validation to except exponents.  Patch provided
+   by evans@engineous.com (Rick Evans).
+
+>> The -state option changes the label to disabledforeground when the
+   entryfield is disabled.
+
+>> Changed component option basis to be that of the "usuals".
+
+>> Added a -pasting configuration option to allow user to enable/disable
+   pasting into the entry component of the entryfield. csmith@adc.com
+   (Chad Smith)
+
+>> Removed hardcoded state comparisons in the _keyPress method and replaced
+   with code to mask out <Ctrl> and <Alt> keypress events. csmith@adc.com
+   (Chad Smith)
+
+
+Pushbutton
+______________________________________________________________________________
+
+>> Changed component option basis to be that of the "usuals".
+
+>> POSSIBLE INCOMPATABILITY - The pushButton component has been changed
+   to pushbutton.
+
+>> POSSIBLE INCOMPATABILITY - The following options have been removed 
+   and are not directly available in the pushbutton anymore:
+       -anchor -justify -textvariable
+
+   The underlying button component still maintains them , but not the 
+   pushbutton itself.  You can still set them via the component
+   command, i.e. ".pb component pushButton configure -justify left"
+
+
+Buttonbox
+______________________________________________________________________________
+
+>> Changed component option basis to be that of the "usuals".
+
+
+Shell
+______________________________________________________________________________
+
+>> Changed component option basis to be that of the "usuals".
+
+>> Added a -width and -height option.  A value of zero causes the width 
+   and/or height to be adjusted to the required value based on the size 
+   requests of the components placed in the childsite.  Otherwise, the 
+   width and/or height is fixed.  The default is zero.
+
+>> Added -width and -height tests to the test script and updated the
+   man page.
+
+>> The activate method no longer returns an error if it is called when
+   the shell is already active.  Instead, the shell is just raised.  
+
+
+Dialogshell
+______________________________________________________________________________
+
+>> Reimplemented geometry management using the grid instead of the packer.
+
+>> Changed component option basis to be that of the "usuals".
+
+>> Updated the test script and man page, adding the -width and -height
+   options that are inherited from the shell.
+
+
+Dialog
+______________________________________________________________________________
+
+>> Updated the test script and man page, adding the -width and -height
+   options that are inherited from the shell.
+
+
+Selectionbox
+______________________________________________________________________________
+
+>> Reimplemented geometry management using the grid instead of the packer.
+
+>> Changed component option basis to be that of the "usuals".
+
+>> Modified the insert and delete methods to use the items insert and
+   delete method rather than configuring the -items option which has
+   been removed from the underlying scrolledlistbox.
+   
+>> Removed the margin frame component used for implementing a margin
+   between the items and selection.  This is now accomplished via 
+   the grid by maintaining an empty row for the margin and adjusting 
+   its minsize.
+
+>> Removed the unecessary frame that was used to contrain the width
+   and height of the widget.  This is now performed directly on the 
+   widget hull.
+
+>> POSSIBLE INCOMPATABILITY - The following options have been removed 
+   and are not directly available in the selectionbox anymore:
+       -hscrollmode -itemslabelpos -labelmargin -margin -relief 
+       -sbwidth -scrollmargin -selectionlabelpos -vscrollmode 
+
+   The underlying components still maintain them, but not the 
+   selectionbox itself.  You can still set them via the component
+   command, i.e. ".sb component selection configure -labelpos nw" or
+   ".sb component items configure -hscrollmode static"
+
+>> Added a -width and -height option.  A value of zero causes the width 
+   and/or height to be adjusted to the required value based on the size 
+   requests of the components placed in the childsite.  Otherwise, the 
+   width and/or height is fixed.  The default is zero.
+
+>> Updated the test script, demo, and man page.
+
+
+Selectiondialog
+______________________________________________________________________________
+
+>> Pack propagation is now handled by the shell class.
+
+>> Modified the insert and delete methods to use the insert and
+   delete method rather than configuring the -items option which has
+   been removed from the underlying scrolledlistbox.
+
+>> Changed component option basis to be that of the "usuals".
+
+>> POSSIBLE INCOMPATABILITY - The "sb" component has been renamed to be
+   "selectionbox".  This is much more descriptive.
+
+>> POSSIBLE INCOMPATABILITY - The following options have been removed 
+   and are not directly available in the selectiondialog anymore:
+       -hscrollmode -itemslabelpos -labelmargin -margin -relief 
+       -sbwidth -scrollmargin -selectionlabelpos -vscrollmode 
+
+   The underlying components still maintain them, but not the 
+   selectiondialog itself.  You can still set them via the component
+   command, i.e. ".sd component selectionbox configure -margin 10" or
+   ".sd component selectionbox component items configure -hscrollmode static"
+
+>> The -width and -height options are now controlled by the shell class.  
+   A value of zero causes the width and/or height to be adjusted to the 
+   required value based on the size requests of the components.  Otherwise, 
+   the width and/or height is fixed.  The default is zero.
+
+
+Scrolledtext
+______________________________________________________________________________
+
+>> Derived from the Scrolledwidget class which provides the vertical
+   and horizontal scrollbars along with the options to control their
+   display.
+
+>> Reimplemented geometry management using the grid instead of the packer,
+   eliminating quite a few unneeded frames along the way.
+
+>> Changed component option basis to be that of the "usuals".
+
+>> Removed the margin frame components used for implementing a margin
+   between the text and scrollbars.  This is now accomplished via 
+   the grid by maintaining an empty row/column for the margin and 
+   adjusting its minsize.
+
+>> The -state option changes the label to disabledforeground when the
+   scrolledtext is disabled.
+
+>> Fixed the infinite looping problem which would occur with -wrap set
+   to none, -hscrollmode set to dynamic and a really long line added
+   just out of the view port.  As you'd scroll down the horizontal 
+   scrollbar bar would start flashing on and off.  
+
+>> Added an index argument to the import method so a file can be
+   imported into the text area at positions other than just the end.
+
+>> Updated the test script and man page.
+
+
+Feedback
+______________________________________________________________________________
+
+>> Corrected namspace problem by removing global scope qualifier from
+   class definition as well as method and option bodies.  Bug report
+   and patch provided by evans@engineous.com (Rick Evans).
+
+
+Hyperhelp
+______________________________________________________________________________
+
+>> Corrected namspace problem by removing global scope qualifier from
+   class definition as well as method and option bodies.  Bug report
+   provided by evans@engineous.com (Rick Evans).
+
+
+Scrolledhtml
+______________________________________________________________________________
+
+>> Corrected namspace problem by removing global scope qualifier from
+   class definition as well as method and option bodies.  Bug report
+   provided by evans@engineous.com (Rick Evans).
+
+
+Canvasprintbox
+______________________________________________________________________________
+
+>> Added tcl_platform to list of global variables declared in print
+   method.  Bug report provided by evans@engineous.com (Rick Evans).
+
+
+Scrolledcanvas
+______________________________________________________________________________
+
+>> Derived from the Scrolledwidget class which provides the vertical
+   and horizontal scrollbars along with the options to control their
+   display.
+
+>> POSSIBLE INCOMPATIBILITY - The ScrCanvas component has been renamed
+   canvas.
+
+>> The -state option changes the label to disabledforeground when the
+   scrolledcanvas is disabled.
+
+>> Reimplemented geometry management using the grid instead of the packer.
+
+>> Changed component option basis to be that of the "usuals".
+
+>> Removed the margin frame components used for implementing a margin
+   between the canvas and scrollbars.  This is now accomplished via 
+   the grid by maintaining an empty row/column for the margin and 
+   adjusting its minsize.
+
+>> Updated the test script, demo, and man page.
+
+
+Scrolledframe
+______________________________________________________________________________
+
+>> Derived from the Scrolledwidget class which provides the vertical
+   and horizontal scrollbars along with the options to control their
+   display.
+
+>> POSSIBLE INCOMPATIBILITY - The childsite is now a protected component.
+   If you need access to it, use the childsite command.
+
+>> POSSIBLE INCOMPATIBILITY - The scrCanvas component has been renamed
+   canvas and the scrFrame component to sfchildsite.
+
+>> Reimplemented geometry management using the grid instead of the packer.
+
+>> Changed component option basis to be that of the "usuals".
+
+>> Fixed the infinite looping problem which would occur with -hscrollmode 
+   set to dynamic and a really long component added just out of the view 
+   port.  As you'd scroll down the horizontal scrollbar bar would start 
+   flashing on and off.  
+
+>> Removed the margin frame components used for implementing a margin
+   between the canvas and scrollbars.  This is now accomplished via 
+   the grid by maintaining an empty row/column for the margin and 
+   adjusting its minsize.
+
+>> Updated the test script, demo, and man page.
+
+
+Promptdialog
+______________________________________________________________________________
+
+>> Changed component option basis to be that of the "usuals".
+
+>> POSSIBLE INCOMPATABILITY - Renamed the "ef" component to "prompt".
+
+>> POSSIBLE INCOMPATABILITY - The following options have been removed 
+   and are not directly available in the promptdialog anymore:
+       -fixed -justify -labelbitmap -labelimage -labelmargin 
+       -state -textvariable -width
+
+   The underlying components still maintain them, but not the 
+   promptdialog itself.  You can still set them via the component
+   command, i.e. ".pd component prompt configure -labelpos w" 
+
+>> Updated the test script, demo, and man page.
+
+
+Messagedialog
+______________________________________________________________________________
+
+>> Changed component option basis to be that of the "usuals".
+
+>> POSSIBLE INCOMPATABILITY - Renamed the "msg" component to "message".
+
+>> POSSIBLE INCOMPATABILITY - The following options have been removed 
+   and are not directly available in the messagedialog anymore:
+       -anchor -justify -wraplength
+
+   The underlying components still maintain them, but not the 
+   messagedialog itself.  You can still set them via the component
+   command, i.e. ".md component message configure -justify left" 
+
+>> Reimplemented geometry management using the grid instead of the packer.
+
+>> Updated the test script, demo, and man page.
+
+
+Hierarchy
+______________________________________________________________________________
+
+>> New iwidgets hierarchical data viewer mega-widget which manages a list 
+   of nodes that can be expanded or collapsed.  Individual nodes can be 
+   highlighted.  Clicking with the right mouse button on any item brings 
+   up a special item menu.  Clicking on the background area brings up
+   a different popup menu.
+
+>> Many thanks to Michael McLennan who provided the nucleus of this code.
+
+>> Man page, test script, and demo have been produced.
+
+>> The catalog demo has been updated to include the hierarchy demo.
+
+
+Checkbox
+______________________________________________________________________________
+
+>> New iwidget checkbox mega-widget which manages a group of check
+   buttons quite similar to that of the existing radiobox.
+
+>> Thanks to John Tucker for the contributed code. 
+
+>> Man page, test script, and demo have been produced.
+
+>> The catalog demo has been updated to include the checkbox demo.
+
+
+Radiobox
+______________________________________________________________________________
+
+>> Changed component option basis to be that of the "usuals".
+
+>> Changed the base class to be labeledframe.
+
+>> Updated the test script, demo, and man page.
+
+
+Spinner
+______________________________________________________________________________
+
+>> Reimplemented geometry management using the grid instead of the packer.
+
+>> Removed a redundant frame component named "arrowFrame".
+
+>> Removed the use of the option database to set the option values.
+
+
+Spinint
+______________________________________________________________________________
+
+>> Removed the use of the option database to set the option values.
+
+
+Datefield
+______________________________________________________________________________
+
+>> New iwidget.  The datefield is a smart date entry field with adjustable 
+   built-in intelligence levels.  It can be made smart enough not to accept
+   any bad dates or made dumb enough to accept any old thing typed.  Since
+   it is derived from the labeledwidget, it also includes an optional label.
+
+>> Man page, test script, and demo have been produced.
+
+>> The catalog demo has been updated to include the datefield demo.
+
+
+Calendar
+______________________________________________________________________________
+
+>> New iwidget.  The calendar widget provide for the selection and/or
+   display of dates.  It displays a single month at a time.  Buttons exist 
+   on the top to change the month in effect turning th pages of a calendar.
+   As a page is turned, the dates for the month are modified.  Selection 
+   of a date visually marks that date.  The selected value can be monitored 
+   via the -command option or just retrieved using the get method.  Methods 
+   also exist to select a date and show a particular month.  
+
+   The option set allows the calendars appearance to take on many forms.
+   For example, the background of the weekdays and weekends can be 
+   independently changed, the starting day of the week can be set to
+   any of the days, the titles and fonts of everything is configurable,
+   and an outline can be displayed around the each day. 
+
+>> Many thanks to Michael McLennan who provided me a early copy of his
+   book which gave me the example on which this code is based.
+
+>> Man page, test script, and demo have been produced.
+
+>> The catalog demo has been updated to include the calendar demo.
+
+
+Dateentry
+______________________________________________________________________________
+
+>> New iwidget.  Dateentry is a quicken style date entry field with a 
+   popup calendar produced by combining the datefield and calendar widgets 
+   together.  This allows a user to enter the date via the keyboard or by 
+   using the mouse by selecting the calendar icon which brings up a popup 
+   calendar.  Since it is based on both the datefield and calendar, both
+   option sets exists under the same roof in the dateentry.
+
+>> Man page, test script, and demo have been produced.
+
+>> The catalog demo has been updated to include the dateentry demo.
+
+
+Messagebox
+______________________________________________________________________________
+
+>> New iwidget.  Implements an information messages area widget with 
+   scrollbars.  Message types can be user defined and configured.  Their 
+   options include foreground, background, font, bell, and their display
+   mode of on or off.  This allows message types to defined as needed,
+   removed when no longer so, and modified when necessary.  
+
+   The number of lines that can be displayed may be limited.  When this 
+   limit is reached, the oldest line is removed.  There is also support 
+   for saving the contents to a file, using the standard file selection 
+   dialog.
+
+>> Many thanks to Alfredo Jahn who came up with idea and provided me a
+   very stable working version which I extended to support user defined
+   message types.
+
+>> Man page, test script, and demo have been produced.
+
+>> The catalog demo has been updated to include the messagebox demo.
+
+
+Spintime
+______________________________________________________________________________
+
+>> Reimplemented geometry management using the grid instead of the packer.
+
+>> Removed the margin frame component used for implementing a margin
+   between the hour, minute and second components.  This is now accomplished 
+   via the grid by maintaining an empty row for the margin and adjusting 
+   its minsize.
+
+>> POSSIBLE INCOMPATIBILITY - The delete, clear, and insert methods have
+   been removed.  Use the show method to set the time.
+
+>> POSSIBLE INCOMPATIBILITY - The get method has been changed such that
+   it returns the time as either a colon separated string or a clock clicks
+   value.
+
+>> Added a show method to be used to set the time.  The method takes as
+   an argument either a valid time string, a clock clicks value, or the
+   keyword now.
+
+>> The current time will now appear as the default.
+
+>> Updated the test script, demo, and man page.
+
+
+Spindate
+______________________________________________________________________________
+
+>> Reimplemented geometry management using the grid instead of the packer.
+
+>> Removed the margin frame component used for implementing a margin
+   between the month, day and year components.  This is now accomplished 
+   via the grid by maintaining an empty row for the margin and adjusting 
+   its minsize.
+
+>> Spindate now uses the clock command during the spinning of the date
+   components.  Only valid dates are spun now.
+
+>> POSSIBLE INCOMPATIBILITY - Changed the -monthformat option to be 
+   string, brief, and full doing away with the optional user specified list.
+
+>> POSSIBLE INCOMPATIBILITY - The delete, clear, and insert methods have
+   been removed.  Use the show method to set the date.
+
+>> POSSIBLE INCOMPATIBILITY - The get method has been changed such that
+   it returns the date as either a string or a clock clicks value.
+
+>> Added a show method to be used to set the time.  The method takes as
+   an argument either a valid time string, a clock clicks value, or the
+   keyword now.
+
+>> The current date will now appear as the default.
+
+>> Selection and keyboard entry of values has been disabled.  The value
+   may only be changed via the spinners which insures correct operation.
+
+>> Updated the test script, demo, and man page..
+
+
+Feedback
+______________________________________________________________________________
+
+>> Reimplemented geometry management using the grid instead of the packer.
+
+>> Made all the itk_components public.
+
+>> Added a trough which appears beneath the feedback widget.  It has a
+   -troughcolor option to set its color.
+
+
+Scrolledhtml
+______________________________________________________________________________
+
+>> Added -alink (same as -linkhighlight, but matches html naming) and -update 
+   options.
+
+>> Added new tags to come up to html3.2:
+     basefont
+     div
+     font
+     table
+     td
+     th
+     tr
+
+>> Added numbering formats for <li> tag.
+
+>> Fixed to delete images after page is cleared.
+
+>> Fixed to bring anchor points to middle when moving down to a nearby 
+   anchor point.
+
+>> Fixes to regular expression matches.
+
+>> Performance enhancements with stack algorithm and regular expression 
+   searches.
+
+
+Hyperhelp
+______________________________________________________________________________
+
+>> Added -closecmd and -maxhistory options.
+
+>> Made itk_components public/private (which could conceivably break 
+   someone, if they were using a component directly that is now private) 
+
+>> Fixed bindings.
+
+
+Toolbar
+______________________________________________________________________________
+
+>> Added a destructor to cancel the possibly pending after command request
+   to display the popup help.
+
+>> Corrected the vertical packing such that items are expanded horizontally.
+
+
+Finddialog
+______________________________________________________________________________
+
+>> New iwidget.  Finddialog works in conjunction with a text or 
+   scrolledtext widget to provide a means of performing search operations.  
+   The user is prompted for a text pattern to be found in the text or 
+   scrolledtext widget.  The search can be for all occurances, by regular 
+   expression, considerate of the case, or backwards.
+
+>> Man page, test script, and demo have been produced.
+
+>> The catalog demo has been updated to include the finddialog demo.
+
+
+Panedwindow
+______________________________________________________________________________
+
+>> Corrected show/hide bug which caused the placement of the sash and
+   separator to be incorrect.  If you added a couple of panes and then
+   hid them all of them followed by showing them, the sash distribution
+   was wrong.
+
+>> Corrected a divide by zero problem which occurred when you hid all
+   of the panes.
+
+
+Combobox
+______________________________________________________________________________
+
+>> Mitch Gorman (emrys@net-gate.com) has taken over maintenance of the 
+   combobox from John Sigler.
+
+>> Entry completion has been added.  Should your typing in the entry
+   field match an item in the list, it is completed for you automatically.
+   This feature is switchable via the -completion option.  The default
+   is on.
+
+>> It now utilizes a true button for the arrowBtn component.
+
+>> The -state option has been fixed such that it can be truly disabled.
+
+>> Reimplemented geometry management using the grid instead of the packer.
+
+>> A -grab option has been added to do both local and global grabs 
+   of the drop-down listbox.
+
+>> POSSIBLE INCOMPATIBILITY - Removed -items option.  This was originally
+   put in as a convienence, but it turns out to be quite costly in terms
+   of performance.  It had to go.  The insert/delete/get commands can be
+   used instead which is much more in line with Tk.
+
+>> POSSIBLE INCOMPATIBILITY - The following options have been removed:
+   -autoclear and -fliparrow.
+
+>> The combobox now utilizes built-in bitmaps for button glyphs.
+
+>> Removed the margin frame component used for implementing a margin
+   between the entry and arrow button.  This is now accomplished via 
+   the grid by maintaining an empty column for the margin and adjusting 
+   its minsize.
+
+>> List elements are preserved when switching between drop-down and simple
+   styles via the -dropdown option.
+
+>> The functionality of the -state and -editable options have been made
+   completely independent of each other.  It can be editable/normal, 
+   non-editable/normal, or disabled, and toggling one option will not 
+   impact the other option when the first is toggled back
+
+>> Corrected the validation processing in the -unique option.
+
+>> Fixed various error messages returned due to bad arguments, options, etc.
+
+
+Fileselectionbox
+______________________________________________________________________________
+
+>> Reimplemented geometry management using the grid instead of the packer.
+
+>> Changed component option basis to be that of the "usuals".
+
+>> Removed frame components used for margins.  This is now accomplished 
+   via the grid by maintaining an empty row/column for the margin and 
+   setting its minsize.
+
+>> Changed the default value of -nomatchstring to "".
+
+>> The directory and files lists are now shown without the leading
+   directory name.  Although this differs from the Motif standard, it 
+   keeps the fileselectionbox more in line with the tk_getSaveFile dialog.
+
+>> POSSIBLE INCOMPATIBILITY - The -style option which allowed you to
+   display the fileselectionbox in a "notif" style using comboboxes 
+   for the filter and selection and kept the lists in a panedwindow 
+   has been removed.  A related option, -dirsfraction is also gone.
+
+   This feature caused the fileselectionbox to be much slower during
+   construction than anticipated.  If you liked the "notif" style, it 
+   exists in a new mega-widget call extfileselectionbox and 
+   extfileselectiondialog.
+
+>> POSSIBLE INCOMPATIBILITY - The childsite is now a protected component.
+   If you need access to it, use the childsite command.
+
+>> POSSIBLE INCOMPATABILITY - The following options have been removed 
+   and are not directly available in the fileselectionbox anymore:
+
+       -relief -repeatdelay -repeatinterval -labelmargin
+       -hscrollmode -sbwidth -scrollmargin -vscrollmode
+       -dirslabelpos -fileslabelpos -filterlabelpos
+       -selectionimage- selectionlabelpos -filterfocuscommand
+       -selectionfocuscommand -dbldirscommand -dblfilescommand
+
+   The underlying components still maintain them , but not the 
+   fileselectionbox itself.  You can still set them via the component
+   command, i.e. ".fsb component dirs configure -hscrollmode none"
+
+>> POSSIBLE INCOMPATIBILITY - The -horizmargin and -vertmargin options
+   have been removed.  I doubt if anybody other than the most picky
+   of people will be effected.
+
+>> Added new childsite position orientation settings.  The new 
+   positions are n, s, e, w, top, bottom, and center.
+
+>> Updated the test script and man page.
+
+
+Extfileselectionbox
+______________________________________________________________________________
+
+>> New Iwidget.  The extfileselectionbox is basically the "notif" portion 
+   of the previous version of the fileselectionbox.  It was separated from
+   the fileselectionbox for performance reasons.
+
+>> Created test script, demo and man page.
+
+>> The catalog demo has been updated to include the extfileselectionbox demo.
+
+
+Tabset
+______________________________________________________________________________
+>> Corrected tab display problem which was occurring on HP machines.
+
+   Some additional updates were installed in tab selection and deselection.
+   They will only be invoke should the os be HP-UX.  Also, the ability
+   to scroll the tabs via MB2 has been disabled for HPs.  Thanks to 
+   tilt@designacc.com (Thomas Tempero) for first reporting the problem
+   mikesz@pcs.mot.com (Michael Szilagyi) for sending me the fix which
+   was implemented.
+
+
+Timefield
+______________________________________________________________________________
+
+>> New iwidget.  The timefield is a smart time entry field.  It verifies
+   user time input prior to its display.  Since it is derived from the 
+   labeledwidget, it also includes an optional label.
+
+>> Man page, test script, and demo have been produced.
+
+>> The catalog demo has been updated to include the timefield demo.
+
+
+Watch
+______________________________________________________________________________
+
+>> New iwidget.  The watch widget displays a simple clock face.  Methods
+   exist to set/get the time.  The hands can be adjusted via mouse selection
+   with the new setting being retrievable via the get method.  It is
+   very configurable.  The colors of the hands, face, and marks can all
+   be changed to suit your needs.
+
+>> Many thanks to John Tucker who developed this nice widget.
+
+>> Man page, test script, and demo have been produced.
+
+>> The catalog demo has been updated to include the watch demo.
+
+
+Timeentry
+______________________________________________________________________________
+
+>> New iwidget.  Timeentry, like the dateentry, is along the quicken 
+   lines as well.  It displays a timefield with a watch icon  button
+   beside it.  Selection of button presents a popup watch which enables
+   you to select the time by dragging the hands about the face.  The 
+   popup has a close button that removes the popup and sets the timefield
+   to the value previously displayed in the watch.  You can also just
+   enter the time directly as you would in the standard timefield.
+
+>> Man page, test script, and demo have been produced.
+
+>> The catalog demo has been updated to include the timeentry demo.
+
+
+==========================================================================
+ -------------------------- iwidgets-2.1.1 ------------------------------
+ -------------------- CHANGES FROM iwidgets-2.1.0 -----------------------
+==========================================================================
+
+  [incr Widgets] version 2.1.1 is compatable with itcl2.1
+
+NEW FEATURES
+------------------------------------------------------------------------------
+>> Added pagecget method to notebook class.
+
+   Patch supplied by Tom Tromey (tromey@cygnus.com).
+
+>> Added buttoncget method to buttonbox class.
+
+   Patch supplied by Tom Tromey (tromey@cygnus.com).
+
+>> Added buttoncget method to dialogshell class.
+
+   Patch supplied by Tom Tromey (tromey@cygnus.com).
+
+>> Added -closecmd option to the hyperhelp mega-widget.
+
+   Previously, closing the hyperhelp widget deleted the object which was
+   deemed to be user hostile.  Now, there exists a -closecmd option
+   which defaults to just deactivating the widget.  Should you wish to
+   destroy the widget, either do so explictly or modify the -closecmd
+   to do it.
+
+
+BUG FIXES
+------------------------------------------------------------------------------
+>> Corrected selectborderwidth option class name in the toolbar
+
+   The class name was set to SelectBorderWidth rather than BorderWidth.  
+   This created problems when attempting to use the toolbar with
+   other widgets like the scrolledcanvas.  Bug report by csmith@adc.com 
+   (Chad Smith).
+
+>> Allow negative indexes in scrolledlistbox
+
+   Negative indicies are reasonable and valid.  Bug report by 
+   wfarel@cas.org (Bill Farel).
+
+>> Corrected problem with caps-lock and num-lock in entryfields
+
+   Validation was not being being done if the num-lock or caps-lock
+   keys are down.  Bug report by ronnie@r2d2.wink.com (Ronnie Carpio).
+
+>> Corrected problem with special character entry in entryfields
+
+   Upon entry of a special character in the entry field like \ or [
+   an error would be reported: "Error: missing "".  The substitutions
+   being performed in iwidgets::Entryfield::_keyPress have been corrected.
+   Bug report and patch provided by ronnie@r2d2.wink.com (Ronnie Carpio).
+
+>> Made the relayout method in pushbutton protected.
+
+   The relayout method in the pushbutton needed to be changed from private
+   to protected so parent classes can have access.  Bug discovered by 
+   Mario Weilguni <e8732250@student.tuwien.ac.at>
+
+>> Corrected html tag parsing in scrolledhtml mega-widget
+
+   Fixed regular expressions parsing html tags to ignore text in quotes 
+   and only examine first attribute in list.
+
+>> Corrected optionmenu insert bug
+
+   The option menu would not allow you to insert an entry beyond the 
+   current length of the popup menu.  It should just default to using
+   the end in this case.
+
+>> Corrected scrolledtext import method newline insertion problem
+
+   There was a bug in the scrolledtext widget.  It always inserted a
+   newline before the text of the file when doing an "import".  And it
+   didn't correctly preserve a trailing newline on the file.  Reported
+   by Tom Tromey (tromey@cygnus.com)
+
+>> Corrected minor problems in notebook class.
+
+   The index method gave an error if (eg) "select" wass passed but
+   there is no selection.  Instead it should return -1 as documented.
+   Changed it to always return -1 in case of error.  This makes more
+   sense.
+   If there are no items in the notebook, the -scrollcommand should 
+   still be run (if it is set).  Otherwise, you end up with a
+   scrollbar that looks odd, and when you try to scroll you get
+   errors.  Changed it so that it will tell the scrollbar that
+   the entire notebook is being displayed.  Reported by Tom Tromey 
+   (tromey@cygnus.com)
+
+>> Corrected menubar menucget command to return errors for bad options.
+
+   The command "<menubar> menucget .element" returned something other
+   than an error message.  This has been corrected.  Reported by Tom 
+   Tromey (tromey@cygnus.com)
+
+>> Corrected menubar man page.
+
+   The usage for the menubar menucget command was wrong and has been 
+   fixed.  Reported by Tom Tromey (tromey@cygnus.com)
+
+
+INCOMPATIBLE CHANGES
+------------------------------------------------------------------------------
+
+
+==========================================================================
+ -------------------------- iwidgets-2.1.0 ------------------------------
+ -------------------- CHANGES FROM iwidgets-2.0.1 -----------------------
+==========================================================================
+
+  [incr Widgets] version 2.1.0 is compatable with itcl2.1
+
+NEW FEATURES
+------------------------------------------------------------------------------
+>> Eliminated unneeded update idletask calls.
+
+   Went through many of the [incr Widgets] and got rid of those update
+   idletask calls that were not really needed.  This should speed a few
+   of them up a bit.
+
+>> The hyperhelp mega-widget has been enhanced such that topic items
+   don't need to be in the help directory.  
+
+   It's just an added option in specifying topics.  To use it, you would 
+   replace '-topics {topic1 topic2 topic3}' with 
+   '-topics {topic1 {topicname2 filename2} {topic3 filename3}}'.  In other 
+   words, you only have to change where you want to specify a pathname. If 
+   you don't specify a filename, everything works the same.
+
+>> Added a -autoclear option to the combobox.
+
+   The combobox was doing an automatic erasure of the entry field contents
+   upon hitting return.  With this option, you can turn that off but it
+   still puts the string in the list.
+
+>> Added a -master option to the shell class.
+
+   The shell made all instances transient with "." as the master.  With
+   this option, you can change the master to other toplevels.  The default
+   is no master for shells, and "." for all dialogs which are derived from
+   shell.
+
+>> Added a -style option to the fileselectionbox and fileselection dialog.
+
+   Tony Parent did a great job of augmenting the fileselectionbox with
+   a style option that allows you to change the layout from the standard
+   motif look-and-feel to a better than motif layout.  This new layout
+   is called notif and features comboboxes for the filter and selection
+   entry fields and a paned window contains the two listboxes allowing
+   you to change the allocation of space for the lists.
+
+>> Removed the center childsite position for the fileselectionbox.
+
+   This is a side effect of the notif change made by Tony Parent.  It
+   just isn't easy to have a center position when your in a pane window.
+   It is a small sacrifice for the having an alternate layout of the
+   fileselectionbox.
+
+
+BUG FIXES
+------------------------------------------------------------------------------
+>> The makefile was amended to install the unknown.gif file correctly.
+
+   The hyperhelp and scrolledhtml widgets need an unknown gif file that
+   is used when unable to load an image.  The makefile was not properly
+   installing it.
+
+>> The scrolledhtml.n man page was fixed to allow man2html to work.
+
+   The scrolledhtml.n file had a bug which would hang man2html during a
+   "make install-html".  The bug affected only the htmling of the file
+   not the man page itself.
+
+
+INCOMPATIBLE CHANGES
+------------------------------------------------------------------------------
+
+
+==========================================================================
+ -------------------------- iwidgets-2.0.1 ------------------------------
+ -------------------- CHANGES FROM iwidgets-2.0.0 -----------------------
+==========================================================================
+
+  [incr Widgets] version 2.0.1 is compatable with itcl2.0
+
+NEW FEATURES
+------------------------------------------------------------------------------
+>> Added extra frame around canvas widget in Scrolledcanvas class
+
+   The borderwidth, relief, and hightlight options have been removed from
+   the canvas widget and placed on the new encompassing frame widget.  This
+   fixes the problem with canvas widgets including the border and highlight
+   ring in the clipping region.  
+
+>> Added extra frame around text widget in Scrolledtext class
+
+   The borderwidth, relief, and hightlight options have been removed from
+   the text widget and placed on the new encompassing frame widget.  This
+   fixes the problem with text widgets including the border and highlight
+   ring in the clipping region.  
+
+>> The canvasprintbox stamp supports resizing and default print buttons
+
+   Tako Schotanus updated the canvasprintbox such that the stamp now gets
+   updated whenever the window is resized.  Also, he modified the dialog
+   default buttons to be Print, Apply and Cancel.  Apply does a refresh and
+   Print does what you'd expect.
+
+>> Added feedback mega-widget to [incr Widgets]
+
+   The feedback widget is a gage for displaying process status.  Display 
+   is given as a percentage and as a thermometer type bar. Options exist 
+   for adding a label and controlling its position.
+
+   Special thanks go to Sam Shen(SLShen@lbl.gov), as this code is based on his 
+   feedback.tcl code from tk inspect. The original code is copyright 1995
+   Lawrence Berkeley Laboratory.
+
+>> Added scrolledhtml mega-widget to [incr Widgets]
+
+   The scrolledhtml widget implements a scrollable html text widget through
+   inheritance from scrolledtext.  Import reads from an html file, while 
+   export still writes plain text.  Also provides a render command, to 
+   display html text passed in as an argument.
+
+   Special thanks go to Sam Shen(SLShen@lbl.gov), as this code is based on his 
+   tkhtml.tcl code from tk inspect. The original code is copyright 1995
+   Lawrence Berkeley Laboratory.
+
+>> Added hyperhelp mega-widget to [incr Widgets]
+
+   The hyperhelp widget implements a help facility using html formatted 
+   hypertext files.
+
+   Special thanks go to Sam Shen(SLShen@lbl.gov), as this code is based on his 
+   help.tcl code from tk inspect.
+
+>> Added menubar mega-widget to [incr Widgets]
+
+   Actually it was kind-of already an iwidget.  It was living in the incoming
+   directory for a time.  No one had a complaints about it so now it is
+   a full citizen. 
+
+
+BUG FIXES
+------------------------------------------------------------------------------
+>> Corrected spurious quote in toolbar.itk
+
+   Thanks to Tom Tromey for finding this elusive little buglet and sending
+   the patch.  Wish all problems were reported in this manner.
+
+>> Corrected problem with dialogs being unable to acquire a grab.
+
+   The dialogshell activate method would generate an error if unable to
+   acquire a grab for application and global modal dialogs.  The fix 
+   installed adds a catch and a reattempt loop with a delay.  In other
+   words, the dialog shell will continuously attempt to acquire the grab
+   with a delay between attempts.
+
+>> Corrected problem with pushbutton not displaying the tab traversal ring.
+
+   The pushbutton would not display the tab traversal ring when the default
+   ring was enabled.  This has been corrected.
+
+>> Corrected scrolledlistbox getcurselection method with multiple selectmode.
+
+   If the current scrolledlistbox selectmode is multiple, then the 
+   getcurselection method should always return the selected items as
+   a list, regardless of the number of items selected.  It used to
+   return a list only if more than one item is selected.
+
+>> Buttonbox wasn't adjusting geometrically following hides if not mapped.
+
+   Bernard Johnson from TI was good enough to find this one.  It could
+   be seen by creating a dialog, activating, deactivating, then hiding
+   a button.  Next, activate it again and you'd notice that the dialog's
+   buttonbox had not been resized.  The problem was that the resizing
+   of the buttonbox was bound to the map event, which once mapped, was
+   removed when it shouldn't have been.  
+
+>> Buttonbox wasn't adjusting properly following button additions which
+   were preceeded by deletions.
+
+   Greg McFarlane found this one.  The buttonbox needed to do perform
+   and update idletasks following the sizing of the box during a deletion.
+   Otherwise, the values returned by winfo were incorrect during a
+   subsequent button addition.
+
+>> Removed underlining of listbox items in the combobox.
+
+   Milind Khandekar requested that this feature be removed.  It was 
+   annoying.
+
+
+INCOMPATIBLE CHANGES
+------------------------------------------------------------------------------
+
+
+==========================================================================
+ -------------------------- iwidgets-2.0.0 ------------------------------
+ -------------------- CHANGES FROM iwidgets-2.0b4 -----------------------
+==========================================================================
+
+  [incr Widgets] version 2.0.0 is compatable with itcl2.0
+
+NEW FEATURES
+------------------------------------------------------------------------------
+>> The copyright has been assigned to DSC Communications Corporation.
+
+   The copyright has been transferred from private individuals to DSC.
+   It is still an open copyright, just changes in the legalize wording.
+
+>> Added several new mega-widgets.
+
+   The new mega-widgets include the toolbar, tabnotebook, tabset, and 
+   notebook.  Check the man pages for details.
+
+>> Added demo catalog.
+
+   The demos directory now contains a catalog program.  It displays the 
+   code for each demo upon single select.  Double-click starts the demo.
+
+>> Added incoming directory for experimental mega-widgets.
+
+   An incoming directory exists in the distribution which contains beta
+   state mega-widgets.  They are not installed, but do include the needed
+   doc, demos, and tests.  These mega-widgets may or may not make the cut.
+   Please send feedback on their viability.  If enough positive response
+   is felt, then they will be moved up.  Otherwise, I'll move them to an
+   outgoing directory and later delete them altogether.
+
+>> With the introduction of the new itcl-2.0b3 code command, the following
+   changes were required.
+
+   All "bind" and "after" commands now use "code".
+
+   All "-command" options and scrollbar commands now use "code".
+
+   Removed "uplevel /scope" combinations from command type options.
+
+   Replaced "eval" with "uplevel #0" for evaluation of command options.
+
+>> Added curselection method to selectionbox and selectiondialog class.
+
+   The curselection command from the contained listbox of the selectionbox
+   has been thinwrapped.  
+
+>> Removed BLT dependency for implementing application modal dialogs.
+
+   The dialogshell class no longer uses blt_busy for application modal
+   dialogs.  Instead, local grabs are performed.  The benefits are speed
+   and extension independence.  Minus is the loss of the watch cursor
+   which blt_busy used.  I figure, programmers wanting the cursor action
+   can implement it themselves on an as needed basis.
+
+>> Added a grab stack in the dialogshell.
+
+   The dialogshell uses a grabstack to keep track of the current blocking
+   levels.  Thus a application modal dialog can activate another one and
+   upon closing the last one, the next one in the stack gets the block.
+   This feature did not exist before.
+
+>> Replace "after 1" commands with "after idle"
+
+   This produces the same result, but makes for a cleaner syntax.
+
+>> Added center command to the dialogshell.
+
+   The dialogshell provides a center command which takes an optional argument
+   of the path for another widget.  Upon activation, the dialogshell will 
+   be centered with respect to it.  The command may also be invoked with 
+   no arguments to center the dialogshell on the screen as a whole.  Since 
+   all other dialog classes are derived from dialogshell, all dialogs now 
+   have the center command available.
+
+>> Made the Help button hidden by default for dialogs
+
+   Most people turn it off right away anyway.  It is still there.  Just need
+   to do a "show Help" if you need it back.
+
+>> Comboxbox now derived from entryfield.
+
+   The combobox structure has been modified to be derived from the entryfield
+   class.  Now combobox labels can be aligned using the labeledwidget 
+   alignlabels method along with optionmenus, entryfields and such.
+
+>> Added -justify and -wraplength to Messagedialog.
+
+   The justify and wraplength options are now kept for the label in the
+   messagedialog widget.
+
+>> Added a man page generator for itcl.
+
+   In the doc directory is a new utility called mkitclman.  It does a good
+   job at an initial pass of man page generation for new iwidget classes.
+   You still need to get in there and beef up the man page which is produced,
+   but it is better than starting from scratch.
+
+>> Added the canvasprintbox and canvasprintdialog mega-widgets.
+
+   Two new mega-widgets, canvasprintbox and canvasprintdialog, have been
+   contributed to [incr Widgets].  Thanks to Tako Schotanus, 
+   Tako.Schotanus@bouw.tno.nl.
+   
+>> Added the textbackground option to the scrolledcanvas widget
+
+   The textbackground option has been added to the scrolledcanvas widget
+   similarly to the scrolledlistbox and entryfield widgets.
+
+
+BUG FIXES
+------------------------------------------------------------------------------
+>> Enabled repeat action in spinners.
+
+   This was available in iwidgets two versions ago.  I made in incorrect 
+   merge and lost the change.  It has now been added back into the spinner.
+
+>> Eliminated use of #auto in panedwindow.
+
+   Using #auto made the test script fail should you run it two times in a
+   row.  Instead, the class keeps its own unique counter which is always
+   reset upon construction.  This was more of an annoyance than a bug.
+
+>> Corrected selection problem in selectiondialog.
+
+   The selectiondialog wasn't configuring the itemscommand properly, so
+   selection of an item was not reflected in the selection entryfield.
+
+>> Corrected index usage problem in buttonbox insert method.
+
+   The buttonbox insert method didn't correctly convert the index argument
+   prior to inserting the new pushbutton.  This has been fixed.
+
+>> Corrected flicker problem in scrolled* widgets.
+
+   Modified the scrolled* widgets to only change the current scrollbar
+   display if different than the current setting.  This fixes the flicker 
+   problem which was apparent during horizontal scrolling.  
+
+>> Entryfield command option performs a break.
+
+   Following evaluation of the command option for entryfield widgets, a
+   break is performed.  This caused a problem when entryfields were in
+   a dialog.  Hitting return in the entryfield, invoked the dialogs 
+   default button.  This has been fixed.
+
+
+INCOMPATIBLE CHANGES
+------------------------------------------------------------------------------
+>> Removed -highlightbackground option from mega-widgets
+
+   All the -highlightbackground options have been renamed to be -background.
+   This was always an annoyance anyway.  Now, setting the -background changes
+   all the highlightbackgrounds as well.  Should anybody still for some odd
+   reason need -highlightbackground, just access the component with the
+   "component name configure" command.
+
+
+==========================================================================
+ -------------------------- iwidgets-2.0b0 ------------------------------
+ -------------------- CHANGES FROM iwidgets-2.0b1 -----------------------
+==========================================================================
+
+  [incr Widgets] versions b1, b2, b3, and b4 are compatable with itcl-2.0b2
+
+NEW FEATURES
+------------------------------------------------------------------------------
+
+>> A secondary lower case mega-widget command now exits.
+
+   Mega-widgets can now be created using the new lower case, more tk'ish
+   method or still using the class name.
+
+   Entryfield .ef   and   entryfield .ef  
+
+   both perform the same operation.
+
+>> The demos should now all work.  
+
+   The correct wish is now called.  itkwish instead of the old itcl_wish.
+
+>> The man pages have all been updated to the best of my ability.
+
+>> A new more minimal format for the code style has been implemented.  
+
+   The class declaration only contains declarations.  All implementation is
+   spearate.  This creates a much more readable class.
+
+>> All class file names as well as the tests, doc, and demos are all lower
+   case.
+
+>> Several new validate types such as hexidecimal and real have been added
+   to the Entryfield.
+   
+>> The Panedwindow class additional commands:
+
+   A paneconfigure command exists for configuring indiviual tagged panes.
+
+       panedwindow .pw
+       .pw add first
+       .pw add last
+       .pw paneconfigure first -margin 10
+
+   An insert command exists.  It takes an index and tag as arguments followed
+   by optional arguments to be applied to the pane.
+
+       .pw insert end second -minimum 20
+
+>> The Buttonbox class now has additional commands:
+
+   A buttonconfigure command exists for configuring indiviual tagged buttons.
+
+       buttonbox .bb
+       .bb add OK -text OK
+       .bb add Cancel -text Cancel
+       .bb buttonconfigure OK -command [list puts OK]
+
+   An insert command has been added.  It takes an index as the first arg,
+   followed by the tag and button arguments.
+
+       .bb insert Cancel Apply -text Apply
+
+   The invoke command no long excepts a list of buttons to invoke.  That 
+   didn't make much sense.  It takes an optional index for a single button
+   to invoke.  Without any arguments, the default button is invoked.
+
+BUG FIXES
+------------------------------------------------------------------------------
+
+>> Corrected scrolled* packing
+
+   The packing order of all the scrolled* mega-widgets has been modified
+   such that the scrollbars are the last to be clipped.
+
+>> Corrected buttonbox single button centering
+
+   The buttonbox has been modified such that a box with only one button
+   will be correctly centered.
+
+>> scrolledlist selection corrected
+
+   The -selectioncommand is now invoked following any selection of an item,
+   regardless if it was already selected.  The programmer must now determine
+   if the selected item has changed if necessary.  The previous approach of
+   only invoking the -selectioncommand if the selection has changed caused
+   too many problems, making it behave erraticly.
+
+>> Corrected problems preventing classes being derived from scrolled* classes
+
+   Several variables were incorrectly declared to be private rather than
+   protected.  Also, the _scroll* method was incorrectly declared private
+   instead of protected.  These problems prevented inheritance from the 
+   scrolled* classes.
+
+
+INCOMPATIBLE CHANGES
+------------------------------------------------------------------------------
+
+>> The class names are now upper case on the first character only.
+
+   Class names have been changed to be upper case on the first character
+   only to be more X'ish.  Old class names like EntryField are now Entryfield.
+
+>> All public methods are now all lowercase.
+
+   This effects the typical common method such as childsite.  Others effected
+   include :
+
+       ::iwidgets::Labeledwidget::alignlabels
+
+>> Labeledwidget class changes:
+
+   The -labelon option has been removed.  The mega-widget now unpacks both
+   the label and margin if neither the -labeltext, -labelbitmap, or 
+   -labeimage have a value.
+
+   The -font option has been removed.  The -labelfont option should be used
+   instead.
+
+>> Entryfield class changes:
+
+   The -labelon option is not inherited by the Entryfield anymore.  See the
+   Labeledwidget changes above.
+
+   The Entryfield fixed option has a different meaning.  It now specified 
+   the maximum number of characters allowed.  A value of zero is unlimited.
+   This frees up the width option to be able to specify a greater number 
+   of characters than the fixed amount for visual effect.
+
+   The -type and -validate options have been combined to just -validate 
+   which now takes either a type keyword or a command.  The command receives
+   additional trailing arguments consisting of the input character and the
+   the widget.  I hope to change this soon to use substitutions like %c
+   for the character at a later date.
+
+   The -background option has been removed.  The -textbackground option 
+   should be used instead.
+
+   The -validate option now has several substitution strings which may be
+   passed to the validation script.
+
+>> ScrollBar class changes:
+
+   It has been deleted.  It wasn't a big win.  The only benefit was that the
+   -background option automatically calculated the troughcolor at 80% of
+   its value.  It's just as easy to use the option database and change the
+   Tk scrollbar troughcolor to whatever value is desired.  The various
+   scrolled* classes now all use the straight Tk scrollbar.
+
+>> Panedwindow class changes:
+
+   Panes are now tagged.  This means the add, and insert methods take an
+   additional argument which is the tag for that pane.  
+
+   The panedwindow index method now takes the tag as well as the number and
+   keyword "end".  Other methods such as delete, hide, and show now can use
+   the pane tag as an index.
+
+       panedwindow .pw
+       .pw add bottom
+       .pw insert 0 top
+       .pw insert 1 middle
+       .pw delete middle
+
+   The refresh method has been renamed to reset.
+
+   The semi-private -state option has been removed.  The only method of 
+   controlling the display of panes is via the hide and show methods.
+
+>> Dialogshell class changes:
+
+   The modality option value of "system" has been renamed to be "global"
+
+>> Dialog class changes:
+
+   All the options for the buttons have been removed.  The buttonconfigure
+   method should be used instead.  The class simply creates the standard
+   OK, Apply, Cancel, and Help buttons tagged by their default labels.
+   The buttonconfigure method can be used to make modifications to the
+   buttons.  The hide and show methods should now be used instead of the
+   the -disp* options.
+
+       dialog .d
+       .d buttonconfigure OK -text Enter
+       .d hide Help
+       .d hide Apply
+
+   The -orient option is no longer kept.  It seemed rarely used if at all.
+   The -buttonboxpos option handles the mojority of the cases as is.
+
+>> Scrolledcanvas class changes:
+
+   The binditem method is now been renamed back to bind.  This is what it
+   should have been all along.  A problem in the alpha version of [incr Tcl]
+   prevented use of this word.  
+
diff --git a/itcl/iwidgets/ChangeLog b/itcl/iwidgets/ChangeLog
new file mode 100644 (file)
index 0000000..76b8dca
--- /dev/null
@@ -0,0 +1,1498 @@
+=-=-=-=-=-=-=-=-=-=-= BEGIN IWIDGETS 4.0.1 CHANGES =-=-=-=-=-=-=-=-=-=-=-
+2002-09-09  Chad Smith  <csmith@adc.com>
+    * Makefile.in: SF ticket 227921
+       Updated man page installation such that "iwidgets_" is now
+       prepended to the man page filename.  This is done to avoid
+       naming conflicts with man pages in other extensions.
+
+2002-09-09  Chad Smith  <csmith@adc.com>
+    * generic/scrolledtext.itk
+    * doc/scrolledtext.n
+    * doc/scrolledhtml.n
+    * demos/html/scrolledtext.n.html
+    * demos/html/scrolledhtml.n.html
+    * tests/scrolledtext.test
+    * tests/scrolledhtml.test
+        SF ticket 532602: added -tabs to scrolledtext (and
+       scrolledhtml due to inheritance)
+
+2002-09-08  Marty Backe <marty@lucidway.org>
+    * generic/combobox.itk
+        Fixed SF bug 501300 - keyboard navigation was not working
+        properly if any items were null
+
+2002-09-06  Chad Smith  <csmith@adc.com>
+    * generic/hierarchy.itk: SF ticket 596111
+       After reconfiguring -querycommand, the text component
+       lost its tag configuration.  Added code to reset
+       the hilite, lowlite, and info tags.
+
+2002-09-05  Chad Smith  <csmith@adc.com>
+    * generic/hierarchy.itk: SF ticket 600941
+       Marked node lost its highlighting when parent folder
+       closed and reopened
+
+2002-09-05  Chad Smith  <csmith@adc.com>
+    * generic/canvasprintbox.itk: SF ticket 560153
+       Wouldn't print to a filename other than "canvas.ps".
+
+2002-09-05  Chad Smith  <csmith@adc.com>
+    * generic/tabnotebook.itk: SF ticket 514222
+       Patch added for infinite loop problem introduced by
+       new -padx and -pady Tk frame widget options in 8.4
+
+2002-09-05  Chad Smith  <csmith@adc.com>
+    * generic/tabnotebook.itk: SF ticket 603823
+       Patch for bugs related to the -int option
+    * generic/calendar.itk: SF ticket 603823
+       Found bug while testing the dateentry patch.  Several
+       methods expected -int to be set to "yes" or "no"
+
+2002-03-24  Marty Backe <mgbacke@usa.net>
+    * generic/disjointlistbox.itk
+        Applied patch sumitted by Brett Schwarz to add two new sort
+        options which determine how items are added to each
+        scrolledlistbox. Did some various code formatting cleanup.
+    * doc/disjointlistbox.n
+        Updated the man page to reflect the addition of the two
+        sort options.
+    * demos/html/disjointlistbox.n.html
+        Updated the html version of the man page
+    * tests/disjointlistbox.test
+        Added tests for the the two new options. 
+
+2002-03-19  Marty Backe <mgbacke@usa.net>
+    * generic/messagebox.itk
+        Modified the save method to center the tk_getSaveFile dialog
+        on the messagebox window.
+
+2002-03-16  Marty Backe <mgbacke@usa.net>
+    * generic/scrolledlistbox.itk: SF Patch 494696
+        Applied patch submitted by Brett Schwarz to change the sort
+        method to accept any sort arguments allowed by Tcl's lsort.
+        Modified patch to generate an appropriate error message if an
+        invalid sort argument is provided.
+    * doc/scrolledlistbox.n
+        Updated the man page to reflect the new sort arguments.
+    * demos/html/scrolledlistbox.n.html
+        Updated per change to doc/scrolledlistbox.n
+    * tests/scrolledlistbox.test
+        Updated the 'fail test' to reflect the new error message generated
+        by an invalid sort argument.
+    * tests/combobox.test
+        Updated the sort 'failed test' to reflect the new error message
+        generated by an invalid sort argument. Fallout from patch to
+        scrolledlistbox.itk. See above.
+
+2002-03-15  Marty Backe <mgbacke@usa.net>
+    * generic/messagebox.itk
+        Fixed a couple of bugs relating to the popup menu 'Save' function:
+            1) The filename that was saved to was also echoed to the
+               messagebox. Unfortunately the variable referenced was not
+               valid, so a stack trace followed any Save operation.
+            2) The message 'issued' to the messagebox from item 1) above
+               used the tag INFO, which doesn't exist by default.
+
+            I choose to remove the 'issue' after a file Save. The widget
+            really shouldn't contribute anything to the messagebox output.
+            The user of the messagebox iwidget should have control over
+            what gets displayed.
+
+        Changed the 'export' method to directly use the scrolledtext
+        'export' method instead of re-implementing it within this widget.
+
+        Rearranged the layout of the popup menu. Moved the 'Clear' menu
+        to the end of the list. It was too easy to generate the popup and
+        accidentally choose the 'Clear' function.
+    
+    * generic/hyperhelp.itk
+        Removed the 'error' statement that would cause any application that
+        used Hyperhelp to stacktrace if a file to be rendered couldn't be
+        opened. It's now just a silent error. Perhaps a -errorcommand option
+        could be added later.
+
+2002-03-10  Marty Backe <mgbacke@usa.net>
+    * generic/extfileselectionbox.itk: SF ticket 482080
+        Fixed SF ticket 482080 - wrapped _pwd in quotes
+        Fixed newly discovered bug:
+            When the current directory contains a directory named after
+            a punctuation mark (e.g., ! '). Method _setDirList was always
+            setting the Dir listbox selection to index 0, which is normally
+            ".", unless the directory contains a directory named
+            after a punctuation mark. Now it gets set to "." regardless.
+
+2002-02-26  Marty Backe <mgbacke@usa.net>
+    * generic/radiobox.itk: SF ticket 521332
+        Fixed various bugs:
+            1) Traces weren't being released when the object was destroyed.
+            2) Small memory leak - _modes($this) array element not deleted
+               when the object was destroyed.
+            3) If the -command option was defined, the command would be
+               triggered when the first radiobutton was added via the add
+               method.
+        Added a destructor to fix bugs 1 & 2. Modified the constructor to
+        fix bug 3.
+    * generic/extfileselectiondialog.itk: SF ticket 521335
+        Added the -sashcursor option (was already defined in the man page,
+        but wasn't implemented).
+    * tests/radiobox.test:
+        Added test to check for bug number 3 above.
+    * tests/extfileselectiondialog.test:
+        Added 2 option tests for -sashcursor & -labelfont. Updated the
+        option count test.
+
+2002-02-24  Marty Backe <mgbacke@usa.net>
+    * generic/datefield.itk
+        Fixed bugs introduced in previous patch - unbraced 'if' conditionals
+    * generic/tabset.itk
+        Fixed bug introduced in previous patch - 'code' used instead
+        of 'itcl::code'.
+    * generic/shell.itk: SF ticket 521338
+        The 'center' method now properly centers windows that have been
+        resized between calls to center.
+    * generic/scrolledlistbox.ikt: SF ticket 521326
+        The <B1-Motion> binding was removed to eliminate multiple triggers
+        of the command specified by the -selectioncommand option if the
+        mouse is moved while the item is being selected. 
+        
+2002-02-16  Marty Backe <mgbacke@usa.net>
+    * generic/scrolledhtml.itk: SF ticket 481956
+        Fixed potential for lengthy page renderings to throw a bgerror.
+        
+2001-12-11  Chad Smith  <csmith@adc.com>
+       * generic/combobox.itk: SF ticket 474817
+               Fixed an auto-completion problem.
+
+2001-12-07  Chad Smith  <csmith@adc.com>
+       * generic/tabset.itk:
+               Added patch submitted by Reinhard Max to optimize tab addition.
+
+2001-11-29  Chad Smith  <csmith@adc.com>
+       * configure.in:
+       * Makefile.in: SF tickets 462528 and 486735
+               Removed a lot of unnecessary variables.  Updated configure.in
+               so that autoconf-generated version matches the configure script
+               that is included (thanks Andreas).  Removed --with-itk and
+               changed --with-itcl to be required if Iwidgets is not
+               installed direcly underneath toplevel Itcl directory.
+
+2001-09-20  Chad Smith  <csmith@adc.com>
+       * generic/shell.itk: SF ticket 227885
+               Added an 'update idletasks' to flush the event loop after
+               activating a shell iwidgets.
+
+2001-09-18  Chad Smith  <csmith@adc.com>
+       * generic/radiobox.itk: SF ticket 227923
+               Added code to keep users from modifying -variable and -value
+               radiobutton component options.
+
+2001-09-17  Chad Smith  <csmith@adc.com>
+       * generic/entryfield.itk: SF ticket 227912
+               Corrected some pasting problems.
+
+2001-09-14  Chad Smith  <csmith@adc.com>
+       * generic/tabset.itk: SF ticket 460879
+               Commented out a line of code to keep the tab from forcing
+               focus on the hull frame on <Enter>.
+
+2001-09-14  Chad Smith  <csmith@adc.com>
+       * generic/tabnotebook.itk: SF tickets 452803 and 461471
+               Had to do an "undo" of some previous code that was causing an
+               infinite resizing on <Configure> events.
+
+=-=-=-=-=-=-=-=-=-=-= END IWIDGETS 4.0.1 CHANGES =-=-=-=-=-=-=-=-=-=-=-=-
+
+2001-08-07  Chad Smith  <csmith@adc.com>
+       * Merged iwidgets_overhaul branch to CVS head.  This branch
+       included all modifications necessary to extract the iwidgets
+       from the itcl distribution.
+
+2001-07-17  Jeff Hobbs  <jeffh@ActiveState.com>
+       * Makefile.in: removed attempt to install $(GENERIC_DIR)/*.tcl
+       from install-libraries target as there aren't any .tcl files there
+       since the removal of generic/scopedobject.tcl.  This was resulting
+       in an error on install.
+
+2001-05-24  davygrvy
+       * ChangeLog (added):
+               Auto gen'd this from output of `cvs log`.  This will help us
+               make a nice quality digest of the changes done for a release.
+
+2001-05-23  davygrvy
+       * .cvsignore:
+       * configure:
+       * configure.in:
+               Updated patch level to 3.0.2 in prep for a release.
+
+2001-05-22  davygrvy
+       * win/iwidgets.tcl:
+       * win/makefile.vc:
+       * win/pkg.vc:
+               makefile.vc actually works again.
+
+       * win/pkgIndex.tcl:
+               we'll auto gen these from the makefile
+
+       * win/makefile.vc:
+               got catalog.tcl installing
+
+2001-05-21  davygrvy
+       * demos/demo.html:
+               Moved change on the old iwidget3.0.0 to the new repository tree
+               for Iwidgets
+
+2001-05-19  davygrvy
+       * generic/menubar.itk:
+       * generic/tabnotebook.itk:
+               Moved Chad's changes to the new repository files from the old
+               iwidgets3.0.0
+
+2001-05-18  davygrvy
+       * generic/scopedobject.tcl:
+               removed due to copy
+
+2001-04-25  davygrvy
+       * generic/colors.itk:
+       * win/catalog.bat:
+       * win/makefile.bc:
+       * win/tclIndex:
+               cleaning of prior 2.2.0 import to match the correct HEAD
+
+       * CHANGES:
+       * Makefile.in:
+       * README:
+       * aclocal.m4:
+       * configure:
+       * configure.in:
+       * demos/buttonbox:
+       * demos/canvasprintdialog:
+       * demos/catalog:
+       * demos/combobox:
+       * demos/demo.html:
+       * demos/dialog:
+       * demos/dialogshell:
+       * demos/entryfield:
+       * demos/feedback:
+       * demos/fileselectionbox:
+       * demos/fileselectiondialog:
+       * demos/html/buttonbox.n.html:
+       * demos/html/canvasprintbox.n.html:
+       * demos/html/canvasprintdialog.n.html:
+       * demos/html/combobox.n.html:
+       * demos/html/dialog.n.html:
+       * demos/html/dialogshell.n.html:
+       * demos/html/entryfield.n.html:
+       * demos/html/feedback.n.html:
+       * demos/html/fileselectionbox.n.html:
+       * demos/html/fileselectiondialog.n.html:
+       * demos/html/hyperhelp.n.html:
+       * demos/html/iwidgets2.2.0UserCmds.html:
+       * demos/html/labeledwidget.n.html:
+       * demos/html/menubar.n.html:
+       * demos/html/messagedialog.n.html:
+       * demos/html/notebook.n.html:
+       * demos/html/optionmenu.n.html:
+       * demos/html/panedwindow.n.html:
+       * demos/html/promptdialog.n.html:
+       * demos/html/pushbutton.n.html:
+       * demos/html/radiobox.n.html:
+       * demos/html/scrolledcanvas.n.html:
+       * demos/html/scrolledframe.n.html:
+       * demos/html/scrolledhtml.n.html:
+       * demos/html/scrolledlistbox.n.html:
+       * demos/html/scrolledtext.n.html:
+       * demos/html/selectionbox.n.html:
+       * demos/html/selectiondialog.n.html:
+       * demos/html/shell.n.html:
+       * demos/html/spindate.n.html:
+       * demos/html/spinint.n.html:
+       * demos/html/spinner.n.html:
+       * demos/html/spintime.n.html:
+       * demos/html/tabnotebook.n.html:
+       * demos/html/tabset.n.html:
+       * demos/html/toolbar.n.html:
+       * demos/hyperhelp:
+       * demos/images/mag.gif:
+       * demos/images/poly.gif:
+       * demos/images/ruler.gif:
+       * demos/images/select.gif:
+       * demos/iwidgets.gif:
+       * demos/labeledwidget:
+       * demos/menubar:
+       * demos/messagedialog:
+       * demos/notebook:
+       * demos/optionmenu:
+       * demos/panedwindow:
+       * demos/promptdialog:
+       * demos/pushbutton:
+       * demos/radiobox:
+       * demos/scrolledcanvas:
+       * demos/scrolledframe:
+       * demos/scrolledhtml:
+       * demos/scrolledlistbox:
+       * demos/scrolledtext:
+       * demos/selectionbox:
+       * demos/selectiondialog:
+       * demos/spindate:
+       * demos/spinint:
+       * demos/spinner:
+       * demos/spintime:
+       * demos/tabnotebook:
+       * demos/tabset:
+       * demos/toolbar:
+       * doc/buttonbox.n:
+       * doc/canvasprintbox.n:
+       * doc/canvasprintdialog.n:
+       * doc/combobox.n:
+       * doc/dialog.n:
+       * doc/dialogshell.n:
+       * doc/entryfield.n:
+       * doc/feedback.n:
+       * doc/fileselectionbox.n:
+       * doc/fileselectiondialog.n:
+       * doc/hyperhelp.n:
+       * doc/iwidgets.ps:
+       * doc/labeledwidget.n:
+       * doc/man.macros:
+       * doc/menubar.n:
+       * doc/messagedialog.n:
+       * doc/mkitclman:
+       * doc/notebook.n:
+       * doc/optionmenu.n:
+       * doc/panedwindow.n:
+       * doc/promptdialog.n:
+       * doc/pushbutton.n:
+       * doc/radiobox.n:
+       * doc/scrolledcanvas.n:
+       * doc/scrolledframe.n:
+       * doc/scrolledhtml.n:
+       * doc/scrolledlistbox.n:
+       * doc/scrolledtext.n:
+       * doc/selectionbox.n:
+       * doc/selectiondialog.n:
+       * doc/shell.n:
+       * doc/spindate.n:
+       * doc/spinint.n:
+       * doc/spinner.n:
+       * doc/spintime.n:
+       * doc/tabnotebook.n:
+       * doc/tabset.n:
+       * doc/tk2html:
+       * doc/tk2html.awk:
+       * doc/tk2html.perl:
+       * doc/tk2html2.awk:
+       * doc/toolbar.n:
+       * generic/buttonbox.itk:
+       * generic/canvasprintbox.itk:
+       * generic/canvasprintdialog.itk:
+       * generic/colors.itk:
+       * generic/combobox.itk:
+       * generic/dialog.itk:
+       * generic/dialogshell.itk:
+       * generic/entryfield.itk:
+       * generic/feedback.itk:
+       * generic/fileselectionbox.itk:
+       * generic/fileselectiondialog.itk:
+       * generic/hyperhelp.itk:
+       * generic/labeledwidget.itk:
+       * generic/menubar.itk:
+       * generic/messagedialog.itk:
+       * generic/notebook.itk:
+       * generic/optionmenu.itk:
+       * generic/pane.itk:
+       * generic/panedwindow.itk:
+       * generic/promptdialog.itk:
+       * generic/pushbutton.itk:
+       * generic/radiobox.itk:
+       * generic/scrolledcanvas.itk:
+       * generic/scrolledframe.itk:
+       * generic/scrolledhtml.itk:
+       * generic/scrolledlistbox.itk:
+       * generic/scrolledtext.itk:
+       * generic/selectionbox.itk:
+       * generic/selectiondialog.itk:
+       * generic/shell.itk:
+       * generic/spindate.itk:
+       * generic/spinint.itk:
+       * generic/spinner.itk:
+       * generic/spintime.itk:
+       * generic/tabnotebook.itk:
+       * generic/tabset.itk:
+       * generic/tclIndex:
+       * generic/toolbar.itk:
+       * generic/unknownimage.gif:
+       * incoming/README:
+       * incoming/doc/man.macros:
+       * incoming/tests/all:
+       * incoming/tests/defs:
+       * iwidgets.tcl.in:
+       * license.terms:
+       * outgoing/README:
+       * pkgIndex.tcl.in:
+       * tests/all:
+       * tests/all.tcl:
+       * tests/buttonbox.test:
+       * tests/canvasprintbox.test:
+       * tests/canvasprintdialog.test:
+       * tests/combobox.test:
+       * tests/defs:
+       * tests/dialog.test:
+       * tests/dialogshell.test:
+       * tests/entryfield.test:
+       * tests/feedback.test:
+       * tests/fileselectionbox.test:
+       * tests/fileselectiondialog.test:
+       * tests/hyperhelp.html:
+       * tests/hyperhelp.test:
+       * tests/labeledwidget.test:
+       * tests/menubar.test:
+       * tests/messagedialog.test:
+       * tests/notebook.test:
+       * tests/optionmenu.test:
+       * tests/panedwindow.test:
+       * tests/promptdialog.test:
+       * tests/pushbutton.test:
+       * tests/radiobox.test:
+       * tests/scrolledcanvas.test:
+       * tests/scrolledframe.test:
+       * tests/scrolledhtml.test:
+       * tests/scrolledlistbox.test:
+       * tests/scrolledtext.test:
+       * tests/selectionbox.test:
+       * tests/selectiondialog.test:
+       * tests/shell.test:
+       * tests/spindate.test:
+       * tests/spinint.test:
+       * tests/spinner.test:
+       * tests/spintime.test:
+       * tests/tabnotebook.test:
+       * tests/tabset.test:
+       * tests/toolbar.test:
+       * tests/usual.test:
+       * win/catalog.bat:
+       * win/iwidgets.tcl:
+       * win/makefile.bc:
+       * win/makefile.vc:
+       * win/pkgIndex.tcl:
+       * win/tclIndex:
+               import of current 2.2.0
+
+       * win/pkg.vc:
+               moved the info about the iwidget version for makefile.vc
+
+2001-04-04  smithc
+       * generic/menubar.itk:
+               Fixed stack trace that would occur if the programmer attempted to create two menu items with the
+               same command name.
+
+2000-12-19  smithc
+       * generic/combobox.itk:
+               Fixed 3 bugs:
+               
+               1) bug with -state config option
+               2) added some performance enhancements
+               3) added code to restore grabs following dropdown listbox unmap
+
+2000-12-06  smithc
+       * generic/hierarchy.itk:
+               Added patches submitted by Martin Backe on 12/5/00.  One was for a memory leak in
+               the clear() method, and the other was to correct %n substitution in the _select()
+               method.
+
+       * doc/hierarchy.n:
+               Added -selectcommand to the man page.
+
+2000-08-25  csmith
+       * generic/scrolledlistbox.itk:
+               Patch submitted by Shaun Lowry - I don't know the ticket number, but here's
+               part of the ticket description:
+               
+               Name:  Shaun Lowry
+               email:  slowry@iss.net
+               Support:  Gold
+               Severity:  2
+               OperatingSystem:  Windows NT
+               OperatingSystemVersion:  NT4 SP6
+               Machine:  Beige :-) (home built PC)
+               Synopsis:  scrolledlistbox "pattern" based selection doesn't work properly
+               
+               ReproducibleScript:
+               package require Iwidgets
+               iwidgets::scrolledlistbox .f
+               .f insert end "friendly"
+               .f insert end "hostile"
+               .f get host*
+               .f get friend*
+
+2000-08-22  welch
+       * configure:
+       * configure.in:
+               Bumped version number to 3.0.1 (PARTS LIST NOTICE)
+
+       * generic/scrolledlistbox.itk:
+               Added catch around -listvariable option so this can be used
+               with older versions of Tk that do not have this option on listboxes.
+
+2000-08-17  csmith
+       * generic/timeentry.itk:
+               Same problem as dateentry.  See documentation for dateentry version 1.2 in
+               CVS.  I don't have a ticket number.
+               
+               -chad smith
+
+       * generic/dateentry.itk:
+               While documenting the iwidgets last year in my book, I came across a bug where
+               destroying a component didn't remove it from the composite options list.  I
+               told Michael about it, and he's fixed it in 3.2.  This broke the dateentry
+               because it was explicitly unsetting the component from the itk_component
+               array.  I simply deleted that line of code.
+               
+               I need to make a pass at the rest of the iwidgets to see which other ones were
+               also unsetting the component.
+               
+               -chad smith
+
+2000-08-08  csmith
+       * generic/hierarchy.itk:
+               Several enhancements and bug fixes added by Doug Howard.  Doug added the
+               following configuration options:
+                       -dblclickcommand
+                       -icondblcommand
+                       -imagecommand
+                       -imagedblcommand
+                       -imagemenuloadcommand
+                       -textmenuloadcommand
+               
+               He also added two public methods: expanded and expState.  Multiple non-public
+               methods were added to support the new configuration options.  I have updated
+               the man page for each new option and public method.
+
+       * doc/hierarchy.n:
+               Man page updated per the additional configuration options and public methods
+               added by Doug Howard.
+
+       * tests/hierarchy.test:
+               Needed to change the number of configuration options per additions by
+               Doug Howard so hierarchy would pass the 'make test'.
+
+2000-08-07  welch
+       * configure:
+               Ran autoconf
+
+2000-08-02  welch
+       * Makefile.in:
+       * configure:
+               Changed this to use installFiles.tcl instead of install-sh
+
+2000-07-29  welch
+       * configure:
+       * configure:
+               Ran autoconf
+
+2000-07-14  welch
+       * configure:
+               Updated configure
+
+2000-07-06  mmc
+       * generic/timefield.itk:
+       * tests/all:
+       * tests/all.tcl:
+       * tests/defs:
+       * tests/menubar.test:
+       * tests/notebook.test:
+       * tests/tabnotebook.test:
+       * tests/tabset.test:
+       * tests/toolbar.test:
+       * unix/Makefile.in:
+       * unix/configure.in:
+       * unix/install-sh:
+       * unix/iwidgets.tcl.in:
+       * unix/pkgIndex.tcl.in:
+               
+               6/26/00 (bug fix)
+                 Fixed Itcl_ClassVarResolver so that the formal parameters in a
+                 method/proc take precedence over class data members.
+               
+               6/30/00 (bug fix)
+                 Fixed all itcl/itk/iwidgets3.0.0 tests to run cleanly with the new
+                 tcltest package.
+               
+               7/1/00 (bug fix)
+                 Fixed "itk_component delete" so that the composite option list is
+                 cleaned up whenever a component is deleted.  For example, suppose
+                 a component is the sole contributor of -font.  When that component
+                 is removed via "itk_component delete", the -font option goes away
+                 as well.  Also fixed the handling of the itk-delete-* binding for
+                 the component.  When the component is removed, the binding tag
+                 is also removed by itk::remove_destroy_hook.
+               
+               7/5/00 (bug fix)
+                 Fixed the check done during object creation to avoid clobbering
+                 existing commands.  Previously, itcl would look for any command--
+                 in the local *and* global namespace--that might be clobbered.
+                 Now, it looks for commands only in the local namespace, since
+                 those are the only ones that could truly be clobbered.
+               
+               7/5/00 (cleanup)
+                 Removed obsolete Makefile/configure files in the various "unix"
+                 directories.  Makefiles and configure files now reside one level
+                 above, in the standard TEA place.
+
+2000-06-06  wart
+       * Makefile.in:
+       * configure:
+       * configure.in:
+       * tests/all.tcl:
+       * tests/buttonbox.test:
+       * tests/calendar.test:
+       * tests/canvasprintbox.test:
+       * tests/canvasprintdialog.test:
+       * tests/checkbox.test:
+       * tests/combobox.test:
+       * tests/dateentry.test:
+       * tests/datefield.test:
+       * tests/dialog.test:
+       * tests/dialogshell.test:
+       * tests/disjointlistbox.test:
+       * tests/entryfield.test:
+       * tests/extfileselectionbox.test:
+       * tests/extfileselectiondialog.test:
+       * tests/feedback.test:
+       * tests/fileselectionbox.test:
+       * tests/fileselectiondialog.test:
+       * tests/finddialog.test:
+       * tests/hierarchy.test:
+       * tests/hyperhelp.test:
+       * tests/labeledframe.test:
+       * tests/labeledwidget.test:
+       * tests/menubar.test:
+       * tests/messagebox.test:
+       * tests/messagedialog.test:
+       * tests/notebook.test:
+       * tests/optionmenu.test:
+       * tests/panedwindow.test:
+       * tests/promptdialog.test:
+       * tests/pushbutton.test:
+       * tests/radiobox.test:
+       * tests/regexpfield.test:
+       * tests/scrolledcanvas.test:
+       * tests/scrolledframe.test:
+       * tests/scrolledhtml.test:
+       * tests/scrolledlistbox.test:
+       * tests/scrolledtext.test:
+       * tests/selectionbox.test:
+       * tests/selectiondialog.test:
+       * tests/shell.test:
+       * tests/spindate.test:
+       * tests/spinint.test:
+       * tests/spinner.test:
+       * tests/spintime.test:
+       * tests/tabnotebook.test:
+       * tests/tabset.test:
+       * tests/timeentry.test:
+       * tests/timefield.test:
+       * tests/toolbar.test:
+       * tests/usual.test:
+       * tests/watch.test:
+               Modified tests to run with TEA Makefile
+
+2000-06-02  csmith
+       * generic/timefield.itk:
+               Here are the comments from an itcl mailing list poster as well as
+               my comments interspersed.
+               
+               
+               iwidgets::timefield
+
+2000-04-26  csmith
+       * generic/checkbox.itk:
+               Bug fix - patch by Mark Wilson added to select method to handle boolean
+               (other than 0,1) -onvalue options.
+
+2000-04-19  mmc
+       * configure:
+       * configure.in:
+               
+               - fixed itcl::find to find classes/objects in *all* namespaces
+               - fixed tests to run cleanly
+
+2000-03-28  csmith
+       * generic/scrolledhtml.itk:
+               Applied patches submitted by Brian Griffin.  The patches are as follows:
+               
+               *** scrolledhtml.itk    1999/02/21 02:50:38     1.3
+               --- scrolledhtml.itk    2000/03/14 18:07:27
+               *************** class iwidgets::Scrolledhtml {
+               *** 141,146 ****
+               --- 141,147 ----
+                   itk_option define -unknownimage unknownimage File {}
+                   itk_option define -textbackground textBackground Background {}
+                   itk_option define -update update Update 1
+               +   itk_option define -debug deBug Debug 0
+                =20
+                   public method import {args}
+                   public method clear {}
+               *************** body iwidgets::Scrolledhtml::import {arg
+               *** 544,550 ****
+                                   append _cwd [file dirname $filename]
+                                 } else {
+                                   set f [open $filename r]
+               ! g                  set _cwd [file dirname $filename]
+                                 }
+                               }
+                           }
+               --- 545,551 ----
+                                   append _cwd [file dirname $filename]
+                                 } else {
+                                   set f [open $filename r]
+               !                   set _cwd [file dirname $filename]
+                                 }
+                               }
+                           }
+               *************** body iwidgets::Scrolledhtml::render {htm
+               *** 611,618 ****
+                                           [lindex $entity 1]] "" entity
+                               set cmd [string tolower [lindex $entity 0]]
+                               if {[info command _entity_$cmd]!=3D""} {
+               !                   catch {eval _entity_$cmd [lrange $entity 1 end]}
+                               }
+                               set html \
+                                   [string range $html [expr [lindex $match 1]+1] end]
+                           }
+               --- 612,624 ----
+                                           [lindex $entity 1]] "" entity
+                               set cmd [string tolower [lindex $entity 0]]
+                               if {[info command _entity_$cmd]!=3D""} {
+               !                   if {[catch {eval _entity_$cmd [lrange $entity 1 end]}
+               bad]} {
+               !                       if {$itk_option(-debug)} {
+               !                           global errorInfo
+               !                           puts stderr "render: _entity_$cmd [lrange $entity
+               1 end] =
+               Error:$bad\n$errorInfo"
+               !                       }
+                                   }
+               +               }
+                               set html \
+                                   [string range $html [expr [lindex $match 1]+1] end]
+                           }
+               *************** body iwidgets::Scrolledhtml::_append_tex
+               *** 728,743 ****
+                       if ![string length $text] return
+                     }
+                     if {!$_pre && !$_intitle} {
+               !       set p [$_hottext get "end - 2c"]
+                       set n [string index $text 0]
+                         if {$n =3D=3D " " && $p =3D=3D " "} {
+                           set text [string range $text 1 end]
+                         }
+               !       $_hottext insert end $text $_tag
+                       return
+                     }
+                     if {$_pre && !$_intitle} {
+               !       $_hottext insert end $text $_tag
+                       return
+                     }
+                     append _title $text
+               --- 734,757 ----
+                       if ![string length $text] return
+                     }
+                     if {!$_pre && !$_intitle} {
+               !       if {[catch {$_hottext get "end - 2c"} p]} {
+               !           set p ""
+               !       }
+                       set n [string index $text 0]
+                         if {$n =3D=3D " " && $p =3D=3D " "} {
+                           set text [string range $text 1 end]
+                         }
+               !       if {[catch {$_hottext insert end $text $_tag}]} {
+               !           set pht [winfo parent $_hottext]
+               !           catch {$pht insert end $text $_tag}
+               !       }          =20
+                       return
+                     }
+                     if {$_pre && !$_intitle} {
+               !       if {[catch {$_hottext insert end $text $_tag}]} {
+               !           set pht [winfo parent $_hottext]
+               !           catch {$pht insert end $text $_tag}
+               !       }   =20
+                       return
+                     }
+                     append _title $text
+               *************** body iwidgets::Scrolledhtml::_set_tag {}
+               *** 807,813 ****
+                     if {![info exists _tagl($_tag)]} {
+                       set _tagfont($_tag) 1
+                       eval $_hottext tag configure $_tag \
+               !           -foreground $_color \
+                           -lmargin1 ${_left}m \
+                           -lmargin2 ${_left2}m $args
+                       if [catch {eval $_hottext tag configure $_tag \
+               --- 821,827 ----
+                     if {![info exists _tagl($_tag)]} {
+                       set _tagfont($_tag) 1
+                       eval $_hottext tag configure $_tag \
+               !           -foreground \$_color \
+                           -lmargin1 ${_left}m \
+                           -lmargin2 ${_left2}m $args
+                       if [catch {eval $_hottext tag configure $_tag \
+               *************** body iwidgets::Scrolledhtml::_entity_tab
+               *** 2127,2133 ****
+                 # end table
+                 # ------------------------------------------------------------------
+                 body iwidgets::Scrolledhtml::_entity_/table {} {
+               !   if $_intable {
+                     _pop tableborder
+                     set table [[_pop table] childsite]
+                     _pop row
+               --- 2141,2147 ----
+                 # end table
+                 # ------------------------------------------------------------------
+                 body iwidgets::Scrolledhtml::_entity_/table {} {
+               !     if {$_intable} {
+                       _pop tableborder
+                       set table [[_pop table] childsite]
+                       _pop row
+               *************** body iwidgets::Scrolledhtml::_entity_/ta
+               *** 2150,2155 ****
+               --- 2164,2181 ----
+                       set _link [_pop link]
+                       set _alink [_pop alink]
+                       foreach x [grid slaves $table] {
+               +           set text [$x get 1.0 end]
+               +           set tl [split $text \n]
+               +           set max 0
+               +           foreach l $tl {
+               +               set len [string length $l]
+               +               if {$len > $max} {
+               +                   set max $len
+               +               }
+               +           }
+               +           if {$max > [$x cget -width]} {
+               +               $x configure -width $max
+               +           }
+                           if {[$x cget -height] =3D=3D 1} {
+                               $x configure -height [lindex [split [$x index "end - 1 chars"]
+               "."] =
+               0]
+                           }
+               *************** body iwidgets::Scrolledhtml::_entity_td=20
+               *** 2219,2227 ****
+                       set cellspacing [_peek cellspacing]
+                     set _hottext $table.cell[incr _counter]
+                     text $_hottext -relief flat -width $ar(width) -height $ar(height) =
+               \
+               !              -foreground $_color -background $_bgcolor =
+               -highlightthickness 0 \
+               !              -wrap word -cursor $itk_option(-cursor) \
+                              -padx $cellpadding -pady $cellpadding
+                     if [info exists ar(nowrap)] {
+                       $_hottext configure -wrap none
+                     }
+               --- 2245,2258 ----
+                       set cellspacing [_peek cellspacing]
+                       set _hottext $table.cell[incr _counter]
+                       text $_hottext -relief flat -width $ar(width) -height $ar(height) \
+               !           -highlightthickness 0 -wrap word -cursor $itk_option(-cursor) \
+                                  -padx $cellpadding -pady $cellpadding
+               +       if {$_color !=3D ""} {
+               +           $_hottext config -foreground $_color
+               +       }
+               +       if {$_bgcolor !=3D ""} {
+               +           $_hottext config -background $_bgcolor=20
+               +       }
+                       if [info exists ar(nowrap)] {
+                           $_hottext configure -wrap none
+                       }
+               *************** body iwidgets::Scrolledhtml::_entity_td=20
+               *** 2229,2235 ****
+               --- 2260,2272 ----
+                           $_hottext configure -relief sunken
+                       }
+                       set row [_peek row]
+               +       if {$row < 0} {
+               +           set row 0
+               +       }
+                       set column [_pop column]
+               +       if {$column < 0} {
+               +           set column 0
+               +       }
+                       while {[grid slaves $table -row $row -column $column] !=3D ""} {
+                           incr column
+                       }
+
+       * generic/shell.itk:
+               Reversed these two lines of code in the activate() method.
+                       wm deiconify $itk_component(hull)
+                       raise $itk_component(hull)
+               This fixes a problem mentioned by Brett Schwarz with a particular window
+               manager he was using with Linux.  After testing this code change on a number
+               of other platforms/WMs (Solaris, Windows, HP-UX -- OLVWM, CDE, GNOME, FVWM) it
+               does not appear to affect behavior on any of these other systems.
+
+2000-03-21  csmith
+       * generic/fileselectionbox.itk:
+               From a patch I received from Brett Schwarz:
+               
+               BUG
+               ---
+               When the -fileson option is set to false, then only the directory
+               listing is shown. It is implied that this becomes a directory selector.
+               However, when single clicking on a directory, the selection entry widget
+               only gets updated with the tail of the directory name (what is actually
+               in the directory listbox), not the whole path.
+               
+               DESIRED BEHAVIOR
+
+       * generic/extfileselectionbox.itk:
+               From a patch I received from Brett Schwarz:
+               
+               BUG
+               ---
+               When the -fileson option is set to false, then only the directory
+               listing is shown. I is implied that this becomes a directory selector.
+               However, when single clicking on a directory, the selection entry widget
+               only gets updated with the tail of the directory name (what is actually
+               in the directory listbox), not the whole path.
+               
+               DESIRED BEHAVIOR
+
+2000-03-10  csmith
+       * doc/checkbox.n:
+               Updated man page to reflect addition of new config option: 
+               orient.
+
+       * generic/radiobox.itk:
+               Added a new configuration option to the radiobox: -orient, which specifies the
+               orientation of the radiobuttons within the radiobox.
+
+       * generic/checkbox.itk:
+               Added a new config option to the checkbox: -oritent, which allows the user to
+               specify the orientation of the checkbuttons, either horizontally or
+               vertically (default).
+
+       * doc/radiobox.n:
+               Updated man page to reflect the new config option I added: 
+               orient.
+
+2000-03-09  csmith
+       * doc/scrolledlistbox.n:
+               Updated man page to include -listvariable associated option and itemconfigure
+               associated method.
+
+       * generic/spinint.itk:
+               Added patch submitted by Brett Schwarz.  When a value outside the specified
+               range is typed into the entryfield component, the spinint will beep if the up
+               or down arrow is pressed.  We decided it was better to change the value back
+               to within the valid range. For example, if the range is from 10 to 20:
+                       user types 50 in entryfield:
+                               up arrow results in 10
+                               down arrow results in 20
+                       user types 5 in entryfield:
+                               up arrow results in 10
+                               down arrow results in 20
+
+       * generic/feedback.itk:
+               This is to close ticket #2881.  While implementing the fix, I found another
+               bug where resizing of the window did not update the trough.  So I did not add
+               the patch from this ticket.  Rather, I added a new binding in the class
+               constructor on the hull such that <Configure> events invoke the _display
+               method to update the trough.  This binding fixes both cases and does not
+               introduce any performance problems.
+
+       * doc/scrolledtext.n:
+               Updated man page to include image associated method.
+
+2000-03-08  csmith
+       * generic/hierarchy.itk:
+               Implemented and tested bug fix for ticket #3444.
+               csmith: 3/8/00 4:02pm
+
+2000-03-02  csmith
+       * generic/scrolledlistbox.itk:
+               Added a wrapper method for the new tk8.3 itemconfigure command for the
+               listbox.
+
+       * generic/scrolledtext.itk:
+               This is to close bug report #3446.  I added a wrapper method for the text
+               widget's new image function per request.
+
+       * unix/Makefile.in:
+               This is to close ticket #3958.  Removed the "iwidgets.tcl and pkgIndex.tcl"
+               targets from 'make clean'.
+
+       * generic/scrolledlistbox.itk:
+               Added -listvariable to the list of options kept with the listbox component is
+               added so that this option is available at the mega-widget level.
+
+2000-01-31  csmith
+       * generic/combobox.itk:
+               Small bug fix in the delete method when deleting text from the entry
+               component.
+
+2000-01-26  csmith
+       * generic/disjointlistbox.itk:
+               This mega-widget is setting tk_strictMotif to 1.  Several emails circulated
+               around the itcl mailing list about problems that this caused.  disjointlistbox
+               is the only mega-widget that set this global variable, so I've removed the
+               line of code that did this.  After a brief sanity check, things look fine
+               without this line of code.
+
+2000-01-24  wart
+       * configure:
+               Regenerated configure scripts to pick up changes to tcl.m4
+
+       * configure:
+               Regenerated configure scripts to pick up recent changes to tcl.m4
+
+2000-01-07  csmith
+       * generic/messagedialog.itk:
+               Added -wraplength and -justify to configuration options.  I don't know why
+               these were removed from version 2.2, but they're useful and should be there.
+
+2000-01-03  csmith
+       * generic/combobox.itk:
+               One typo dealing with -state with -dropdown is false ("info exists" should
+               have been "winfo exists").  Also added a conditional in the delete method
+               to avoid a possible stack dump.
+
+       * generic/watch.itk:
+               -tickcolor was not working - simple fix to modify the canvas option
+               from -fill to -outline
+
+       * generic/timefield.itk:
+               Patch by Massimo Morin to add -gmt and -textvariable options to
+               the timefield.
+
+       * generic/optionmenu.itk:
+               The 'select' method was not working properly when passed the "end" argument.
+               Modified the 'select' method to check for a bad index value - did not use
+               the patch attached to the bug report.
+
+       * generic/canvasprintbox.itk:
+               minor bug fix, -pagesize was not updating the optionmenu
+
+       * generic/calendar.itk:
+               Fixed a bug with -buttonforeground when photos used instead of
+               bitmaps.
+
+       * generic/spindate.itk:
+               datemargin was not working properly.  Bug fixed by Brett
+               Schwarz.
+
+       * generic/finddialog.itk:
+               Patch by Brett Schwarz to fix -clearcommand and -matchcommand options,
+               which were not working.
+
+       * generic/extfileselectionbox.itk:
+               A few public methods should be private:
+                       _selectDir
+                       _dblSelectDir
+                       _selectFile
+
+       * Makefile.in:
+               Patch submitted by Andreas Gustafsson: 'make clean' removes files generated
+               by the configure script and should only remove files generated by make.
+
+1999-12-20  csmith
+       * generic/labeledframe.itk:
+               Fixed some access level inconsistencies with some class methods.  One public
+               method (smt) should not be public.  Actually, I can't find anywhere in any
+               code where this method is called.  Maybe it should be deleted?  I made it
+               protected along with 3 private methods that were labeled as protected in the
+               method comment block.
+
+       * generic/checkbox.itk:
+               1) I removed the following configuration option definitions from the
+                  class definition: -command, -disabledforeground, and -selectcolor.
+                  These options are now only applicable after checkbuttons have been
+                  added to the checkbox.
+               
+                       a) The -command option never worked anyway.  It was defined
+                          via 'itk_option define' but was not implemented.  The easiest
+                          solution was to keep this option when adding a new checkbutton.
+                          This at least adds -command functionality but doesn't provide
+                          for % variable substitutions, which would be a nice addition
+                          for future revisions.
+               
+                       b) The -disabledforeground and -selectcolor options were valid
+                          options for initial checkbox creation but had no error checking.
+                          You could therefore create a new checkbox with -selectcolor set
+                          to "foo bar" and it would work OK.  When you tried to add a new
+                          checkbutton via the add() method, however, it would fail until
+                          the class level -selectcolor was modified.  This could lead to
+                          confusion, so these two options are now only valid after (or
+                          during) the addition of checkbuttons.  Tk then handles the error
+                          checking.
+               
+               2) Added -state to the keep fragment during checkbutton addition.
+               
+               So in a nutshell, these 4 options are now valid checkbox options after
+               at least one checkbutton has been added:
+                       -command
+                       -disabledforeground
+                       -selectcolor
+                       -state
+
+1999-12-16  wart
+       * Makefile.in:
+               Install a few extra useful files (license.terms, catalog.bat)
+
+1999-12-16  csmith
+       * generic/menubar.itk:
+               public method _helpHandler should be private.  Not sure how this originally
+               happened unless just an oversight on the author's part.
+
+1999-12-15  csmith
+       * generic/feedback.itk:
+               Modified the _display method per a bug report submitted by Kory Hopkins on
+               9/24/99 (at least that's when I got it).  There was a simple code change to
+               fix a problem with the trough calculation when stepping.
+
+1999-11-24  wart
+       * configure:
+               regenerated configure scripts to pick up tcl.m4 changes
+
+       * configure:
+               tcl.m4:  Updated to reflect recent TEA changes
+               
+               */configure:  Regnereated with new tcl.m4
+               
+               iwidgets2.2.0/Makefile.in:  Don't copy nonexistent files
+
+1999-11-18  csmith
+       * generic/optionmenu.itk:
+               Modified a ternary expression to a simple if:then conditional because of some
+               problems with exponentials.
+
+       * generic/optionmenu.itk:
+               Just for clarity, changed the menubutton component's designated "-indicator"
+               option to "-indicatoron".  Someone noticed it and actually submitted a bug
+               report on it.  Geez.
+
+       * doc/toolbar.n:
+               Removed the -relief option from the list of standard options.
+
+       * generic/scrolledtext.itk:
+               Fixed a bug with the search method.  The arguments needed to be evaluated one
+               level down the call stack.
+
+       * demos/html/toolbar.n.html:
+               Removed the -relief option from the standard options and also alphabetized
+               each of the standard options for lookup convenience.
+
+1999-09-14  wart
+       * iwidgets.tcl.in:
+       * pkgIndex.tcl.in:
+               Fixed installation of pkgIndex.tcl file.  We have to install a pre-made
+               pkgIndex.tcl file since pkg_mkIndex can't seem to make a usable one.
+
+1999-09-10  wart
+       * Makefile.in:
+               Fixed bug when calling mkIndex.tcl for itk
+               
+               reduced amount of output from "make install" in iwidgets
+
+1999-09-09  wart
+       * iwidgets.tcl.in:
+       * pkgIndex.tcl.in:
+               Added pkgIndex files for Iwidgets
+               
+               Top level Makefile should no longer loop endlessly if the configure went bad.
+
+1999-09-04  wart
+       * Makefile.in:
+       * aclocal.m4:
+       * configure:
+       * configure.in:
+               TEA changes.  Itcl now uses the same Makefiles and configure scripts for
+               both Windows and Unix.
+               
+               Note that static shells are not yet done in this TEA implementation.
+
+1999-08-21  matt
+       * win/makefile.vc:
+               Moved HTML install to seperate non-default target, since the files that
+               it tries to install don't exist and cause a failure during the install.
+
+1999-07-26  csmith
+       * generic/pane.itk:
+               A typo in the configbody for -minimum.  The first '$' should be removed from
+                 set $itk_option(-minimum) $pixels
+
+1999-07-22  csmith
+       * generic/notebook.itk:
+               This is to incorporate a bug fix reported by Larry Virden for the
+               tabbed notebook.  Looks like a typo in the code, where
+                   set $_currPage -1
+               should be
+                   set _currPage -1
+
+       * generic/calendar.itk:
+               This is to fix a problem reported by Larry Virden in the calendar
+               iwidget.  There's a typo in the line,
+                   set $_time $time
+               which should be
+                   set _time $time
+
+1999-07-08  rjohnson
+       * demos/html/iwidgets2.2.0UserCmds.html:
+       * demos/html/iwidgets3.0.0UserCmds.htm:
+               
+               Updated html index file to 3.0.
+
+       * demos/html/iwidgets3.0.0UserCmds.htm:
+       * demos/html/iwidgets3.0.0UserCmds.html:
+               
+               Messed up extension.
+
+1999-06-16  csmith
+       * generic/toolbar.itk:
+               This fix is contributed by Raviv Gil.  Below is his description of the bug.
+               
+               "Working with iwidgets3.0.0 we've encountered the following problem :
+               We created a toolbar containing several buttons, each button with a short
+               help string. Passing above the toolbar and then closing the window sometimes
+               opened a Tcl Error message indicating that the method 'showBalloon' was
+               invoked for an invalid tk path."
+
+       * generic/panedwindow.itk:
+               There were several places in the code that looped from 1 to the number of
+               actual panes in the panedwindow when the code should be looping over the
+               number of active panes.  Each of these areas in the code could cause a stack
+               dump, complaining about an invalid pathanme regarding a sash or a separator.
+               I've changed each of these areas to use _activePanes instead of _panes.
+
+1999-05-25  redman
+       * unix/configure.in:
+               Fix the makefile and configure files, etc., for Unix
+               in order to compile with Tcl/Tk 8.1 with stubs.
+               
+               Builds itclsh and itkwish properly.
+
+1999-03-30  csmith
+       * generic/checkbox.itk:
+               ::Checkbox::select invokes the specified checkbutton regardless of whether
+               it's selected or not.  It should only tell the checkbutton to invoke if
+               the checkbutton is not already selected.
+
+       * generic/menubar.itk:
+               There was a typo in the redefinition of the tkMenuFind proc at the bottom
+               of menubar.itk.  "winfo" was being used instead of "info" with the
+               "command" argument.
+
+1999-03-15  csmith
+       * tests/entryfield.test:
+               Added one line of code in the 'foreach test' loop for the new -
+               pasting option.
+
+       * doc/entryfield.n:
+               Updated man page to document a new option, -pasting, which allows the
+               developer to disable pasting into the entry component of the entryfield.
+               This is useful when using -validate because validation does not catch
+               pasting text.
+
+       * generic/entryfield.itk:
+               1) Added a new configuration option, -pasting, which allows the user to
+                  disable pasting text into the entry component of the entryfield.
+                  Previously, when using -validate, the user was allowed to paste text
+                  which could cause stack dumps into the entryfield because pasting was
+                  not caught.  The user, for instance, could paste a 40 digit number and
+                  kill any expr's since the integer is too large for tcl to handle.
+               2) The _keyPress method hardcoded state comparisons for <Ctrl>, <Alt>,
+                  <NumLock><Ctrl>, and <NumLock><Alt>.  The problem was that these
+                  hardcoded values were UNIX-specific.  I added platform-independant code.
+
+       * CHANGES:
+               Added to entries under the Entryfield section: 1) documented new configuration
+               option, -pasting; and 2) documented change to _keyPress method to remove
+               hardcoded state comparisons.
+
+1999-03-08  csmith
+       * generic/panedwindow.itk:
+               Instantiating an extfileselectionbox iwidgets with a single configuration
+               option, '-fileson 0', caused a stack dump as a result of accessing an
+               invalid tk window pathname in iwidgets::Panedwindow::sashcursor.  The
+               solution was to wrap a conditional around the path to see if it exists
+               before trying to use it.
+
+1999-03-04  csmith
+       * generic/combobox.itk:
+               The -command configuration option was being overwritten in the
+               _createComponents method if it was specified during widget creation.
+
+1999-02-21  rjohnson
+       * generic/scrolledhtml.itk:
+               
+               Removed stack trace error in widget.  However, the widget still
+               doesn't display correctly...
+
+1999-01-25  stanton
+       * unix/iwidgets.tcl.in:
+       * win/iwidgets.tcl:
+               Changed so iwidgets.tcl does a "namespace import -force itcl::*"
+               This is a hack to get around the fact that iwidgets uses "class"
+               instead of "itcl::class".  The correct long term solution is to change
+               all of the iwidgets code to use qualified names.
+
+1998-12-22  rjohnson
+       * demos/watch:
+               
+               Fixed bug in watch demo.
+
+1998-12-18  rjohnson
+       * demos/catalog:
+               
+               Removed the mainwindow demo from the catalog demo.  It was not a well
+               behaved demo and running would break the catalog demo.  [Bug ID: 508]
+
+1998-09-14  stanton
+       * demos/images/clear.gif:
+       * demos/images/close.gif:
+       * demos/images/copy.gif:
+       * demos/images/cut.gif:
+       * demos/images/exit.gif:
+       * demos/images/find.gif:
+       * demos/images/help.gif:
+       * demos/images/mag.gif:
+       * demos/images/new.gif:
+       * demos/images/open.gif:
+       * demos/images/paste.gif:
+       * demos/images/poly.gif:
+       * demos/images/print.gif:
+       * demos/images/ruler.gif:
+       * demos/images/save.gif:
+       * demos/images/select.gif:
+       * demos/iwidgets.gif:
+       * generic/unknownimage.gif:
+               Fixed binary files
+
+1998-09-10  stanton
+       * doc/iwidgets.ps:
+               added iwidgets.ps as a binary file
+
+1998-08-25  stanton
+       * demos/mainwindow:
+               fixed bug where image names conflicted with global commands
+
+1998-08-24  stanton
+       * generic/hyperhelp.itk:
+               fixed portability bug in file name handling
+
+       * demos/html/buttonbox.n.html:
+       * demos/html/canvasprintbox.n.html:
+       * demos/html/canvasprintdialog.n.html:
+       * demos/html/combobox.n.html:
+       * demos/html/dialog.n.html:
+       * demos/html/dialogshell.n.html:
+       * demos/html/entryfield.n.html:
+       * demos/html/feedback.n.html:
+       * demos/html/fileselectionbox.n.html:
+       * demos/html/fileselectiondialog.n.html:
+       * demos/html/hyperhelp.n.html:
+       * demos/html/iwidgets2.2.0UserCmds.html:
+       * demos/html/labeledwidget.n.html:
+       * demos/html/menubar.n.html:
+       * demos/html/messagedialog.n.html:
+       * demos/html/notebook.n.html:
+       * demos/html/optionmenu.n.html:
+       * demos/html/panedwindow.n.html:
+       * demos/html/promptdialog.n.html:
+       * demos/html/pushbutton.n.html:
+       * demos/html/radiobox.n.html:
+       * demos/html/scrolledcanvas.n.html:
+       * demos/html/scrolledframe.n.html:
+       * demos/html/scrolledhtml.n.html:
+       * demos/html/scrolledlistbox.n.html:
+       * demos/html/scrolledtext.n.html:
+       * demos/html/selectionbox.n.html:
+       * demos/html/selectiondialog.n.html:
+       * demos/html/shell.n.html:
+       * demos/html/spindate.n.html:
+       * demos/html/spinint.n.html:
+       * demos/html/spinner.n.html:
+       * demos/html/spintime.n.html:
+       * demos/html/tabnotebook.n.html:
+       * demos/html/tabset.n.html:
+       * demos/html/toolbar.n.html:
+               updated
+
+1998-08-21  stanton
+       * demos/catalog:
+               removed extraneous import
+
+1998-08-18  welch
+       * demos/catalog:
+               Fixed demo
+
+1998-08-11  welch
+       * CHANGES:
+       * demos/catalog:
+       * demos/html/buttonbox.n.html:
+       * demos/html/canvasprintbox.n.html:
+       * demos/html/combobox.n.html:
+       * demos/html/dialogshell.n.html:
+       * demos/html/entryfield.n.html:
+       * demos/html/fileselectionbox.n.html:
+       * demos/html/fileselectiondialog.n.html:
+       * demos/html/hyperhelp.n.html:
+       * demos/html/labeledwidget.n.html:
+       * demos/html/menubar.n.html:
+       * demos/html/notebook.n.html:
+               Updates from Michael
+
+       * demos/feedback:
+       * demos/html/canvasprintdialog.n.html:
+       * demos/html/dialog.n.html:
+       * demos/html/feedback.n.html:
+       * demos/html/messagedialog.n.html:
+       * demos/html/optionmenu.n.html:
+       * demos/html/panedwindow.n.html:
+       * demos/html/promptdialog.n.html:
+       * demos/html/pushbutton.n.html:
+       * demos/html/radiobox.n.html:
+       * demos/html/scrolledcanvas.n.html:
+       * demos/html/scrolledframe.n.html:
+       * demos/html/scrolledhtml.n.html:
+       * demos/html/scrolledlistbox.n.html:
+       * demos/html/scrolledtext.n.html:
+       * demos/html/selectionbox.n.html:
+       * demos/html/selectiondialog.n.html:
+       * demos/html/shell.n.html:
+       * demos/html/spindate.n.html:
+       * demos/html/spinint.n.html:
+       * demos/html/spinner.n.html:
+       * demos/html/spintime.n.html:
+       * demos/html/tabnotebook.n.html:
+       * demos/html/tabset.n.html:
+       * demos/html/toolbar.n.html:
+       * demos/mainwindow:
+       * demos/watch:
+       * doc/calendar.n:
+       * doc/labeledframe.n:
+       * doc/optionmenu.n:
+       * doc/selectionbox.n:
+       * generic/combobox.itk:
+       * generic/entryfield.itk:
+       * generic/hierarchy.itk:
+       * generic/menubar.itk:
+       * generic/messagebox.itk:
+       * generic/optionmenu.itk:
+       * generic/radiobox.itk:
+       * generic/scrolledframe.itk:
+       * generic/scrolledhtml.itk:
+       * generic/shell.itk:
+       * generic/toolbar.itk:
+       * tests/entryfield.test:
+       * tests/hyperhelp.test:
+       * tests/optionmenu.test:
+       * tests/shell.test:
+       * tests/spinner.test:
+       * unix/Makefile.in:
+       * unix/iwidgets.tcl.in:
+       * unix/pkgIndex.tcl.in:
+               3.0 final from Michael
+
+       * unix/Makefile.in:
+               Fixed symlink
+
diff --git a/itcl/iwidgets/Makefile.in b/itcl/iwidgets/Makefile.in
new file mode 100644 (file)
index 0000000..badce22
--- /dev/null
@@ -0,0 +1,199 @@
+#
+# This file is a Makefile for [incr Widgets].  If it has the name
+# "Makefile.in" then it is a template for a Makefile; to generate
+# the actual Makefile, run "./configure", which is a configuration
+# script generated by the "autoconf" program (constructs like
+# "@foo@" will get replaced in the actual Makefile.
+#
+# RCS: $Id$
+
+# Current [incr Widgets] version;  used in various names.
+
+ITCL_VERSION = @ITCL_VERSION@
+IWIDGETS_VERSION = @VERSION@
+
+#----------------------------------------------------------------
+# Things you can change to personalize the Makefile for your own
+# site (you can make these changes in either Makefile.in or
+# Makefile, but changes to Makefile will get lost if you re-run
+# the configuration script).
+#----------------------------------------------------------------
+
+# Default top-level directories in which to install architecture-
+# specific files (exec_prefix) and machine-independent files such
+# as scripts (prefix).  The values specified here may be overridden
+# at configure-time with the --exec-prefix and --prefix options
+# to the "configure" script.
+
+prefix =       @prefix@
+exec_prefix =  @exec_prefix@
+
+srcdir = @srcdir@
+bindir = @bindir@
+
+# The following definition can be set to non-null for special systems
+# like AFS with replication.  It allows the pathnames used for installation
+# to be different than those used for actually reference files at
+# run-time.  INSTALL_ROOT is prepended to $prefix and $exec_prefix
+# when installing files.
+INSTALL_ROOT =
+
+# Path name to use when installing library scripts:
+
+# REDHAT LOCAL
+#SCRIPT_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/lib/iwidgets$(IWIDGETS_VERSION)
+SCRIPT_INSTALL_DIR = @datadir@/iwidgets$(IWIDGETS_VERSION)
+# END REDHAT LOCAL
+
+# Directory in which to install the archive libtcl.a:
+LIB_INSTALL_DIR = $(INSTALL_ROOT)$(exec_prefix)/lib
+
+# Directory in which to install the program tclsh:
+BIN_INSTALL_DIR = $(INSTALL_ROOT)$(exec_prefix)/bin
+
+# Top-level directory in which to install manual entries:
+MAN_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/man/mann
+
+# Directory containing Tcl source code (for library used during test):
+TCL_SRC_DIR = @TCL_SRC_DIR@
+
+# Directory containing Tk source code (for library used during test):
+TK_SRC_DIR = @TK_SRC_DIR@
+
+# Itcl libraries can be found here:
+ITCL_LIB_DIR = @ITCL_LIB_DIR@
+
+# Directory containing Itcl source code (for library used during test):
+ITCL_SRC_DIR = @ITCL_SRC_DIR@
+
+# Itk libraries can be found here:
+ITK_LIB_DIR = @ITK_LIB_DIR@
+
+# Directory containing Itk source code (for library used during test):
+ITK_SRC_DIR = @ITK_SRC_DIR@
+
+# Some versions of make, like SGI's, use the following variable to
+# determine which shell to use for executing commands:
+SHELL =                /bin/sh
+
+#----------------------------------------------------------------
+# The information below is modified by the configure script when
+# Makefile is generated from Makefile.in.  You shouldn't normally
+# modify any of this stuff by hand.
+#----------------------------------------------------------------
+
+# REDHAT LOCAL
+#INSTALL =             $(TCLSH_PROG) `$(CYGPATH) $(ITCL_SRC_DIR)/../config/installFile.tcl` -c
+INSTALL =      @INSTALL@
+# END REDHAT LOCAL
+
+INSTALL_PROGRAM =      $(INSTALL)
+INSTALL_DATA =         $(INSTALL) -m 644
+INSTALL_SCRIPT =       $(INSTALL) -m 555
+MKINSTALLDIRS =                $(ITCL_SRC_DIR)/../config/mkinstalldirs
+RANLIB =               @RANLIB@
+LN_S =                 ln -s
+TOP_DIR =              $(srcdir)
+GENERIC_DIR =          $(TOP_DIR)/generic
+UNIX_DIR =             $(TOP_DIR)/unix
+
+CYGPATH =              @CYGPATH@
+TCLSH_PROG =           @TCLSH_PROG@
+
+#----------------------------------------------------------------
+# The information below should be usable as is.  The configure
+# script won't modify it and you shouldn't need to modify it
+# either.
+#----------------------------------------------------------------
+
+info:
+       @echo "Please specify either 'make test' or 'make install'."
+
+all:
+       @echo "Nothing to make for target 'all'.  Run 'make test' to \
+       test the distribution"
+       @echo "and 'make install' to install it."
+
+install: install-libraries install-doc install-demos
+
+test:
+       LD_LIBRARY_PATH=$(ITCL_LIB_DIR):$(ITK_LIB_DIR):$(LD_LIBRARY_PATH); export LD_LIBRARY_PATH ; \
+       TCL_LIBRARY=$(TCL_SRC_DIR)/library; export TCL_LIBRARY; \
+       ITCL_LIBRARY=$(ITCL_LIB_DIR); export ITCL_LIBRARY; \
+       TK_LIBRARY=$(TK_SRC_DIR)/library; export TK_LIBRARY; \
+       ITK_LIBRARY=$(ITK_LIB_DIR); export ITK_LIBRARY; \
+       IWIDGETS_LIBRARY=@IWIDGETS_SRC_DIR@; export IWIDGETS_LIBRARY; \
+       $(TCLSH_PROG) `@CYGPATH@ $(srcdir)/tests/all.tcl` \
+               -exedir `@CYGPATH@ $(TK_SRC_DIR)/unix` $(TESTFLAGS)
+
+install-libraries:
+       @$(MKINSTALLDIRS) $(SCRIPT_INSTALL_DIR) $(LIB_INSTALL_DIR)
+       @rm -f $(LIB_INSTALL_DIR)/iwidgets
+# REDHAT LOCAL
+#      $(LN_S) $(SCRIPT_INSTALL_DIR) $(LIB_INSTALL_DIR)/iwidgets
+# END REDHAT LOCAL
+       @$(MKINSTALLDIRS) $(SCRIPT_INSTALL_DIR)/scripts
+       @echo "Installing source files from $(GENERIC_DIR) into $(SCRIPT_INSTALL_DIR)"
+       @for i in $(GENERIC_DIR)/*.itk $(GENERIC_DIR)/*.itcl $(GENERIC_DIR)/tclIndex $(GENERIC_DIR)/*.gif ; \
+           do \
+           $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/scripts; \
+           done;
+       @echo "Installing iwidgets.tcl and pkgIndex.tcl into $(SCRIPT_INSTALL_DIR)"
+       @for i in iwidgets.tcl pkgIndex.tcl ; \
+           do \
+           $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR); \
+           done;
+
+install-demos:
+       @$(MKINSTALLDIRS) $(SCRIPT_INSTALL_DIR)/demos/images $(SCRIPT_INSTALL_DIR)/demos/html
+       @echo "Installing demos from $(srcdir)/demos into $(SCRIPT_INSTALL_DIR)/demos"
+       @for i in $(srcdir)/demos/*; \
+           do \
+           if [ -f $$i ] ; then \
+               $(INSTALL_SCRIPT) $$i $(SCRIPT_INSTALL_DIR)/demos; \
+           fi; \
+           done;
+       @echo "Installing images from $(srcdir)/demos/images into $(SCRIPT_INSTALL_DIR)/demos/images"
+       for i in $(srcdir)/demos/images/*; \
+           do \
+           if [ -f $$i ] ; then \
+               $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/demos/images; \
+           fi; \
+           done;
+       @echo "Installing html man pages from $(srcdir)/demos/html into $(SCRIPT_INSTALL_DIR)/demos/html"
+       for i in $(srcdir)/demos/html/*; \
+           do \
+           if [ -f $$i ] ; then \
+               $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/demos/html; \
+           fi; \
+           done;
+
+install-doc:
+       @$(MKINSTALLDIRS) $(MAN_INSTALL_DIR)
+       @echo "Installing man pages from $(TOP_DIR)/doc into $(MAN_INSTALL_DIR)"
+       @cd $(TOP_DIR)/doc; for i in *.n; \
+           do \
+           rm -f $(MAN_INSTALL_DIR)/`basename $$i`; \
+           rm -f $(MAN_INSTALL_DIR)/`basename iwidgets_$$i`; \
+           sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
+               $$i > $(MAN_INSTALL_DIR)/`basename iwidgets_$$i`; \
+           chmod 444 $(MAN_INSTALL_DIR)/`basename iwidgets_$$i`; \
+           done;
+       $(INSTALL_DATA) $(srcdir)/license.terms $(SCRIPT_INSTALL_DIR)
+
+Makefile: $(srcdir)/Makefile.in
+       $(SHELL) config.status
+
+clean:
+       rm -f core errs *~ \#* TAGS *.E a.out errors
+
+distclean: clean
+       rm -f Makefile config.status config.cache config.log
+
+depend:
+       makedepend -- $(CC_SWITCHES) -- $(SRCS)
+
+configure: configure.in
+       autoconf
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/itcl/iwidgets/README b/itcl/iwidgets/README
new file mode 100644 (file)
index 0000000..6e80802
--- /dev/null
@@ -0,0 +1,212 @@
+------------------------------------------------------------------------------
+                    [incr Widgets] - version 4.0.1
+------------------------------------------------------------------------------
+Please send general comments, suggestions, and questions to chad_smith@adc.com
+or itclguy@yahoo.com.  Much of this file was written by Mark Ulferts, the
+original [incr Widgets] guy, several years ago when the Iwidgets were first
+released.  Chad has assumed responsibilities for updates and maintenance.
+
+==============================================================================
+           Copyright (c) 1995   DSC Technologies Corporation
+==============================================================================
+ This software is copyrighted by DSC Technologies and private individual 
+ contributors.  The copyright holder is specifically listed in the header 
+ of each file.  The following terms apply to all files associated with the
+ software unless explicitly disclaimed in individual files by private
+ contributors.
+  
+ Permission to use, copy, modify, distribute and license this software and 
+ its documentation for any purpose, and without fee or written agreement 
+ with DSC, is hereby granted, provided that the above copyright notice 
+ appears in all copies and that both the copyright notice and warranty 
+ disclaimer below appear in supporting documentation, and that the names of
+ DSC Technologies Corporation or DSC Communications Corporation not be used 
+ in advertising or publicity pertaining to the software without specific, 
+ written prior permission.
+  
+ DSC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, AND NON-INFRINGEMENT.
+ THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND 
+ DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
+ ENHANCEMENTS, OR MODIFICATIONS. IN NO EVENT SHALL DSC BE LIABLE FOR ANY
+ SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+  
+ RESTRICTED RIGHTS: Use, duplication or disclosure by the government
+ is subject to the restrictions as set forth in subparagraph (c) (1) (ii)
+ of the Rights in Technical Data and Computer Software Clause as DFARS
+ 252.227-7013 and FAR 52.227-19.
+==============================================================================
+
+ OVERVIEW
+------------------------------------------------------------------------------
+ - Introduction
+ - Distribution
+ - Web site
+ - Getting started
+ - Contributions
+ - Acknowledgements
+------------------------------------------------------------------------------
+
+
+ Introduction
+------------------------------------------------------------------------------
+ [incr Widgets] is an object-oriented mega-widget set which extends 
+ Tcl/Tk and is based on [incr Tcl] and [incr Tk].  This set of mega-widgets
+ delivers many new, general purpose widgets like option menus, comboboxes, 
+ selection boxes, and various dialogs whose couterparts are found in Motif 
+ and Windows. Since [incr Widgets] is based on the [incr Tk] extension, the 
+ Tk framework of configuration options, widget commands, and default bindings
+ is maintained.  In other words, each [incr Widgets] mega-widget seamlessly 
+ blends with the standard Tk widgets. They look, act and feel like Tk 
+ widgets. In addition, all [incr Widgets] mega-widgets are object oriented and 
+ may themselves be extended, using either inheritance or composition.
+
+ [incr Widgets] offers a strong object-oriented foundation which addresses 
+ the need for a flexible and extensible mega-widget set. Its usage replaces 
+ common widget combinations with higher level abstractions, simplifying code,
+ reducing errors, increasing readability, adding productivity, and promoting 
+ a singular look-and-feel.  The ability to extend [incr Widgets] enables 
+ developers to create new mega-widgets based on previous work.
+
+ In short, [incr Widgets] is a library of reusable mega-widgets that can 
+ be easily extended using composition or inheritance, allowing quicker 
+ development of large scale applications. Usage drastically reduces 
+ development time. New dialogs can be created in hours. Whole applications 
+ in a few days. Reuse becomes a reality. Many projects are benefitting frm
+ the intergration of this mega-widget set into their development strategy. 
+ [incr Widgets] is an [incr Tcl] and [incr Tk] success story. Good products 
+ come from good foundations.
+
+
+ Distribution
+------------------------------------------------------------------------------
+ The [incr Widgets] distribution may be downloaded at SourceForge:
+ www.sourceforge.net/projects/incrtcl.  The current distribution is
+ version 4.0.1.
+
+
+ Web site
+------------------------------------------------------------------------------
+ For the most current news regarding [incr Widgets] please consult the web
+ site - http://incrtcl.sourceforge.net/iwidgets.  Many thanks to Brett Schwarz
+ who has done an incredible job overhauling this site.  Take a look!
+  
+
+ Getting started
+------------------------------------------------------------------------------
+ The "doc" directory contains man pages and a technical paper. The man
+ pages are installed under the man directory off your --prefix, and as of
+ version 4.0.1 are prepended with the text "iwidgets_" to easily differentiate
+ [incr Widgets] man pages from those of other extensions.
+
+   doc/iwidgets.ps ... Updated paper presented at Tcl Workshop 95.
+
+   doc/*.n ........... Man pages
+
+ The "demos" directory contains demo scripts for each mega-widget as
+ well as html versions of all the [incr Widgets] man pages.  The
+ demos are also installed under the lib directory off your --prefix.
+
+   demos/catalog ..... Comprehensive demo package which illustrates
+                       [incr Widgets] usage additionally displaying the 
+                       source.
+
+   demos/html    ..... HTML version of the [incr Widgets] man pages.
+
+ The "tests" directory contains a set of test scripts for [incr Widgets].
+ They also make for a great demo of the flexiblity of the mega-widgets.
+
+
+ Installation
+------------------------------------------------------------------------------
+  NOTE: Having the itcl distribution is a prerequsite to using iwidgets.
+  Thus, if you don't have itcl you need to visit Source Forge to download
+  and install it first.  Once you have downloaded and installed [incr Tcl]
+  and [incr Tk], you can proceed with [incr Widgets] installation as follows:
+
+  1)  Copy the iwidgets4.0.1.tar.gz file to your toplevel [incr Tcl]
+      directory.  For example, if you have the itcl3.2.1 distribution in
+      a directory named /usr/local/tcl/itcl3.2.1, then you should copy
+      the iwidgets file to this directory.
+
+      Note, if you don't copy the iwidgets archive to this directory,
+      then you will need to specify the --with-itcl flag when you run
+      the configure script.
+
+  2)  Untar/unzip the archive:
+
+       gunzip -c iwidgets4.0.1.tar.gz |tar xvf -
+
+  3)  Run the configuration script:
+
+        cd iwidgets4.0.0
+        ./configure
+
+      By default, the configuration script will set things up to be
+      installed in "/usr/local".  You can change this by specifying a
+      different "prefix" in the "configure" command.  You'll want to
+      use the same value you used for the prefix in the configuration
+      of your [incr Tcl/Tk] distribution.
+
+        ./configure --prefix=/your/install/path
+
+      The "configure" script generates a Makefile from the Makefile.in
+      template.
+
+      Also, as mentioned eariler, you may need to tell the [incr Widgets]
+      where the [incr Tcl] source is located.  For example, if your toplevel
+      [incr Tcl] directory is located in /opt/tools/tcl/itcl3.2.1 and you
+      are building the [incr Widgets] in a directory other than this, then
+      you will need to use the following:
+
+       ./configure --prefix=/your/install/path \
+         --with-itcl=/opt/tools/tcl/itcl3.2.1
+
+  4)  Run the test suite:
+
+        make test
+
+  7)  Install the [incr Widgets] man pages, demos, and script files.
+
+        make install
+
+
+ Acknowledgements
+------------------------------------------------------------------------------
+ Thanks to Brett Schwarz for a ton of work done on the new [incr Widgets]
+ web site, http://incrtcl.sourceforge.net/iwidgets.
+
+ Thanks to the original develment team, comprised of Mark Ulferts, Sue 
+ Yockey, Bret Schuhmacher, Alfredo Jahn, John Sigler, and Bill Scott.  Also 
+ thanks to Mark Harrison for his influence, confidence, and ideas.
+
+ Thanks also to the new set of contributors which include John Tucker,
+ Mitch Gorman, John Reekie, Alfredo Jahn, Ken Copeland, Tako Schotanus,
+ Tony Parent and Michael McLennan
+
+ Thanks to Michael McLennan, creator of [incr Tcl] and [incr Tk], for the 
+ beta copies, training, assistance, and his infectious enthusiasm.
+
+ Thanks to DSC Communications for picking up the copyright and supporting
+ the public release of this software.
+
+ Thanks to John P. Davis for creating the [incr Widgets] "Flaming Toaster"
+ logo which can be seen at http://www.tcltk.com/iwidgets
+
+ Thanks to WebNet Technologies for their assistance is designing the [incr
+ Widgets] web site, as well as hosting it.
+
+ Special thanks to my wife Karen for supporting this effort and to our two 
+ girls, Katelyn and Bailey, who occasionally shared the PC with me.  Also
+ thanks to my Discman and its relentless power supply as well as my rock
+ and roll CD collection.  No music, no software.
+
+--
+ ____________________________________________________________________________
+    _/_/   _/_/    _/        _/    _/   Mark L. Ulferts
+   _/ _/ _/ _/    _/        _/    _/    ulferts@swbell.net
+  _/  _/_/ _/    _/        _/    _/     mulferts@austin.dsccc.com 
+ _/   _/  _/ _/ _/_/_/ _/ _/_/_/_/ _/   DSC Communications Corp, Austin Texas
diff --git a/itcl/iwidgets/aclocal.m4 b/itcl/iwidgets/aclocal.m4
new file mode 100644 (file)
index 0000000..8618b99
--- /dev/null
@@ -0,0 +1 @@
+builtin(include,./tcl.m4)
diff --git a/itcl/iwidgets/configure b/itcl/iwidgets/configure
new file mode 100755 (executable)
index 0000000..ab9ff85
--- /dev/null
@@ -0,0 +1,1273 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13 
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+  --with-tcl              directory containing tcl configuration (tclConfig.sh)"
+ac_help="$ac_help
+  --with-tk               directory containing tk configuration (tkConfig.sh)"
+ac_help="$ac_help
+  --with-itcl=DIR         use Itcl 3.0 binaries from DIR"
+ac_help="$ac_help
+  --with-itk=DIR          use Itk 3.0 binaries from DIR"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir="$ac_optarg" ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build="$ac_optarg" ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file="$ac_optarg" ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir="$ac_optarg" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix="$ac_optarg" ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he)
+    # Omit some internal or obsolete options to make the list less imposing.
+    # This message is too long to be a string in the A/UX 3.1 sh.
+    cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [same as prefix]
+  --bindir=DIR            user executables in DIR [EPREFIX/bin]
+  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
+  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
+  --datadir=DIR           read-only architecture-independent data in DIR
+                          [PREFIX/share]
+  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
+                          [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
+  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
+  --includedir=DIR        C header files in DIR [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
+  --infodir=DIR           info documentation in DIR [PREFIX/info]
+  --mandir=DIR            man documentation in DIR [PREFIX/man]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+  --program-transform-name=PROGRAM
+                          run sed PROGRAM on installed program names
+EOF
+    cat << EOF
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+EOF
+    if test -n "$ac_help"; then
+      echo "--enable and --with options recognized:$ac_help"
+    fi
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$ac_optarg" ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir="$ac_optarg" ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir="$ac_optarg" ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir="$ac_optarg" ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir="$ac_optarg" ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir="$ac_optarg" ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir="$ac_optarg" ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir="$ac_optarg" ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix="$ac_optarg" ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix="$ac_optarg" ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix="$ac_optarg" ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name="$ac_optarg" ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir="$ac_optarg" ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir="$ac_optarg" ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site="$ac_optarg" ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir="$ac_optarg" ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir="$ac_optarg" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 2.13"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    eval "with_${ac_package}=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes="$ac_optarg" ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries="$ac_optarg" ;;
+
+  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *)
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 6>/dev/null
+else
+  exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"     "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set.  These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=generic/buttonbox.itk
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    echo "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='       '
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+# RCS: $Id$
+
+#--------------------------------------------------------------------
+# We should really cache the ITCL_VERSION when we configure itcl,
+# and pick up the version from the cache here.
+#--------------------------------------------------------------------
+
+ITCL_VERSION=3.2
+
+
+PACKAGE=iwidgets
+MAJOR_VERSION=4
+MINOR_VERSION=0
+PATCHLEVEL=.1
+
+VERSION=${MAJOR_VERSION}.${MINOR_VERSION}${PATCHLEVEL}
+
+
+
+
+ac_aux_dir=
+for ac_dir in ../config $srcdir/../config; do
+  if test -f $ac_dir/install-sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f $ac_dir/install.sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { echo "configure: error: can not find install-sh or install.sh in ../config $srcdir/../config" 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:586: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    IFS="${IFS=        }"; ac_save_IFS="$IFS"; IFS=":"
+  for ac_dir in $PATH; do
+    # Account for people who put trailing slashes in PATH elements.
+    case "$ac_dir/" in
+    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    *)
+      # OSF1 and SCO ODT 3.0 have their own names for install.
+      # Don't use installbsd from OSF since it installs stuff as root
+      # by default.
+      for ac_prog in ginstall scoinst install; do
+        if test -f $ac_dir/$ac_prog; then
+         if test $ac_prog = install &&
+            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+           # AIX install.  It has an incompatible calling convention.
+           :
+         else
+           ac_cv_path_install="$ac_dir/$ac_prog -c"
+           break 2
+         fi
+       fi
+      done
+      ;;
+    esac
+  done
+  IFS="$ac_save_IFS"
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL="$ac_cv_path_install"
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL="$ac_install_sh"
+  fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+case "`uname -s`" in
+    *win32* | *WIN32* | *CYGWIN_NT*|*CYGWIN_98*|*CYGWIN_95*)
+       CYGPATH="cygpath -w"
+       RELPATH=".. .. bin"
+    ;;
+    *)
+       CYGPATH=echo
+       RELPATH=..
+    ;;
+esac
+
+
+
+
+#--------------------------------------------------------------------
+#   See if there was a command-line option for where Tcl is;  if
+#   not, search for Tcl.
+#--------------------------------------------------------------------
+
+
+    #
+    # Ok, lets find the tcl configuration
+    # First, look for one uninstalled.
+    # the alternative search directory is invoked by --with-tcl
+    #
+
+    if test x"${no_tcl}" = x ; then
+       # we reset no_tcl in case something fails here
+       no_tcl=true
+       # Check whether --with-tcl or --without-tcl was given.
+if test "${with_tcl+set}" = set; then
+  withval="$with_tcl"
+  with_tclconfig=${withval}
+fi
+
+       echo $ac_n "checking for Tcl configuration""... $ac_c" 1>&6
+echo "configure:675: checking for Tcl configuration" >&5
+       if eval "test \"`echo '$''{'ac_cv_c_tclconfig'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+
+           # First check to see if --with-tcl was specified.
+           if test x"${with_tclconfig}" != x ; then
+               if test -f "${with_tclconfig}/tclConfig.sh" ; then
+                   ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
+               else
+                   { echo "configure: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" 1>&2; exit 1; }
+               fi
+           fi
+
+           # then check for a private Tcl installation
+           if test x"${ac_cv_c_tclconfig}" = x ; then
+               for i in \
+                       ../tcl \
+                       `ls -dr ../tcl[8-9].[0-9]* 2>/dev/null` \
+                       ../../tcl \
+                       `ls -dr ../../tcl[8-9].[0-9]* 2>/dev/null` \
+                       ../../../tcl \
+                       `ls -dr ../../../tcl[8-9].[0-9]* 2>/dev/null` ; do
+                   if test -f "$i/unix/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # check in a few common install locations
+           if test x"${ac_cv_c_tclconfig}" = x ; then
+               for i in `ls -d ${prefix}/lib 2>/dev/null` \
+                       `ls -d /usr/local/lib 2>/dev/null` ; do
+                   if test -f "$i/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # check in a few other private locations
+           if test x"${ac_cv_c_tclconfig}" = x ; then
+               for i in \
+                       ${srcdir}/../tcl \
+                       `ls -dr ${srcdir}/../tcl[8-9].[0-9]* 2>/dev/null` ; do
+                   if test -f "$i/unix/tclConfig.sh" ; then
+                   ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+                   break
+               fi
+               done
+           fi
+       
+fi
+
+
+       if test x"${ac_cv_c_tclconfig}" = x ; then
+           TCL_BIN_DIR="# no Tcl configs found"
+           echo "configure: warning: Can't find Tcl configuration definitions" 1>&2
+           exit 0
+       else
+           no_tcl=
+           TCL_BIN_DIR=${ac_cv_c_tclconfig}
+           echo "$ac_t""found $TCL_BIN_DIR/tclConfig.sh" 1>&6
+       fi
+    fi
+
+
+    echo $ac_n "checking for existence of $TCL_BIN_DIR/tclConfig.sh""... $ac_c" 1>&6
+echo "configure:745: checking for existence of $TCL_BIN_DIR/tclConfig.sh" >&5
+
+    if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then
+        echo "$ac_t""loading" 1>&6
+       . $TCL_BIN_DIR/tclConfig.sh
+    else
+        echo "$ac_t""file not found" 1>&6
+    fi
+
+    #
+    # The eval is required to do the TCL_DBGX substitution in the
+    # TCL_LIB_FILE variable
+    #
+
+    eval TCL_LIB_FILE=${TCL_LIB_FILE}
+    eval TCL_LIB_FLAG=${TCL_LIB_FLAG}
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+
+
+#--------------------------------------------------------------------
+#   See if there was a command-line option for where Tk is;  if
+#   not, search for Tk.
+#--------------------------------------------------------------------
+
+
+    #
+    # Ok, lets find the tk configuration
+    # First, look for one uninstalled.
+    # the alternative search directory is invoked by --with-tk
+    #
+
+    if test x"${no_tk}" = x ; then
+       # we reset no_tk in case something fails here
+       no_tk=true
+       # Check whether --with-tk or --without-tk was given.
+if test "${with_tk+set}" = set; then
+  withval="$with_tk"
+  with_tkconfig=${withval}
+fi
+
+       echo $ac_n "checking for Tk configuration""... $ac_c" 1>&6
+echo "configure:801: checking for Tk configuration" >&5
+       if eval "test \"`echo '$''{'ac_cv_c_tkconfig'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+
+           # First check to see if --with-tkconfig was specified.
+           if test x"${with_tkconfig}" != x ; then
+               if test -f "${with_tkconfig}/tkConfig.sh" ; then
+                   ac_cv_c_tkconfig=`(cd ${with_tkconfig}; pwd)`
+               else
+                   { echo "configure: error: ${with_tkconfig} directory doesn't contain tkConfig.sh" 1>&2; exit 1; }
+               fi
+           fi
+
+           # then check for a private Tk library
+           if test x"${ac_cv_c_tkconfig}" = x ; then
+               for i in \
+                       ../tk \
+                       `ls -dr ../tk[8-9].[0-9]* 2>/dev/null` \
+                       ../../tk \
+                       `ls -dr ../../tk[8-9].[0-9]* 2>/dev/null` \
+                       ../../../tk \
+                       `ls -dr ../../../tk[8-9].[0-9]* 2>/dev/null` ; do
+                   if test -f "$i/unix/tkConfig.sh" ; then
+                       ac_cv_c_tkconfig=`(cd $i/unix; pwd)`
+                       break
+                   fi
+               done
+           fi
+           # check in a few common install locations
+           if test x"${ac_cv_c_tkconfig}" = x ; then
+               for i in `ls -d ${prefix}/lib 2>/dev/null` \
+                       `ls -d /usr/local/lib 2>/dev/null` ; do
+                   if test -f "$i/tkConfig.sh" ; then
+                       ac_cv_c_tkconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+           # check in a few other private locations
+           if test x"${ac_cv_c_tkconfig}" = x ; then
+               for i in \
+                       ${srcdir}/../tk \
+                       `ls -dr ${srcdir}/../tk[8-9].[0-9]* 2>/dev/null` ; do
+                   if test -f "$i/unix/tkConfig.sh" ; then
+                       ac_cv_c_tkconfig=`(cd $i/unix; pwd)`
+                       break
+                   fi
+               done
+           fi
+       
+fi
+
+       if test x"${ac_cv_c_tkconfig}" = x ; then
+           TK_BIN_DIR="# no Tk configs found"
+           echo "configure: warning: Can't find Tk configuration definitions" 1>&2
+           exit 0
+       else
+           no_tk=
+           TK_BIN_DIR=${ac_cv_c_tkconfig}
+           echo "$ac_t""found $TK_BIN_DIR/tkConfig.sh" 1>&6
+       fi
+    fi
+
+
+
+    echo $ac_n "checking for existence of $TK_BIN_DIR/tkConfig.sh""... $ac_c" 1>&6
+echo "configure:869: checking for existence of $TK_BIN_DIR/tkConfig.sh" >&5
+
+    if test -f "$TK_BIN_DIR/tkConfig.sh" ; then
+        echo "$ac_t""loading" 1>&6
+       . $TK_BIN_DIR/tkConfig.sh
+    else
+        echo "$ac_t""could not find $TK_BIN_DIR/tkConfig.sh" 1>&6
+    fi
+
+    
+    
+    
+    
+
+
+#--------------------------------------------------------------------
+#   See if there was a command-line option for where Itcl is;  if
+#   not, search for Itcl.
+#--------------------------------------------------------------------
+
+# Check whether --with-itcl or --without-itcl was given.
+if test "${with_itcl+set}" = set; then
+  withval="$with_itcl"
+  itcl_search=$withval
+else
+  itcl_search=`cd ${srcdir}/../itcl; pwd`
+fi
+
+
+ITCL_LIB_DIR=""
+for dir in $exec_prefix/lib $TCL_LIB_DIR $itcl_search ; do
+    if test -r $dir/library/itcl.tcl; then
+        ITCL_LIB_DIR=$dir
+        ITCL_SRC_DIR=$dir
+        break
+    fi
+done
+
+if test -z "$ITCL_LIB_DIR"; then
+    { echo "configure: error: Can't find Itcl libraries.  Use --with-itcl to specify the directory containing itcl.tcl on your system." 1>&2; exit 1; }
+fi
+
+#--------------------------------------------------------------------
+#   See if there was a command-line option for where Itk is;  if
+#   not, search for Itk.
+#--------------------------------------------------------------------
+
+# Check whether --with-itk or --without-itk was given.
+if test "${with_itk+set}" = set; then
+  withval="$with_itk"
+  itk_search=$withval
+else
+  itk_search=`cd ${srcdir}/../itk; pwd`
+fi
+
+
+ITK_LIB_DIR=""
+for dir in $exec_prefix/lib $TCL_LIB_DIR $itk_search ; do
+    if test -r $dir/library/itk.tcl; then
+        ITK_LIB_DIR=$dir
+        ITK_SRC_DIR=$dir
+        break
+    fi
+done
+
+if test -z "$ITK_LIB_DIR"; then
+    { echo "configure: error: Can't find Itk libraries.  Use --with-itk to specify the directory containing itk.tcl on your system." 1>&2; exit 1; }
+fi
+
+#--------------------------------------------------------------------
+#   Needed for running the test suite
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+#   Fill in template files with the proper info.
+#--------------------------------------------------------------------
+#AC_SUBST(BUILD_DIR)
+
+
+
+
+
+
+
+
+
+#AC_SUBST(ITCL_VERSION)
+#AC_SUBST(IWIDGETS_VERSION)
+#AC_SUBST(IWIDGETS_LIBRARY)
+#AC_SUBST(IWIDGETS_SRC_DIR)
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+  case `(ac_space=' '; set | grep ac_space) 2>&1` in
+  *ac_space=\ *)
+    # `set' does not quote correctly, so add quotes (double-quote substitution
+    # turns \\\\ into \\, and sed turns \\ into \).
+    sed -n \
+      -e "s/'/'\\\\''/g" \
+      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+    ;;
+  *)
+    # `set' quotes correctly as required by POSIX, so do not add quotes.
+    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+    ;;
+  esac >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
+  if test -w $cache_file; then
+    echo "updating cache $cache_file"
+    cat confcache > $cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[        ]*VPATH[        ]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then we branch to the quote section.  Otherwise,
+# look for a macro that doesn't take arguments.
+cat >confdef2opt.sed <<\_ACEOF
+t clear
+: clear
+s,^[   ]*#[    ]*define[       ][      ]*\([^  (][^    (]*([^)]*)\)[   ]*\(.*\),-D\1=\2,g
+t quote
+s,^[   ]*#[    ]*define[       ][      ]*\([^  ][^     ]*\)[   ]*\(.*\),-D\1=\2,g
+t quote
+d
+: quote
+s,[    `~#$^&*(){}\\|;'"<>?],\\&,g
+s,\[,\\&,g
+s,\],\\&,g
+s,\$,$$,g
+p
+_ACEOF
+# We use echo to avoid assuming a particular line-breaking character.
+# The extra dot is to prevent the shell from consuming trailing
+# line-breaks from the sub-command output.  A line-break within
+# single-quotes doesn't work because, if this script is created in a
+# platform that uses two characters for line-breaks (e.g., DOS), tr
+# would break.
+ac_LF_and_DOT=`echo; echo .`
+DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
+rm -f confdef2opt.sed
+
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "Makefile \
+       iwidgets.tcl \
+       pkgIndex.tcl" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@ITCL_VERSION@%$ITCL_VERSION%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@CYGPATH@%$CYGPATH%g
+s%@RELPATH@%$RELPATH%g
+s%@TCL_DBGX@%$TCL_DBGX%g
+s%@TCL_BIN_DIR@%$TCL_BIN_DIR%g
+s%@TCL_SRC_DIR@%$TCL_SRC_DIR%g
+s%@TCL_LIB_FILE@%$TCL_LIB_FILE%g
+s%@TCL_LIBS@%$TCL_LIBS%g
+s%@TCL_DEFS@%$TCL_DEFS%g
+s%@TCL_SHLIB_LD_LIBS@%$TCL_SHLIB_LD_LIBS%g
+s%@TCL_EXTRA_CFLAGS@%$TCL_EXTRA_CFLAGS%g
+s%@TCL_LD_FLAGS@%$TCL_LD_FLAGS%g
+s%@TCL_STUB_LIB_FILE@%$TCL_STUB_LIB_FILE%g
+s%@TCL_LIB_SPEC@%$TCL_LIB_SPEC%g
+s%@TCL_BUILD_LIB_SPEC@%$TCL_BUILD_LIB_SPEC%g
+s%@TCL_STUB_LIB_SPEC@%$TCL_STUB_LIB_SPEC%g
+s%@TCL_BUILD_STUB_LIB_SPEC@%$TCL_BUILD_STUB_LIB_SPEC%g
+s%@TK_BIN_DIR@%$TK_BIN_DIR%g
+s%@TK_SRC_DIR@%$TK_SRC_DIR%g
+s%@TK_LIB_FILE@%$TK_LIB_FILE%g
+s%@TK_XINCLUDES@%$TK_XINCLUDES%g
+s%@TCL_LIB_DIR@%$TCL_LIB_DIR%g
+s%@TK_LIB_DIR@%$TK_LIB_DIR%g
+s%@ITCL_LIB_DIR@%$ITCL_LIB_DIR%g
+s%@ITCL_SRC_DIR@%$ITCL_SRC_DIR%g
+s%@ITK_LIB_DIR@%$ITK_LIB_DIR%g
+s%@ITK_SRC_DIR@%$ITK_SRC_DIR%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+  if test $ac_beg -gt 1; then
+    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+  else
+    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+  fi
+  if test ! -s conftest.s$ac_file; then
+    ac_more_lines=false
+    rm -f conftest.s$ac_file
+  else
+    if test -z "$ac_sed_cmds"; then
+      ac_sed_cmds="sed -f conftest.s$ac_file"
+    else
+      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+    fi
+    ac_file=`expr $ac_file + 1`
+    ac_beg=$ac_end
+    ac_end=`expr $ac_end + $ac_max_sed_cmds`
+  fi
+done
+if test -z "$ac_sed_cmds"; then
+  ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile \
+       iwidgets.tcl \
+       pkgIndex.tcl"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  case "$ac_given_INSTALL" in
+  [/$]*) INSTALL="$ac_given_INSTALL" ;;
+  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+  esac
+
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
diff --git a/itcl/iwidgets/configure.in b/itcl/iwidgets/configure.in
new file mode 100644 (file)
index 0000000..05afed9
--- /dev/null
@@ -0,0 +1,131 @@
+dnl    This file is an input file used by the GNU "autoconf" program to
+dnl    generate the file "configure", which is run during [incr Tcl]
+dnl installation to configure the system for the local environment.
+
+AC_INIT(generic/buttonbox.itk)
+# RCS: $Id$
+
+#--------------------------------------------------------------------
+# We should really cache the ITCL_VERSION when we configure itcl,
+# and pick up the version from the cache here.
+#--------------------------------------------------------------------
+
+ITCL_VERSION=3.2
+AC_SUBST(ITCL_VERSION)
+
+PACKAGE=iwidgets
+MAJOR_VERSION=4
+MINOR_VERSION=0
+PATCHLEVEL=.1
+
+VERSION=${MAJOR_VERSION}.${MINOR_VERSION}${PATCHLEVEL}
+
+AC_SUBST(PACKAGE)
+AC_SUBST(VERSION)
+
+AC_CONFIG_AUX_DIR(../config)
+AC_PREREQ(2.0)
+
+AC_PROG_INSTALL
+
+case "`uname -s`" in
+    *win32* | *WIN32* | *CYGWIN_NT*|*CYGWIN_98*|*CYGWIN_95*)
+       CYGPATH="cygpath -w"
+       RELPATH=".. .. bin"
+    ;;
+    *)
+       CYGPATH=echo
+       RELPATH=..
+    ;;
+esac
+
+AC_SUBST(CYGPATH)
+AC_SUBST(RELPATH)
+
+#--------------------------------------------------------------------
+#   See if there was a command-line option for where Tcl is;  if
+#   not, search for Tcl.
+#--------------------------------------------------------------------
+
+SC_PATH_TCLCONFIG
+SC_LOAD_TCLCONFIG
+
+#--------------------------------------------------------------------
+#   See if there was a command-line option for where Tk is;  if
+#   not, search for Tk.
+#--------------------------------------------------------------------
+
+SC_PATH_TKCONFIG
+SC_LOAD_TKCONFIG
+
+#--------------------------------------------------------------------
+#   See if there was a command-line option for where Itcl is;  if
+#   not, search for Itcl.
+#--------------------------------------------------------------------
+
+AC_ARG_WITH(itcl, [  --with-itcl=DIR         use Itcl 3.0 binaries from DIR],
+        itcl_search=$withval, itcl_search=`cd ${srcdir}/../itcl; pwd`)
+
+ITCL_LIB_DIR=""
+for dir in $exec_prefix/lib $TCL_LIB_DIR $itcl_search ; do
+    if test -r $dir/library/itcl.tcl; then
+        ITCL_LIB_DIR=$dir
+        ITCL_SRC_DIR=$dir
+        break
+    fi
+done
+
+if test -z "$ITCL_LIB_DIR"; then
+    AC_MSG_ERROR(Can't find Itcl libraries.  Use --with-itcl to specify the directory containing itcl.tcl on your system.)
+fi
+
+#--------------------------------------------------------------------
+#   See if there was a command-line option for where Itk is;  if
+#   not, search for Itk.
+#--------------------------------------------------------------------
+
+AC_ARG_WITH(itk, [  --with-itk=DIR          use Itk 3.0 binaries from DIR],
+        itk_search=$withval, itk_search=`cd ${srcdir}/../itk; pwd`)
+
+ITK_LIB_DIR=""
+for dir in $exec_prefix/lib $TCL_LIB_DIR $itk_search ; do
+    if test -r $dir/library/itk.tcl; then
+        ITK_LIB_DIR=$dir
+        ITK_SRC_DIR=$dir
+        break
+    fi
+done
+
+if test -z "$ITK_LIB_DIR"; then
+    AC_MSG_ERROR(Can't find Itk libraries.  Use --with-itk to specify the directory containing itk.tcl on your system.)
+fi
+
+#--------------------------------------------------------------------
+#   Needed for running the test suite
+#--------------------------------------------------------------------
+
+# CYGNUS LOCAL
+dnl SC_PROG_TCLSH
+# END CYGNUS LOCAL
+
+#--------------------------------------------------------------------
+#   Fill in template files with the proper info.
+#--------------------------------------------------------------------
+#AC_SUBST(BUILD_DIR)
+AC_SUBST(TCL_LIB_DIR)
+AC_SUBST(TCL_SRC_DIR)
+AC_SUBST(TK_LIB_DIR)
+AC_SUBST(TK_SRC_DIR)
+AC_SUBST(ITCL_LIB_DIR)
+AC_SUBST(ITCL_SRC_DIR)
+AC_SUBST(ITK_LIB_DIR)
+AC_SUBST(ITK_SRC_DIR)
+
+#AC_SUBST(ITCL_VERSION)
+#AC_SUBST(IWIDGETS_VERSION)
+#AC_SUBST(IWIDGETS_LIBRARY)
+#AC_SUBST(IWIDGETS_SRC_DIR)
+
+AC_OUTPUT(Makefile \
+       iwidgets.tcl \
+       pkgIndex.tcl)
diff --git a/itcl/iwidgets/iwidgets.tcl.in b/itcl/iwidgets/iwidgets.tcl.in
new file mode 100644 (file)
index 0000000..93098c3
--- /dev/null
@@ -0,0 +1,31 @@
+#
+# iwidgets.tcl
+# ----------------------------------------------------------------------
+# Invoked automatically by [incr Tk] upon startup to initialize
+# the [incr Widgets] package.
+# ----------------------------------------------------------------------
+#  AUTHOR: Mark L. Ulferts               EMAIL: mulferts@spd.dsccc.com
+#
+#  @(#) $Id$
+# ----------------------------------------------------------------------
+#                Copyright (c) 1995  Mark L. Ulferts
+# ======================================================================
+# See the file "license.terms" for information on usage and
+# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+
+package require Tcl 8.0
+package require Tk 8.0
+package require Itcl @ITCL_VERSION@
+package require Itk @ITCL_VERSION@
+
+namespace eval ::iwidgets {
+    namespace export *
+
+    variable library [file dirname [info script]]
+    variable version @VERSION@
+}
+
+lappend auto_path $iwidgets::library \
+                 [file join $iwidgets::library generic] \
+                 [file join $iwidgets::library scripts]
+package provide Iwidgets $iwidgets::version
diff --git a/itcl/iwidgets/license.terms b/itcl/iwidgets/license.terms
new file mode 100644 (file)
index 0000000..cc56f99
--- /dev/null
@@ -0,0 +1,31 @@
+This software is copyrighted by DSC Technologies and private individual 
+contributors.  The copyright holder is specifically listed in the header 
+of each file.  The following terms apply to all files associated with the
+software unless explicitly disclaimed in individual files by private
+contributors.
+
+Copyright 1997 DSC Technologies Corporation
+
+Permission to use, copy, modify, distribute and license this software and 
+its documentation for any purpose, and without fee or written agreement 
+with DSC, is hereby granted, provided that the above copyright notice 
+appears in all copies and that both the copyright notice and warranty 
+disclaimer below appear in supporting documentation, and that the names of
+DSC Technologies Corporation or DSC Communications Corporation not be used 
+in advertising or publicity pertaining to the software without specific, 
+written prior permission.
+
+DSC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, AND NON-INFRINGEMENT.
+THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND 
+DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
+ENHANCEMENTS, OR MODIFICATIONS. IN NO EVENT SHALL DSC BE LIABLE FOR ANY
+SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+RESTRICTED RIGHTS: Use, duplication or disclosure by the government
+is subject to the restrictions as set forth in subparagraph (c) (1) (ii)
+of the Rights in Technical Data and Computer Software Clause as DFARS
+252.227-7013 and FAR 52.227-19.
diff --git a/itcl/iwidgets/pkgIndex.tcl.in b/itcl/iwidgets/pkgIndex.tcl.in
new file mode 100644 (file)
index 0000000..bde254a
--- /dev/null
@@ -0,0 +1,3 @@
+# Tcl package index file, version 1.0
+
+package ifneeded Iwidgets @VERSION@ [list source [file join $dir iwidgets.tcl]]
diff --git a/itcl/iwidgets/tcl.m4 b/itcl/iwidgets/tcl.m4
new file mode 100644 (file)
index 0000000..e1b5106
--- /dev/null
@@ -0,0 +1,2270 @@
+# tcl.m4 --
+#
+#      This file provides a set of autoconf macros to help TEA-enable
+#      a Tcl extension.
+#
+# Copyright (c) 1999 Scriptics Corporation.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+
+#------------------------------------------------------------------------
+# SC_PATH_TCLCONFIG --
+#
+#      Locate the tclConfig.sh file and perform a sanity check on
+#      the Tcl compile flags
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Adds the following arguments to configure:
+#              --with-tcl=...
+#
+#      Defines the following vars:
+#              TCL_BIN_DIR     Full path to the directory containing
+#                              the tclConfig.sh file
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_PATH_TCLCONFIG, [
+    #
+    # Ok, lets find the tcl configuration
+    # First, look for one uninstalled.
+    # the alternative search directory is invoked by --with-tcl
+    #
+
+    if test x"${no_tcl}" = x ; then
+       # we reset no_tcl in case something fails here
+       no_tcl=true
+       AC_ARG_WITH(tcl, [  --with-tcl              directory containing tcl configuration (tclConfig.sh)], with_tclconfig=${withval})
+       AC_MSG_CHECKING([for Tcl configuration])
+       AC_CACHE_VAL(ac_cv_c_tclconfig,[
+
+           # First check to see if --with-tcl was specified.
+           if test x"${with_tclconfig}" != x ; then
+               if test -f "${with_tclconfig}/tclConfig.sh" ; then
+                   ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
+               else
+                   AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh])
+               fi
+           fi
+
+           # then check for a private Tcl installation
+           if test x"${ac_cv_c_tclconfig}" = x ; then
+               for i in \
+                       ../tcl \
+                       `ls -dr ../tcl[[8-9]].[[0-9]]* 2>/dev/null` \
+                       ../../tcl \
+                       `ls -dr ../../tcl[[8-9]].[[0-9]]* 2>/dev/null` \
+                       ../../../tcl \
+                       `ls -dr ../../../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do
+                   if test -f "$i/unix/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # check in a few common install locations
+           if test x"${ac_cv_c_tclconfig}" = x ; then
+               for i in `ls -d ${prefix}/lib 2>/dev/null` \
+                       `ls -d /usr/local/lib 2>/dev/null` ; do
+                   if test -f "$i/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # check in a few other private locations
+           if test x"${ac_cv_c_tclconfig}" = x ; then
+               for i in \
+                       ${srcdir}/../tcl \
+                       `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do
+                   if test -f "$i/unix/tclConfig.sh" ; then
+                   ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
+                   break
+               fi
+               done
+           fi
+       ])
+
+       if test x"${ac_cv_c_tclconfig}" = x ; then
+           TCL_BIN_DIR="# no Tcl configs found"
+           AC_MSG_WARN(Can't find Tcl configuration definitions)
+           exit 0
+       else
+           no_tcl=
+           TCL_BIN_DIR=${ac_cv_c_tclconfig}
+           AC_MSG_RESULT(found $TCL_BIN_DIR/tclConfig.sh)
+       fi
+    fi
+])
+
+#------------------------------------------------------------------------
+# SC_PATH_TKCONFIG --
+#
+#      Locate the tkConfig.sh file
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Adds the following arguments to configure:
+#              --with-tk=...
+#
+#      Defines the following vars:
+#              TK_BIN_DIR      Full path to the directory containing
+#                              the tkConfig.sh file
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_PATH_TKCONFIG, [
+    #
+    # Ok, lets find the tk configuration
+    # First, look for one uninstalled.
+    # the alternative search directory is invoked by --with-tk
+    #
+
+    if test x"${no_tk}" = x ; then
+       # we reset no_tk in case something fails here
+       no_tk=true
+       AC_ARG_WITH(tk, [  --with-tk               directory containing tk configuration (tkConfig.sh)], with_tkconfig=${withval})
+       AC_MSG_CHECKING([for Tk configuration])
+       AC_CACHE_VAL(ac_cv_c_tkconfig,[
+
+           # First check to see if --with-tkconfig was specified.
+           if test x"${with_tkconfig}" != x ; then
+               if test -f "${with_tkconfig}/tkConfig.sh" ; then
+                   ac_cv_c_tkconfig=`(cd ${with_tkconfig}; pwd)`
+               else
+                   AC_MSG_ERROR([${with_tkconfig} directory doesn't contain tkConfig.sh])
+               fi
+           fi
+
+           # then check for a private Tk library
+           if test x"${ac_cv_c_tkconfig}" = x ; then
+               for i in \
+                       ../tk \
+                       `ls -dr ../tk[[8-9]].[[0-9]]* 2>/dev/null` \
+                       ../../tk \
+                       `ls -dr ../../tk[[8-9]].[[0-9]]* 2>/dev/null` \
+                       ../../../tk \
+                       `ls -dr ../../../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do
+                   if test -f "$i/unix/tkConfig.sh" ; then
+                       ac_cv_c_tkconfig=`(cd $i/unix; pwd)`
+                       break
+                   fi
+               done
+           fi
+           # check in a few common install locations
+           if test x"${ac_cv_c_tkconfig}" = x ; then
+               for i in `ls -d ${prefix}/lib 2>/dev/null` \
+                       `ls -d /usr/local/lib 2>/dev/null` ; do
+                   if test -f "$i/tkConfig.sh" ; then
+                       ac_cv_c_tkconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+           # check in a few other private locations
+           if test x"${ac_cv_c_tkconfig}" = x ; then
+               for i in \
+                       ${srcdir}/../tk \
+                       `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do
+                   if test -f "$i/unix/tkConfig.sh" ; then
+                       ac_cv_c_tkconfig=`(cd $i/unix; pwd)`
+                       break
+                   fi
+               done
+           fi
+       ])
+       if test x"${ac_cv_c_tkconfig}" = x ; then
+           TK_BIN_DIR="# no Tk configs found"
+           AC_MSG_WARN(Can't find Tk configuration definitions)
+           exit 0
+       else
+           no_tk=
+           TK_BIN_DIR=${ac_cv_c_tkconfig}
+           AC_MSG_RESULT(found $TK_BIN_DIR/tkConfig.sh)
+       fi
+    fi
+
+])
+
+#------------------------------------------------------------------------
+# SC_LOAD_TCLCONFIG --
+#
+#      Load the tclConfig.sh file
+#
+# Arguments:
+#      
+#      Requires the following vars to be set:
+#              TCL_BIN_DIR
+#
+# Results:
+#
+#      Subst the following vars:
+#              TCL_BIN_DIR
+#              TCL_SRC_DIR
+#              TCL_LIB_FILE
+#
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_LOAD_TCLCONFIG, [
+    AC_MSG_CHECKING([for existence of $TCL_BIN_DIR/tclConfig.sh])
+
+    if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then
+        AC_MSG_RESULT([loading])
+       . $TCL_BIN_DIR/tclConfig.sh
+    else
+        AC_MSG_RESULT([file not found])
+    fi
+
+    #
+    # The eval is required to do the TCL_DBGX substitution in the
+    # TCL_LIB_FILE variable
+    #
+
+    eval TCL_LIB_FILE=${TCL_LIB_FILE}
+    eval TCL_LIB_FLAG=${TCL_LIB_FLAG}
+
+    AC_SUBST(TCL_DBGX)
+    AC_SUBST(TCL_BIN_DIR)
+    AC_SUBST(TCL_SRC_DIR)
+    AC_SUBST(TCL_LIB_FILE)
+    AC_SUBST(TCL_LIBS)
+    AC_SUBST(TCL_DEFS)
+    AC_SUBST(TCL_SHLIB_LD_LIBS)
+    AC_SUBST(TCL_EXTRA_CFLAGS)
+    AC_SUBST(TCL_LD_FLAGS)
+    AC_SUBST(TCL_LIB_FILE)
+    AC_SUBST(TCL_STUB_LIB_FILE)
+    AC_SUBST(TCL_LIB_SPEC)
+    AC_SUBST(TCL_BUILD_LIB_SPEC)
+    AC_SUBST(TCL_STUB_LIB_SPEC)
+    AC_SUBST(TCL_BUILD_STUB_LIB_SPEC)
+])
+
+#------------------------------------------------------------------------
+# SC_LOAD_TKCONFIG --
+#
+#      Load the tkConfig.sh file
+#
+# Arguments:
+#      
+#      Requires the following vars to be set:
+#              TK_BIN_DIR
+#
+# Results:
+#
+#      Sets the following vars that should be in tkConfig.sh:
+#              TK_BIN_DIR
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_LOAD_TKCONFIG, [
+    AC_MSG_CHECKING([for existence of $TK_BIN_DIR/tkConfig.sh])
+
+    if test -f "$TK_BIN_DIR/tkConfig.sh" ; then
+        AC_MSG_RESULT([loading])
+       . $TK_BIN_DIR/tkConfig.sh
+    else
+        AC_MSG_RESULT([could not find $TK_BIN_DIR/tkConfig.sh])
+    fi
+
+    AC_SUBST(TK_BIN_DIR)
+    AC_SUBST(TK_SRC_DIR)
+    AC_SUBST(TK_LIB_FILE)
+    AC_SUBST(TK_XINCLUDES)
+])
+
+#------------------------------------------------------------------------
+# SC_ENABLE_GCC --
+#
+#      Allows the use of GCC if available
+#
+# Arguments:
+#      none
+#      
+# Results:
+#
+#      Adds the following arguments to configure:
+#              --enable-gcc
+#
+#      Sets the following vars:
+#              CC      Command to use for the compiler
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_ENABLE_GCC, [
+    AC_ARG_ENABLE(gcc, [  --enable-gcc            allow use of gcc if available [--disable-gcc]],
+       [ok=$enableval], [ok=no])
+    if test "$ok" = "yes"; then
+       CC=gcc
+    else
+       case "`uname -s`" in
+           *win32* | *WIN32* | *CYGWIN_NT* | *CYGWIN_98* | *CYGWIN_95*)
+               CC=cl
+           ;;
+           *)
+               CC=${CC-cc}
+           ;;
+       esac
+    fi
+    AC_PROG_CC
+])
+
+#------------------------------------------------------------------------
+# SC_ENABLE_SHARED --
+#
+#      Allows the building of shared libraries
+#
+# Arguments:
+#      none
+#      
+# Results:
+#
+#      Adds the following arguments to configure:
+#              --enable-shared=yes|no
+#
+#      Defines the following vars:
+#              STATIC_BUILD    Used for building import/export libraries
+#                              on Windows.
+#
+#      Sets the following vars:
+#              SHARED_BUILD    Value of 1 or 0
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_ENABLE_SHARED, [
+    AC_MSG_CHECKING([how to build libraries])
+    AC_ARG_ENABLE(shared,
+       [  --enable-shared         build and link with shared libraries [--enable-shared]],
+       [tcl_ok=$enableval], [tcl_ok=yes])
+
+    if test "${enable_shared+set}" = set; then
+       enableval="$enable_shared"
+       tcl_ok=$enableval
+    else
+       tcl_ok=yes
+    fi
+
+    if test "$tcl_ok" = "yes" ; then
+       AC_MSG_RESULT([shared])
+       SHARED_BUILD=1
+    else
+       AC_MSG_RESULT([static])
+       SHARED_BUILD=0
+       AC_DEFINE(STATIC_BUILD)
+    fi
+])
+
+#------------------------------------------------------------------------
+# SC_ENABLE_THREADS --
+#
+#      Specify if thread support should be enabled
+#
+# Arguments:
+#      none
+#      
+# Results:
+#
+#      Adds the following arguments to configure:
+#              --enable-threads
+#
+#      Sets the following vars:
+#              THREADS_LIBS    Thread library(s)
+#
+#      Defines the following vars:
+#              TCL_THREADS
+#              _REENTRANT
+#
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_ENABLE_THREADS, [
+    AC_MSG_CHECKING(for building with threads)
+    AC_ARG_ENABLE(threads, [  --enable-threads        build with threads],
+       [tcl_ok=$enableval], [tcl_ok=no])
+
+    if test "$tcl_ok" = "yes"; then
+       TCL_THREADS=1
+       AC_DEFINE(TCL_THREADS)
+       AC_DEFINE(_REENTRANT)
+
+       case "`uname -s`" in
+           *win32* | *WIN32* | *CYGWIN_NT* | *CYGWIN_98* | *CYGWIN_95*)
+                   AC_MSG_RESULT(yes)
+               ;;
+           *)
+               AC_CHECK_LIB(pthread,pthread_mutex_init,tcl_ok=yes,tcl_ok=no)
+               if test "$tcl_ok" = "yes"; then
+                   # The space is needed
+                   THREADS_LIBS=" -lpthread"
+                   AC_MSG_RESULT(yes)
+               else
+                   TCL_THREADS=0
+                   AC_MSG_RESULT(no)
+                   AC_MSG_WARN("Don t know how to find pthread lib on your system - you must disable thread support or edit the LIBS in the Makefile...")
+               fi
+               ;;
+       esac
+    else
+       TCL_THREADS=0
+       AC_MSG_RESULT(no (default))
+    fi
+
+])
+
+#------------------------------------------------------------------------
+# SC_ENABLE_SYMBOLS --
+#
+#      Specify if debugging symbols should be used
+#
+# Arguments:
+#      none
+#      
+#      Requires the following vars to be set:
+#              CFLAGS_DEBUG
+#              CFLAGS_OPTIMIZE
+#              LDFLAGS_DEBUG
+#              LDFLAGS_OPTIMIZE
+#      
+# Results:
+#
+#      Adds the following arguments to configure:
+#              --enable-symbols
+#
+#      Defines the following vars:
+#              CFLAGS_DEFAULT  Sets to CFLAGS_DEBUG if true
+#                              Sets to CFLAGS_OPTIMIZE if false
+#              LDFLAGS_DEFAULT Sets to LDFLAGS_DEBUG if true
+#                              Sets to LDFLAGS_OPTIMIZE if false
+#              DBGX            Debug library extension
+#
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_ENABLE_SYMBOLS, [
+    case "`uname -s`" in
+       *win32* | *WIN32* | *CYGWIN_NT* | *CYGWIN_98* | *CYGWIN_95*)
+           tcl_dbgx=d
+       ;;
+       *)
+           tcl_dbgx=g
+       ;;
+    esac
+
+    AC_MSG_CHECKING([for build with symbols])
+    AC_ARG_ENABLE(symbols, [  --enable-symbols        build with debugging symbols [--disable-symbols]],    [tcl_ok=$enableval], [tcl_ok=no])
+    if test "$tcl_ok" = "yes"; then
+       CFLAGS_DEFAULT="${CFLAGS_DEBUG}"
+       LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}"
+       DBGX=${tcl_dbgx}
+       TCL_DBGX=${tcl_dbgx}
+       AC_MSG_RESULT([yes])
+    else
+       CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}"
+       LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}"
+       DBGX=""
+       TCL_DBGX=""
+       AC_MSG_RESULT([no])
+    fi
+
+    AC_SUBST(TCL_DBGX)
+    AC_SUBST(CFLAGS_DEFAULT)
+    AC_SUBST(LDFLAGS_DEFAULT)
+])
+
+#--------------------------------------------------------------------
+# SC_CONFIG_CFLAGS
+#
+#      Try to determine the proper flags to pass to the compiler
+#      for building shared libraries and other such nonsense.
+#
+# Arguments:
+#      none
+#
+# Results:
+#
+#      Defines the following vars:
+#
+#       DL_OBJS -       Name of the object file that implements dynamic
+#                       loading for Tcl on this system.
+#       DL_LIBS -       Library file(s) to include in tclsh and other base
+#                       applications in order for the "load" command to work.
+#       LDFLAGS -      Flags to pass to the compiler when linking object
+#                       files into an executable application binary such
+#                       as tclsh.
+#       LD_SEARCH_FLAGS-Flags to pass to ld, such as "-R /usr/local/tcl/lib",
+#                       that tell the run-time dynamic linker where to look
+#                       for shared libraries such as libtcl.so.  Depends on
+#                       the variable LIB_RUNTIME_DIR in the Makefile.
+#       MAKE_LIB -      Command to execute to build the Tcl library;
+#                       differs depending on whether or not Tcl is being
+#                       compiled as a shared library.
+#       SHLIB_CFLAGS -  Flags to pass to cc when compiling the components
+#                       of a shared library (may request position-independent
+#                       code, among other things).
+#       SHLIB_LD -      Base command to use for combining object files
+#                       into a shared library.
+#       SHLIB_LD_LIBS - Dependent libraries for the linker to scan when
+#                       creating shared libraries.  This symbol typically
+#                       goes at the end of the "ld" commands that build
+#                       shared libraries. The value of the symbol is
+#                       "${LIBS}" if all of the dependent libraries should
+#                       be specified when creating a shared library.  If
+#                       dependent libraries should not be specified (as on
+#                       SunOS 4.x, where they cause the link to fail, or in
+#                       general if Tcl and Tk aren't themselves shared
+#                       libraries), then this symbol has an empty string
+#                       as its value.
+#       SHLIB_SUFFIX -  Suffix to use for the names of dynamically loadable
+#                       extensions.  An empty string means we don't know how
+#                       to use shared libraries on this platform.
+#       TCL_LIB_FILE -  Name of the file that contains the Tcl library, such
+#                       as libtcl7.8.so or libtcl7.8.a.
+#       TCL_LIB_SUFFIX -Specifies everything that comes after the "libtcl"
+#                       in the shared library name, using the $VERSION variable
+#                       to put the version in the right place.  This is used
+#                       by platforms that need non-standard library names.
+#                       Examples:  ${VERSION}.so.1.1 on NetBSD, since it needs
+#                       to have a version after the .so, and ${VERSION}.a
+#                       on AIX, since the Tcl shared library needs to have
+#                       a .a extension whereas shared objects for loadable
+#                       extensions have a .so extension.  Defaults to
+#                       ${VERSION}${SHLIB_SUFFIX}.
+#       TCL_NEEDS_EXP_FILE -
+#                       1 means that an export file is needed to link to a
+#                       shared library.
+#       TCL_EXP_FILE -  The name of the installed export / import file which
+#                       should be used to link to the Tcl shared library.
+#                       Empty if Tcl is unshared.
+#       TCL_BUILD_EXP_FILE -
+#                       The name of the built export / import file which
+#                       should be used to link to the Tcl shared library.
+#                       Empty if Tcl is unshared.
+#      CFLAGS_DEBUG -
+#                      Flags used when running the compiler in debug mode
+#      CFLAGS_OPTIMIZE -
+#                      Flags used when running the compiler in optimize mode
+#
+#      EXTRA_CFLAGS
+#
+#      Subst's the following vars:
+#              DL_LIBS
+#              CFLAGS_DEBUG
+#              CFLAGS_OPTIMIZE
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_CONFIG_CFLAGS, [
+
+    # Step 0: Enable 64 bit support?
+
+    AC_MSG_CHECKING([if 64bit support is enabled])
+    AC_ARG_ENABLE(64bit,[  --enable-64bit          enable 64bit support],,enableval="no")
+
+    if test "$enableval" = "yes"; then
+       AC_MSG_RESULT(Will compile with 64bit support)
+       do64bit=yes
+    else
+       do64bit=no
+    fi
+    AC_MSG_RESULT($do64bit)
+    # Step 1: set the variable "system" to hold the name and version number
+    # for the system.  This can usually be done via the "uname" command, but
+    # there are a few systems, like Next, where this doesn't work.
+
+    AC_MSG_CHECKING([system version (for dynamic loading)])
+    if test -f /usr/lib/NextStep/software_version; then
+       system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
+    else
+       system=`uname -s`-`uname -r`
+       if test "$?" -ne 0 ; then
+           AC_MSG_RESULT([unknown (can't find uname command)])
+           system=unknown
+       else
+           # Special check for weird MP-RAS system (uname returns weird
+           # results, and the version is kept in special file).
+       
+           if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+               system=MP-RAS-`awk '{print $3}' /etc/.relid'`
+           fi
+           if test "`uname -s`" = "AIX" ; then
+               system=AIX-`uname -v`.`uname -r`
+           fi
+           AC_MSG_RESULT($system)
+       fi
+    fi
+
+    # Step 2: check for existence of -ldl library.  This is needed because
+    # Linux can use either -ldl or -ldld for dynamic loading.
+
+    AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no)
+
+    # Step 3: set configuration options based on system name and version.
+
+    do64bit_ok=no
+    fullSrcDir=`cd $srcdir; pwd`
+    EXTRA_CFLAGS=""
+    TCL_EXPORT_FILE_SUFFIX=""
+    UNSHARED_LIB_SUFFIX=""
+    TCL_TRIM_DOTS='`echo ${VERSION} | tr -d .`'
+    ECHO_VERSION='`echo ${VERSION}`'
+    TCL_LIB_VERSIONS_OK=ok
+    CFLAGS_DEBUG=-g
+    CFLAGS_OPTIMIZE=-O
+    TCL_NEEDS_EXP_FILE=0
+    TCL_BUILD_EXP_FILE=""
+    TCL_EXP_FILE=""
+    STLIB_LD="ar cr"
+    case $system in
+       AIX-4.[[2-9]])
+           SHLIB_CFLAGS=""
+           SHLIB_LD="$fullSrcDir/ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS=""
+           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+           TCL_NEEDS_EXP_FILE=1
+           TCL_EXPORT_FILE_SUFFIX='${VERSION}\$\{DBGX\}.exp'
+           ;;
+       AIX-*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="$fullSrcDir/ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           LIBOBJS="$LIBOBJS tclLoadAix.o"
+           DL_LIBS="-lld"
+           LDFLAGS=""
+           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+           TCL_NEEDS_EXP_FILE=1
+           TCL_EXPORT_FILE_SUFFIX='${VERSION}\$\{DBGX\}.exp'
+           ;;
+       BSD/OS-2.1*|BSD/OS-3*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="shlicc -r"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       BSD/OS-4.*)
+           SHLIB_CFLAGS="-export-dynamic -fPIC"
+           SHLIB_LD="cc -shared"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="-export-dynamic"
+           LD_SEARCH_FLAGS=""
+           ;;
+       *win32*|*WIN32*|CYGWIN_NT*|cygwin_nt*|*CYGWIN_98*|*CYGWIN_95*)
+           CFLAGS_DEBUG="-nologo -Z7 -Od -WX ${runtime}d"
+           CFLAGS_OPTIMIZE="-nologo -Oti -Gs -GD ${runtime}"
+           LDFLAGS_CONSOLE="-subsystem:console"
+           LDFLAGS_WINDOW="-subsystem:windows"
+           LDFLAGS_DEBUG="-debug:full -debugtype:cv"
+           LDFLAGS_OPTIMIZE="-release"
+           EXTRA_CFLAGS="-YX"
+           PATHTYPE=-w
+           STLIB_LD="lib -nologo"
+           SHLIB_LD="link -dll -nologo"
+           SHLIB_LD_LIBS="user32.lib advapi32.lib"
+           RC="rc"
+           ;;
+       dgux*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD="cc -G"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*|HP-UX-*.11.*)
+           SHLIB_SUFFIX=".sl"
+           AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no)
+           if test "$tcl_ok" = yes; then
+               SHLIB_CFLAGS="+z"
+               SHLIB_LD="ld -b"
+               SHLIB_LD_LIBS=""
+               DL_OBJS="tclLoadShl.o"
+               DL_LIBS="-ldld"
+               LDFLAGS="-Wl,-E"
+               LD_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+           fi
+           ;;
+       IRIX-4.*)
+           SHLIB_CFLAGS="-G 0"
+           SHLIB_SUFFIX=".a"
+           SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
+           SHLIB_LD_LIBS='${LIBS}'
+           DL_OBJS="tclLoadAout.o"
+           DL_LIBS=""
+           LDFLAGS="-Wl,-D,08000000"
+           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+           SHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}.a'
+           ;;
+       IRIX-5.*|IRIX-6.*|IRIX64-6.5*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="ld -n32 -shared -rdata_shared"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           if test "$CC" = "gcc" -o `$CC -v 2>&1 | grep -c gcc` != "0" ; then
+               EXTRA_CFLAGS="-mabi=n32"
+               LDFLAGS="-mabi=n32"
+           else
+               case $system in
+                   IRIX-6.3)
+                       # Use to build 6.2 compatible binaries on 6.3.
+                       EXTRA_CFLAGS="-n32 -D_OLD_TERMIOS"
+                       ;;
+                   *)
+                       EXTRA_CFLAGS="-n32"
+                       ;;
+               esac
+               LDFLAGS="-n32"
+           fi
+           ;;
+       IRIX64-6.*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="ld -32 -shared -rdata_shared"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           LDFLAGS=""
+           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           ;;
+       Linux*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+
+           # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings 
+           # when you inline the string and math operations.  Turn this off to
+           # get rid of the warnings.
+
+           CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
+
+           if test "$have_dl" = yes; then
+               SHLIB_LD="${CC} -shared"
+               DL_OBJS="tclLoadDl.o"
+               DL_LIBS="-ldl"
+               LDFLAGS="-rdynamic"
+               LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           else
+               AC_CHECK_HEADER(dld.h, [
+                   SHLIB_LD="ld -shared"
+                   DL_OBJS="tclLoadDld.o"
+                   DL_LIBS="-ldld"
+                   LDFLAGS=""
+                   LD_SEARCH_FLAGS=""])
+           fi
+           if test "`uname -m`" = "alpha" ; then
+               EXTRA_CFLAGS="-mieee"
+           fi
+           ;;
+       MP-RAS-02*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD="cc -G"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       MP-RAS-*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD="cc -G"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="-Wl,-Bexport"
+           LD_SEARCH_FLAGS=""
+           ;;
+       NetBSD-*|FreeBSD-[[12]].*|OpenBSD-*)
+           # Not available on all versions:  check for include file.
+           AC_CHECK_HEADER(dlfcn.h, [
+               SHLIB_CFLAGS="-fpic"
+               SHLIB_LD="ld -Bshareable -x"
+               SHLIB_LD_LIBS=""
+               SHLIB_SUFFIX=".so"
+               DL_OBJS="tclLoadDl.o"
+               DL_LIBS=""
+               LDFLAGS=""
+               LD_SEARCH_FLAGS=""
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0'
+           ], [
+               SHLIB_CFLAGS=""
+               SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r"
+               SHLIB_LD_LIBS='${LIBS}'
+               SHLIB_SUFFIX=".a"
+               DL_OBJS="tclLoadAout.o"
+               DL_LIBS=""
+               LDFLAGS=""
+               LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
+           ])
+
+           # FreeBSD doesn't handle version numbers with dots.
+
+           UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
+           TCL_LIB_VERSIONS_OK=nodots
+           ;;
+       FreeBSD-*)
+           # FreeBSD 3.* and greater have ELF.
+           SHLIB_CFLAGS="-fpic"
+           SHLIB_LD="ld -Bshareable -x"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           LDFLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       NEXTSTEP-*)
+           SHLIB_CFLAGS=""
+           SHLIB_LD="cc -nostdlib -r"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadNext.o"
+           DL_LIBS=""
+           LDFLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       OS/390-*)
+           CFLAGS_OPTIMIZE=""      # Optimizer is buggy
+           AC_DEFINE(_OE_SOCKETS)  # needed in sys/socket.h
+           ;;      
+       OSF1-1.0|OSF1-1.1|OSF1-1.2)
+           # OSF/1 1.[012] from OSF, and derivatives, including Paragon OSF/1
+           SHLIB_CFLAGS=""
+           # Hack: make package name same as library name
+           SHLIB_LD='ld -R -export $@:'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadOSF.o"
+           DL_LIBS=""
+           LDFLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       OSF1-1.*)
+           # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2
+           SHLIB_CFLAGS="-fpic"
+           SHLIB_LD="ld -shared"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           LDFLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       OSF1-V*)
+           # Digital OSF/1
+           SHLIB_CFLAGS=""
+           SHLIB_LD='ld -shared -expect_unresolved "*"'
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           LDFLAGS=""
+           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           ;;
+       RISCos-*)
+           SHLIB_CFLAGS="-G 0"
+           SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".a"
+           DL_OBJS="tclLoadAout.o"
+           DL_LIBS=""
+           LDFLAGS="-Wl,-D,08000000"
+           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+           ;;
+       SCO_SV-3.2*)
+           # Note, dlopen is available only on SCO 3.2.5 and greater.  However,
+           # this test works, since "uname -s" was non-standard in 3.2.4 and
+           # below.
+           SHLIB_CFLAGS="-Kpic -belf"
+           SHLIB_LD="ld -G"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           LDFLAGS="-belf -Wl,-Bexport"
+           LD_SEARCH_FLAGS=""
+           ;;
+       SINIX*5.4*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD="cc -G"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       SunOS-4*)
+           SHLIB_CFLAGS="-PIC"
+           SHLIB_LD="ld"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS=""
+           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+
+           # SunOS can't handle version numbers with dots in them in library
+           # specs, like -ltcl7.5, so use -ltcl75 instead.  Also, it
+           # requires an extra version number at the end of .so file names.
+           # So, the library has to have a name like libtcl75.so.1.0
+
+           SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0'
+           UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
+           TCL_LIB_VERSIONS_OK=nodots
+           ;;
+       SunOS-5.[[0-6]]*)
+           SHLIB_CFLAGS="-KPIC"
+           SHLIB_LD="/usr/ccs/bin/ld -G -z text"
+
+           # Note: need the LIBS below, otherwise Tk won't find Tcl's
+           # symbols when dynamically loaded into tclsh.
+
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS=""
+           LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+           ;;
+       SunOS-5*)
+           SHLIB_CFLAGS="-KPIC"
+           SHLIB_LD="/usr/ccs/bin/ld -G -z text"
+           LDFLAGS=""
+    
+           do64bit_ok=no
+           if test "$do64bit" = "yes" ; then
+           arch=`isainfo`
+           if test "$arch" = "sparcv9 sparc" ; then
+               if test "$CC" != "gcc" -a `$CC -v 2>&1 | grep -c gcc` = "0" ; then
+               do64bit_ok=yes
+               EXTRA_CFLAGS="-xarch=v9"
+               LDFLAGS="-xarch=v9"
+               else 
+               AC_MSG_WARN("64bit mode not supported using GCC on $system")
+               fi
+           else
+               AC_MSG_WARN("64bit mode only supported sparcv9 system")
+           fi
+           fi
+           
+           # Note: need the LIBS below, otherwise Tk won't find Tcl's
+           # symbols when dynamically loaded into tclsh.
+
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           if test "$CC" = "gcc" -o `$CC -v 2>&1 | grep -c gcc` != "0" ; then
+               LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+           else
+               LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+           fi
+           ;;
+       ULTRIX-4.*)
+           SHLIB_CFLAGS="-G 0"
+           SHLIB_SUFFIX=".a"
+           SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
+           SHLIB_LD_LIBS='${LIBS}'
+           DL_OBJS="tclLoadAout.o"
+           DL_LIBS=""
+           LDFLAGS="-Wl,-D,08000000"
+           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+           ;;
+       UNIX_SV* | UnixWare-5*)
+           SHLIB_CFLAGS="-KPIC"
+           SHLIB_LD="cc -G"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers
+           # that don't grok the -Bexport option.  Test that it does.
+           hold_ldflags=$LDFLAGS
+           AC_MSG_CHECKING(for ld accepts -Bexport flag)
+           LDFLAGS="${LDFLAGS} -Wl,-Bexport"
+           AC_TRY_LINK(, [int i;], found=yes, found=no)
+           LDFLAGS=$hold_ldflags
+           AC_MSG_RESULT($found)
+           if test $found = yes; then
+           LDFLAGS="-Wl,-Bexport"
+           else
+           LDFLAGS=""
+           fi
+           LD_SEARCH_FLAGS=""
+           ;;
+    esac
+
+    if test "$do64bit" = "yes" -a "$do64bit_ok" = "no" ; then
+    AC_MSG_WARN("64bit support being disabled -- not supported on this platform")
+    fi
+
+    # Step 4: If pseudo-static linking is in use (see K. B. Kenny, "Dynamic
+    # Loading for Tcl -- What Became of It?".  Proc. 2nd Tcl/Tk Workshop,
+    # New Orleans, LA, Computerized Processes Unlimited, 1994), then we need
+    # to determine which of several header files defines the a.out file
+    # format (a.out.h, sys/exec.h, or sys/exec_aout.h).  At present, we
+    # support only a file format that is more or less version-7-compatible. 
+    # In particular,
+    #  - a.out files must begin with `struct exec'.
+    #  - the N_TXTOFF on the `struct exec' must compute the seek address
+    #    of the text segment
+    #  - The `struct exec' must contain a_magic, a_text, a_data, a_bss
+    #    and a_entry fields.
+    # The following compilation should succeed if and only if either sys/exec.h
+    # or a.out.h is usable for the purpose.
+    #
+    # Note that the modified COFF format used on MIPS Ultrix 4.x is usable; the
+    # `struct exec' includes a second header that contains information that
+    # duplicates the v7 fields that are needed.
+
+    if test "x$DL_OBJS" = "xtclLoadAout.o" ; then
+       AC_MSG_CHECKING(sys/exec.h)
+       AC_TRY_COMPILE([#include <sys/exec.h>],[
+           struct exec foo;
+           unsigned long seek;
+           int flag;
+#if defined(__mips) || defined(mips)
+           seek = N_TXTOFF (foo.ex_f, foo.ex_o);
+#else
+           seek = N_TXTOFF (foo);
+#endif
+           flag = (foo.a_magic == OMAGIC);
+           return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry;
+    ], tcl_ok=usable, tcl_ok=unusable)
+       AC_MSG_RESULT($tcl_ok)
+       if test $tcl_ok = usable; then
+           AC_DEFINE(USE_SYS_EXEC_H)
+       else
+           AC_MSG_CHECKING(a.out.h)
+           AC_TRY_COMPILE([#include <a.out.h>],[
+               struct exec foo;
+               unsigned long seek;
+               int flag;
+#if defined(__mips) || defined(mips)
+               seek = N_TXTOFF (foo.ex_f, foo.ex_o);
+#else
+               seek = N_TXTOFF (foo);
+#endif
+               flag = (foo.a_magic == OMAGIC);
+               return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry;
+           ], tcl_ok=usable, tcl_ok=unusable)
+           AC_MSG_RESULT($tcl_ok)
+           if test $tcl_ok = usable; then
+               AC_DEFINE(USE_A_OUT_H)
+           else
+               AC_MSG_CHECKING(sys/exec_aout.h)
+               AC_TRY_COMPILE([#include <sys/exec_aout.h>],[
+                   struct exec foo;
+                   unsigned long seek;
+                   int flag;
+#if defined(__mips) || defined(mips)
+                   seek = N_TXTOFF (foo.ex_f, foo.ex_o);
+#else
+                   seek = N_TXTOFF (foo);
+#endif
+                   flag = (foo.a_midmag == OMAGIC);
+                   return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry;
+               ], tcl_ok=usable, tcl_ok=unusable)
+               AC_MSG_RESULT($tcl_ok)
+               if test $tcl_ok = usable; then
+                   AC_DEFINE(USE_SYS_EXEC_AOUT_H)
+               else
+                   DL_OBJS=""
+               fi
+           fi
+       fi
+    fi
+
+    # Step 5: disable dynamic loading if requested via a command-line switch.
+
+    AC_ARG_ENABLE(load, [  --disable-load          disallow dynamic loading and "load" command],
+       [tcl_ok=$enableval], [tcl_ok=yes])
+    if test "$tcl_ok" = "no"; then
+       DL_OBJS=""
+    fi
+
+    if test "x$DL_OBJS" != "x" ; then
+       BUILD_DLTEST="\$(DLTEST_TARGETS)"
+    else
+       echo "Can't figure out how to do dynamic loading or shared libraries"
+       echo "on this system."
+       SHLIB_CFLAGS=""
+       SHLIB_LD=""
+       SHLIB_SUFFIX=""
+       DL_OBJS="tclLoadNone.o"
+       DL_LIBS=""
+       LDFLAGS=""
+       LD_SEARCH_FLAGS=""
+       BUILD_DLTEST=""
+    fi
+
+    # If we're running gcc, then change the C flags for compiling shared
+    # libraries to the right flags for gcc, instead of those for the
+    # standard manufacturer compiler.
+
+    if test "$DL_OBJS" != "tclLoadNone.o" ; then
+       if test "$CC" = "gcc" -o `$CC -v 2>&1 | grep -c gcc` != "0" ; then
+           case $system in
+               AIX-*)
+                   ;;
+               BSD/OS*)
+                   ;;
+               IRIX*)
+                   ;;
+               NetBSD-*|FreeBSD-*|OpenBSD-*)
+                   ;;
+               RISCos-*)
+                   ;;
+               ULTRIX-4.*)
+                   ;;
+               *)
+                   SHLIB_CFLAGS="-fPIC"
+                   ;;
+           esac
+       fi
+    fi
+
+    if test "$SHARED_LIB_SUFFIX" = "" ; then
+       SHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}${SHLIB_SUFFIX}'
+    fi
+    if test "$UNSHARED_LIB_SUFFIX" = "" ; then
+       UNSHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}.a'
+    fi
+
+    AC_SUBST(STLIB_LD)
+    AC_SUBST(SHLIB_LD)
+    AC_SUBST(SHLIB_CFLAGS)
+    AC_SUBST(SHLIB_LDFLAGS)
+    AC_SUBST(DL_LIBS)
+    AC_SUBST(CFLAGS_DEBUG)
+    AC_SUBST(CFLAGS_OPTIMIZE)
+    AC_SUBST(LDFLAGS_DEBUG)
+    AC_SUBST(LDFLAGS_OPTIMIZE)
+])
+
+#--------------------------------------------------------------------
+# SC_SERIAL_PORT
+#
+#      Determine which interface to use to talk to the serial port.
+#      Note that #include lines must begin in leftmost column for
+#      some compilers to recognize them as preprocessor directives.
+#
+# Arguments:
+#      none
+#      
+# Results:
+#
+#      Defines only one of the following vars:
+#              USE_TERMIOS
+#              USE_TERMIO
+#              USE_SGTTY
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_SERIAL_PORT, [
+    AC_MSG_CHECKING([termios vs. termio vs. sgtty])
+
+    AC_TRY_RUN([
+#include <termios.h>
+
+main()
+{
+    struct termios t;
+    if (tcgetattr(0, &t) == 0) {
+       cfsetospeed(&t, 0);
+       t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB;
+       return 0;
+    }
+    return 1;
+}], tk_ok=termios, tk_ok=no, tk_ok=no)
+
+    if test $tk_ok = termios; then
+       AC_DEFINE(USE_TERMIOS)
+    else
+       AC_TRY_RUN([
+#include <termio.h>
+
+main()
+{
+    struct termio t;
+    if (ioctl(0, TCGETA, &t) == 0) {
+       t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB;
+       return 0;
+    }
+    return 1;
+    }], tk_ok=termio, tk_ok=no, tk_ok=no)
+
+    if test $tk_ok = termio; then
+       AC_DEFINE(USE_TERMIO)
+    else
+       AC_TRY_RUN([
+#include <sgtty.h>
+
+main()
+{
+    struct sgttyb t;
+    if (ioctl(0, TIOCGETP, &t) == 0) {
+       t.sg_ospeed = 0;
+       t.sg_flags |= ODDP | EVENP | RAW;
+       return 0;
+    }
+    return 1;
+}], tk_ok=sgtty, tk_ok=none, tk_ok=none)
+    if test $tk_ok = sgtty; then
+       AC_DEFINE(USE_SGTTY)
+    fi
+    fi
+    fi
+    AC_MSG_RESULT($tk_ok)
+])
+
+#--------------------------------------------------------------------
+# SC_MISSING_POSIX_HEADERS
+#
+#      Supply substitutes for missing POSIX header files.  Special
+#      notes:
+#          - stdlib.h doesn't define strtol, strtoul, or
+#            strtod insome versions of SunOS
+#          - some versions of string.h don't declare procedures such
+#            as strstr
+#
+# Arguments:
+#      none
+#      
+# Results:
+#
+#      Defines some of the following vars:
+#              NO_DIRENT_H
+#              NO_ERRNO_H
+#              NO_VALUES_H
+#              NO_LIMITS_H
+#              NO_STDLIB_H
+#              NO_STRING_H
+#              NO_SYS_WAIT_H
+#              NO_DLFCN_H
+#              HAVE_UNISTD_H
+#              HAVE_SYS_PARAM_H
+#
+#              HAVE_STRING_H ?
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_MISSING_POSIX_HEADERS, [
+
+    AC_MSG_CHECKING(dirent.h)
+    AC_TRY_LINK([#include <sys/types.h>
+#include <dirent.h>], [
+#ifndef _POSIX_SOURCE
+#   ifdef __Lynx__
+       /*
+        * Generate compilation error to make the test fail:  Lynx headers
+        * are only valid if really in the POSIX environment.
+        */
+
+       missing_procedure();
+#   endif
+#endif
+DIR *d;
+struct dirent *entryPtr;
+char *p;
+d = opendir("foobar");
+entryPtr = readdir(d);
+p = entryPtr->d_name;
+closedir(d);
+], tcl_ok=yes, tcl_ok=no)
+
+    if test $tcl_ok = no; then
+       AC_DEFINE(NO_DIRENT_H)
+    fi
+
+    AC_MSG_RESULT($tcl_ok)
+    AC_CHECK_HEADER(errno.h, , AC_DEFINE(NO_ERRNO_H))
+    AC_CHECK_HEADER(float.h, , AC_DEFINE(NO_FLOAT_H))
+    AC_CHECK_HEADER(values.h, , AC_DEFINE(NO_VALUES_H))
+    AC_CHECK_HEADER(limits.h, , AC_DEFINE(NO_LIMITS_H))
+    AC_CHECK_HEADER(stdlib.h, tcl_ok=1, tcl_ok=0)
+    AC_EGREP_HEADER(strtol, stdlib.h, , tcl_ok=0)
+    AC_EGREP_HEADER(strtoul, stdlib.h, , tcl_ok=0)
+    AC_EGREP_HEADER(strtod, stdlib.h, , tcl_ok=0)
+    if test $tcl_ok = 0; then
+       AC_DEFINE(NO_STDLIB_H)
+    fi
+    AC_CHECK_HEADER(string.h, tcl_ok=1, tcl_ok=0)
+    AC_EGREP_HEADER(strstr, string.h, , tcl_ok=0)
+    AC_EGREP_HEADER(strerror, string.h, , tcl_ok=0)
+
+    # See also memmove check below for a place where NO_STRING_H can be
+    # set and why.
+
+    if test $tcl_ok = 0; then
+       AC_DEFINE(NO_STRING_H)
+    fi
+
+    AC_CHECK_HEADER(sys/wait.h, , AC_DEFINE(NO_SYS_WAIT_H))
+    AC_CHECK_HEADER(dlfcn.h, , AC_DEFINE(NO_DLFCN_H))
+
+    # OS/390 lacks sys/param.h (and doesn't need it, by chance).
+
+    AC_HAVE_HEADERS(unistd.h sys/param.h)
+
+])
+
+#--------------------------------------------------------------------
+# SC_PATH_X
+#
+#      Locate the X11 header files and the X11 library archive.  Try
+#      the ac_path_x macro first, but if it doesn't find the X stuff
+#      (e.g. because there's no xmkmf program) then check through
+#      a list of possible directories.  Under some conditions the
+#      autoconf macro will return an include directory that contains
+#      no include files, so double-check its result just to be safe.
+#
+# Arguments:
+#      none
+#      
+# Results:
+#
+#      Sets the the following vars:
+#              XINCLUDES
+#              XLIBSW
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_PATH_X, [
+    AC_PATH_X
+    not_really_there=""
+    if test "$no_x" = ""; then
+       if test "$x_includes" = ""; then
+           AC_TRY_CPP([#include <X11/XIntrinsic.h>], , not_really_there="yes")
+       else
+           if test ! -r $x_includes/X11/Intrinsic.h; then
+               not_really_there="yes"
+           fi
+       fi
+    fi
+    if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then
+       AC_MSG_CHECKING(for X11 header files)
+       XINCLUDES="# no special path needed"
+       AC_TRY_CPP([#include <X11/Intrinsic.h>], , XINCLUDES="nope")
+       if test "$XINCLUDES" = nope; then
+           dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/X11R6/include /usr/X11R5/include /usr/include/X11R5 /usr/include/X11R4 /usr/openwin/include /usr/X11/include /usr/sww/include"
+           for i in $dirs ; do
+               if test -r $i/X11/Intrinsic.h; then
+                   AC_MSG_RESULT($i)
+                   XINCLUDES=" -I$i"
+                   break
+               fi
+           done
+       fi
+    else
+       if test "$x_includes" != ""; then
+           XINCLUDES=-I$x_includes
+       else
+           XINCLUDES="# no special path needed"
+       fi
+    fi
+    if test "$XINCLUDES" = nope; then
+       AC_MSG_RESULT(couldn't find any!)
+       XINCLUDES="# no include files found"
+    fi
+
+    if test "$no_x" = yes; then
+       AC_MSG_CHECKING(for X11 libraries)
+       XLIBSW=nope
+       dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/X11R6/lib /usr/X11R5/lib /usr/lib/X11R5 /usr/lib/X11R4 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib"
+       for i in $dirs ; do
+           if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl; then
+               AC_MSG_RESULT($i)
+               XLIBSW="-L$i -lX11"
+               x_libraries="$i"
+               break
+           fi
+       done
+    else
+       if test "$x_libraries" = ""; then
+           XLIBSW=-lX11
+       else
+           XLIBSW="-L$x_libraries -lX11"
+       fi
+    fi
+    if test "$XLIBSW" = nope ; then
+       AC_CHECK_LIB(Xwindow, XCreateWindow, XLIBSW=-lXwindow)
+    fi
+    if test "$XLIBSW" = nope ; then
+       AC_MSG_RESULT(couldn't find any!  Using -lX11.)
+       XLIBSW=-lX11
+    fi
+])
+#--------------------------------------------------------------------
+# SC_BLOCKING_STYLE
+#
+#      The statements below check for systems where POSIX-style
+#      non-blocking I/O (O_NONBLOCK) doesn't work or is unimplemented. 
+#      On these systems (mostly older ones), use the old BSD-style
+#      FIONBIO approach instead.
+#
+# Arguments:
+#      none
+#      
+# Results:
+#
+#      Defines some of the following vars:
+#              HAVE_SYS_IOCTL_H
+#              HAVE_SYS_FILIO_H
+#              USE_FIONBIO
+#              O_NONBLOCK
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_BLOCKING_STYLE, [
+    AC_CHECK_HEADERS(sys/ioctl.h)
+    AC_CHECK_HEADERS(sys/filio.h)
+    AC_MSG_CHECKING([FIONBIO vs. O_NONBLOCK for nonblocking I/O])
+    if test -f /usr/lib/NextStep/software_version; then
+       system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
+    else
+       system=`uname -s`-`uname -r`
+       if test "$?" -ne 0 ; then
+           system=unknown
+       else
+           # Special check for weird MP-RAS system (uname returns weird
+           # results, and the version is kept in special file).
+       
+           if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+               system=MP-RAS-`awk '{print $3}' /etc/.relid'`
+           fi
+           if test "`uname -s`" = "AIX" ; then
+               system=AIX-`uname -v`.`uname -r`
+           fi
+       fi
+    fi
+    case $system in
+       # There used to be code here to use FIONBIO under AIX.  However, it
+       # was reported that FIONBIO doesn't work under AIX 3.2.5.  Since
+       # using O_NONBLOCK seems fine under AIX 4.*, I removed the FIONBIO
+       # code (JO, 5/31/97).
+
+       OSF*)
+           AC_DEFINE(USE_FIONBIO)
+           AC_MSG_RESULT(FIONBIO)
+           ;;
+       SunOS-4*)
+           AC_DEFINE(USE_FIONBIO)
+           AC_MSG_RESULT(FIONBIO)
+           ;;
+       ULTRIX-4.*)
+           AC_DEFINE(USE_FIONBIO)
+           AC_MSG_RESULT(FIONBIO)
+           ;;
+       *)
+           AC_MSG_RESULT(O_NONBLOCK)
+           ;;
+    esac
+])
+
+#--------------------------------------------------------------------
+# SC_HAVE_VFORK
+#
+#      Check to see whether the system provides a vfork kernel call.
+#      If not, then use fork instead.  Also, check for a problem with
+#      vforks and signals that can cause core dumps if a vforked child
+#      resets a signal handler.  If the problem exists, then use fork
+#      instead of vfork.
+#
+# Arguments:
+#      none
+#      
+# Results:
+#
+#      Defines some of the following vars:
+#              vfork (=fork)
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_HAVE_VFORK, [
+    AC_TYPE_SIGNAL()
+    AC_CHECK_FUNC(vfork, tcl_ok=1, tcl_ok=0)
+    if test "$tcl_ok" = 1; then
+       AC_MSG_CHECKING([vfork/signal bug]);
+       AC_TRY_RUN([
+#include <stdio.h>
+#include <signal.h>
+#include <sys/wait.h>
+int gotSignal = 0;
+sigProc(sig)
+    int sig;
+{
+    gotSignal = 1;
+}
+main()
+{
+    int pid, sts;
+    (void) signal(SIGCHLD, sigProc);
+    pid = vfork();
+    if (pid <  0) {
+       exit(1);
+    } else if (pid == 0) {
+       (void) signal(SIGCHLD, SIG_DFL);
+       _exit(0);
+    } else {
+       (void) wait(&sts);
+    }
+    exit((gotSignal) ? 0 : 1);
+}], tcl_ok=1, tcl_ok=0, tcl_ok=0)
+
+       if test "$tcl_ok" = 1; then
+           AC_MSG_RESULT(ok)
+       else
+           AC_MSG_RESULT([buggy, using fork instead])
+       fi
+    fi
+    rm -f core
+    if test "$tcl_ok" = 0; then
+       AC_DEFINE(vfork, fork)
+    fi
+])
+
+#--------------------------------------------------------------------
+# SC_TIME_HANLDER
+#
+#      Checks how the system deals with time.h, what time structures
+#      are used on the system, and what fields the structures have.
+#
+# Arguments:
+#      none
+#      
+# Results:
+#
+#      Defines some of the following vars:
+#              USE_DELTA_FOR_TZ
+#              HAVE_TM_GMTOFF
+#              HAVE_TM_TZADJ
+#              HAVE_TIMEZONE_VAR
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_TIME_HANDLER, [
+    AC_CHECK_HEADERS(sys/time.h)
+    AC_HEADER_TIME
+    AC_STRUCT_TIMEZONE
+
+    AC_MSG_CHECKING([tm_tzadj in struct tm])
+    AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_tzadj;],
+           [AC_DEFINE(HAVE_TM_TZADJ)
+           AC_MSG_RESULT(yes)],
+           AC_MSG_RESULT(no))
+
+    AC_MSG_CHECKING([tm_gmtoff in struct tm])
+    AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_gmtoff;],
+           [AC_DEFINE(HAVE_TM_GMTOFF)
+           AC_MSG_RESULT(yes)],
+           AC_MSG_RESULT(no))
+
+    #
+    # Its important to include time.h in this check, as some systems
+    # (like convex) have timezone functions, etc.
+    #
+    have_timezone=no
+    AC_MSG_CHECKING([long timezone variable])
+    AC_TRY_COMPILE([#include <time.h>],
+           [extern long timezone;
+           timezone += 1;
+           exit (0);],
+           [have_timezone=yes
+           AC_DEFINE(HAVE_TIMEZONE_VAR)
+           AC_MSG_RESULT(yes)],
+           AC_MSG_RESULT(no))
+
+    #
+    # On some systems (eg IRIX 6.2), timezone is a time_t and not a long.
+    #
+    if test "$have_timezone" = no; then
+    AC_MSG_CHECKING([time_t timezone variable])
+    AC_TRY_COMPILE([#include <time.h>],
+           [extern time_t timezone;
+           timezone += 1;
+           exit (0);],
+           [AC_DEFINE(HAVE_TIMEZONE_VAR)
+           AC_MSG_RESULT(yes)],
+           AC_MSG_RESULT(no))
+    fi
+
+    #
+    # AIX does not have a timezone field in struct tm. When the AIX bsd
+    # library is used, the timezone global and the gettimeofday methods are
+    # to be avoided for timezone deduction instead, we deduce the timezone
+    # by comparing the localtime result on a known GMT value.
+    #
+
+    if test "`uname -s`" = "AIX" ; then
+       AC_CHECK_LIB(bsd, gettimeofday, libbsd=yes)
+       if test $libbsd = yes; then
+           AC_DEFINE(USE_DELTA_FOR_TZ)
+       fi
+    fi
+])
+
+#--------------------------------------------------------------------
+# SC_BUGGY_STRTOD
+#
+#      Under Solaris 2.4, strtod returns the wrong value for the
+#      terminating character under some conditions.  Check for this
+#      and if the problem exists use a substitute procedure
+#      "fixstrtod" (provided by Tcl) that corrects the error.
+#
+# Arguments:
+#      none
+#      
+# Results:
+#
+#      Might defines some of the following vars:
+#              strtod (=fixstrtod)
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_BUGGY_STRTOD, [
+    AC_CHECK_FUNC(strtod, tk_strtod=1, tk_strtod=0)
+    if test "$tk_strtod" = 1; then
+       AC_MSG_CHECKING([for Solaris 2.4 strtod bug])
+       AC_TRY_RUN([
+           extern double strtod();
+           int main()
+           {
+               char *string = "NaN";
+               char *term;
+               strtod(string, &term);
+               if ((term != string) && (term[-1] == 0)) {
+                   exit(1);
+               }
+               exit(0);
+           }], tk_ok=1, tk_ok=0, tk_ok=0)
+       if test "$tk_ok" = 1; then
+           AC_MSG_RESULT(ok)
+       else
+           AC_MSG_RESULT(buggy)
+           AC_DEFINE(strtod, fixstrtod)
+       fi
+    fi
+])
+
+#--------------------------------------------------------------------
+# SC_TCL_LINK_LIBS
+#
+#      Search for the libraries needed to link the Tcl shell.
+#      Things like the math library (-lm) and socket stuff (-lsocket vs.
+#      -lnsl) are dealt with here.
+#
+# Arguments:
+#      Requires the following vars to be set in the Makefile:
+#              DL_LIBS
+#              LIBS
+#              MATH_LIBS
+#      
+# Results:
+#
+#      Subst's the following var:
+#              TCL_LIBS
+#              MATH_LIBS
+#
+#      Might append to the following vars:
+#              LIBS
+#
+#      Might define the following vars:
+#              HAVE_NET_ERRNO_H
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN(SC_TCL_LINK_LIBS, [
+    #--------------------------------------------------------------------
+    # On a few very rare systems, all of the libm.a stuff is
+    # already in libc.a.  Set compiler flags accordingly.
+    # Also, Linux requires the "ieee" library for math to work
+    # right (and it must appear before "-lm").
+    #--------------------------------------------------------------------
+
+    AC_CHECK_FUNC(sin, MATH_LIBS="", MATH_LIBS="-lm")
+    AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"])
+
+    #--------------------------------------------------------------------
+    # On AIX systems, libbsd.a has to be linked in to support
+    # non-blocking file IO.  This library has to be linked in after
+    # the MATH_LIBS or it breaks the pow() function.  The way to
+    # insure proper sequencing, is to add it to the tail of MATH_LIBS.
+    # This library also supplies gettimeofday.
+    #--------------------------------------------------------------------
+
+    libbsd=no
+    if test "`uname -s`" = "AIX" ; then
+       AC_CHECK_LIB(bsd, gettimeofday, libbsd=yes)
+       if test $libbsd = yes; then
+           MATH_LIBS="$MATH_LIBS -lbsd"
+       fi
+    fi
+
+
+    #--------------------------------------------------------------------
+    # Interactive UNIX requires -linet instead of -lsocket, plus it
+    # needs net/errno.h to define the socket-related error codes.
+    #--------------------------------------------------------------------
+
+    AC_CHECK_LIB(inet, main, [LIBS="$LIBS -linet"])
+    AC_CHECK_HEADER(net/errno.h, AC_DEFINE(HAVE_NET_ERRNO_H))
+
+    #--------------------------------------------------------------------
+    #  Check for the existence of the -lsocket and -lnsl libraries.
+    #  The order here is important, so that they end up in the right
+    #  order in the command line generated by make.  Here are some
+    #  special considerations:
+    #  1. Use "connect" and "accept" to check for -lsocket, and
+    #     "gethostbyname" to check for -lnsl.
+    #  2. Use each function name only once:  can't redo a check because
+    #     autoconf caches the results of the last check and won't redo it.
+    #  3. Use -lnsl and -lsocket only if they supply procedures that
+    #     aren't already present in the normal libraries.  This is because
+    #     IRIX 5.2 has libraries, but they aren't needed and they're
+    #     bogus:  they goof up name resolution if used.
+    #  4. On some SVR4 systems, can't use -lsocket without -lnsl too.
+    #     To get around this problem, check for both libraries together
+    #     if -lsocket doesn't work by itself.
+    #--------------------------------------------------------------------
+
+    tcl_checkBoth=0
+    AC_CHECK_FUNC(connect, tcl_checkSocket=0, tcl_checkSocket=1)
+    if test "$tcl_checkSocket" = 1; then
+       AC_CHECK_LIB(socket, main, LIBS="$LIBS -lsocket", tcl_checkBoth=1)
+    fi
+    if test "$tcl_checkBoth" = 1; then
+       tk_oldLibs=$LIBS
+       LIBS="$LIBS -lsocket -lnsl"
+       AC_CHECK_FUNC(accept, tcl_checkNsl=0, [LIBS=$tk_oldLibs])
+    fi
+    AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, main,
+           [LIBS="$LIBS -lnsl"]))
+    
+    # Don't perform the eval of the libraries here because DL_LIBS
+    # won't be set until we call SC_CONFIG_CFLAGS
+
+    TCL_LIBS='${DL_LIBS} ${LIBS} ${MATH_LIBS}'
+    AC_SUBST(TCL_LIBS)
+    AC_SUBST(MATH_LIBS)
+])
+
+#------------------------------------------------------------------------
+# SC_MAKE_LIB --
+#
+#      Generate a line that can be used to build a shared/unshared library
+#      in a platform independent manner.
+#
+# Arguments:
+#      none
+#
+#      Requires:
+#
+# Results:
+#
+#      Defines the following vars:
+#              MAKE_LIB        Makefile rule for building a library
+#              MAKE_SHARED_LIB Makefile rule for building a shared library
+#              MAKE_UNSHARED_LIB       Makefile rule for building a static
+#                              library
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_MAKE_LIB, [
+    case "`uname -s`" in
+       *win32* | *WIN32* | *CYGWIN_NT* |*CYGWIN_98*|*CYGWIN_95*)
+           if test "${CC-cc}" = "cl"; then
+               MAKE_STATIC_LIB="\${STLIB_LD} -out:\[$]@ \$(\[$]@_OBJECTS) "
+               MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LDFLAGS} \${SHLIB_LD_LIBS} \$(LDFLAGS) -out:\[$]@ \$(\[$]@_OBJECTS) "
+           fi
+           ;;
+       *)
+           MAKE_STATIC_LIB="\${STLIB_LD} \[$]@ \$(\[$]@_OBJECTS)"
+           MAKE_SHARED_LIB="\${SHLIB_LD} -o \[$]@ \$(\[$]@_OBJECTS) \${SHLIB_LDFLAGS} \${SHLIB_LD_LIBS}"
+           ;;
+    esac
+
+    if test "${SHARED_BUILD}" = "1" ; then
+       MAKE_LIB=${MAKE_SHARED_LIB}
+    else
+       MAKE_LIB=${MAKE_STATIC_LIB}
+    fi
+
+    AC_SUBST(MAKE_LIB)
+    AC_SUBST(MAKE_SHARED_LIB)
+    AC_SUBST(MAKE_STATIC_LIB)
+])
+
+#------------------------------------------------------------------------
+# SC_LIB_SPEC --
+#
+#      Compute the name of an existing object library located in libdir
+#      from the given base name and produce the appropriate linker flags.
+#
+# Arguments:
+#      basename        The base name of the library without version
+#                      numbers, extensions, or "lib" prefixes.
+#      extra_dir       Extra directory in which to search for the
+#                      library.  This location is used first, then
+#                      $prefix/$exec-prefix, then some defaults.
+#
+# Requires:
+#      CYGPATH         command used to generate native style paths
+#
+# Results:
+#
+#      Defines the following vars:
+#              ${basename}_LIB_NAME    The computed library name.
+#              ${basename}_LIB_SPEC    The computed linker flags.
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_LIB_SPEC, [
+    AC_MSG_CHECKING(for $1 library)
+
+    # Look in exec-prefix and prefix for the library.  If neither of
+    # these were specified, look in libdir.  It doesn't matter if libdir
+    # wasn't specified since a search in the unspecified directory will
+    # fail (NONE/lib)
+
+    if test x"${exec_prefix}" != x"NONE" ; then
+       sc_lib_name_dir="${exec_prefix}/lib"
+    elif test x"${prefix}" != "NONE" ; then
+       sc_lib_name_dir="${prefix}/lib"
+    else
+       eval "sc_lib_name_dir=${libdir}"
+    fi
+
+    if test x"$2" != x ; then
+       sc_extra_lib_dir=$2
+    else
+       sc_extra_lib_dir=NONE
+    fi
+
+    for i in \
+           `ls -dr ${sc_extra_lib_dir}/$1[[0-9]]*.lib 2>/dev/null ` \
+           `ls -dr ${sc_extra_lib_dir}/lib$1[[0-9]]* 2>/dev/null ` \
+           `ls -dr ${sc_lib_name_dir}/$1[[0-9]]*.lib 2>/dev/null ` \
+           `ls -dr ${sc_lib_name_dir}/lib$1[[0-9]]* 2>/dev/null ` \
+           `ls -dr /usr/lib/$1[[0-9]]*.lib 2>/dev/null ` \
+           `ls -dr /usr/lib/lib$1[[0-9]]* 2>/dev/null ` \
+           `ls -dr /usr/local/lib/$1[[0-9]]*.lib 2>/dev/null ` \
+           `ls -dr /usr/local/lib/lib$1[[0-9]]* 2>/dev/null ` ; do
+       if test -f "$i" ; then
+
+           sc_lib_name_dir=`dirname $i`
+           $1_LIB_NAME=`basename $i`
+           $1_LIB_PATH_NAME=$i
+           break
+       fi
+    done
+
+    case "`uname -s`" in
+       *win32* | *WIN32* | *CYGWIN_NT* |*CYGWIN_98*|*CYGWIN_95*)
+           $1_LIB_SPEC=\"`${CYGPATH} ${$1_LIB_PATH_NAME}`\"
+           ;;
+       *)
+           # Strip off the leading "lib" and trailing ".a" or ".so"
+
+           sc_lib_name_lib=`echo ${$1_LIB_NAME}|sed -e 's/^lib//' -e 's/\.[[^.]]*$//'`
+           $1_LIB_SPEC="-L${sc_lib_name_dir} -l${sc_lib_name_lib}"
+           ;;
+    esac
+    if test "x$1_LIB_NAME" = x ; then
+       AC_MSG_ERROR(not found)
+    else
+       AC_MSG_RESULT(${$1_LIB_SPEC})
+    fi
+])
+
+#------------------------------------------------------------------------
+# SC_PRIVATE_TCL_HEADERS --
+#
+#      Locate the private Tcl include files
+#
+# Arguments:
+#
+#      Requires:
+#              TCL_SRC_DIR     Assumes that SC_LOAD_TCLCONFIG has
+#                               already been called.
+#
+# Results:
+#
+#      Substs the following vars:
+#              TCL_TOP_DIR_NATIVE
+#              TCL_GENERIC_DIR_NATIVE
+#              TCL_UNIX_DIR_NATIVE
+#              TCL_WIN_DIR_NATIVE
+#              TCL_BMAP_DIR_NATIVE
+#              TCL_TOOL_DIR_NATIVE
+#              TCL_PLATFORM_DIR_NATIVE
+#              TCL_BIN_DIR_NATIVE
+#              TCL_INCLUDES
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_PRIVATE_TCL_HEADERS, [
+    AC_MSG_CHECKING(for Tcl private include files)
+
+    case "`uname -s`" in
+       *win32* | *WIN32* | *CYGWIN_NT* |*CYGWIN_98*|*CYGWIN_95*)
+           TCL_TOP_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}`\"
+           TCL_GENERIC_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/generic`\"
+           TCL_UNIX_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/unix`\"
+           TCL_WIN_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/win`\"
+           TCL_BMAP_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/bitmaps`\"
+           TCL_TOOL_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/tools`\"
+           TCL_COMPAT_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/compat`\"
+           TCL_PLATFORM_DIR_NATIVE=${TCL_WIN_DIR_NATIVE}
+       ;;
+       *)
+           TCL_TOP_DIR_NATIVE='$(TCL_SRC_DIR)'
+           TCL_GENERIC_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/generic'
+           TCL_UNIX_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/unix'
+           TCL_WIN_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/win'
+           TCL_BMAP_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/bitmaps'
+           TCL_TOOL_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/tools'
+           TCL_COMPAT_DIR_NATIVE='$(TCL_TOP_DIR_NATIVE)/compat'
+           TCL_PLATFORM_DIR_NATIVE=${TCL_UNIX_DIR_NATIVE}
+       ;;
+    esac
+
+    AC_SUBST(TCL_TOP_DIR_NATIVE)
+    AC_SUBST(TCL_GENERIC_DIR_NATIVE)
+    AC_SUBST(TCL_UNIX_DIR_NATIVE)
+    AC_SUBST(TCL_WIN_DIR_NATIVE)
+    AC_SUBST(TCL_BMAP_DIR_NATIVE)
+    AC_SUBST(TCL_TOOL_DIR_NATIVE)
+    AC_SUBST(TCL_PLATFORM_DIR_NATIVE)
+
+    TCL_INCLUDES="-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}"
+    AC_SUBST(TCL_INCLUDES)
+    AC_MSG_RESULT(Using srcdir found in tclConfig.sh: ${TCL_SRC_DIR})
+])
+
+#------------------------------------------------------------------------
+# SC_PUBLIC_TCL_HEADERS --
+#
+#      Locate the installed public Tcl header files
+#
+# Arguments:
+#      None.
+#
+# Requires:
+#      CYGPATH must be set
+#
+# Results:
+#
+#      Adds a --with-tclinclude switch to configure.
+#      Result is cached.
+#
+#      Substs the following vars:
+#              TCL_INCLUDES
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_PUBLIC_TCL_HEADERS, [
+    AC_MSG_CHECKING(for Tcl public headers)
+
+    AC_ARG_WITH(tclinclude, [ --with-tclinclude      directory containing the public Tcl header files.], with_tclinclude=${withval})
+
+    if test x"${with_tclinclude}" != x ; then
+       if test -f "${with_tclinclude}/tcl.h" ; then
+           ac_cv_c_tclh=${with_tclinclude}
+       else
+           AC_MSG_ERROR([${with_tclinclude} directory does not contain Tcl public header file tcl.h])
+       fi
+    else
+       AC_CACHE_VAL(ac_cv_c_tclh, [
+           # Use the value from --with-tclinclude, if it was given
+
+           if test x"${with_tclinclude}" != x ; then
+               ac_cv_c_tclh=${with_tclinclude}
+           else
+               # Check in the includedir, if --prefix was specified
+
+               eval "temp_includedir=${includedir}"
+               for i in \
+                       `ls -d ${temp_includedir} 2>/dev/null` \
+                       /usr/local/include /usr/include ; do
+                   if test -f "$i/tcl.h" ; then
+                       ac_cv_c_tclh=$i
+                       break
+                   fi
+               done
+           fi
+       ])
+    fi
+
+    # Print a message based on how we determined the include path
+
+    if test x"${ac_cv_c_tclh}" = x ; then
+       AC_MSG_ERROR(tcl.h not found.  Please specify its location with --with-tclinclude)
+    else
+       AC_MSG_RESULT(${ac_cv_c_tclh})
+    fi
+
+    # Convert to a native path and substitute into the output files.
+
+    INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tclh}`
+
+    TCL_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\"
+
+    AC_SUBST(TCL_INCLUDES)
+])
+
+#------------------------------------------------------------------------
+# SC_PRIVATE_TK_HEADERS --
+#
+#      Locate the private Tk include files
+#
+# Arguments:
+#
+#      Requires:
+#              TK_SRC_DIR      Assumes that SC_LOAD_TKCONFIG has
+#                               already been called.
+#
+# Results:
+#
+#      Substs the following vars:
+#              TK_INCLUDES
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_PRIVATE_TK_HEADERS, [
+    AC_MSG_CHECKING(for Tk private include files)
+
+    case "`uname -s`" in
+       *win32* | *WIN32* | *CYGWIN_NT* |*CYGWIN_98*|*CYGWIN_95*)
+           TK_UNIX_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/unix`\"
+           TK_WIN_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/win`\"
+           TK_GENERIC_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/generic`\"
+           TK_XLIB_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/xlib`\"
+           TK_PLATFORM_DIR_NATIVE=${TK_WIN_DIR_NATIVE}
+
+           TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE} -I${TK_XLIB_DIR_NATIVE}"
+       ;;
+       *)
+           TK_GENERIC_DIR_NATIVE='$(TK_TOP_DIR_NATIVE)/generic'
+           TK_UNIX_DIR_NATIVE='$(TK_TOP_DIR_NATIVE)/unix'
+           TK_WIN_DIR_NATIVE='$(TK_TOP_DIR_NATIVE)/win'
+           TK_PLATFORM_DIR_NATIVE=${TK_UNIX_DIR_NATIVE}
+
+           TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE}"
+       ;;
+    esac
+
+    AC_SUBST(TK_UNIX_DIR_NATIVE)
+    AC_SUBST(TK_WIN_DIR_NATIVE)
+    AC_SUBST(TK_GENERIC_DIR_NATIVE)
+    AC_SUBST(TK_XLIB_DIR_NATIVE)
+    AC_SUBST(TK_PLATFORM_DIR_NATIVE)
+
+    AC_SUBST(TK_INCLUDES)
+    AC_MSG_RESULT(Using srcdir found in tkConfig.sh)
+])
+
+#------------------------------------------------------------------------
+# SC_PUBLIC_TK_HEADERS --
+#
+#      Locate the installed public Tk header files
+#
+# Arguments:
+#      None.
+#
+# Requires:
+#      CYGPATH must be set
+#
+# Results:
+#
+#      Adds a --with-tkinclude switch to configure.
+#      Result is cached.
+#
+#      Substs the following vars:
+#              TK_INCLUDES
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_PUBLIC_TK_HEADERS, [
+    AC_MSG_CHECKING(for Tk public headers)
+
+    AC_ARG_WITH(tkinclude, [ --with-tkinclude      directory containing the public Tk header files.], with_tkinclude=${withval})
+
+    if test x"${with_tkinclude}" != x ; then
+       if test -f "${with_tkinclude}/tk.h" ; then
+           ac_cv_c_tkh=${with_tkinclude}
+       else
+           AC_MSG_ERROR([${with_tkinclude} directory does not contain Tk public header file tk.h])
+       fi
+    else
+       AC_CACHE_VAL(ac_cv_c_tkh, [
+           # Use the value from --with-tkinclude, if it was given
+
+           if test x"${with_tkinclude}" != x ; then
+               ac_cv_c_tkh=${with_tkinclude}
+           else
+               # Check in the includedir, if --prefix was specified
+
+               eval "temp_includedir=${includedir}"
+               for i in \
+                       `ls -d ${temp_includedir} 2>/dev/null` \
+                       /usr/local/include /usr/include ; do
+                   if test -f "$i/tk.h" ; then
+                       ac_cv_c_tkh=$i
+                       break
+                   fi
+               done
+           fi
+       ])
+    fi
+
+    # Print a message based on how we determined the include path
+
+    if test x"${ac_cv_c_tkh}" = x ; then
+       AC_MSG_ERROR(tk.h not found.  Please specify its location with --with-tkinclude)
+    else
+       AC_MSG_RESULT(${ac_cv_c_tkh})
+    fi
+
+    # Convert to a native path and substitute into the output files.
+
+    INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tkh}`
+
+    TK_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\"
+
+    AC_SUBST(TK_INCLUDES)
+])
+
+#------------------------------------------------------------------------
+# SC_SIMPLE_EXEEXT
+#      Select the executable extension based on the host type.  This
+#      is a lightweight replacement for AC_EXEEXT that doesn't require
+#      a compiler.
+#
+# Arguments
+#      none
+#
+# Results
+#      Subst's the following values:
+#              EXEEXT
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_SIMPLE_EXEEXT, [
+    AC_MSG_CHECKING(executable extension based on host type)
+
+    case "`uname -s`" in
+       *win32* | *WIN32* | *CYGWIN_NT* |*CYGWIN_98*|*CYGWIN_95*)
+           EXEEXT=".exe"
+       ;;
+       *)
+           EXEEXT=""
+       ;;
+    esac
+
+    AC_MSG_RESULT(${EXEEXT})
+    AC_SUBST(EXEEXT)
+])
+
+#------------------------------------------------------------------------
+# SC_PROG_TCLSH
+#      Locate a tclsh shell in the following directories:
+#              ${exec_prefix}/bin
+#              ${prefix}/bin
+#              ${TCL_BIN_DIR}
+#              ${TCL_BIN_DIR}/../bin
+#              ${PATH}
+#
+# Arguments
+#      none
+#
+# Results
+#      Subst's the following values:
+#              TCLSH_PROG
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_PROG_TCLSH, [
+    AC_MSG_CHECKING([for tclsh])
+
+    AC_CACHE_VAL(ac_cv_path_tclsh, [
+       search_path=`echo ${exec_prefix}/bin:${prefix}/bin:${TCL_BIN_DIR}:${TCL_BIN_DIR}/../bin:${PATH} | sed -e 's/:/ /g'`
+       for dir in $search_path ; do
+           for j in `ls -r $dir/tclsh[[8-9]]*${EXEEXT} 2> /dev/null` \
+                   `ls -r $dir/tclsh*${EXEEXT} 2> /dev/null` ; do
+               if test x"$ac_cv_path_tclsh" = x ; then
+                   if test -f "$j" ; then
+                       ac_cv_path_tclsh=$j
+                       break
+                   fi
+               fi
+           done
+       done
+    ])
+
+    if test -f "$ac_cv_path_tclsh" ; then
+       TCLSH_PROG=$ac_cv_path_tclsh
+       AC_MSG_RESULT($TCLSH_PROG)
+    else
+       AC_MSG_ERROR(No tclsh found in PATH:  $search_path)
+    fi
+    AC_SUBST(TCLSH_PROG)
+])
+
+#------------------------------------------------------------------------
+# SC_PROG_WISH
+#      Locate a wish shell in the following directories:
+#              ${exec_prefix}/bin
+#              ${prefix}/bin
+#              ${TCL_BIN_DIR}
+#              ${TCL_BIN_DIR}/../bin
+#              ${PATH}
+#
+# Arguments
+#      none
+#
+# Results
+#      Subst's the following values:
+#              WISH_PROG
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_PROG_WISH, [
+    AC_MSG_CHECKING([for wish])
+
+    AC_CACHE_VAL(ac_cv_path_wish, [
+       search_path=`echo ${exec_prefix}/bin:${prefix}/bin:${TCL_BIN_DIR}:${TCL_BIN_DIR}/../bin:${PATH} | sed -e 's/:/ /g'`
+       for dir in $search_path ; do
+           for j in `ls -r $dir/wish[[8-9]]*${EXEEXT} 2> /dev/null` \
+                   `ls -r $dir/wish*${EXEEXT} 2> /dev/null` ; do
+               if test x"$ac_cv_path_wish" = x ; then
+                   if test -f "$j" ; then
+                       ac_cv_path_wish=$j
+                       break
+                   fi
+               fi
+           done
+       done
+    ])
+
+    if test -f "$ac_cv_path_wish" ; then
+       WISH_PROG=$ac_cv_path_wish
+       AC_MSG_RESULT($WISH_PROG)
+    else
+       AC_MSG_ERROR(No wish found in PATH:  $search_path)
+    fi
+    AC_SUBST(WISH_PROG)
+])
+