# ticket

tkt_uuid: 406411ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 46. Unix Fonts
priority: 8
foundin: None
resolution: Fixed
title: Fix for iso10646 fonts in Unix.
comment:
  The test for "isTwoByteFont" in tkUnixFont.c was
  incorrect, leading to the wrong interpretation of the
  iso10646 unicode fonts.  The mappaing from that
  character set to the "unicode" encoding was also
  missing.  A good unicode font set is available at
  http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz


tkt_uuid: 3613977fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 03. [*button] and [label]
priority: 3 Low
foundin: current: 8.6.0
resolution: None
title: Tk radiobutton missing an option
comment:
  Hi all,

  When radiobuttons are configured with -indicatoron false, the background color can be configured
  with -selectcolor, but there is no way to configure the foreground color, in the selected case.


tkt_uuid: 220099ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: -- New Widgets
priority: 1 Zero
foundin: None
resolution: Invalid
title: balloon help widget
comment:
  OriginalBugID: 549 RFE
  Version: 8.1a2
  SubmitDate: '1998-03-18'
  LastModified: '1999-08-14'
  Severity: LOW
  Status: Closed
  Submitter: hershey
  ChangedBy: hobbs
  RelatedBugIDs: 2212
  OS: All
  OSVersion: NA
  Machine: NA
  FixedInVersion: NA
  ClosedDate: '1999-08-14'


  I was just thinking the other day that it would be nice if Tcl/Tk had a
  better API for balloon help since it is such an industry accepted paradigm.
  My thought was to make a -balloon method for all the objects in the Tk
  model.  In addition to the balloon method, we could set a Tk variable like
  tk_balloon to true for balloon help to be turned on, and false for off.
  The following demonstrates the concept:

  # Turn on balloon help for the application
  set tk_balloon 1

  # Create a button with balloon help
  button .b -Text "Exit" -balloon "Click to exit the application" -command
  exit

  Perhaps tcl8.1 can implement a standard look and feel for balloon help and
  make it part of the core using the above concept.  This would make all tcl
  apps have the same popup for ballon help and make it easier for app
  developers to implement balloon help on/off.

  Wes Bailey
  tkWorld Project Leader
  http://www.phys.ksu.edu/~bailey/tkWorld.html

  After some consideration, it was determined that balloon help is
  probably better done without requiring a -balloon option, so that
  widget extensions that don't support can tie into a more general
  Tcl based system.  Several good ones already exist.  We may consider
  including one as a contributed package. 
  -- 08/14/1999 hobbs


tkt_uuid: 458002ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 74. Application Embedding
priority: 1 Zero
foundin: obsolete: 8.4a3
resolution: Works For Me
title: Tk library & external dependences
comment:
  Imagine the following usage scenario:

  In an application you want to embed Tcl/Tk. Due to various installation
  reasons, you don't want to provide new binaries with each tcl/tk update,
  but give the user the freedom to use any tcl/tk version he wishes, without
  the need to also update the app.

  The only solution to this, is to load and initialise tcl/tk dynamically,
  at run time, without linking with either the tcl or tk library during the
  compilation of the app.
  The app can use LoadLibrary or dlopen (or what ever else) in order to
  load the tcl library into the app and initialise tcl. This is feasible
  without any problem.
  Doing the same with the tk library is not possible, as the tk library,
  at least under unix, has dependences over the tcl lib, mainly regarding
  the symbol tclStubPtr. Runing ldd on my solaris system with 8.4a3 gives:

  ldd -d libtk8.4.so
          libsocket.so.1 =>        /usr/lib/libsocket.so.1
          libnsl.so.1 =>   /usr/lib/libnsl.so.1
          libX11.so.4 =>   /usr/lib/libX11.so.4
          libdl.so.1 =>    /usr/lib/libdl.so.1
          libm.so.1 =>     /usr/lib/libm.so.1
          libc.so.1 =>     /usr/lib/libc.so.1
          libmp.so.2 =>    /usr/lib/libmp.so.2
          libXext.so.0 =>  /usr/lib/libXext.so.0
          libdga.so.1 =>   /usr/openwin/lib/libdga.so.1
          symbol not found: Tcl_Free              (./libtk8.4.so)
          symbol not found: tclStubsPtr           (./libtk8.4.so)
          /usr/platform/SUNW,Ultra-4/lib/libc_psr.so.1

  Although tk uses stubs and initialises them in Tk_Init,
  it seems that tk library requires an external tclStubsPtr, from the
  tcl library.
  What's odd is that tclStubsPtr is really in
  tclstub8.4.a which libtk was linked with and should NOT be referred to over in
  libtcl.  Stubs was supposed to make all that blind and not have any load-time
  dependencies.

  This bug is originated by a post in comp.lang.tcl,
  (http://groups.google.com/groups?hl=en&safe=off&threadm=3B8DE6E3.3B588DA%40iit.demokritos.
  gr&rnum=1&prev=/groups%3Fq%3D%2B%2B%2B%2B%2B%2B%2B%2B%2BDynamic%2BLoad%2B
  of%2BTk%2Bfails%252C%2BUndefined%2BSymbol%2BtclStubsPtr%26meta%3Dsite%253Dgroups)

  or search groups.google.com for "Dynamic Load of Tk fails, Undefined Symbol tclStubsPtr"

  A workarround reported in this group is:
  " realized that when imbedding Tcl and Tk into another application, and 
  dynamically loading their libraries (to avoid a version dependency), on 
  Linux I needed to use the RTLD_GLOBAL flag on the dlopen so the Tcl 
  symbols would ba accessable to the Tk library." - David Liebtag

  Under windows the bug does not seem to exist, although the actual
  code that loaded the library was not posted. Perhaps it included such a 
  workarround?


tkt_uuid: 224066ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 39. Image Basics
priority: 9 Immediate
foundin: None
resolution: Out of Date
title: Tk_PhotoPutBlock speed improvement (w/ patch)
comment:
  Tk_PhotoPutBlock is pretty slow on non-32bit displays.  This is an issue for any program that uses images; but especially bad for those that do dynamic image creation (e.g., animation, interactive graphics, etc).

  I've tweaked the dithering routine for slightly better speed.  Dithering defaults to on (configure with "-dither 1"); but can also be disabled on a per-image basis ("-dither 0").  On 16 bit displays, dithering provides only a marginal visual improvement; while on 8-bit displays, a program may wish to disable dithering so, e.g., their toolbars look better.

  On my AMD K6-3 400/Riva 128/XF86 3.3.5/Linux 2.4.0-test10, the framerate for 640x480 image update/redisplays are:
  <table>
  <tr>
  <td>Framerate</td><b><td>32 bit</td><td>16 bit</td><td>8 bit</td></b>
  </tr><tr>
  <td>Unmodified:</td><td>6.16</td><td>3.32</td><td>4.24</td>
  </tr><tr>
  <td>Modified, "-dither 1"</td><td>6.98</td><td>4.89</td><td>5.56</td>
  </tr><tr>
  <td>Modified, "-dither 0"</td><td>7.09</td><td>11.50</td><td>15.92</td>
  </tr>
  </table>

  generic/tkImgPhoto.c is the only modified source file.  DitherInstance is completely reorganized (moved slow central switch statement outside inner loop using function pointers).  The changes have been extensively tested under Linux in 32, 16, and 8-bit mode (greyscale and pseudocolor); other platforms/depths should work but have not been tested.  A patch against the CVS 11/27/2000 version is available at: 
      <a href="http://charm.cs.uiuc.edu/users/olawlor/tmp/tkImgPhoto.patch">
  http://charm.cs.uiuc.edu/users/olawlor/tmp/tkImgPhoto.patch</a>


  tests/imgPhoto.test is slightly changed for the "-dither" configuration option.  The (trivial) patch is:
  *** imgPhoto.test.orig  Fri Dec  1 13:17:23 2000
  --- imgPhoto.test       Fri Dec  1 13:00:12 2000
  ***************
  *** 149,153 ****
    test imgPhoto-4.6 {ImgPhotoCmd procedure: configure option} {
        llength [p1 configure]
  ! } {7}
    test imgPhoto-4.7 {ImgPhotoCmd procedure: configure option} {
   
       p1 conf -palette 3/4/2
  --- 149,153 ----
    test imgPhoto-4.6 {ImgPhotoCmd procedure: configure option} {
        llength [p1 configure]
  ! } {8}
    test imgPhoto-4.7 {ImgPhotoCmd procedure: configure option} {
        p1 conf -palette 3/4/2


  Orion Sky Lawlor, olawlor@acm.org.


tkt_uuid: 219983ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 83. Mac OS X Build
priority: 1 Zero
foundin: obsolete: 8.1a2
resolution: Duplicate
title: wish8.1a2 doesn't run on MacOS 7.5.3
comment:
  OriginalBugID: 2056 Bug
  Version: 8.1a2
  SubmitDate: '1999-05-12'
  LastModified: '1999-09-16'
  Severity: CRIT
  Status: Closed
  Submitter: pat
  ChangedBy: hobbs
  RelatedBugIDs: 2051
  OS: Macintosh
  OSVersion: 7.5.3 rev 2
  Machine: Power PC
  ClosedDate: '1999-09-16'


  Name:
  David Laur

  Extensions:
  none

  CustomShell:
  none

  Comments:
  I'm really just looking for a version of tcl/tk for the mac which
      supports
      the "socket" command.

  ReproducibleScript:
  My system is an Apple PowerBook 520 (68k system, running 7.5.3),
      downloaded the tcl/tk binary release for the Mac,
      installed it,
      double-click the Wish 8.1a2 icon

  ObservedBehavior:
  wish fails to launch, instead the following "stop" dialog appears:
      
      The application "Wish 8.1a2" could not be opened because
      "ObjectSupportLib" could not be found.

  DesiredBehavior:
  tcl/tk shouldn't be looking for ObjectSupportLib on non-PowerPC systems.
      The apple tech info site
      (http://til.info.apple.com/techinfo.nsf/artnum/n56890)
      says "ObjectSupportLib: A library developers use to support AppleScript
      on
      PowerPC-based computers."  See also http://kb.indiana.edu/data/aczd.html


tkt_uuid: 219898ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 65. Generic Window Operations
priority: 1 Zero
foundin: obsolete: 8.0p2
resolution: Duplicate
title: Bug in "wm transient"
comment:
  OriginalBugID: 642 Bug
  Version: 8.0p2
  SubmitDate: '1998-05-25'
  LastModified: '1998-06-04'
  Severity: MED
  Status: Closed
  Submitter: stanton
  ChangedBy: stanton
  OS: All Windows
  OSVersion: NA
  Machine: NA
  FixedDate: '2000-10-31'
  FixedInVersion: NA
  ClosedDate: '1998-06-04'


  I think I have found a bug in the "wm transient" command.
  Try the following:

     toplevel .t
     wm withdraw .t
     wm transient .t .

  The "wm transient" command causes the toplevel to be mapped !

  The culprit seems to be a line of code in tkWInWm.c that
  handles the "wm transient" command:

  line 2056:
          /*
          * Ensure that the transient window is either mapped or 
          * unmapped like its master.
          */

          TkpWmSetState(winPtr, NormalState);

  Commenting this out seems to stop the unwanted mapping and doesn't
  have any bad side-effects as far as I can see.
  ---
  Mark Gammon                                  Tel: int+44 (0) 1223 237111
  Principal Applications Engineer              Fax: int+44 (0) 1223 234192
  FEGS Ltd, Oakington House                    e-mail: m.gammon@fegs.co.uk
  Oakington, Cambridge CB4 5AF                 web:  http://www.fegs.co.uk
  England

  This is a duplicate of bug 30.


tkt_uuid: 544565ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 04. Canvas Basics
priority: 5 Medium
foundin: obsolete: 8.4a4
resolution: Invalid
title: Bug in grid or canvas...
comment:
  Hi all,

  My application started looking differently since around 15 Oct 2001,

  The affected item is a canvas widget that contains a tree whose nodes 
  are frames (windows) that contain 2 checkboxes and a label.
  This canvas is contained inside a frame along with 2 scrolbars,
  using the grid manager. The way the canvas is gridded is
  used countless times in the application and in all instances
  it behaves as expected, a scrollable canvas with automatic scrollbars.
  But in this specific window, it behaves strangely and very different
  from 8.4a4 downlaoded a couple of weeks ago.

  What I see is very strange. The layout is simple:
  A frame that contains a canvas and 2 scrollbars.
  Grig is used, with canvas at col 0 row 0, vertical scrollbar
  at row 0 col 1, hor. scrollbar at row 1 col 0. All use -sticky snew.

  What I see is two vertical strips of an unknown widget (!) at the
  two vertical sides of the canvas, of approx. width of 20 pixels.
  (A screenshot can be found at
  http://www.iit.demokritos.gr/~petasis/Tcl/GridCanvasBug84a4.gif )
  These two bars have the default colour of a newly created window,
  but they do not belong either to the canvas (which is configured to
  have a white background) or to the frame (they do not change colour
  if you change the frame colour, and the frame does change colour, as it is
  visible in the square between the two scrollbars...)

  But considering the clipping that happens to the embedded windows, they
  are not clipped over these vertical bars. This means possibly that these
  bars belong to the canvas widget. But setting the focus on it, only the
  white area gets hilighted (as is visible in the picture).
  During canvas creation, I don't use any -pad?/-ipad? options.
  Scrolling the horizontal canvas, only the white area is scrolled.
  The vertical bars do not move.
  Also, the same code runs as expected (i.e. canvas filling completely the
  area) in a cvs version a couple weeks ago. In the meantime, only
  an update to the grid command has occured, regaring -uniform option.
  This is the only thing that seems relevant.

  I have run out of ideas :-) What can be wrong?

  George

  See also 
  http://groups.google.com/groups?q=comp.lang.tcl+petasis+canvas+bug&hl=el&selm=3C622A1F.E0A
  272F2%40iit.demokritos.gr&rnum=8


tkt_uuid: 900489ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: 05. Canvas Items
priority: 5 Medium
foundin: obsolete: 8.4.5
resolution: None
title: canvas, move item, pixel dust
comment:
  (this was posted in c.l.t on 2004-02-19)

  Hi Folks,

  Using the Tk-script below, if you Left-Button-Click on
  the yellow disc (then keep pressing B1), and move it,
  some pixel dust is left when you move it from
  right->left of the canvas (left to right is fine). To
  better see them, note that the slower you move the more
  dust you leave.
  Now if I tweak 'radius' from 25 to 26, it does the
  same, bit if it is set to 24, it leaves the place clean!

  Observed on:
    Tk8.4.5, WinXPhome  -> dust
    nVIDIA GeForce G05200, 64MB, 24bit
    UXGA (1600x1200), Notebook (laptop)
    P4ht Dell Inspiron 5150

    Tk8.4.4, Win2000Pro -> dust
    ATI 3D RAGE Pro, AGP2X, 4MB, 16bit
    1152x864, Desktop, PIII  

  (I don't have the driver's or other info handy right
  now but see Kevin's post added below).

  (if you minimize/maximize or raise/lower it cleans it up.)

  But:
    Tk8.4.4, SunUltra5-Gnome  -> fine!

  Here are a couple of screenshots:
   http://dire.straits.free.fr/TCLTK/bug1.jpg
   http://dire.straits.free.fr/TCLTK/bug0.jpg

  Anything I'm doing wrong?, bug?, etc.?

  Thanks,

  --Fred
  (fphenix at hotmail)


  #!/bin/sh
  # Fred \
  exec wish "$9" ${1+"$@"}

  if {[string equal $tcl_platform(platform) "windows"]} {
    console show
  }
  puts $tk_patchLevel

  proc moveit {object x y} {
    set radius 25 ;# 25,26=dust, 24=clean
    .screen coords $object [expr $x-$radius] [expr
  $y-$radius] \
                           [expr $x+$radius] [expr
  $y+$radius]
  }

  pack [canvas .screen -width 200m -height 400 -bg black \
                        -borderwidth 1]
  set myov [.screen create oval 500 50 550 100 -outline
  orange \
                                  -width 4 -fill yellow]
  .screen bind $myov <B1-Motion> {moveit $myov %x %y}

  ;#end-of-script


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

  Kevin Kenny replied:

  You're not doing anything wrong, and I get the same results
  on my Win2k box.

  These things are often sensitively dependent on the video
  configuration as well (that is, Tk sometimes tickles bugs
  in the video drivers...), so for what it's worth:

  Name            Radeon Mobility
  PNP Device ID        \
     
  PCI\VEN_1002&DEV_4C59&SUBSYS_00E31028&REV_00\4&45A7597&0&0008
  Adapter Type        \
      ATI Mobility M6 (LY), ATI Technologies Inc. compatible
  Adapter Description    Radeon Mobility
  Adapter RAM        16.00 MB (16,777,216 bytes)
  Installed Drivers    ati2dvag.dll
  Driver Version        5.13.01.3293
  INF File        oem1.inf (ati2mtag_M6 section)
  Color Planes        1
  Color Table Entries    4294967296
  Resolution        1600 x 1200 x 85 hertz
  Bits/Pixel        32

  Log it at SourceForge
  (http://www.sourceforge.net/projects/tktoolkit/),
  please?
  -- 
  73 de ke9tv/2, Kevin 


tkt_uuid: 649209ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 5 Medium
foundin: obsolete: 8.4.1
resolution: None
title: tkinter based applications crash
comment:
  [ This was first submitted to the Debian Bug Tracking
  system, see http://bugs.debian.org/171353 for the
  original report]

  tkinter is the tk support module for python.

  The setup is a Debian GNU/Linux system (unstable) with
  glibc-2.3.1, tcl/tk-8.4.1 configured with
  --enable-threads and python configured with
  --enable-threads as well.

  After the change to build python with tk8.4.1 instead
  of tk8.3, many tkinter based applications crash. One of
  them is

  pydoc -g

  same behaviour with python versions 2.1, 2.2

  I don't include the stack trace here, it looks awfully
  in the SF bug tracking ... please see
  http://bugs.debian.org/171353

  One of the python developers gave the following analysis:

  The problem appears to be Tcl's use of thread-local
  data. TkGetDisplay is implemented as

  TkDisplay *
  TkGetDisplay(display)
       Display *display;          /* X's display pointer */
  {
      TkDisplay *dispPtr;
      ThreadSpecificData *tsdPtr = (ThreadSpecificData *) 
              Tcl_GetThreadData(&dataKey,
  sizeof(ThreadSpecificData));

      for (dispPtr = tsdPtr->displayList; dispPtr != NULL;
      dispPtr = dispPtr->nextPtr) {
  if (dispPtr->display == display) {
      break;
  }
      }
      return dispPtr;
  }

  If Tcl sees a call in a new thread "coming out of
  nowhere", then Tcl_GetThreadData will find that there
  are no thread-local data for this thread. It will
  allocate an amount of memory and zero-initialize it.
  Then, displayList for that thread will be NULL, and the
  function will be NULL.

  NULL is a documented return value for TkGetDisplay, but
  apparently, Tk_FreeGC does not expect to get NULL, and
  crashes.

  I'm not sure how this is supposed to work. To me, the
  notion of the TkDisplay being thread-local sounds
  inherently broken: In this case, it means that you
  can't free a GC in one thread that you have allocated
  in another. So I would conclude this to be a bug in Tk.


tkt_uuid: 742852ffffffffffffffffffffffffffffffffff
type: Patch
status: Open
subsystem: 81. Portability
priority: 5 Medium
foundin: None
resolution: None
title: Tk 8.4 head Windows/CE port patch
comment:
  Attached is a full patch that adds support for 
  Windows/CE to Tcl. It is based off Rainer Keuchel's 
  original port and requires his celib for building.

  Known issues:
   * [X] in the corner doesn't close app
   * Menus don't work correctly
   * Scrollbar always scrolls to end

  The sources are set up in such that they coexist in the 
  regular win/ subdir, you just configure like so: 

  $ /cygdrive/z/cvs/tk/tk8.4ce/win/configure \
  --prefix=C:/build/inst/tclce \
  --enable-wince=300,ARM \
  --with-celib=/cygdrive/z/src/celib-palm-3.0 \
  --with-tcl=../tcl84ce

  Also, they require changes to the default celib devel stuff 
  from Rainer Keuchel (http://www.rainer-
  keuchel.de/software.html - thanks for the porting library
  Rainer!), in order to be more WinCE3.0 compliant. I also 
  want to fix the known issues (at least the first two) 
  before creating a mega-patch for others to test from 
  source. 

  The changes necessary for TEA extensions are already 
  commited to the sampleextension source base. I've 
  compiled and tested the sampleextension and tktable 
  successfully. Porting of extensions to WinCE3.0 should 
  be rather easy.


tkt_uuid: 720350ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 04. Canvas Basics
priority: 5 Medium
foundin: obsolete: 8.4.2
resolution: Works For Me
title: Memory leak or ? in canvas, WinXP Home
comment:
  ActiveState ActiveTcl 8.4.2 (fresh install, also seen
  with previous version, 8.4.0.1?)
  WinXP Home, ver 2002, sp1
  Mobile Athlon XP 1500+, 1.33 GHz
  240 MB Ram

  Taking the Colliding Balls script from the wiki, 

  http://wiki.tcl.tk/8573

  I appended the following code to add and delete balls
  on button presses:

  # Maximum ball number
  set State(ballCount) [llength $State(ballList)]

  # Create a new ball on right-click
  bind $State(canvas) <Button-3> {
  incr State(ballCount)
  set ball ball$State(ballCount)
  createBall $ball
  lappend State(ballList) $ball
  }

  # Delete the closest ball on left-click
  bind $State(canvas) <Button-1> {
  set id [$State(canvas) find closest %x %y]
  set ball [lindex [$State(canvas) gettags $id] 0]
  set idx [lsearch $State(ballList) $ball]
  if { $idx >= 0 } {
  set State(ballList) \
                        [lreplace $State(ballList) $idx $idx]
  $State(canvas) delete $id
  }
  }

  I also added the following to the end of proc moveBalls
  { } :

  # Remove slow balls
       foreach ball $State(ballList) {
           foreach {xvel yvel} $State(vel,$ball) {}
           set vel [expr {sqrt( $xvel*$xvel + $yvel*$yvel )}]
           if {$vel < 0.5} {
               set id [$State(canvas) find withtag $ball]
               set idx [lsearch $State(ballList) $ball]
               set State(ballList) [lreplace
  $State(ballList) $idx $idx]
               $State(canvas) delete $id
           }
       }


  After a while of creating balls and letting the slow
  ones be removed, the canvas froze and the wish84
  application shows 99% CPU utilization and progressively
  increasing mem usage until ~150MB then drops to between
  ~20-40 MB (fluctuating) while the commit charge
  continues to increase.  Eventually a "Fatal Error in
  Wish" box pops up stating "unable to alloc n bytes"
  (where in my case n was ~100660000 first, 2400 second).  
  The windows error the first time showed:

  AppName: wish.exe AppVer: 8.4.2.2 ModName: ntdll.dll
  ModVer: 5.1.2600.1106 Offset: 000267cd

  appcompat.txt attached


tkt_uuid: 637653ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 13. Win Menus
priority: 5 Medium
foundin: obsolete: 8.4b1
resolution: None
title: Deleting a popup menu crashes wish
comment:
  Transferred from
  https://sourceforge.net/tracker/?func=detail&atid=110894&aid=637648&group_id=10894
  -------------------------------------
  The following code causes a serious crash of 
  wish84.exe on Windows XP,  if you click the right 
  mouse button on the canvas.
  -------------------------------------
  pack [canvas .c]
  bind .c <ButtonPress-3> {
      set w .popupmenu
      catch {destroy $w}
      menu $w -tearoff 0
      $w add command -label TEST
      $w post %X %Y
  }
  bind .c <ButtonRelease-3> {
      catch {destroy .popupmenu}
  }
  ------------------------------------
  This script is okay on Unix.


tkt_uuid: 220227ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: None
priority: 1 Zero
foundin: obsolete: 8.2
resolution: Invalid
title: Wish crashes no matter what I do
comment:
  OriginalBugID: 2633 Bug
  Version: 8.2
  SubmitDate: '1999-08-31'
  LastModified: '1999-08-31'
  Severity: CRIT
  Status: Closed
  Submitter: techsupp
  ChangedBy: hobbs
  OS: Macintosh
  OSVersion: Mac OS 8.6
  Machine: Power PC
  ClosedDate: '1999-08-31'


  Name:
  Bernhard Spinnler

  Extensions:
  8.2.0

  CustomShell:
  No

  ReproducibleScript:
  I downloaded Tcl/Tk 8.2.0 for Macintosh (URL:
      <http://www.scriptics.com/products/tcltk/download_file.tml?file=mac%2fMac
      Tk8%2e2%2eFinal%2ePPC%2esea%2ehqx&email=%40skip>. The downloaded file
      can be extracted but I do not get a REDME file as the description on the
      web page
      <http://www.scriptics.com/products/tcltk/downloadnow82.html?email=%40skip
      > says. 
      The only items are 'Simple Tcl (sh-ppc)', 'Simple Tk (sh-ppc)', and the
      'Tool Command Language' folder. When I copy the 'Tool Command Language'
      folder into my Extensions folder and try to use wish (Simple Tk
      (sh-ppc)), it crashes after two or three commands (no matter what
      commands).

  ObservedBehavior:
  Wish crashes with system error 2!



  Helpful note from Jim Ingham:
  START
  ...this was really a bug in

  file join /foo bar

  Or rather, it was really a bug in the regexp package.  It is solved
  temporarily by increasing the stack allocation for MacTk, which I will 
  do for the 8.2 release if we ever get an installer license from
  Stuffit.  Over the longer term, it will be solved

  a) By Henry Spencer reducing the HUMONGOUS stack requirements of the
  regexp code
  b) By tuning up the regexp's that file join uses to detect path type.
  END
   
  -- 08/31/1999 hobbs


tkt_uuid: 220853ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 46. Unix Fonts
priority: 5 Medium
foundin: final: 8.1.1
resolution: Fixed
title: 16-bit X11 fonts not correctly displayed
comment:
  OriginalBugID: 2349 Bug
  Version: 8.1.1
  SubmitDate: '1999-07-16'
  LastModified: '2000-04-16'
  Severity: MED
  Status: UnAssn
  Submitter: techsupp
  ChangedBy: hobbs
  RelatedBugIDs: 4071
  OS: Linux
  OSVersion: Debian 1.3
  Machine: Other


  Name:
  Claude Barras

  ObservedBehavior:
  I have tested the unicode font proposed by Scriptics's Howto
      on Internationalization:
      http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html
      I have met various problems in displaying this font with Tcl/Tk 8.1.1
      under X11 (platform: Linux/i86 + XFree) related to
      tk8.1.1/unix/tkUnixFont.c
      
      Detection of 16-bit X11 fonts does not work correctly; I guess
      something like the following should be done:
      l. 1464
      <    familyPtr->isTwoByteFont = (fontStructPtr->min_byte1 > 0);
      >    familyPtr->isTwoByteFont = (fontStructPtr->max_byte1 > 0);
      
      
      I think there should be an extension of encodingAliases[] for 16-bit
      unicode coded fonts, e.g.:
      l. 176:
      >    {"unicode",               "iso10646*"},
      
      
      l. 23: "unicode" could perhaps be added to the encodingList ? I don't
      know
      if it is important.
      
      
      With these modifs, 16-bit fonts are recognized, but there is clearly
      a problem of byte swapping. e.g., \u0201 is displayed instead of
      \u0102.
      The problem could be that XChar2b natural byte order is not the one
      returned by the "unicode" encoding ? With xfd, chars are displayed at
      the correct position.
      All calls to XTextWidth16/XDrawString16 are potentially concerned,
      and also perhaps the FontMapLoadPage function lines 1830-1831:
          hi = ((unsigned char *) buf)[0];
          lo = ((unsigned char *) buf)[1];
      
      Anyway, even when trying to add byte swapping at various places,
      I couldn't manage to make it work as I think it should...

  PatchFiles:
  unix/tkUnixFont.c


tkt_uuid: 220460ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: -- New Stub Entries
priority: 2
foundin: None
resolution: Fixed
title: Hooks for new Smooth methods
comment:
  OriginalBugID: 1540 RFE
  Version: 8.1b2
  SubmitDate: '1999-03-18'
  LastModified: '1999-12-13'
  Severity: MED
  Status: Released
  Submitter: pat
  ChangedBy: hobbs
  OS: Other
  Machine: NA
  FixedDate: '1999-12-13'
  FixedInVersion: 8.3b1


  Name:

  Jan Nijtmans


  DesiredBehavior:

      This patch allows more smooth methods to be registered for the

      line and poly canvas items. This feature originated originally

      in the dash-patch, and it is developed by Jan Nijtmans in

      cooperation with John Ellson.


      For a complete description of this enhancement request, see:


      http://www.scriptics.com/live/showurl?i=software%2epatches%2etk803&url=%2

      fpatches%2ftk8%2e0%2e3%2ftkTrig%2etxt


      The patch below is regenerated using Tk8.1b2, but further on nothing

      changed.


  Patch:

  *** generic/tk.decls.origThu Mar 18 10:55:55 1999

  --- generic/tk.declsThu Mar 18 10:59:26 1999

  ***************

  *** 1035,1040 ****

  --- 1035,1043 ----

        Tk_SavedOptions *savePtr, int *maskPtr)

    }


  + declare 215 generic {

  +     void  Tk_CreateSmoothMethod (Tcl_Interp *interp, Tk_SmoothMethod *method)

  + }


    # Define the platform specific public Tk interface.  These functions are

    # only available on the designated platform.

  *** generic/tk.h.origThu Mar 18 08:31:56 1999

  --- generic/tk.hThu Mar 18 10:55:11 1999

  ***************

  *** 765,770 ****

  --- 765,780 ----

     *--------------------------------------------------------------

     */


  + typedef struct Tk_SmoothMethod {

  +     char *name;

  +     int (*coordProc) _ANSI_ARGS_((Tk_Canvas canvas,

  + double *pointPtr, int numPoints, int numSteps,

  + XPoint xPoints[], double dblPoints[]));

  +     void (*postscriptProc) _ANSI_ARGS_((Tcl_Interp *interp,

  + Tk_Canvas canvas, double *coordPtr,

  + int numPoints, int numSteps));

  + } Tk_SmoothMethod;

  + 

    /*

     * For each item in a canvas widget there exists one record with

     * the following structure.  Each actual item is represented by

  *** generic/tkCanvLine.c.origThu Mar 18 08:31:57 1999

  --- generic/tkCanvLine.cThu Mar 18 11:24:23 1999

  ***************

  *** 16,21 ****

  --- 16,22 ----

    #include <stdio.h>

    #include "tkInt.h"

    #include "tkPort.h"

  + #include "tkCanvas.h"


    /*

     * The structure below defines the record for each line item.

  ***************

  *** 60,66 ****

     * point in line (PTS_IN_ARROW points, first

     * of which is tip).  Malloc'ed.  NULL means

     * no arrowhead at last point. */

  !     int smooth;/* Non-zero means draw line smoothed (i.e.

     * with Bezier splines). */

        int splineSteps;/* Number of steps in each spline segment. */

    } LineItem;

  --- 61,67 ----

     * point in line (PTS_IN_ARROW points, first

     * of which is tip).  Malloc'ed.  NULL means

     * no arrowhead at last point. */

  !     Tk_SmoothMethod *smooth;/* Non-zero means draw line smoothed (i.e.

     * with Bezier splines). */

        int splineSteps;/* Number of steps in each spline segment. */

    } LineItem;

  ***************

  *** 125,130 ****

  --- 126,134 ----

    static Tk_CustomOption tagsOption = {Tk_CanvasTagsParseProc,

        Tk_CanvasTagsPrintProc, (ClientData) NULL

    };

  + static Tk_CustomOption smoothOption = {TkSmoothParseProc,

  +     TkSmoothPrintProc, (ClientData) NULL

  + };


    static Tk_ConfigSpec configSpecs[] = {

        {TK_CONFIG_UID, "-arrow", (char *) NULL, (char *) NULL,

  ***************

  *** 138,145 ****

    "black", Tk_Offset(LineItem, fg), TK_CONFIG_NULL_OK},

        {TK_CONFIG_JOIN_STYLE, "-joinstyle", (char *) NULL, (char *) NULL,

    "round", Tk_Offset(LineItem, joinStyle), TK_CONFIG_DONT_SET_DEFAULT},

  !     {TK_CONFIG_BOOLEAN, "-smooth", (char *) NULL, (char *) NULL,

  ! "0", Tk_Offset(LineItem, smooth), TK_CONFIG_DONT_SET_DEFAULT},

        {TK_CONFIG_INT, "-splinesteps", (char *) NULL, (char *) NULL,

    "12", Tk_Offset(LineItem, splineSteps), TK_CONFIG_DONT_SET_DEFAULT},

        {TK_CONFIG_BITMAP, "-stipple", (char *) NULL, (char *) NULL,

  --- 142,150 ----

    "black", Tk_Offset(LineItem, fg), TK_CONFIG_NULL_OK},

        {TK_CONFIG_JOIN_STYLE, "-joinstyle", (char *) NULL, (char *) NULL,

    "round", Tk_Offset(LineItem, joinStyle), TK_CONFIG_DONT_SET_DEFAULT},

  !     {TK_CONFIG_CUSTOM, "-smooth", (char *) NULL, (char *) NULL,

  ! "0", Tk_Offset(LineItem, smooth),

  ! TK_CONFIG_DONT_SET_DEFAULT, &smoothOption},

        {TK_CONFIG_INT, "-splinesteps", (char *) NULL, (char *) NULL,

    "12", Tk_Offset(LineItem, splineSteps), TK_CONFIG_DONT_SET_DEFAULT},

        {TK_CONFIG_BITMAP, "-stipple", (char *) NULL, (char *) NULL,

  ***************

  *** 250,256 ****

        linePtr->arrowShapeC = (float)3.0;

        linePtr->firstArrowPtr = NULL;

        linePtr->lastArrowPtr = NULL;

  !     linePtr->smooth = 0;

        linePtr->splineSteps = 12;


        /*

  --- 255,261 ----

        linePtr->arrowShapeC = (float)3.0;

        linePtr->firstArrowPtr = NULL;

        linePtr->lastArrowPtr = NULL;

  !     linePtr->smooth = (Tk_SmoothMethod *) NULL;

        linePtr->splineSteps = 12;


        /*

  ***************

  *** 715,721 ****

         */


        if ((linePtr->smooth) && (linePtr->numPoints > 2)) {

  ! numPoints = 1 + linePtr->numPoints*linePtr->splineSteps;

        } else {

    numPoints = linePtr->numPoints;

        }

  --- 720,728 ----

         */


        if ((linePtr->smooth) && (linePtr->numPoints > 2)) {

  ! numPoints = linePtr->smooth->coordProc(canvas, (double *) NULL,

  ! linePtr->numPoints, linePtr->splineSteps, (XPoint *) NULL,

  ! (double *) NULL);

        } else {

    numPoints = linePtr->numPoints;

        }

  ***************

  *** 727,733 ****

        }


        if ((linePtr->smooth) && (linePtr->numPoints > 2)) {

  ! numPoints = TkMakeBezierCurve(canvas, linePtr->coordPtr,

    linePtr->numPoints, linePtr->splineSteps, pointPtr,

    (double *) NULL);

        } else {

  --- 734,740 ----

        }


        if ((linePtr->smooth) && (linePtr->numPoints > 2)) {

  ! numPoints = linePtr->smooth->coordProc(canvas, linePtr->coordPtr,

    linePtr->numPoints, linePtr->splineSteps, pointPtr,

    (double *) NULL);

        } else {

  ***************

  *** 818,831 ****

         */


        if ((linePtr->smooth) && (linePtr->numPoints > 2)) {

  ! numPoints = 1 + linePtr->numPoints*linePtr->splineSteps;

    if (numPoints <= MAX_STATIC_POINTS) {

        linePoints = staticSpace;

    } else {

        linePoints = (double *) ckalloc((unsigned)

        (2*numPoints*sizeof(double)));

    }

  ! numPoints = TkMakeBezierCurve(canvas, linePtr->coordPtr,

    linePtr->numPoints, linePtr->splineSteps, (XPoint *) NULL,

    linePoints);

        } else {

  --- 825,840 ----

         */


        if ((linePtr->smooth) && (linePtr->numPoints > 2)) {

  ! numPoints = linePtr->smooth->coordProc(canvas, (double *) NULL,

  ! linePtr->numPoints, linePtr->splineSteps, (XPoint *) NULL,

  ! (double *) NULL);

    if (numPoints <= MAX_STATIC_POINTS) {

        linePoints = staticSpace;

    } else {

        linePoints = (double *) ckalloc((unsigned)

        (2*numPoints*sizeof(double)));

    }

  ! numPoints = linePtr->smooth->coordProc(canvas, linePtr->coordPtr,

    linePtr->numPoints, linePtr->splineSteps, (XPoint *) NULL,

    linePoints);

        } else {

  ***************

  *** 1019,1032 ****

         */


        if ((linePtr->smooth) && (linePtr->numPoints > 2)) {

  ! numPoints = 1 + linePtr->numPoints*linePtr->splineSteps;

    if (numPoints <= MAX_STATIC_POINTS) {

        linePoints = staticSpace;

    } else {

        linePoints = (double *) ckalloc((unsigned)

        (2*numPoints*sizeof(double)));

    }

  ! numPoints = TkMakeBezierCurve(canvas, linePtr->coordPtr,

    linePtr->numPoints, linePtr->splineSteps, (XPoint *) NULL,

    linePoints);

        } else {

  --- 1028,1043 ----

         */


        if ((linePtr->smooth) && (linePtr->numPoints > 2)) {

  ! numPoints = linePtr->smooth->coordProc(canvas, (double *) NULL,

  ! linePtr->numPoints, linePtr->splineSteps, (XPoint *) NULL,

  ! (double *) NULL);

    if (numPoints <= MAX_STATIC_POINTS) {

        linePoints = staticSpace;

    } else {

        linePoints = (double *) ckalloc((unsigned)

        (2*numPoints*sizeof(double)));

    }

  ! numPoints = linePtr->smooth->coordProc(canvas, linePtr->coordPtr,

    linePtr->numPoints, linePtr->splineSteps, (XPoint *) NULL,

    linePoints);

        } else {

  ***************

  *** 1487,1495 ****

        if ((!linePtr->smooth) || (linePtr->numPoints <= 2)) {

    Tk_CanvasPsPath(interp, canvas, linePtr->coordPtr, linePtr->numPoints);

        } else {

  ! if (linePtr->fillStipple == None) {

  !     TkMakeBezierPostscript(interp, canvas, linePtr->coordPtr,

  !     linePtr->numPoints);

    } else {

        /*

         * Special hack: Postscript printers don't appear to be able

  --- 1498,1506 ----

        if ((!linePtr->smooth) || (linePtr->numPoints <= 2)) {

    Tk_CanvasPsPath(interp, canvas, linePtr->coordPtr, linePtr->numPoints);

        } else {

  ! if ((linePtr->fillStipple == None) && linePtr->smooth->postscriptProc) {

  !     linePtr->smooth->postscriptProc(interp, canvas,

  !     linePtr->coordPtr, linePtr->numPoints, linePtr->splineSteps);

    } else {

        /*

         * Special hack: Postscript printers don't appear to be able

  ***************

  *** 1504,1516 ****

        double *pointPtr;

        int numPoints;


  !     numPoints = 1 + linePtr->numPoints*linePtr->splineSteps;

        pointPtr = staticPoints;

        if (numPoints > MAX_STATIC_POINTS) {

    pointPtr = (double *) ckalloc((unsigned)

    (numPoints * 2 * sizeof(double)));

        }

  !     numPoints = TkMakeBezierCurve(canvas, linePtr->coordPtr,

        linePtr->numPoints, linePtr->splineSteps, (XPoint *) NULL,

        pointPtr);

        Tk_CanvasPsPath(interp, canvas, pointPtr, numPoints);

  --- 1515,1529 ----

        double *pointPtr;

        int numPoints;


  !     numPoints = linePtr->smooth->coordProc(canvas, (double *) NULL,

  !     linePtr->numPoints, linePtr->splineSteps, (XPoint *) NULL,

  !     (double *) NULL);

        pointPtr = staticPoints;

        if (numPoints > MAX_STATIC_POINTS) {

    pointPtr = (double *) ckalloc((unsigned)

    (numPoints * 2 * sizeof(double)));

        }

  !     numPoints = linePtr->smooth->coordProc(canvas, linePtr->coordPtr,

        linePtr->numPoints, linePtr->splineSteps, (XPoint *) NULL,

        pointPtr);

        Tk_CanvasPsPath(interp, canvas, pointPtr, numPoints);

  *** generic/tkCanvPoly.c.origThu Mar 18 08:31:57 1999

  --- generic/tkCanvPoly.cThu Mar 18 11:25:00 1999

  ***************

  *** 15,20 ****

  --- 15,21 ----

    #include <stdio.h>

    #include "tkInt.h"

    #include "tkPort.h"

  + #include "tkCanvas.h"


    /*

     * The structure below defines the record for each polygon item.

  ***************

  *** 37,43 ****

        XColor *fillColor;/* Foreground color for polygon. */

        Pixmap fillStipple;/* Stipple bitmap for filling polygon. */

        GC fillGC;/* Graphics context for filling polygon. */

  !     int smooth;/* Non-zero means draw shape smoothed (i.e.

     * with Bezier splines). */

        int splineSteps;/* Number of steps in each spline segment. */

        int autoClosed;/* Zero means the given polygon was closed,

  --- 38,44 ----

        XColor *fillColor;/* Foreground color for polygon. */

        Pixmap fillStipple;/* Stipple bitmap for filling polygon. */

        GC fillGC;/* Graphics context for filling polygon. */

  !     Tk_SmoothMethod *smooth;/* Non-zero means draw shape smoothed (i.e.

     * with Bezier splines). */

        int splineSteps;/* Number of steps in each spline segment. */

        int autoClosed;/* Zero means the given polygon was closed,

  ***************

  *** 48,53 ****

  --- 49,57 ----

     * Information used for parsing configuration specs:

     */


  + static Tk_CustomOption smoothOption = {TkSmoothParseProc,

  +     TkSmoothPrintProc, (ClientData) NULL

  + };

    static Tk_CustomOption tagsOption = {Tk_CanvasTagsParseProc,

        Tk_CanvasTagsPrintProc, (ClientData) NULL

    };

  ***************

  *** 57,64 ****

    "black", Tk_Offset(PolygonItem, fillColor), TK_CONFIG_NULL_OK},

        {TK_CONFIG_COLOR, "-outline", (char *) NULL, (char *) NULL,

    (char *) NULL, Tk_Offset(PolygonItem, outlineColor), TK_CONFIG_NULL_OK},

  !     {TK_CONFIG_BOOLEAN, "-smooth", (char *) NULL, (char *) NULL,

  ! "0", Tk_Offset(PolygonItem, smooth), TK_CONFIG_DONT_SET_DEFAULT},

        {TK_CONFIG_INT, "-splinesteps", (char *) NULL, (char *) NULL,

    "12", Tk_Offset(PolygonItem, splineSteps), TK_CONFIG_DONT_SET_DEFAULT},

        {TK_CONFIG_BITMAP, "-stipple", (char *) NULL, (char *) NULL,

  --- 61,69 ----

    "black", Tk_Offset(PolygonItem, fillColor), TK_CONFIG_NULL_OK},

        {TK_CONFIG_COLOR, "-outline", (char *) NULL, (char *) NULL,

    (char *) NULL, Tk_Offset(PolygonItem, outlineColor), TK_CONFIG_NULL_OK},

  !     {TK_CONFIG_CUSTOM, "-smooth", (char *) NULL, (char *) NULL,

  ! "0", Tk_Offset(PolygonItem, smooth),

  ! TK_CONFIG_DONT_SET_DEFAULT, &smoothOption},

        {TK_CONFIG_INT, "-splinesteps", (char *) NULL, (char *) NULL,

    "12", Tk_Offset(PolygonItem, splineSteps), TK_CONFIG_DONT_SET_DEFAULT},

        {TK_CONFIG_BITMAP, "-stipple", (char *) NULL, (char *) NULL,

  ***************

  *** 194,200 ****

        polyPtr->fillColor = NULL;

        polyPtr->fillStipple = None;

        polyPtr->fillGC = None;

  !     polyPtr->smooth = 0;

        polyPtr->splineSteps = 12;

        polyPtr->autoClosed = 0;


  --- 199,205 ----

        polyPtr->fillColor = NULL;

        polyPtr->fillStipple = None;

        polyPtr->fillGC = None;

  !     polyPtr->smooth = (Tk_SmoothMethod *) NULL;

        polyPtr->splineSteps = 12;

        polyPtr->autoClosed = 0;


  ***************

  *** 637,650 ****

     * spline points rather than the original points.

     */


  ! numPoints = 1 + polyPtr->numPoints*polyPtr->splineSteps;

    if (numPoints <= MAX_STATIC_POINTS) {

        pointPtr = staticPoints;

    } else {

        pointPtr = (XPoint *) ckalloc((unsigned)

        (numPoints * sizeof(XPoint)));

    }

  ! numPoints = TkMakeBezierCurve(canvas, polyPtr->coordPtr,

    polyPtr->numPoints, polyPtr->splineSteps, pointPtr,

    (double *) NULL);

    if (polyPtr->fillGC != None) {

  --- 642,657 ----

     * spline points rather than the original points.

     */


  ! numPoints = polyPtr->smooth->coordProc(canvas, (double *) NULL,

  ! polyPtr->numPoints, polyPtr->splineSteps, (XPoint *) NULL,

  ! (double *) NULL);

    if (numPoints <= MAX_STATIC_POINTS) {

        pointPtr = staticPoints;

    } else {

        pointPtr = (XPoint *) ckalloc((unsigned)

        (numPoints * sizeof(XPoint)));

    }

  ! numPoints = polyPtr->smooth->coordProc(canvas, polyPtr->coordPtr,

    polyPtr->numPoints, polyPtr->splineSteps, pointPtr,

    (double *) NULL);

    if (polyPtr->fillGC != None) {

  ***************

  *** 705,718 ****

     * for comparison.

     */


  ! numPoints = 1 + polyPtr->numPoints*polyPtr->splineSteps;

    if (numPoints <= MAX_STATIC_POINTS) {

        coordPtr = staticSpace;

    } else {

        coordPtr = (double *) ckalloc((unsigned)

        (2*numPoints*sizeof(double)));

    }

  ! numPoints = TkMakeBezierCurve(canvas, polyPtr->coordPtr,

    polyPtr->numPoints, polyPtr->splineSteps, (XPoint *) NULL,

    coordPtr);

    distance = TkPolygonToPoint(coordPtr, numPoints, pointPtr);

  --- 712,727 ----

     * for comparison.

     */


  ! numPoints = polyPtr->smooth->coordProc(canvas, (double *) NULL,

  ! polyPtr->numPoints, polyPtr->splineSteps, (XPoint *) NULL,

  ! (double *) NULL);

    if (numPoints <= MAX_STATIC_POINTS) {

        coordPtr = staticSpace;

    } else {

        coordPtr = (double *) ckalloc((unsigned)

        (2*numPoints*sizeof(double)));

    }

  ! numPoints = polyPtr->smooth->coordProc(canvas, polyPtr->coordPtr,

    polyPtr->numPoints, polyPtr->splineSteps, (XPoint *) NULL,

    coordPtr);

    distance = TkPolygonToPoint(coordPtr, numPoints, pointPtr);

  ***************

  *** 769,782 ****

         */


        if (polyPtr->smooth) {

  ! numPoints = 1 + polyPtr->numPoints*polyPtr->splineSteps;

    if (numPoints <= MAX_STATIC_POINTS) {

        coordPtr = staticSpace;

    } else {

        coordPtr = (double *) ckalloc((unsigned)

        (2*numPoints*sizeof(double)));

    }

  ! numPoints = TkMakeBezierCurve(canvas, polyPtr->coordPtr,

    polyPtr->numPoints, polyPtr->splineSteps, (XPoint *) NULL,

    coordPtr);

        } else {

  --- 778,793 ----

         */


        if (polyPtr->smooth) {

  ! numPoints = polyPtr->smooth->coordProc(canvas, (double *) NULL,

  ! polyPtr->numPoints, polyPtr->splineSteps, (XPoint *) NULL,

  ! (double *) NULL);

    if (numPoints <= MAX_STATIC_POINTS) {

        coordPtr = staticSpace;

    } else {

        coordPtr = (double *) ckalloc((unsigned)

        (2*numPoints*sizeof(double)));

    }

  ! numPoints = polyPtr->smooth->coordProc(canvas, polyPtr->coordPtr,

    polyPtr->numPoints, polyPtr->splineSteps, (XPoint *) NULL,

    coordPtr);

        } else {

  ***************

  *** 947,958 ****

         */


        if (polyPtr->fillColor != NULL) {

  ! if (!polyPtr->smooth) {

        Tk_CanvasPsPath(interp, canvas, polyPtr->coordPtr,

        polyPtr->numPoints);

    } else {

  !     TkMakeBezierPostscript(interp, canvas, polyPtr->coordPtr,

  !     polyPtr->numPoints);

    }

    if (Tk_CanvasPsColor(interp, canvas, polyPtr->fillColor) != TCL_OK) {

        return TCL_ERROR;

  --- 958,969 ----

         */


        if (polyPtr->fillColor != NULL) {

  ! if (!polyPtr->smooth || !polyPtr->smooth->postscriptProc) {

        Tk_CanvasPsPath(interp, canvas, polyPtr->coordPtr,

        polyPtr->numPoints);

    } else {

  !     polyPtr->smooth->postscriptProc(interp, canvas, polyPtr->coordPtr,

  !     polyPtr->numPoints, polyPtr->splineSteps);

    }

    if (Tk_CanvasPsColor(interp, canvas, polyPtr->fillColor) != TCL_OK) {

        return TCL_ERROR;

  ***************

  *** 978,989 ****

        if (polyPtr->outlineColor != NULL) {

    char string[32 + TCL_INTEGER_SPACE];


  ! if (!polyPtr->smooth) {

        Tk_CanvasPsPath(interp, canvas, polyPtr->coordPtr,

    polyPtr->numPoints);

    } else {

  !     TkMakeBezierPostscript(interp, canvas, polyPtr->coordPtr,

  ! polyPtr->numPoints);

    }


    sprintf(string, "%d setlinewidth\n", polyPtr->width);

  --- 989,1000 ----

        if (polyPtr->outlineColor != NULL) {

    char string[32 + TCL_INTEGER_SPACE];


  ! if (!polyPtr->smooth || !polyPtr->smooth->postscriptProc) {

        Tk_CanvasPsPath(interp, canvas, polyPtr->coordPtr,

    polyPtr->numPoints);

    } else {

  !     polyPtr->smooth->postscriptProc(interp, canvas, polyPtr->coordPtr,

  ! polyPtr->numPoints, polyPtr->splineSteps);

    }


    sprintf(string, "%d setlinewidth\n", polyPtr->width);

  *** generic/tkCanvas.h.origThu Mar 18 11:14:44 1999

  --- generic/tkCanvas.hThu Mar 18 11:13:13 1999

  ***************

  *** 255,259 ****

  --- 255,265 ----


    extern intTkCanvPostscriptCmd _ANSI_ARGS_((TkCanvas *canvasPtr,

        Tcl_Interp *interp, int argc, char **argv));

  + extern intTkSmoothParseProc _ANSI_ARGS_((ClientData clientData,

  +     Tcl_Interp *interp, Tk_Window tkwin,

  +     char *value, char *recordPtr, int offset));

  + extern char *TkSmoothPrintProc _ANSI_ARGS_((ClientData clientData,

  +     Tk_Window tkwin, char *recordPtr, int offset,

  +     Tcl_FreeProc **freeProcPtr));


    #endif /* _TKCANVAS */

  *** generic/tkDecls.h.origThu Mar 18 11:00:18 1999

  --- generic/tkDecls.hThu Mar 18 11:05:22 1999

  ***************

  *** 742,747 ****

  --- 742,751 ----

    int objc, Tcl_Obj *CONST objv[], 

    Tk_Window tkwin, Tk_SavedOptions * savePtr, 

    int * maskPtr));

  + /* 215 */

  + EXTERN voidTk_CreateSmoothMethod _ANSI_ARGS_((

  + Tcl_Interp * interp, 

  + Tk_SmoothMethod * method));


    typedef struct TkStubHooks {

        struct TkPlatStubs *tkPlatStubs;

  ***************

  *** 969,974 ****

  --- 973,979 ----

        void (*tk_MainEx) _ANSI_ARGS_((int argc, char ** argv, Tcl_AppInitProc * appInitProc, Tcl_Interp * interp)); /* 212 */

        void (*tk_RestoreSavedOptions) _ANSI_ARGS_((Tk_SavedOptions * savePtr)); /* 213 */

        int (*tk_SetOptions) _ANSI_ARGS_((Tcl_Interp * interp, char * recordPtr, Tk_OptionTable optionTable, int objc, Tcl_Obj *CONST objv[], Tk_Window tkwin, Tk_SavedOptions * savePtr, int * maskPtr)); /* 214 */

  +     void (*tk_CreateSmoothMethod) _ANSI_ARGS_((Tcl_Interp * interp, Tk_SmoothMethod * method)); /* 215 */

    } TkStubs;


    extern TkStubs *tkStubsPtr;

  ***************

  *** 1838,1843 ****

  --- 1843,1852 ----

    #ifndef Tk_SetOptions

    #define Tk_SetOptions(interp, recordPtr, optionTable, objc, objv, tkwin, savePtr, maskPtr) \

    (tkStubsPtr->tk_SetOptions)(interp, recordPtr, optionTable, objc, objv, tkwin, savePtr, maskPtr) /* 214 */

  + #endif

  + #ifndef Tk_CreateSmoothMethod

  + #define Tk_CreateSmoothMethod(interp, method) \

  + (tkStubsPtr->tk_CreateSmoothMethod)(interp, method) /* 215 */

    #endif


    #endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */

  *** generic/tkInt.decls.origThu Mar 18 11:00:03 1999

  --- generic/tkInt.declsThu Mar 18 11:01:57 1999

  ***************

  *** 254,260 ****


    declare 50 generic {

        void TkMakeBezierPostscript (Tcl_Interp *interp, \

  !     Tk_Canvas canvas, double *pointPtr, int numPoints)

    }


    declare 51 generic {

  --- 254,260 ----


    declare 50 generic {

        void TkMakeBezierPostscript (Tcl_Interp *interp, \

  !     Tk_Canvas canvas, double *pointPtr, int numPoints, int numSteps)

    }


    declare 51 generic {

  *** generic/tkIntDecls.h.origThu Mar 18 11:00:12 1999

  --- generic/tkIntDecls.hThu Mar 18 11:05:27 1999

  ***************

  *** 194,200 ****

    /* 50 */

    EXTERN voidTkMakeBezierPostscript _ANSI_ARGS_((

    Tcl_Interp * interp, Tk_Canvas canvas, 

  ! double * pointPtr, int numPoints));

    /* 51 */

    EXTERN voidTkOptionClassChanged _ANSI_ARGS_((TkWindow * winPtr));

    /* 52 */

  --- 194,201 ----

    /* 50 */

    EXTERN voidTkMakeBezierPostscript _ANSI_ARGS_((

    Tcl_Interp * interp, Tk_Canvas canvas, 

  ! double * pointPtr, int numPoints, 

  ! int numSteps));

    /* 51 */

    EXTERN voidTkOptionClassChanged _ANSI_ARGS_((TkWindow * winPtr));

    /* 52 */

  ***************

  *** 425,431 ****

        int (*tkLineToArea) _ANSI_ARGS_((double end1Ptr[], double end2Ptr[], double rectPtr[])); /* 47 */

        double (*tkLineToPoint) _ANSI_ARGS_((double end1Ptr[], double end2Ptr[], double pointPtr[])); /* 48 */

        int (*tkMakeBezierCurve) _ANSI_ARGS_((Tk_Canvas canvas, double * pointPtr, int numPoints, int numSteps, XPoint xPoints[], double dblPoints[])); /* 49 */

  !     void (*tkMakeBezierPostscript) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, double * pointPtr, int numPoints)); /* 50 */

        void (*tkOptionClassChanged) _ANSI_ARGS_((TkWindow * winPtr)); /* 51 */

        void (*tkOptionDeadWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 52 */

        int (*tkOvalToArea) _ANSI_ARGS_((double * ovalPtr, double * rectPtr)); /* 53 */

  --- 426,432 ----

        int (*tkLineToArea) _ANSI_ARGS_((double end1Ptr[], double end2Ptr[], double rectPtr[])); /* 47 */

        double (*tkLineToPoint) _ANSI_ARGS_((double end1Ptr[], double end2Ptr[], double pointPtr[])); /* 48 */

        int (*tkMakeBezierCurve) _ANSI_ARGS_((Tk_Canvas canvas, double * pointPtr, int numPoints, int numSteps, XPoint xPoints[], double dblPoints[])); /* 49 */

  !     void (*tkMakeBezierPostscript) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, double * pointPtr, int numPoints, int numSteps)); /* 50 */

        void (*tkOptionClassChanged) _ANSI_ARGS_((TkWindow * winPtr)); /* 51 */

        void (*tkOptionDeadWindow) _ANSI_ARGS_((TkWindow * winPtr)); /* 52 */

        int (*tkOvalToArea) _ANSI_ARGS_((double * ovalPtr, double * rectPtr)); /* 53 */

  ***************

  *** 699,706 ****

    (tkIntStubsPtr->tkMakeBezierCurve)(canvas, pointPtr, numPoints, numSteps, xPoints, dblPoints) /* 49 */

    #endif

    #ifndef TkMakeBezierPostscript

  ! #define TkMakeBezierPostscript(interp, canvas, pointPtr, numPoints) \

  ! (tkIntStubsPtr->tkMakeBezierPostscript)(interp, canvas, pointPtr, numPoints) /* 50 */

    #endif

    #ifndef TkOptionClassChanged

    #define TkOptionClassChanged(winPtr) \

  --- 700,707 ----

    (tkIntStubsPtr->tkMakeBezierCurve)(canvas, pointPtr, numPoints, numSteps, xPoints, dblPoints) /* 49 */

    #endif

    #ifndef TkMakeBezierPostscript

  ! #define TkMakeBezierPostscript(interp, canvas, pointPtr, numPoints, numSteps) \

  ! (tkIntStubsPtr->tkMakeBezierPostscript)(interp, canvas, pointPtr, numPoints, numSteps) /* 50 */

    #endif

    #ifndef TkOptionClassChanged

    #define TkOptionClassChanged(winPtr) \

  *** generic/tkTrig.c.origThu Mar 18 08:32:06 1999

  --- generic/tkTrig.cThu Mar 18 10:55:12 1999

  ***************

  *** 1060,1065 ****

  --- 1060,1073 ----

        int numCoords = numPoints*2;

        double control[8];


  +     if (!pointPtr) {

  + /* Of pointPtr == NULL, this function returns an upper limit.

  +  * of the array size to store the coordinates. This can be

  +  * used to allocate storage, before the actual coordinates

  +  * are calculated. */

  + return 1 + numPoints * numSteps;

  +     }

  + 

        /*

         * If the curve is a closed one then generate a special spline

         * that spans the last points and the first ones.  Otherwise

  ***************

  *** 1204,1210 ****

     */


    void

  ! TkMakeBezierPostscript(interp, canvas, pointPtr, numPoints)

        Tcl_Interp *interp;/* Interpreter in whose result the

     * Postscript is to be stored. */

        Tk_Canvas canvas;/* Canvas widget for which the

  --- 1212,1218 ----

     */


    void

  ! TkMakeBezierPostscript(interp, canvas, pointPtr, numPoints, numSteps)

        Tcl_Interp *interp;/* Interpreter in whose result the

     * Postscript is to be stored. */

        Tk_Canvas canvas;/* Canvas widget for which the

  ***************

  *** 1212,1217 ****

  --- 1220,1226 ----

        double *pointPtr;/* Array of input coordinates:  x0,

     * y0, x1, y1, etc.. */

        int numPoints;/* Number of points at pointPtr. */

  +     int numSteps;/* Not used */

    {

        int closed, i;

        int numCoords = numPoints*2;

  ***************

  *** 1465,1467 ****

  --- 1474,1675 ----

    }

        }

    }

  + 

  + 

  + /*

  +  *--------------------------------------------------------------

  +  *

  +  * Tk_CreateSmoothMethod --

  +  *

  +  *This procedure is invoked to add additional values

  +  *for the "-smooth" option to the list.

  +  *

  +  * Results:

  +  *A standard Tcl return value.

  +  *

  +  * Side effects:

  +  *In the future "-smooth <name>" will be accepted as

  +  *smooth method for the line and polygon.

  +  *

  +  *--------------------------------------------------------------

  +  */

  + 

  + static Tk_SmoothMethod tkBezierSmoothMethod = {

  +     "1",

  +     TkMakeBezierCurve,

  +     TkMakeBezierPostscript,

  + };

  + 

  + static void SmoothMethodCleanupProc _ANSI_ARGS_((ClientData clientData,

  + Tcl_Interp *interp));

  + 

  + typedef struct SmoothAssocData {

  +     struct SmoothAssocData *nextPtr;/* pointer to next SmoothAssocData */

  +     Tk_SmoothMethod smooth;/* name and functions associated with this

  +  * option */

  + } SmoothAssocData;

  + 

  + void

  + Tk_CreateSmoothMethod(interp, smooth)

  +     Tcl_Interp *interp;

  +     Tk_SmoothMethod *smooth;

  + {

  +     SmoothAssocData *method, *typePtr2, *prevPtr, *ptr;

  +     method = (SmoothAssocData *) Tcl_GetAssocData(interp, "smoothMethod",

  +     (Tcl_InterpDeleteProc **) NULL);

  + 

  +     /*

  +      * If there's already a smooth method with the given name, remove it.

  +      */

  + 

  +     for (typePtr2 = method, prevPtr = NULL; typePtr2 != NULL;

  +     prevPtr = typePtr2, typePtr2 = typePtr2->nextPtr) {

  + if (!strcmp(typePtr2->smooth.name, smooth->name)) {

  +     if (prevPtr == NULL) {

  + method = typePtr2->nextPtr;

  +     } else {

  + prevPtr->nextPtr = typePtr2->nextPtr;

  +     }

  +     ckfree((char *) typePtr2);

  +     break;

  + }

  +     }

  +     ptr = (SmoothAssocData *) ckalloc(sizeof(SmoothAssocData));

  +     ptr->smooth.name = smooth->name;

  +     ptr->smooth.coordProc = smooth->coordProc;

  +     ptr->smooth.postscriptProc = smooth->postscriptProc;

  +     ptr->nextPtr = method;

  +     Tcl_SetAssocData(interp, "smoothMethod", SmoothMethodCleanupProc,

  + (ClientData) ptr);

  + }

  + 

  + /*

  +  *----------------------------------------------------------------------

  +  *

  +  * SmoothMethodCleanupProc --

  +  *

  +  *This procedure is invoked whenever an interpreter is deleted

  +  *to cleanup the smooth methods.

  +  *

  +  * Results:

  +  *None.

  +  *

  +  * Side effects:

  +  *Smooth methods are removed.

  +  *

  +  *----------------------------------------------------------------------

  +  */

  + 

  + static void

  + SmoothMethodCleanupProc(clientData, interp)

  +     ClientData clientData;/* Points to "smoothMethod" AssocData

  +  * for the interpreter. */

  +     Tcl_Interp *interp;/* Interpreter that is being deleted. */

  + {

  +     SmoothAssocData *ptr, *method = (SmoothAssocData *) clientData;

  + 

  +     while (method != NULL) {

  + method = (ptr = method)->nextPtr;

  + ckfree((char *) ptr);

  +     }

  + }

  + 

  + /*

  +  *--------------------------------------------------------------

  +  *

  +  * TkSmoothParseProc --

  +  *

  +  *This procedure is invoked during option processing to handle

  +  *the "-smooth" option.

  +  *

  +  * Results:

  +  *A standard Tcl return value.

  +  *

  +  * Side effects:

  +  *The smooth option for a given item gets replaced by the value

  +  *indicated in the value argument.

  +  *

  +  *--------------------------------------------------------------

  +  */

  + 

  + int

  + TkSmoothParseProc(clientData, interp, tkwin, value, widgRec, offset)

  +     ClientData clientData;/* some flags.*/

  +     Tcl_Interp *interp;/* Used for reporting errors. */

  +     Tk_Window tkwin;/* Window containing canvas widget. */

  +     char *value;/* Value of option. */

  +     char *widgRec;/* Pointer to record for item. */

  +     int offset;/* Offset into item. */

  + {

  +     register Tk_SmoothMethod **smoothPtr = (Tk_SmoothMethod **) (widgRec + offset);

  +     Tk_SmoothMethod *smooth = NULL;

  +     int b, length;

  +     SmoothAssocData *method;

  + 

  +     if(value == NULL || *value == 0) {

  + *smoothPtr = (Tk_SmoothMethod *) NULL;

  + return TCL_OK;

  +     }

  +     length = strlen(value);

  +     method = (SmoothAssocData *) Tcl_GetAssocData(interp, "smoothMethod",

  +     (Tcl_InterpDeleteProc **) NULL);

  +     while (method != (SmoothAssocData *) NULL) {

  + if (strncmp(value, method->smooth.name, length) == 0) {

  +     if (smooth != (Tk_SmoothMethod *) NULL) {

  + Tcl_AppendResult(interp, "ambigeous smooth method \"", value,

  + "\"", (char *) NULL);

  + return TCL_ERROR;

  +     }

  +     smooth = &method->smooth;

  + }

  + method = method->nextPtr;

  +     }

  +     if (smooth) {

  + *smoothPtr = smooth;

  + return TCL_OK;

  +     }

  + 

  +     if (Tcl_GetBoolean(interp, (char *) value, &b) != TCL_OK) {

  + return TCL_ERROR;

  +     }

  +     *smoothPtr = b ? &tkBezierSmoothMethod : (Tk_SmoothMethod*) NULL;

  +     return TCL_OK;

  + }

  + 

  + /*

  +  *--------------------------------------------------------------

  +  *

  +  * TkSmoothPrintProc --

  +  *

  +  *This procedure is invoked by the Tk configuration code

  +  *to produce a printable string for the "-smooth"

  +  *configuration option.

  +  *

  +  * Results:

  +  *The return value is a string describing the smooth option for

  +  *the item referred to by "widgRe


  PatchFiles:

      tkTrig.c tk.decls tkInt.decls tkCanvas.h tkCanvLine.c tkCanvPoly.c




      For a complete demonstration of this new feature, download and
      install the Tkspline extension (version 0.2). This extension can
      be downloaded from:
          http://www.tcltk.com/ftp/ellson/
      
      Currently, the Tkspline extension requires the dash-patch. But
      it would be nice if the Tk core had this functionality, preferably
      before the Tk8.1 release. It doesn't matter which slot is reserved
      for the function Tk_CreateSmoothMethod()  (I chose 215 because it
      is the first empty slot available). If Scriptics doesn't have
      enough time to evaluate it, I hope at least a slot is reserved
      for this function in the Stub table. Anyway, the dash-patch
      will continue to support Tkspline, no matter what happens.
      
  In 8.3b1 
  -- 12/13/1999 hobbs


tkt_uuid: 220210ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 37. [tk_get*File]
priority: 1 Zero
foundin: obsolete: 8.0.3
resolution: Invalid
title: Events passed down to incorrect windows
comment:
  OriginalBugID: 2312 Bug
  Version: 8.0.3
  SubmitDate: '1999-07-01'
  LastModified: '1999-08-12'
  Severity: MED
  Status: Closed
  Submitter: techsupp
  ChangedBy: hobbs
  RelatedBugIDs: 1339 2111
  OS: Windows 95
  OSVersion: original version (not OSR2)
  Machine: X86
  ClosedDate: '1999-08-05'


  Name:
  James Bonfield

  Extensions:
  Tix

  CustomShell:
  No patches.

  ReproducibleScript:
  # Highlights a problem in bug in tk on windows.
      #
      # 1. Bring up the main window and then press A.
      # 2. Make sure that the file dialogue covers the wish root window
      # 3. Double click on a file in the file dialogue
      #
      # Tk then reports (assuming interactive wish) "B1 event at x,y". Why
      does
      # this event get propagated down to this window?
      
      #tkinit
      
      wm geometry . 500x500
      label .l -textvariable .l.Var
      pack .l -side top
      bind . <1> {puts "B1 event at %x,%y"}
      bind . <KeyPress-a> {
          set .l.Var [tk_getOpenFile]
      }

  ObservedBehavior:
  By double clicking to select a file from a MS Windows file dialogue (it
      works fine on Unix), the tk_getOpenFile returns the filename as
      expected. However a button-1 event is passed down to whatever window was
      underneath the now-closed file dialogue.
      
      In some of our applications this can cause problems, although generally
      it's just an annoyance.

  DesiredBehavior:
  No B1 event in the root window of this demo.



  This was answered here:
     http://x23.deja.com/[ST_rn=ps]/getdoc.xp?AN=496001244

  This is more of a Windows native dialog problem, but requires
  that the Tk user be aware of the quirk with that dialog. 
  -- 08/05/1999 hobbs


tkt_uuid: 219969ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 15. [scale]
priority: 1 Zero
foundin: obsolete: 8.1b3
resolution: Duplicate
title: [scale .s -variable x] --> CRASH!
comment:
  OriginalBugID: 1764 Bug
  Version: 8.1b3
  SubmitDate: '1999-04-08'
  LastModified: '1999-04-16'
  Severity: CRIT
  Status: Closed
  Submitter: pat
  ChangedBy: rjohnson
  RelatedBugIDs: 1768
  OS: Other
  OSVersion: Red Hat Linux 5.x on Alpha XL 300
  Machine: NA
  ClosedDate: '1999-04-16'


  Name:

  Don Porter



  Comments:

  When the variable 'x', doesn't exist, the scale widget has its value

      set to be the contents of uninitialized memory.  When those contents

      aren't a valid floating point value, wish come crashing down with a

      floating point exception.

      

      The fix is to only set the value of the scale widget when there exists

      a variable 'x' from which to take the value.  When no variable 'x'

      exists,

      the scale should keep whatever value it already has.

      

      This bug was previously reported without a patch:

      <URL: http://www.dejanews.com/getdoc.xp?AN=457606230>



  ObservedBehavior:

  $ wish8.1

      % scale .s -variable x

      

      Program received signal SIGFPE, Arithmetic exception.

      0x1555571b0ac in TkRoundToResolution (scalePtr=0x12019ce40,

      value=7.243135901842493e-312) at ./../generic/tkScale.c:1150

      (xxgdb) info stack

      #0  0x1555571b0ac in TkRoundToResolution (scalePtr=0x12019ce40,

      value=7.243135901842493e-312) at ./../generic/tkScale.c:1150

      #1  0x1555571a0e4 in ConfigureScale (interp=0x120101720,

      scalePtr=0x12019ce40, objc=2, objv=0x120102f10) at

      ./../generic/tkScale.c:635

      #2  0x1555571943c in Tk_ScaleObjCmd (clientData=0x0, interp=0x120101720,

      objc=4, objv=0x120102f00) at ./../generic/tkScale.c:323

      #3  0x15555902684 in TclExecuteByteCode ()

      #4  0x155558de988 in Tcl_EvalObjEx ()

      #5  0x1555590f5e0 in Tcl_RecordAndEvalObj ()

      #6  0x1555590f3fc in Tcl_RecordAndEval ()

      #7  0x155556c64a0 in StdinProc (clientData=0x12014ec50, mask=2) at

      ./../generic/tkMain.c:350

      #8  0x15555918a84 in Tcl_NotifyChannel ()

      #9  0x1555594abd0 in FileHandlerEventProc ()

      #10 0x155559274bc in Tcl_ServiceEvent ()

      #11 0x155559278cc in Tcl_DoOneEvent ()

      #12 0x155556b1bf4 in Tk_MainLoop () at ./../generic/tkEvent.c:1102

      #13 0x155556c6200 in Tk_MainEx (argc=1, argv=0x11ffff828,

      appInitProc=0x120000ab8 <Tcl_AppInit>, interp=0x120101720) at

      ./../generic/tkMain.c:279

      #14 0x120000a8c in main (argc=1, argv=0x11ffff828) at ./tkAppInit.c:54



  DesiredBehavior:

  Test suite runs without crashing.



  Patch:

  Index: tkScale.c

  ===================================================================

  RCS file: /cvsroot/tk/generic/tkScale.c,v

  retrieving revision 1.1.4.8

  diff -c -r1.1.4.8 tkScale.c

  *** tkScale.c   1999/03/30 23:56:57     1.1.4.8

  --- tkScale.c   1999/04/08 19:06:21

  ***************

  *** 631,638 ****

              valuePtr = Tcl_GetVar2Ex(interp, name, NULL, TCL_GLOBAL_ONLY);

              if (valuePtr != NULL) {

                  Tcl_GetDoubleFromObj(interp, valuePtr, &value);

              }

  -           scalePtr->value = TkRoundToResolution(scalePtr, value);

          }



          /*

  --- 631,638 ----

              valuePtr = Tcl_GetVar2Ex(interp, name, NULL, TCL_GLOBAL_ONLY);

              if (valuePtr != NULL) {

                  Tcl_GetDoubleFromObj(interp, valuePtr, &value);

  +               scalePtr->value = TkRoundToResolution(scalePtr, value);

              }

          }



          /*



  PatchFiles:

  tkScale.c





  I applied the patch. 04/16/1999 19:02 - rjohnson -


tkt_uuid: 640026ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 41. Photo Images
priority: 5 Medium
foundin: obsolete: 8.4.1
resolution: Fixed
title: Photo documentation error
comment:
  In the Tk 8.4 documentation for "photo" (the 
  version at 
  http://tcl.activestate.com/man/tcl8.4/TkCmd/pho
  to.htm at least) at least, the specification for the 
  "put" subcommand is totally false.  It seems to 
  be referring to some other s(sub)command, 
  since it refers to options that aren't even 
  available in the actual "put" subcommand.


tkt_uuid: 220886ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 44. Generic Fonts
priority: 5 Medium
foundin: obsolete: 8.2.2
resolution: Duplicate
title: possible "font actual" bug
comment:
  OriginalBugID: 3888 Bug
  Version: 8.2.2
  SubmitDate: '1999-12-15'
  LastModified: '1999-12-16'
  Severity: MED
  Status: UnAssn
  Submitter: techsupp
  ChangedBy: hobbs
  OS: Other
  OSVersion: NetBSD-1.4.1/i386
  Machine: PC clone


  Name: hume smith

  Comments:
  As noted, this may be problem with either Tk or xfstt... or even both.  I don't know how to tell.

  ReproducibleScript:
  This bug may be in Tk or xfstt, I don't know.

  I'm using xfstt-1.0 http://core.freshmeat.net/appindex/1998/02/19/887873909.html
  Microsoft's free TrueType faces http://www.microsoft.com/typography/fontpack/
  the XFree with NetBSD-1.4.1/i386

  > wish
  % font actual {Georgia 12}
  -family TTFx -size 0 -weight normal -slant roman -underline 0 -overstrike 0
  % font actual {{Comic Sans MS} 10}
  -family TTFx -size 0 -weight normal -slant roman -underline 0 -overstrike 0
  % font actual {georgia 10 italic}
  -family TTFx -size 0 -weight normal -slant roman -underline 0 -overstrike 0
  %

  it's fine on XFree's own outline fonts:
  % font actual {charter 12}
  -family charter -size 12 -weight normal -slant roman -underline 0 -overstrike 0
  %

  There's no other apparent problem with xfstt; its fonts select and render as I hope.

  ObservedBehavior:
  "font actual" is a constant for xfstt-served fonts.

  DesiredBehavior:
  "font actual" should be accurate :)

  Patch:

  PatchFiles:


tkt_uuid: 862333ffffffffffffffffffffffffffffffffff
type: RFE
status: Closed
subsystem: 05. Canvas Items
priority: 4
foundin: None
resolution: Rejected
title: Render Scalable Vector Graphics
comment:
  Would you like to offer a programming interface for the library "http://librsvg.sourceforge.net/" to use it with "http://wiki.tcl.tk/canvas"? 

  Can the data structure "GdkPixbuf" be converted into a Tk image?


tkt_uuid: 220105ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 10. Generic Menus
priority: 1 Zero
foundin: obsolete: 8.0p2
resolution: Invalid
title: invoke/postcascade fails for UNIX menubar
comment:
  OriginalBugID: 617 Bug
  Version: 8.0p2
  SubmitDate: '1998-05-21'
  LastModified: '1999-09-13'
  Severity: MED
  Status: Closed
  Submitter: hershey
  ChangedBy: hobbs
  OS: All Unix
  OSVersion: NA
  Machine: NA
  FixedInVersion: NA
  ClosedDate: '1999-09-13'


  I'm running tk8.0 under Solaris2.5.  I recently switched to using
  the
  menubar for various commands, but now my keybindings which
  short-cut
  the menubar don't work anymore (UNIX only -- WIN32 is OK).  Here's
  the
  minimal code which fails:

  . configure -menu .m
  menu .m
  .m add cascade -label foo -menu .m.c
  menu .m.c
  .m.c add command -label bar -command {puts test} -under 0
  .m type 1 => cascade
  text .t
  pack .t
  bind .t <Alt-q> {.m postcascade 1}

  Under WIN32, I can now type Alt-q and the sub-menu posts, then I
  type
  'b' and 'test' is printed.

  Under UNIX, if I use <Meta-q> and type it, nothing happens.

  Workarounds, anyone?

  ht

  NB.  This appears to have been introduced in one of the patches,
  as my
  FreeBSD machine also handles this OK:  it's got menu.tcl 1.100 of
  97/08/26,
  while my Solaris machine is on 1.103 of 97/10/31.

  ht
  --
    Henry S. Thompson, HCRC Language Technology Group, University of
  Edinburgh
       2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131
  650-4440
              Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk
                       URL: http://www.ltg.ed.ac.uk/~ht/


  This code does not seem to be valid for either Unix or Windows. 
  -- 09/13/1999 hobbs


tkt_uuid: 547593ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 03. [*button] and [label]
priority: 5 Medium
foundin: obsolete: 8.3.4
resolution: Duplicate
title: Error creating Label > 32k pixels
comment:
  I believe there is a bug in Tk when creating a Label
  which is greater than 32k pixels.  See the bug report
  in python 'IDLE calltips cause application error', 

  http://sourceforge.net/tracker/?func=detail&atid=105470&aid=546078&group_id=5470

  The code which generated the problem is in
  Tools/idle/CallTipWindow.py:30.  The code that looks
  relevant is:

  self.tipwindow = tw = Toplevel(self.widget)
  tw.wm_overrideredirect(1)
  label = Label(tw, text=text, justify=LEFT,
                background="#ffffe0", relief=SOLID,
                borderwidth=1, font=self.widget['font'])
  label.pack()

  The length of the text is about 3000 characters or 32k
  pixels.


tkt_uuid: 1548868fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 44. Generic Fonts
priority: 6
foundin: obsolete: 8.5a7
resolution: None
title: Bug in [font actual] doesn't reflect [tk scaling]
comment:
  Text of the default font appears in a different size
  than text that has been tagged and assigned the default
  font with "-weight normal".


  The bug is can be reproduced following these steps:

  hat:/home/steve> wish
  % text .t
  .t
  % .t insert 1.0 "Line one\n"
  % .t insert 2.0 "Line two\n"
  % .t tag add weighted 1.0 1.8
  % .t tag configure weighted -font "[font actual [.t
  cget -font]] -weight normal"
  % pack .t



  An example screencap is available here:
  http://azul7.net/~steve/mystery.png


  Submitted by Steve Havelka (smh@rs.tc)


tkt_uuid: 563140ffffffffffffffffffffffffffffffffff
type: Patch
status: Deleted
subsystem: 33. Generic Dialog Support
priority: 5 Medium
foundin: None
resolution: None
title: Smart behavior with translated labels...
comment:
  When labels of tk standard dialogs and message boxes
  are translated via msgcat, shortcut bindings and
  underline positions are still bound to english labels,
  which may me sometimes inconvenient or even harmful.
  This patch fixes this problem, introducing new approach
  to shortcut keys selection (no more need to specify
  '-underline' and bind <Alt-somekey> by hand). This is
  described in details at http://mini.net/tcl/3426.html


tkt_uuid: 685505ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 75. wish
priority: 5 Medium
foundin: obsolete: 8.4.0
resolution: Fixed
title: add description of ^z processing to wish man page
comment:
  The 'wish.1' man page needs a description of end-of-file handling to discuss the effect
  of the ^Z Windows file terminator.  Larry Virden logged the corresponding issue in 'tclsh' as
  http://sourceforge.net/tracker/?func=detail&aid=685485&group_id=10894&atid=110894


tkt_uuid: 1517768fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 18. [text]
priority: 5 Medium
foundin: obsolete: 8.4.13
resolution: None
title: wish does not know about tcl_wordchars
comment:
  tcl_wordchars and tcl_nonwordchars are unknown to 
  wish:

  1 % info patchlevel
  8.4.13
  2 % puts $tcl_wordchars
  can't read "tcl_wordchars": no such variable
  3 % catch {tcl_endOfWord}
  1
  4 % puts $tcl_wordchars
  \S


  Though catch {tcl_endOfWord} make wish aware of these 
  variables, this is only a workaround. These variables 
  should be auto-loaded along with the commands they 
  control.

  See also:
  http://groups.google.fr/group/comp.lang.tcl/browse_thr
  ead/thread/659fd6c1f41d9a81/4a3c30d2c97604cc

  Francois


tkt_uuid: 220423ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 99. Other
priority: 2
foundin: obsolete: 8.1b1
resolution: Fixed
title: Upating Tk libraries speed issues
comment:
  OriginalBugID: 1118 RFE
  Version: 8.1b1
  SubmitDate: '1999-01-26'
  LastModified: '1999-08-06'
  Severity: LOW
  Status: Released
  Submitter: welch
  ChangedBy: hobbs
  OS: Solaris
  OSVersion: 5.5.1
  Machine: Other
  FixedDate: '1999-08-06'
  FixedInVersion: 8.2


  Name:
  Jeffrey Hobbs

  CustomShell:
  elide

  DesiredBehavior:
  As mentioned on the newsgroup, the Tcl/Tk libraries aren't up to
  "spec" on capturing all expr's in {}s, and is not the most efficient
  in its use of == for string comparisons (in terms of speed).

  I have taken the stock Tk8.1b1 libraries and updated all necessary
  instances of == and != string comparisons to use the string command
  for speed (between 0 and 25% speed improvement per case).  OK, it
  isn't always a gain, but it makes a point.  I have also put in a
  few more [list ...] where appropriate, changed a couple configs to
  cgets, and added a <<ListboxSelect>> virtual event.  The last does
  not affect backwards compatibility (unless someone uses the same
  named virtual event).  What it provides, parallel to the alread core
  <<MenuSelect>>, is a generated event anytime the selection changes
  in a listbox via the Tk bindings.



  Patch:
  http://www.purl.org/net/hobbs/tcl/tk81b1-update.txt
  (made with diff -c, size 100+K)



  PatchFiles:
  tk8.1b1/library/*.tcl





  This does not touch related issues with Tcl8.1b1.
  To apply this patch, cd to <sources>/tk8.1b1/ and execute
  patch < tk81b1-update.txt

  This appear to have been included somewhere along the way.
  There are other things that could use updating, and I will
  look into that for 8.3. 
  -- 08/06/1999 hobbs


tkt_uuid: 454303ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 09. [listbox]
priority: 3 Low
foundin: None
resolution: None
title: &quot;-justify&quot; option in listboxes
comment:
  I was looking for a justify option in the TK8.3/8.4 
  listbox command and I found this old patch by Robin 
  Becker.
  This allows tk8.0 to show a "-justify" options to 
  align the listbox content to left/center/right.
  Unfortunately I haven't the necessary knowledge 
  neither to judge if it is still a good patch for the 
  new tcl releases, nor to put my hands on the TclTk 
  source code.

  This is the patch as I found it on 

  http://www.jessikat.demon.co.uk/tkLB8.patch

  Stefano Federici
  s_federici@yahoo.com

  =================LISTBOX PATCH====================

  *** tkListbox.c.orgSat Jan 18 23:54:36 1997
  --- tkListbox.cSun Jan 19 00:04:46 1997
  ***************
  *** 167,172 ****
  --- 167,173 ----
        char *xScrollCmd;/* Command prefix for 
  communicating with
     * horizontal 
  scrollbar.  NULL means no command
     * to issue.  
  Malloc'ed. */
  +     int justify;/* justification 
  option */
        int flags;/* Various 
  flag bits:  see below for
     * definitions. */
    } Listbox;
  ***************
  *** 259,264 ****
  --- 260,267 ----
        {TK_CONFIG_STRING, "-
  yscrollcommand", "yScrollCommand", "ScrollCommand",
    DEF_LISTBOX_SCROLL_COMMAND, Tk_Offset(Listbox, 
  yScrollCmd),
    TK_CONFIG_NULL_OK},
  +     {TK_CONFIG_JUSTIFY, "-
  justify", "justify", "Justify",
  + "left", Tk_Offset(Listbox, justify), 
  TK_CONFIG_NULL_OK},
        {TK_CONFIG_END, (char *) NULL, (char *) NULL, 
  (char *) NULL,
    (char *) NULL, 0, 0}
    };
  ***************
  *** 415,420 ****
  --- 418,424 ----
        listPtr->takeFocus = NULL;
        listPtr->xScrollCmd = NULL;
        listPtr->yScrollCmd = NULL;
  +     listPtr->justify = TK_JUSTIFY_LEFT;
        listPtr->flags = 0;
    
        Tk_SetClass(listPtr->tkwin, "Listbox");
  ***************
  *** 1188,1195 ****
    }
    Tk_GetFontMetrics(listPtr->tkfont, &fm);
    y += fm.ascent + listPtr->selBorderWidth;
  ! x = listPtr->inset + listPtr->selBorderWidth - 
  elPtr->lBearing
  ! - listPtr->xOffset;
    Tk_DrawChars(listPtr->display, pixmap, gc, 
  listPtr->tkfont,
    elPtr->text, elPtr->textLength, x, y);
    
  --- 1192,1206 ----
    }
    Tk_GetFontMetrics(listPtr->tkfont, &fm);
    y += fm.ascent + listPtr->selBorderWidth;
  ! if (listPtr->justify == TK_JUSTIFY_LEFT) {
  ! x = listPtr->inset + listPtr-
  >selBorderWidth - elPtr->lBearing
  ! - listPtr->xOffset;
  ! } else if (listPtr->justify == 
  TK_JUSTIFY_CENTER) {
  ! x = listPtr->selBorderWidth - elPtr-
  >lBearing
  ! - listPtr->xOffset + (Tk_Width
  (tkwin) - elPtr->pixelWidth) / 2;
  ! } else {
  ! x = Tk_Width(tkwin) - 2*listPtr-
  >inset - elPtr->pixelWidth;
  ! }
    Tk_DrawChars(listPtr->display, pixmap, gc, 
  listPtr->tkfont,
    elPtr->text, elPtr->textLength, x, y);
    


tkt_uuid: 530212ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: 10. Generic Menus
priority: 5 Medium
foundin: obsolete: 8.3.4
resolution: Fixed
title: Bad Window Path Name in tkMenuFind
comment:
  Attached is a BWidget script that reliably reproduces a bug in Tk (verified up to 8.3.4).
  This bug happens if a menu item is invoked through
  an accelerator, and if the main window (the one
  containing the menu) loses focus while the command
  bound to the menu item is in progress: the
  attached script uses a modal dialog to
  reproduce this condition.

  The error is:

  bad window path name ""
      while executing
  "winfo toplevel [focus"
      (procedure "tkMenuFind" line 8)
      invoked from within
  "tkMenuFind [winfo toplevel $w] $char"
      (procedure "tkTraverseToMenu" line 15)
      invoked from within
  "tkTraverseToMenu . o"
      (command bound to event)

  Here is an analysis of the problem from Joe
  English on comp.lang.tcl; see the thread for
  http://groups.google.com/groups?selm=slrna9111j.ug.fp%40rose.fpx.de

   User presses <Alt-Key-o>

   BWidgets has bound <Alt-Key-o> to
   [$menu invoke $n], where $menu is the "&File"
   menu and $n is the "Open..." entry.

   This evaluates the entry's -command, in this
   case FileOpen

   FileOpen creates a new dialog with a global
   grab, then calls [vwait ::mutex]

   User presses the 'Close' button, which sets
   ::mutex

   FileOpen returns from the vwait, releases the
   grab, and destroys the dialog
   
   Remember, we're still processing the
   <Alt-Key-o> binding on "."

   [$menu invoke $n] returns.

   Now, Tk's binding for <Alt-KeyPress> fires:
   bind all <Alt-KeyPress> {
     tk::TraverseToMenu %W %A }
   (This is from when the user pressed Alt-Key-o
   many steps ago)

   tkTraverseToMenu calls [tk::MenuFind "." "o"]

   tk::MenuFind executes this loop:

  | set windowlist [winfo child $w]
  | foreach child $windowlist {
  |  # Don't descend into other toplevels.
  |  if {[string compare [winfo toplevel [focus]]
  >>>--------------------^^^^^^^^^^^^^^^^^^^^^^^^
       [winfo toplevel $child]]} {
  |    continue
  |  }


  I believe the undersharkfinned part is a bug.
  It should be [winfo toplevel $w], not [winfo
  toplevel [focus]].

  Under most circumstances, [winfo toplevel [focus]]
  will be the same as [winfo toplevel $w] when this
  code path is executed.  But in Frank's test case,
  because of a [vwait] call indirectly invoked by a
  keyboard binding, the focus widget gets lost
  between the time the key is pressed and
  [tkMenuFind] gets called.

  But I still think tk::MenuFind is incorrect.
  Arguably, so is BWidget for not "break"ing in the
  menu accelerator bindings.  These three bugs,
  relatively harmless by themselves, conspire to
  cause the problem.


tkt_uuid: 540061ffffffffffffffffffffffffffffffffff
type: RFE
status: Open
subsystem: 05. Canvas Items
priority: 5 Medium
foundin: None
resolution: None
title: improve canvas line performance
comment:
  Back in 1993, Scott Schwartz <schwartz@bio.cse.psu.edu>
  posted to CLT a patch to hve better drawing
  performance of line segments on a canvas.  Idea
  is to make fewer X library calls and have each call
  do more.  See:

  http://groups.google.com/groups?q=group:comp.lang.tcl+author:Scott+author:Schwartz&hl=en&selm=CA4DwF.3uF%40cs.psu.edu&rnum=90

  There may be ideas in that patch worth exploiting.


tkt_uuid: 220487ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 15. [scale]
priority: 2
foundin: obsolete: 8.1b3
resolution: Fixed
title: UPDATE: [scale .s -variable x] --> CRASH!
comment:
  OriginalBugID: 1768 Bug
  Version: 8.1b3
  SubmitDate: '1999-04-09'
  LastModified: '1999-04-16'
  Severity: CRIT
  Status: Released
  Submitter: pat
  ChangedBy: rjohnson
  RelatedBugIDs: 1764
  OS: Other
  OSVersion: Red Hat Linux 5.x on Alpha XL 300
  Machine: NA
  FixedDate: '1999-04-16'
  FixedInVersion: 8.1


  Name:
  Don Porter

  Comments:
  The value of the variable 'x' should be stored away as the value
      of the scale only if the variable 'x' exists, and it contains a
      double.  Other variable contents or uninitialized memory can cause
      fatal floating point exceptions.
      
      This patch supercedes one previously submitted, which provided an
      incomplete fix:
      http://www.dejanews.com/getdoc.xp?AN=464143101

  ObservedBehavior:
  $ wish8.1
      % set x {}
      % scale .s -variable x
      
      Program received signal SIGFPE, Arithmetic exception.
      0x1555571b0ac in TkRoundToResolution (scalePtr=0x12019c460,
      value=7.243135901842493e-312) at ./../generic/tkScale.c:1150
      (xxgdb) info stack
      #0  0x1555571b0ac in TkRoundToResolution (scalePtr=0x12019c460,
      value=7.243135901842493e-312) at ./../generic/tkScale.c:1150
      #1  0x1555571a0e4 in ConfigureScale (interp=0x120101720,
      scalePtr=0x12019c460, objc=2, objv=0x120102f10) at
      ./../generic/tkScale.c:635
      #2  0x1555571943c in Tk_ScaleObjCmd (clientData=0x0, interp=0x120101720,
      objc=4, objv=0x120102f00) at ./../generic/tkScale.c:323
      #3  0x15555902544 in TclExecuteByteCode ()
      #4  0x155558de828 in Tcl_EvalObjEx ()
      #5  0x1555590f4a0 in Tcl_RecordAndEvalObj ()
      #6  0x1555590f2bc in Tcl_RecordAndEval ()
      #7  0x155556c64a0 in StdinProc (clientData=0x12014b920, mask=2) at
      ./../generic/tkMain.c:350
      #8  0x15555918944 in Tcl_NotifyChannel ()
      #9  0x1555594aa90 in FileHandlerEventProc ()
      #10 0x1555592737c in Tcl_ServiceEvent ()
      #11 0x1555592778c in Tcl_DoOneEvent ()
      #12 0x155556b1bf4 in Tk_MainLoop () at ./../generic/tkEvent.c:1102
      #13 0x155556c6200 in Tk_MainEx (argc=1, argv=0x11ffff7e8,
      appInitProc=0x120000ab8 <Tcl_AppInit>, interp=0x120101720) at
      ./../generic/tkMain.c:279
      #14 0x120000a8c in main (argc=1, argv=0x11ffff7e8) at ./tkAppInit.c:54

  DesiredBehavior:
  No crashes.

  Patch:
  Index: tkScale.c
  ===================================================================
  RCS file: /cvsroot/tk/generic/tkScale.c,v
  retrieving revision 1.1.4.8
  diff -c -r1.1.4.8 tkScale.c
  *** tkScale.c   1999/03/30 23:56:57     1.1.4.8
  --- tkScale.c   1999/04/09 00:10:29
  ***************
  *** 619,625 ****
    
          /*
           * If the scale is tied to the value of a variable, then set 
  !        * the scale's value from the value of the variable, if it exists.
           */
    
          if (scalePtr->varNamePtr != NULL) {
  --- 619,626 ----
    
          /*
           * If the scale is tied to the value of a variable, then set 
  !        * the scale's value from the value of the variable, if it exists
  !        * and it holds a valid double value.
           */
    
          if (scalePtr->varNamePtr != NULL) {
  ***************
  *** 629,638 ****
    
              name = Tcl_GetString(scalePtr->varNamePtr);
              valuePtr = Tcl_GetVar2Ex(interp, name, NULL, TCL_GLOBAL_ONLY);
  !           if (valuePtr != NULL) {
  !               Tcl_GetDoubleFromObj(interp, valuePtr, &value);
              }
  -           scalePtr->value = TkRoundToResolution(scalePtr, value);
          }
    
          /*
  --- 630,640 ----
    
              name = Tcl_GetString(scalePtr->varNamePtr);
              valuePtr = Tcl_GetVar2Ex(interp, name, NULL, TCL_GLOBAL_ONLY);
  !           if ((valuePtr != NULL)
  !                   && (Tcl_GetDoubleFromObj(interp, valuePtr, &value)
  !                           == TCL_OK)) {
  !               scalePtr->value = TkRoundToResolution(scalePtr, value);
              }
          }
    
          /*

  PatchFiles:
  tkScale.c



  I applied the patch.  04/16/1999 19:03 - rjohnson -


tkt_uuid: 714385ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 83. Mac OS X Build
priority: 5 Medium
foundin: None
resolution: Rejected
title: Attempting to compile scid; see below
comment:
  Running Scid, I get the following error while trying to switch focus to the application:

  "SetFrontProcess failed,-606"

  Moreover, there is no icon in the dock; Also, I have to "kill -9 tkscid" to quit the program.

  Here is how I went about compiling it:

  A) Get tarball from scid homepage http://scid.sourceforge.net
  B) Run ./configure unsuccesfully
  C) Change lines in Makefile to read:

  TCL_INCLUDE = -I/Library/Frameworks/Tcl.Framework/Headers -I/Library/Frameworks/Tk.Framework/Headers

  TCL_LIBRARY = -framework Tcl

  TK_LIBRARY = $(TCL_LIBRARY) -framework Tk

  D) make
  E) ./scid

  I appreciate any assistance you can give me fixing this :-) 
  rickbischoff@mac.com


tkt_uuid: 469752ffffffffffffffffffffffffffffffffff
type: Patch
status: Closed
subsystem: 05. Canvas Items
priority: 4
foundin: None
resolution: Postponed
title: Rotated text patch for canvas
comment:
  This patch, which is designed to apply to Perl/Tk
  800.023, adds rotated text support in canvases to X11
  and Postscript output, with no support for WIndows or
  Mac.  The postscript output is correct; the X11 display
  is somewhat klugy.  The rotation is specified with the
  -angle option, in degrees counterclockwise.

  See the original post at
  http://groups.google.com/groups?selm=9ok2mi%249qg%241%40decurion.mit.edu

  This patch definitely needs more work, but akupries
  suggested that I upload it anyway "so it won't get
  lost", and I am doing that.


tkt_uuid: 220206ffffffffffffffffffffffffffffffffff
type: Bug
status: Deleted
subsystem: 99. Other
priority: 1 Zero
foundin: final: 8.0.5
resolution: Invalid
title: Patch for word-wrapping problem with 8-bit strings (and other related problems)
comment:
  OriginalBugID: 2305 Bug
  Version: 8.0.5
  SubmitDate: '1999-06-28'
  LastModified: '1999-08-05'
  Severity: LOW
  Status: Closed
  Submitter: techsupp
  ChangedBy: hobbs
  OS: Windows 98
  Machine: X86
  FixedInVersion: 8.1
  ClosedDate: '1999-08-05'


  Name:
  Frédéric BONNET

  Comments:
  This bug shouldn't affect Tcl8.1.1 as it now uses UTF-8 and Unicode
      is-routines.

  ReproducibleScript:
  # Try it on Windows. Other platforms may need different pixel values
      # for the bug to occur.

      # Notice the accented e in the third word
      label .l -font "Arial 16" -wraplength 130  -text "azertyuiop azertyuiop azértyuiop"

      # After packing, notice how the 3rd word is incorrectly cut
      pack .l -expand 1 -fill both

  ObservedBehavior:
  This bug report and patch follows one that I posted on 06/24/1999. It
      corrects the word-wrapping bug as well as several potential problems
      with is-routines (eg. isspace) in the Tcl and Tk source.

  Patch:
  http://www.multimania.com/fbonnet/pub/isxx.patch

  PatchFiles:
  tcl8.0.5/compat/strtol.c
      tcl8.0.5/compat/strtod.c
      tcl8.0.5/compat/strtoul.c
      tcl8.0.5/generic/tclDate.c
      tcl8.0.5/win/tclAppInit.c
      tcl8.0.5/win/tclWinPipe.c
      tcl8.0.5/win/winDumpExts.c
      tk8.0.5/win/winMain.c
      tk8.0.5/win/tkWinFont.c



  Fixed in Unicode versions of Tk (8.1+).  There is no plan to patch
  8.0 beyond 8.0.5. 
  -- 08/05/1999 hobbs


tkt_uuid: 220044ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 15. [scale]
priority: 1 Zero
foundin: obsolete: 8.2.2
resolution: Duplicate
title: Tk scale widget segfaults when destroyed.
comment:
  OriginalBugID: 3522 Bug
  Version: 8.2.2
  SubmitDate: '1999-11-08'
  LastModified: '1999-11-11'
  Severity: CRIT
  Status: Closed
  Submitter: techsupp
  ChangedBy: hobbs
  RelatedBugIDs: 2725
  OS: All
  ClosedDate: '1999-11-11'


  Name:

  George A. Howlett


  CustomShell:

  none.


  Comments:

  This problem stems from the fact that the Tcl_Obj-based and old string-based

  Tk resource handling routines are not consistent.


  For example, the old string-based routine Tk_FreeOptions used a Display

  argument to free resources.  


  Tk_FreeOptions(specs, widgRec, display, flags);


  The display was passed in preference to the Tk_Window, because the tkwin

  field would become invalid once the widget was destroyed. Widgets would

  mark destroyed windows by setting their tkwin fields to NULL.  It was

  expected that widget writers should save a copy of the display field ahead

  of time.


  The new Tcl_Obj-based routine Tk_FreeConfigOptions takes a tkwin argument.


  Tk_FreeConfigOptions(widgRec, optionTable, tkwin);


  Apparently a Tk_Window is now valid even after a Destroy event.


  The error in tkScale.c is that it still uses the old paradigm.  It sets the

  widget's tkwin field to NULL when it is destroyed.  But the same tkwin 

  field is later passed to Tk_FreeConfigOptions in DestroyScale.


  ReproducibleScript:

  This bug has been reported and described for previous releases. 


  http://x46.deja.com/getdoc.xp?AN=540232516&CONTEXT=942110139.108068949&hitnum=0


  http://x21.deja.com/getdoc.xp?AN=523147602&CONTEXT=942110204.899940567&hitnum=3


  The scale widget coredumps when destroyed.  


  scale .s

  destroy .s


  ObservedBehavior:

  Tk_FreeConfigOptions is passed scalePtr->tkwin.  This has been previous set

  the NULL in the scale widget event handler routine. 


              FreeResources  [tkConfig.c:1594]

                             if (internalFormExists) {

                                 if (*((Tk_Cursor *) internalPtr) != None) {

                                     Tk_FreeCursor(Tk_Display(tkwin),

              =>                             *((Tk_Cursor *) internalPtr));

                                     *((Tk_Cursor *) internalPtr) = None;

                                 }

                             } else if (objPtr != NULL) {

              Tk_FreeConfigOptions [tkConfig.c:1496]

                                 oldInternalPtr = NULL;

                             }

                             if (optionPtr->flags & OPTION_NEEDS_FREEING) {

              =>                 FreeResources(optionPtr, oldPtr, oldInternalPtr, tkwin);

                             }

                             if (oldPtr != NULL) {

                                 Tcl_DecrRefCount(oldPtr);

              DestroyScale   [tkScale.c:552]

                         Tk_FreeGC(scalePtr->display, scalePtr->textGC);

                     }

                     Tk_FreeConfigOptions((char *) scalePtr, scalePtr->optionTable,

              =>             scalePtr->tkwin);

                     TkpDestroyScale(scalePtr);

                 }


              Tcl_EventuallyFree [tclPreserve.c:313]

                             || (freeProc == (Tcl_FreeProc *) free)) {

                         ckfree((char *) clientData);

                     } else {

              =>         (*freeProc)((char *)clientData);

                     }

                 }


              ScaleEventProc [tkScale.c:1032]

                         if (scalePtr->flags & REDRAW_ALL) {

                             Tcl_CancelIdleCall(TkpDisplayScale, (ClientData) scalePtr);

                         }

              =>         Tcl_EventuallyFree((ClientData) scalePtr, DestroyScale);

                     } else if (eventPtr->type == ConfigureNotify) {

                         ComputeScaleGeometry(scalePtr);

                         TkEventuallyRedrawScale(scalePtr, REDRAW_ALL);

              Tk_HandleEvent [tkEvent.c:694]

                         for (handlerPtr = winPtr->handlerList; handlerPtr != NULL; ) {

                             if ((handlerPtr->mask & mask) != 0) {

                                 ip.nextHandler = handlerPtr->nextPtr;

              =>                 (*(handlerPtr->proc))(handlerPtr->clientData, eventPtr);

                                 handlerPtr = ip.nextHandler;

                             } else {

                                 handlerPtr = handlerPtr->nextPtr;

        Reading 4 bytes from 0x0


tkt_uuid: 219985ffffffffffffffffffffffffffffffffff
type: Bug
status: Closed
subsystem: 37. [tk_get*File]
priority: 1 Zero
foundin: obsolete: 8.1
resolution: Duplicate
title: double-click tk_getOpenFile problem
comment:
  OriginalBugID: 2111 Bug
  Version: 8.1
  SubmitDate: '1999-05-20'
  LastModified: '1999-08-12'
  Severity: MED
  Status: Closed
  Submitter: pat
  ChangedBy: hobbs
  RelatedBugIDs: 1339 2312
  OS: Windows 95
  Machine: X86
  ClosedDate: '1999-08-12'


  Name:
  Greg Orchard

  ReproducibleScript:
  If you use tk_getOpenFile and double-click on a file, a <button-1> is
      sent to the window behind the file selection window. As a result, if
      there is a button directly below on the underlying window, the action
      for the button is selected. 
      This can be recreated using the "File selection dialog" in the standard
      Tcl Widget Tour distributed with Tcl.



  This was answered here:
      http://x23.deja.com/[ST_rn=ps]/getdoc.xp?AN=496001244

  This is more of a Windows native dialog problem, but requires
  that the Tk user be aware of the quirk with that dialog.  
  -- 08/12/1999 hobbs


tkt_uuid: 1076063fffffffffffffffffffffffffffffffff
type: Bug
status: Open
subsystem: 23. Option Parsing
priority: 5 Medium
foundin: obsolete: 8.4.6
resolution: None
title: Empty test performance issue from c.l.t
comment:
  From: Khamis Abuelkomboz <khamis@wellcode.com>
  Newsgroups: comp.lang.tcl
  Subject: performace issue in Tk
  Date: Mon, 29 Nov 2004 22:15:50 +0100
  Organization: T-Online
  Message-ID: <cog3i6$ip4$05$1@news.t-online.com>

  Hi

  I have found a performance and memory usage issue in
  the function ObjectIsEmpty implemented in 
  tk8.4.6\generic\tkConfig.c:2229

  To test if an object is empty it just convert every
  object into a string. this is pretty ugly, if 
  you have lists in the options list. it converts all
  lists, integers and so on into strings. as 
  example, with my fix I reduced memory usage from 200MB
  to 110MB by large amount of data. It got even 
    some factors faster.

  here is the origin

  static int
  ObjectIsEmpty(objPtr)
       Tcl_Obj *objPtr;/* Object to test.  May be NULL. */
  {
       int length;

       if (objPtr == NULL) {
  return 1;
       }
       if (objPtr->bytes != NULL) {
  return (objPtr->length == 0);
       }
       Tcl_GetStringFromObj(objPtr, &length);
       return (length == 0);
  }

  and the modified version

  static int
  ObjectIsEmpty(objPtr)
       Tcl_Obj *objPtr;/* Object to test.  May be NULL. */
  {
       int length;

       if (objPtr == NULL) {
  return 1;
       }
       if (objPtr->bytes != NULL) {
  return (objPtr->length == 0);
       }
  ++++++>>>>>>>
       if (objPtr->typePtr != NULL)
       {
  if (stricmp(objPtr->typePtr->name, "list") == 0)
  {
      List *listRepPtr = (List *)
  objPtr->internalRep.twoPtrValue.ptr1;
      int numElems = listRepPtr->elemCount;
      return (numElems == 0);
  }
  if (stricmp(objPtr->typePtr->name, "string") != 0)
      return 0;
       }
  ++++++<<<<<<<<
       Tcl_GetStringFromObj(objPtr, &length);
       return (length == 0);
  }

  -- 
  Try Code-Navigator on http://www.codenav.com
  a source code navigating, analysis and developing tool.
  It supports almost all languages on the scope.


tkt_uuid: 4a48c498aaf0029a83391ab30bcf495673a9d4e9
type: Bug
status: Closed
subsystem: 88. Themed Tk
priority: 5 Medium
severity: Minor
foundin: 8.5.10
private_contact: 2e16cf44a6a74fa6537df233cfdd5b7694defa05
resolution: Duplicate
title: ttk::entry widgets cannot "xview end"
comment:
  Passing the "end" index to the xview subcommand returns an error: expected integer but got "end"

  $ tclsh
  % package req Tk
  8.5.10
  % ttk::entry .e
  .e
  % pack .e
  % .e conf -textvar foo
  % set foo {qpowieurpoqwyerpiqyweritqywpeityqwpeitrqiweyrioqwter1234}
  qpowieurpoqwyerpiqyweritqywpeityqwpeitrqiweyrioqwter1234
  % .e xview end
  expected integer but got "end"
  % .e xview [string length [.e get]]   ;# works
  % .e xview [.e index end]             ;# works

  Also reported in version 8.5.11


tkt_uuid: 354c19b3ef2fb18b1f81f60fa35ae75762ac020e
type: Bug
status: Closed
subsystem: 41. Photo Images
priority: 5 Medium
severity: Important
foundin: 8.6.0
private_contact: d4bbf66f445929e627fc15cea06ac36f09044260
resolution: Duplicate
title: [$png write foo.png -background red] produces bad image
comment:
  I downloaded an image (http://media.firebox.com/i/2013/newlogo.png) and was trying to add a background color to it. For some reason, when I opened the original in Photoshop, the semi-transparent shadow came up as solid black, so I decided to do it through ActiveTcl 8.6.0 instead. The image loaded into Tcl without any problem, and displayed perfectly in a label widget. I then tried to save it ($image write $filename -format png -background $color), but the image created was garbled - Photostop won't open it, and neither will Tcl. It opens in Windows Picture Viewer but it's totally garbled.

  As a quick test, I made a new image in Photoshop - a png with a transparent background and a simple coloured line - and repeated the process, loading into Tcl and writing with a background. This image was similarly garbled, so I guess it's a general Tk issue, and not related to the actual image I was using.

  % set src [image create photo -file newlogo.png]
  % pack [label .l -image $src]
  % $src write "dest.png" -format png -background red
  % set dst [image create photo -file dest.png]
  invalid filter type 255


tkt_uuid: ee40fd1fce8f2e407b25f158f3c079a52eedc2df
type: Bug
status: Open
subsystem: 54. [console]
priority: 5 Medium
severity: Minor
foundin: 8.5.14
private_contact: ebaa1541055af50f459f78f20fd039ce17a08b59
resolution: None
title: report error message in Tk_CreateConsoleWindow
comment:
  In Tk_CreateConsoleWindow(), if an error occurs in Tcl_Init(consoleInterp) or Tk_Init(consoleInterp), the error is not redirected to interp.

      if (Tcl_Init(consoleInterp) != TCL_OK) {
  	goto error;
      }

  must become:

      if (Tcl_Init(consoleInterp) != TCL_OK) {
  	Tcl_Obj *result_obj = Tcl_GetObjResult(consoleInterp);
  	Tcl_SetObjResult(interp, result_obj);
  	goto error;
      }


tkt_uuid: 30ce26f48d3c2d9513186c998885369636a8395e
type: Bug
status: Open
subsystem: 01. Bindings
priority: 5 Medium
severity: Minor
foundin: 8.6.0
private_contact: b161dbf142556f12a9a6289ffc2a489dd98cabae
resolution: None
title: Key-Event bindings corrupt on Mac (Tcl 8.6.0)
comment:
  When porting my applications to 8.6.0, I encountered the following 
  problem with key events on Darwin:
  When pressing a key, you can also get the position of the mouse pointer 
  with the %X and %Y specifiers. I use this typically in combination with 
  "winfo containing".
  This used to work with previous versions of Tcl/Tk and still works on 
  Windows and Linux, but does not work with 8.6.0 on Mac (SnowLeopard, 
  Lion, MountainLion).


  Test script:

  package require Tk

  puts "Tcl [info patchlevel] on $tcl_platform(os) $tcl_platform(osVersion)"

  proc Print { eventType X Y x y } {
       set w [winfo containing $X $Y]
       puts "$eventType ($X $Y) ($x $y) Widget: $w"
  }

  set tw .
  set fr .fr

  frame $fr
  pack $fr

  listbox $fr.l1
  listbox $fr.l2
  pack $fr.l1 $fr.l2 -side top

  bind $tw <1> "Print ButtonPress %X %Y %x %y"
  bind $tw <Key-p> "Print KeyPress %X %Y %x %y"
  bind $tw <Escape> "exit"

  Here are some example outputs from my tests
  (note the zeros and negative values for 8.6.0 on Darwin):

  Tcl 8.6.0 on Windows NT 6.1
  ButtonPress (554 258) (49 62) Widget: .fr.l1
  KeyPress    (554 258) (49 62) Widget: .fr.l1

  Tcl 8.6.0 on Linux 2.6.34.10-0.2-desktop
  ButtonPress (51 470) (47 42) Widget: .fr.l1
  KeyPress    (51 470) (47 42) Widget: .fr.l1

  Tcl 8.6.0 on Darwin 11.4.2
  ButtonPress (184 477) (91 102) Widget: .fr.l1
  KeyPress    (0 0) (-93 -375) Widget:

  Tcl 8.4.18 on Darwin 11.4.2
  ButtonPress (100 185) (95 88) Widget: .fr.l1
  KeyPress    (100 185) (95 88) Widget: .fr.l1

  Tcl 8.5.8 on Darwin 11.4.2
  ButtonPress (64 190) (54 85) Widget: .fr.l1
  KeyPress    (64 190) (54 85) Widget: .fr.l1


tkt_uuid: 4939f815b9ae1c4b76fd102d0ab48fb194ab45c9
type: Bug
status: Open
subsystem: 36. [tk_chooseDirectory]
priority: 5 Medium
severity: Cosmetic
foundin: 8.6.0
private_contact: e407c8682857ccbf1757ae6bd67e3a0e7f43af71
resolution: None
title: Problem (bug?) with tk_chooseDirectory in 8.5.13 and 8.6.0
comment:
  In tk 8.5.7, when given an initial directory name, tk_chooseDirectory will locate the directory on the GUI. And when selecting the directory, the directory full path will be shown on the top of the dialog box.  For 8.5.13 and 8.6.0, all these are gone.

  I was able to copy the source code of 8.5.7 into 8.5.13 and restore the behavior. But not anymore  in 8.6.0.

  Is there any way I can get these nice feature back ?


tkt_uuid: 0e7185dc4caec945aeed9e11cbb0943c736dd28a
type: Bug
status: Open
subsystem: 88. Themed Tk (Ttk)
priority: 5 Medium
severity: Minor
foundin: 8.5
private_contact: 14a675c50ac4a876c8e77bd8fdc8364024eb6648
resolution: None
title: ttk combobox selection issue
comment:
  The tile combobox has a problem with the way it handles the text 
  selection of the currently selected item. If items are selected from 
  the drop down list the highlighting and exporting of the current item 
  is adjusted to match the new item but if the selection is changed by 
  modifying the textvariable the highlighting and export isn't updated 
  which can result in only a portion of the currently selected item 
  being highlighted and exported. 

  It is the same on any platform and theme. 

  toplevel .t 
  pack [ttk::combobox .t.c -values "Australia India USA Europe" -textvariable combo] 
  pack [ttk::entry .t.e -textvariable entry] 
  set entry USA; 
  set combo Australia; 

  To reproduce the issue: 
  1. run the above script and select the entry content byt click and drag the content right to left (not by double click) 
  2. now click on the combobox button (not text area) and select any Europe. 
  now you can observe that the combobox content is highlighted (blue background) only for 3 characters (Eur). 

  I am running this script on Tcl version. 8.5.9 and tile 0.8.6

  https://groups.google.com/forum/#!topic/comp.lang.tcl/LKNKFN1Hhoo


tkt_uuid: 069c9e43c443f3310098b923aa827c89c85281b1
type: Bug
status: Closed
subsystem: 23. Option Parsing
priority: 5 Medium
severity: Critical
foundin: 8.6.0
private_contact: 61154c9a8cc9481667c5103170cfc31d0245efe1
resolution: Fixed
title: FreeOptionInternalRep() breaks Tk_CreateOptionTable()
comment:
  I have discovered an error that is causing a crash in xcircuit (see opencircuitdesign.com) when used with Tk version 8.6.0.  This bug has been seen in several OS versions (Fedora, Arch Linux, Mac OS X).

  This bug can be seen by compiling xcircuit with Tcl/Tk support and linking to Tcl/Tk version 8.6.0.

  Error happens when xcircuit runs the script "wrapper.tcl".  Here's what I see:

  (1) The first call to "frame" (wrapper.tcl line 793, "frame .filelist.listwin") calls Tk_CreateOptionTable and returns an allocated memory value for optionSpecs[type] where type is TYPE_FRAME.

  (2) Subsequent calls to "frame" get this same value back from Tk_CreateOptionTable, as they should

  (3) A call to "checkbutton" a handful of lines later (wrapper.tcl, line 815, "checkbutton .filelist.textent.title.filter -bg beige ..." makes a call to ConfigureButton --> Tk_SetOptions --> GetOptionFromObj --> FreeOptionInternalRep.  In FreeOptionInternalRep(), objPtr is a pointer to the Tcl_Obj object for the checkbutton option "-bg".  Its internalRep is (apparently) a 2-pointer value, where ptr1 is the same value as that returned by Tk_CreateOptionTable for type TYPE_FRAME.

  (4) FreeOptionInternalRep decrements refCount2 on this OptionTable pointer, finds that it is zero, and then calls ckfree() on this value.  Note that at this point, refCount = 4 ("frame" has been called 4 times).

  (5) Some time later, ckalloc() is called and repurposes the memory location for another subroutine.  The memory location is overwritten with other data.

  (6) "frame" is called again later (wrapper.tcl line 855, "frame .output.title -bg beige").  Again, at tkFrame.c line 483, Tk_CreateOptionTable is called for type TYPE_FRAME, and returns the original memory pointer, which has since been freed, reallocated, and overwritten with other data.  Consequently, the program crashes.

  It seems to me that the error is in FreeOptionInternalRep, where it is freeing the table pointer based on refCount2 while refCount still shows multiple references to the table.  Maybe there is supposed to be an additional check for refCount > 0?


tkt_uuid: 87ca68c7e69d57aae5d3c5024c160117b075f889
type: Bug
status: Closed
subsystem: 65. Generic Window Operations
priority: 5 Medium
severity: Critical
foundin: 8.6
private_contact: d464e804f51be73b377a1a00aefb37a6b5a550f9
resolution: Works For Me
title: Modal window crashes tclsh on Mac OS X 10.8.4
comment:
  Tclsh crashes when a modal dialog is shown.
  Prerequisites: 
  Active State tcl8.6 for Mac
  Mac OS X 10.8.4 (12E55)

  Steps to reproduce:
  1. Run the attached script OR the DRAKON Editor 1.20 application
  (http://sourceforge.net/projects/drakon-editor/files/drakon_editor1.20.zip/download)
  2. Press any button that shows a modal dialog (for example "New diagram" or "Folder").
  3. Tclsh will crash

  Process:         tclsh8.6 [1212]
  Path:            /usr/local/bin/tclsh8.6
  Identifier:      tclsh8.6
  Version:         8.6.0 (8.6.0)
  Code Type:       X86-64 (Native)
  Parent Process:  bash [1058]
  User ID:         501

  Date/Time:       2013-07-19 12:03:00.922 +0400
  OS Version:      Mac OS X 10.8.4 (12E55)
  Report Version:  10

  Interval Since Last Report:          836218 sec
  Crashes Since Last Report:           28
  Per-App Crashes Since Last Report:   4
  Anonymous UUID:                      0D396B8D-272B-BB48-A7FA-14085E577AE8

  Crashed Thread:  0  Dispatch queue: com.apple.main-thread

  Exception Type:  EXC_CRASH (SIGABRT)
  Exception Codes: 0x0000000000000000, 0x0000000000000000

  Application Specific Information:
  *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error (1000) creating window shape'
  abort() called
  terminate called throwing an exception

  Application Specific Backtrace 1:
  0   CoreFoundation                      0x00007fff89375b06 __exceptionPreprocess + 198
  1   libobjc.A.dylib                     0x00007fff853b63f0 objc_exception_throw + 43
  2   CoreFoundation                      0x00007fff893758dc +[NSException raise:format:] + 204
  3   AppKit                              0x00007fff8c84b9ff _NSCreateWindowWithOpaqueShape2 + 325
  4   AppKit                              0x00007fff8c84a340 -[NSWindow _commonAwake] + 2002
  5   AppKit                              0x00007fff8c8fa75b -[NSWindow _makeKeyRegardlessOfVisibility] + 88
  6   AppKit                              0x00007fff8c8fa6c5 -[NSWindow makeKeyAndOrderFront:] + 25
  7   Tk                                  0x0000000101dcc290 XMapWindow + 156
  8   Tk                                  0x0000000101d316e6 Tk_MapWindow + 89
  9   Tk                                  0x0000000101d3a859 MapFrame + 62
  10  Tcl                                 0x00000001000c0e96 TclServiceIdle + 76
  11  Tcl                                 0x00000001000a4857 Tcl_DoOneEvent + 329
  12  Tk                                  0x0000000101d15f68 Tk_MainLoop + 24
  13  Tcl                                 0x00000001000a0010 Tcl_MainEx + 2109
  14  tclsh8.6                            0x00000001000029b2 main + 56
  15  tclsh8.6                            0x0000000100002918 start + 52

  Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
  0   libsystem_kernel.dylib        	0x00007fff8e054212 __pthread_kill + 10
  1   libsystem_c.dylib             0x00007fff857f9b54 pthread_kill + 90
  2   libsystem_c.dylib             0x00007fff8583ddce abort + 143
  3   libc++abi.dylib               0x00007fff8465b9eb abort_message + 257
  4   libc++abi.dylib               0x00007fff8465939a default_terminate() + 28
  5   libobjc.A.dylib               0x00007fff853b6873 _objc_terminate() + 91
  6   libc++abi.dylib               0x00007fff846593c9 safe_handler_caller(void (*)()) + 8
  7   libc++abi.dylib               0x00007fff84659424 std::terminate() + 16
  8   libc++abi.dylib               0x00007fff8465a58b __cxa_throw + 111
  9   libobjc.A.dylib               0x00007fff853b650c objc_exception_throw + 327
  10  com.apple.CoreFoundation      	0x00007fff89409f49 -[NSException raise] + 9
  11  com.apple.AppKit              	0x00007fff8c84a1d0 -[NSWindow _commonAwake] + 1634
  12  com.apple.AppKit              	0x00007fff8c8fa75b -[NSWindow _makeKeyRegardlessOfVisibility] + 88
  13  com.apple.AppKit              	0x00007fff8c8fa6c5 -[NSWindow makeKeyAndOrderFront:] + 25
  14  Tk                            	0x0000000101dcc290 XMapWindow + 156
  15  Tk                            	0x0000000101d316e6 Tk_MapWindow + 89
  16  Tk                            	0x0000000101d3a859 MapFrame + 62
  17  Tcl                           0x00000001000c0e96 TclServiceIdle + 76
  18  Tcl                           0x00000001000a4857 Tcl_DoOneEvent + 329
  19  Tk                            	0x0000000101d15f68 Tk_MainLoop + 24
  20  Tcl                           0x00000001000a0010 Tcl_MainEx + 2109
  21  tclsh8.6                      	0x00000001000029b2 main + 56
  22  tclsh8.6                      	0x0000000100002918 start + 52

  Thread 1:: Dispatch queue: com.apple.libdispatch-manager
  0   libsystem_kernel.dylib        	0x00007fff8e054d16 kevent + 10
  1   libdispatch.dylib             0x00007fff8dd43dea _dispatch_mgr_invoke + 883
  2   libdispatch.dylib             0x00007fff8dd439ee _dispatch_mgr_thread + 54

  Thread 2:
  0   libsystem_kernel.dylib        	0x00007fff8e054322 __select + 10
  1   Tcl                           0x00000001000f1cbb NotifierThreadProc + 558
  2   libsystem_c.dylib             0x00007fff857f87a2 _pthread_start + 327
  3   libsystem_c.dylib             0x00007fff857e51e1 thread_start + 13

  Thread 3:
  0   libsystem_kernel.dylib        	0x00007fff8e0546d6 __workq_kernreturn + 10
  1   libsystem_c.dylib             0x00007fff857faf4c _pthread_workq_return + 25
  2   libsystem_c.dylib             0x00007fff857fad13 _pthread_wqthread + 412
  3   libsystem_c.dylib             0x00007fff857e51d1 start_wqthread + 13

  Thread 4:
  0   libsystem_kernel.dylib        	0x00007fff8e0546d6 __workq_kernreturn + 10
  1   libsystem_c.dylib             0x00007fff857faf4c _pthread_workq_return + 25
  2   libsystem_c.dylib             0x00007fff857fad13 _pthread_wqthread + 412
  3   libsystem_c.dylib             0x00007fff857e51d1 start_wqthread + 13

  Thread 0 crashed with X86 Thread State (64-bit):
    rax: 0x0000000000000000  rbx: 0x0000000000000006  rcx: 0x00007fff5fbfe378  rdx: 0x0000000000000000
    rdi: 0x0000000000000707  rsi: 0x0000000000000006  rbp: 0x00007fff5fbfe3a0  rsp: 0x00007fff5fbfe378
     r8: 0x00007fff71a36278   r9: 0x0000000000000006  r10: 0x0000000020000000  r11: 0x0000000000000206
    r12: 0x00007fff5fbfe500  r13: 0x0000000100a9a610  r14: 0x00007fff71a37180  r15: 0x00007fff5fbfe3e0
    rip: 0x00007fff8e054212  rfl: 0x0000000000000206  cr2: 0x00007fff71a2fff0
  Logical CPU: 0

  Binary Images:
         0x100000000 -        0x100002fff +tclsh8.6 (8.6.0 - 8.6.0) <89DAC27A-8C83-8E75-F699-25722A4BAA52> /usr/local/bin/tclsh8.6
         0x100005000 -        0x100132fef +Tcl (8.6.0 - 8.6.0) <16C07B11-77E6-B191-103C-3E6E05FE7988> /Library/Frameworks/Tcl.framework/Versions/8.6/Tcl
         0x10019b000 -        0x10019cff7  libCyrillicConverter.dylib (61) <D06971D7-9F16-3FE6-81E8-33E0FE4D6586> /System/Library/CoreServices/Encodings/libCyrillicConverter.dylib
         0x1007a5000 -        0x1007a8fef +libtkimg1.4.1.dylib (1.4.1) <DBA38FB7-6B63-F003-C83A-745FB411F824> /Library/Tcl/*/libtkimg1.4.1.dylib
         0x1007ac000 -        0x1007b0fff +libtkimgbmp1.4.1.dylib (1.4.1) <D5E295BF-95C8-615C-15AE-E181144CCABF> /Library/Tcl/*/libtkimgbmp1.4.1.dylib
         0x1007b3000 -        0x1007b8fe7 +libtkimggif1.4.1.dylib (1.4.1) <D2609F95-2C0F-4C45-DD07-F8727B0193C2> /Library/Tcl/*/libtkimggif1.4.1.dylib
         0x1007bb000 -        0x1007c0ff7 +libtkimgico1.4.1.dylib (1.4.1) <933683C2-CCEA-6EE2-8E35-0AB2E5874B68> /Library/Tcl/*/libtkimgico1.4.1.dylib
         0x1007c3000 -        0x1007c7fff +libtkimgjpeg1.4.1.dylib (1.4.1) <7C0F4ED6-CF45-8CA2-347B-B0F21219251B> /Library/Tcl/*/libtkimgjpeg1.4.1.dylib
         0x1007ca000 -        0x1007ceff7 +libtkimgpcx1.4.1.dylib (1.4.1) <8F7B1AB3-37A5-3197-694B-6209FC94268F> /Library/Tcl/*/libtkimgpcx1.4.1.dylib
         0x1007d1000 -        0x1007d8fff +libtkimgpixmap1.4.1.dylib (1.4.1) <956B95BD-EA2F-3619-BE2F-B8BA623262BF> /Library/Tcl/*/libtkimgpixmap1.4.1.dylib
         0x1007db000 -        0x1007f5ff7 +libzlibtcl1.2.7.dylib (1.2.7) <855F1A4E-220A-D0D9-D3DF-955F7BCB40B8> /Library/Tcl/*/libzlibtcl1.2.7.dylib
         0x1007f9000 -        0x1007fcff7 +libtkimgpng1.4.1.dylib (1.4.1) <C52C599C-0865-C283-6A6A-EA34F5CCA885> /Library/Tcl/*/libtkimgpng1.4.1.dylib
         0x101883000 -        0x1018d0fff +libjpegtcl8.3.dylib (8.3) <9BF83CD4-B227-F6C8-5DD9-628F26AF9E78> /Library/Tcl/*/libjpegtcl8.3.dylib
         0x1018d8000 -        0x1018ddff7 +libtkimgppm1.4.1.dylib (1.4.1) <C271EA24-ECCF-A604-E669-3E907B30EB00> /Library/Tcl/*/libtkimgppm1.4.1.dylib
         0x1018e0000 -        0x1018e3ff7 +libtkimgps1.4.1.dylib (1.4.1) <2CC5E272-A58F-D155-4D48-6C76CF5FFC6D> /Library/Tcl/*/libtkimgps1.4.1.dylib
         0x1018e6000 -        0x1018ecff7 +libtkimgsgi1.4.1.dylib (1.4.1) <3C92A167-D60D-3568-9B7D-29BB0692A5EB> /Library/Tcl/*/libtkimgsgi1.4.1.dylib
         0x1018ef000 -        0x1018f4fff +libtkimgsun1.4.1.dylib (1.4.1) <C73BEC82-73A8-38C8-7443-9771ACAF05A2> /Library/Tcl/*/libtkimgsun1.4.1.dylib
         0x1018f7000 -        0x1018fbfff +libtkimgtga1.4.1.dylib (1.4.1) <43A2D36B-A7DD-E058-7DAF-DEE5445254A2> /Library/Tcl/*/libtkimgtga1.4.1.dylib
         0x101d00000 -        0x101e1afe7 +Tk (8.6.0 - 8.6.0) <DAA87C08-C49D-EFA4-DD71-ED7DE1443A69> /Library/Frameworks/Tk.framework/Versions/8.6/Tk
         0x101f05000 -        0x101f34fef +libpngtcl1.4.12.dylib (1.4.12) <BEDDF33D-E6A9-E83F-36E7-8DC7A2F94F8A> /Library/Tcl/*/libpngtcl1.4.12.dylib
         0x101f3b000 -        0x101f81ff7  libtifftcl3.9.4.dylib (97.1) <B269CDB9-3348-35BA-A5E2-17CAEC4843A8> /System/Library/Tcl/8.5/Img1.4/libtifftcl3.9.4.dylib
         0x101f8d000 -        0x101f9dff7 +libtkimgtiff1.4.1.dylib (1.4.1) <647D2C7F-503A-BFCD-E1E0-0FDFECA27405> /Library/Tcl/*/libtkimgtiff1.4.1.dylib
         0x101fa2000 -        0x101fa7ff7 +libtkimgwindow1.4.1.dylib (1.4.1) <020EB9FD-C0D4-B215-0150-773172E176AF> /Library/Tcl/*/libtkimgwindow1.4.1.dylib
         0x101faa000 -        0x101fadff7 +libtkimgxbm1.4.1.dylib (1.4.1) <56EA2E5B-1E72-C921-0D18-62057C647BDA> /Library/Tcl/*/libtkimgxbm1.4.1.dylib
         0x101fb0000 -        0x101fb4fff +libtkimgxpm1.4.1.dylib (1.4.1) <9482F4FE-DC0F-2540-F749-40BC197F83BC> /Library/Tcl/*/libtkimgxpm1.4.1.dylib
         0x103161000 -        0x1031fffff +libsqlite3.7.15.2.dylib (3.7.15) <2C939015-3CB5-0634-1636-1AD6F5F3CF6B> /Library/Tcl/*/libsqlite3.7.15.2.dylib
      0x7fff661cb000 -     0x7fff661ff93f  dyld (210.2.3) <A40597AA-5529-3337-8C09-D8A014EB1578> /usr/lib/dyld
      0x7fff8111a000 -     0x7fff813ebff7  com.apple.security (7.0 - 55179.13) <F428E306-C407-3B55-BA82-E58755E8A76F> /System/Library/Frameworks/Security.framework/Versions/A/Security
      0x7fff823ac000 -     0x7fff823cbff7  com.apple.ChunkingLibrary (2.0 - 133.3) <8BEC9AFB-DCAA-37E8-A5AB-24422B234ECF> /System/Library/PrivateFrameworks/ChunkingLibrary.framework/Versions/A/ChunkingLibrary
      0x7fff823dd000 -     0x7fff82446fff  libstdc++.6.dylib (56) <08A26E98-26A7-3A23-A594-01EF923BA123> /usr/lib/libstdc++.6.dylib
      0x7fff82d44000 -     0x7fff82d88fff  libcups.2.dylib (327.6) <9C01D012-6F4C-3B69-B614-1B408B0ED4E3> /usr/lib/libcups.2.dylib
      0x7fff82d89000 -     0x7fff82dbffff  com.apple.DebugSymbols (98 - 98) <7059F71D-9A82-3D32-99BB-E043DEDA6174> /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols
      0x7fff82f32000 -     0x7fff82f35fff  com.apple.help (1.3.2 - 42) <418A9A41-BCB4-32A2-97ED-3A388F69CA9D> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help
      0x7fff82f36000 -     0x7fff82f58ff7  com.apple.Kerberos (2.0 - 1) <416543F5-E7AF-3269-843F-C8CDA8DD0FFA> /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
      0x7fff8380f000 -     0x7fff8380fffd  com.apple.audio.units.AudioUnit (1.9 - 1.9) <EC55FB59-2443-3F08-9142-7BCC93C76E4E> /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
      0x7fff83816000 -     0x7fff8381cfff  libmacho.dylib (829) <BF332AD9-E89F-387E-92A4-6E1AB74BD4D9> /usr/lib/system/libmacho.dylib
      0x7fff83c41000 -     0x7fff83ca4ff7  com.apple.audio.CoreAudio (4.1.1 - 4.1.1) <9ACD3AED-6C04-3BBB-AB2A-FC253B16D093> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
      0x7fff83cda000 -     0x7fff83cdefff  libCGXType.A.dylib (332) <17C8DD17-B3CB-3633-B252-C368AE51204C> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGXType.A.dylib
      0x7fff83cdf000 -     0x7fff83d61ff7  com.apple.Heimdal (3.0 - 2.0) <C94B0C6C-1320-35A1-8143-FE252E7B2A08> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal
      0x7fff83d62000 -     0x7fff83db9ff7  com.apple.ScalableUserInterface (1.0 - 1) <93C14595-6172-37E9-88F2-CBC80A1C54D0> /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/ScalableUserInterface.framework/Versions/A/ScalableUserInterface
      0x7fff83dba000 -     0x7fff83dbffff  libcache.dylib (57) <65187C6E-3FBF-3EB8-A1AA-389445E2984D> /usr/lib/system/libcache.dylib
      0x7fff83de9000 -     0x7fff83e3aff7  com.apple.SystemConfiguration (1.12.2 - 1.12.2) <A4341BBD-A330-3A57-8891-E9C1A286A72D> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
      0x7fff83e3b000 -     0x7fff83fb0ff7  com.apple.CFNetwork (596.4.3 - 596.4.3) <A57B3308-2F08-3EC3-B4AC-39A3D9F0B9F7> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
      0x7fff844b9000 -     0x7fff844bdff7  com.apple.CommonPanels (1.2.5 - 94) <5F81D593-4B87-3DCC-B934-625D436B4CB1> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels
      0x7fff844fb000 -     0x7fff84555fff  com.apple.print.framework.PrintCore (8.3 - 387.2) <5BA0CBED-4D80-386A-9646-F835C9805B71> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
      0x7fff84556000 -     0x7fff84561fff  libsystem_notify.dylib (98.5) <C49275CC-835A-3207-AFBA-8C01374927B6> /usr/lib/system/libsystem_notify.dylib
      0x7fff84562000 -     0x7fff84562fff  com.apple.vecLib (3.8 - vecLib 3.8) <794317C7-4E38-338A-A874-5E18001C8503> /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib
      0x7fff84563000 -     0x7fff84628ff7  com.apple.coreui (2.0 - 181.1) <7C4196D5-79E8-3557-963B-71F494DC9B04> /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
      0x7fff84629000 -     0x7fff8464aff7  libCRFSuite.dylib (33) <B49DA255-A4D9-33AF-95AB-B319570CDF7B> /usr/lib/libCRFSuite.dylib
      0x7fff84658000 -     0x7fff8467dff7  libc++abi.dylib (26) <D86169F3-9F31-377A-9AF3-DB17142052E4> /usr/lib/libc++abi.dylib
      0x7fff846cf000 -     0x7fff84769fff  libvMisc.dylib (380.6) <714336EA-1C0E-3735-B31C-19DFDAAF6221> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
      0x7fff8476a000 -     0x7fff84772ff7  libsystem_dnssd.dylib (379.38.1) <BDCB8566-0189-34C0-9634-35ABD3EFE25B> /usr/lib/system/libsystem_dnssd.dylib
      0x7fff84773000 -     0x7fff84794fff  com.apple.Ubiquity (1.2 - 243.15) <C9A7EE77-B637-3676-B667-C0843BBB0409> /System/Library/PrivateFrameworks/Ubiquity.framework/Versions/A/Ubiquity
      0x7fff84795000 -     0x7fff8479afff  com.apple.OpenDirectory (10.8 - 151.10) <1F47EC96-7403-3690-8D8D-C31D3B6FDA0A> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
      0x7fff848d8000 -     0x7fff848e3fff  com.apple.CommonAuth (3.0 - 2.0) <7A953C1F-8B18-3E46-9BEA-26D9B5B7745D> /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth
      0x7fff848e4000 -     0x7fff848ebfff  libGFXShared.dylib (8.9.2) <398F8D57-EC82-3E13-AC8E-470BE19237D7> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib
      0x7fff848ec000 -     0x7fff84992ff7  com.apple.CoreServices.OSServices (557.6 - 557.6) <1BDB5456-0CE9-301C-99C1-8EFD0D2BFCCD> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
      0x7fff849a3000 -     0x7fff849affff  libCSync.A.dylib (332) <47466CF6-EB5C-3312-9E24-178F4410A92B> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCSync.A.dylib
      0x7fff84adb000 -     0x7fff84b1eff7  com.apple.RemoteViewServices (2.0 - 80.6) <5CFA361D-4853-3ACC-9EFC-A2AC1F43BA4B> /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices
      0x7fff84b1f000 -     0x7fff84b36fff  libGL.dylib (8.9.2) <B8E5948D-BCF2-3727-B74E-D74B8EDC82D6> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
      0x7fff84bcc000 -     0x7fff84c09fef  libGLImage.dylib (8.9.2) <C38649ED-E1C9-315E-9953-F33E8C6A3C89> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
      0x7fff84c26000 -     0x7fff84c3dfff  com.apple.GenerationalStorage (1.1 - 132.3) <FD4A84B3-13A8-3C60-A59E-25A361447A17> /System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/GenerationalStorage
      0x7fff84cbf000 -     0x7fff84cc0fff  liblangid.dylib (116) <864C409D-D56B-383E-9B44-A435A47F2346> /usr/lib/liblangid.dylib
      0x7fff84cc1000 -     0x7fff84cedff7  libRIP.A.dylib (332) <D26BC320-B415-3C4D-B57F-D525FC361BB2> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib
      0x7fff84cee000 -     0x7fff84d15fff  com.apple.framework.familycontrols (4.1 - 410) <50F5A52C-8FB6-300A-977D-5CFDE4D5796B> /System/Library/PrivateFrameworks/FamilyControls.framework/Versions/A/FamilyControls
      0x7fff84d16000 -     0x7fff84e36fff  com.apple.desktopservices (1.7.4 - 1.7.4) <ED3DA8C0-160F-3CDC-B537-BF2E766AB7C1> /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
      0x7fff84e37000 -     0x7fff84f2cfff  libiconv.2.dylib (34) <FEE8B996-EB44-37FA-B96E-D379664DEFE1> /usr/lib/libiconv.2.dylib
      0x7fff84f56000 -     0x7fff84f5dfff  libcopyfile.dylib (89) <876573D0-E907-3566-A108-577EAD1B6182> /usr/lib/system/libcopyfile.dylib
      0x7fff84f5e000 -     0x7fff84f5ffff  libsystem_blocks.dylib (59) <D92DCBC3-541C-37BD-AADE-ACC75A0C59C8> /usr/lib/system/libsystem_blocks.dylib
      0x7fff84f8c000 -     0x7fff84fcfff7  com.apple.bom (12.0 - 192) <0EFE0F2D-B6DE-3D1E-93C2-EED6D96F70A2> /System/Library/PrivateFrameworks/Bom.framework/Versions/A/Bom
      0x7fff84fd7000 -     0x7fff85072fff  com.apple.CoreSymbolication (3.0 - 117) <C304FDB8-2FF7-34BC-858A-2B96C2B039D5> /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication
      0x7fff850d0000 -     0x7fff850fbfff  libxslt.1.dylib (11.3) <441776B8-9130-3893-956F-39C85FFA644F> /usr/lib/libxslt.1.dylib
      0x7fff8521d000 -     0x7fff85285ff7  libc++.1.dylib (65.1) <E5A0C88E-0837-3015-A987-F8C5A0D35DD6> /usr/lib/libc++.1.dylib
      0x7fff85286000 -     0x7fff85288fff  com.apple.securityhi (4.0 - 55002) <8B2008A2-B6A2-3E69-9FA2-77B38C869DD6> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
      0x7fff852d1000 -     0x7fff853a3ff7  com.apple.CoreText (260.0 - 275.16) <990F3C7D-EEF1-33C4-99D6-8E81C96ED3E3> /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText
      0x7fff853a4000 -     0x7fff853a4fff  com.apple.Cocoa (6.7 - 19) <3CFC90D2-2BE9-3E5C-BFDB-5E161A2C2B29> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
      0x7fff853a5000 -     0x7fff854bd92f  libobjc.A.dylib (532.2) <90D31928-F48D-3E37-874F-220A51FD9E37> /usr/lib/libobjc.A.dylib
      0x7fff854c9000 -     0x7fff85677fff  com.apple.QuartzCore (1.8 - 304.3) <F450F2DE-2F24-3557-98B6-310E05DAC17F> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
      0x7fff85708000 -     0x7fff8575dff7  libTIFF.dylib (850) <EDAF0D99-70AF-3B3F-9EFA-9463C91D0E3C> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
      0x7fff8575e000 -     0x7fff85773fff  com.apple.ImageCapture (8.0 - 8.0) <71B24609-DEE9-3927-9C82-62E72270299C> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
      0x7fff85774000 -     0x7fff8579bff7  com.apple.PerformanceAnalysis (1.16 - 16) <1BDA3662-18B7-3F38-94E5-9ACD477A7682> /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis
      0x7fff857e4000 -     0x7fff858b0ff7  libsystem_c.dylib (825.26) <4C9EB006-FE1F-3F8F-8074-DFD94CF2CE7B> /usr/lib/system/libsystem_c.dylib
      0x7fff8590e000 -     0x7fff85925fff  com.apple.CFOpenDirectory (10.8 - 151.10) <FFBBA538-00B5-334E-BA5B-C8AD6CDCDA14> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
      0x7fff85926000 -     0x7fff85926fff  com.apple.ApplicationServices (45 - 45) <5302CC85-D534-3FE5-9E56-CA16762177F6> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
      0x7fff85927000 -     0x7fff85933fff  com.apple.CrashReporterSupport (10.8.3 - 418) <DE6AFE16-D97E-399D-82ED-3522C773C36E> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport
      0x7fff85934000 -     0x7fff85942fff  com.apple.Librarian (1.1 - 1) <5AC28666-7642-395F-A923-C6F8A274BBBD> /System/Library/PrivateFrameworks/Librarian.framework/Versions/A/Librarian
      0x7fff8598f000 -     0x7fff8599dff7  libkxld.dylib (2050.24.15) <A619A9AC-09AF-3FF3-95BF-F07CC530EC31> /usr/lib/system/libkxld.dylib
      0x7fff859eb000 -     0x7fff85a45ff7  com.apple.opencl (2.2.19 - 2.2.19) <3C7DFB2C-B3F9-3447-A1FC-EAAA42181A6E> /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
      0x7fff85a46000 -     0x7fff85a5cfff  com.apple.MultitouchSupport.framework (235.29 - 235.29) <617EC8F1-BCE7-3553-86DD-F857866E1257> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
      0x7fff85ab7000 -     0x7fff85ab7fff  libkeymgr.dylib (25) <CC9E3394-BE16-397F-926B-E579B60EE429> /usr/lib/system/libkeymgr.dylib
      0x7fff85b1a000 -     0x7fff85b1cff7  com.apple.print.framework.Print (8.0 - 258) <8F243E49-021F-3892-B555-3010A7F450A2> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
      0x7fff85b89000 -     0x7fff85b8dfff  libCoreVMClient.dylib (32.3) <AD8391D9-56DD-3A78-A294-6A30E6ECE1A2> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib
      0x7fff85b8e000 -     0x7fff85b91ff7  libdyld.dylib (210.2.3) <F59367C9-C110-382B-A695-9035A6DD387E> /usr/lib/system/libdyld.dylib
      0x7fff85c6a000 -     0x7fff85c79fff  com.apple.opengl (1.8.9 - 1.8.9) <6FD163A7-16CC-3D1F-B4B5-B0FDC4ADBF79> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
      0x7fff85d6c000 -     0x7fff85e1dfff  com.apple.LaunchServices (539.9 - 539.9) <07FC6766-778E-3479-8F28-D2C9917E1DD1> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
      0x7fff85e1e000 -     0x7fff85e29ff7  com.apple.bsd.ServiceManagement (2.0 - 2.0) <C12962D5-85FB-349E-AA56-64F4F487F219> /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement
      0x7fff85e2a000 -     0x7fff85e2efff  libpam.2.dylib (20) <C8F45864-5B58-3237-87E1-2C258A1D73B8> /usr/lib/libpam.2.dylib
      0x7fff85e2f000 -     0x7fff85e34fff  libcompiler_rt.dylib (30) <08F8731D-5961-39F1-AD00-4590321D24A9> /usr/lib/system/libcompiler_rt.dylib
      0x7fff85e35000 -     0x7fff85e48ff7  com.apple.LangAnalysis (1.7.0 - 1.7.0) <023D909C-3AFA-3438-88EB-05D0BDA5AFFE> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
      0x7fff86091000 -     0x7fff860e7fff  com.apple.HIServices (1.20 - 417) <A1129272-FEC8-350B-BA26-5A97F23C413D> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
      0x7fff860fd000 -     0x7fff8610bff7  libsystem_network.dylib (77.10) <2AAA67A1-525E-38F0-8028-1D2B64716611> /usr/lib/system/libsystem_network.dylib
      0x7fff8610c000 -     0x7fff86112fff  com.apple.DiskArbitration (2.5.2 - 2.5.2) <C713A35A-360E-36CE-AC0A-25C86A3F50CA> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
      0x7fff86273000 -     0x7fff86311ff7  com.apple.ink.framework (10.8.2 - 150) <3D8D16A2-7E01-3EA1-B637-83A36D353308> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
      0x7fff8632d000 -     0x7fff86340ff7  libbsm.0.dylib (32) <F497D3CE-40D9-3551-84B4-3D5E39600737> /usr/lib/libbsm.0.dylib
      0x7fff863b0000 -     0x7fff863b4fff  com.apple.IOSurface (86.0.4 - 86.0.4) <26F01CD4-B76B-37A3-989D-66E8140542B3> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
      0x7fff863b5000 -     0x7fff863bbff7  libunwind.dylib (35.1) <21703D36-2DAB-3D8B-8442-EAAB23C060D3> /usr/lib/system/libunwind.dylib
      0x7fff863bc000 -     0x7fff8671bfff  com.apple.Foundation (6.8 - 945.18) <1D7E58E6-FA3A-3CE8-AC85-B9D06B8C0AA0> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
      0x7fff86f02000 -     0x7fff87232fff  com.apple.HIToolbox (2.0 - 626.1) <656D08C2-9068-3532-ABDD-32EC5057CCB2> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
      0x7fff87233000 -     0x7fff87233fff  com.apple.CoreServices (57 - 57) <45F1466A-8264-3BB7-B0EC-E5E5BFBED143> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
      0x7fff8727b000 -     0x7fff8728aff7  libxar.1.dylib (105) <B6A7C8AA-3E20-3A1D-A7BA-4FD0052FA508> /usr/lib/libxar.1.dylib
      0x7fff873c5000 -     0x7fff873c6ff7  libSystem.B.dylib (169.3) <EFACA0C5-1AC6-3F93-9E02-147D4B0A0112> /usr/lib/libSystem.B.dylib
      0x7fff873c7000 -     0x7fff873c8ff7  libremovefile.dylib (23.2) <6763BC8E-18B8-3AD9-8FFA-B43713A7264F> /usr/lib/system/libremovefile.dylib
      0x7fff873c9000 -     0x7fff873c9fff  com.apple.Carbon (154 - 155) <372716D2-6FA1-3611-8501-3DD1D4A6E8C8> /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
      0x7fff87667000 -     0x7fff87764ff7  libxml2.2.dylib (22.3) <7FD09F53-83DA-3ECD-8DD9-870E1A2F0427> /usr/lib/libxml2.2.dylib
      0x7fff879dd000 -     0x7fff87b78fef  com.apple.vImage (6.0 - 6.0) <FAE13169-295A-33A5-8E6B-7C2CC1407FA7> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
      0x7fff87b98000 -     0x7fff885284af  com.apple.CoreGraphics (1.600.0 - 332) <5AB32E51-9154-3733-B83B-A9A748652847> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
      0x7fff88529000 -     0x7fff88946fff  FaceCoreLight (2.4.1) <A34C9575-C4C1-31B1-809B-7751070B4E8B> /System/Library/PrivateFrameworks/FaceCoreLight.framework/Versions/A/FaceCoreLight
      0x7fff88947000 -     0x7fff88949fff  libCVMSPluginSupport.dylib (8.9.2) <EF1192AC-3357-3A0B-BFAF-6594D7737892> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib
      0x7fff88a3c000 -     0x7fff88a3cfff  libOpenScriptingUtil.dylib (148.3) <F8681222-0969-3B10-8BCE-C55A4B9C520C> /usr/lib/libOpenScriptingUtil.dylib
      0x7fff88a8f000 -     0x7fff88aebff7  com.apple.Symbolication (1.3 - 93) <D9DBF413-34C7-3BC5-A0A6-81C06BA9FB62> /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication
      0x7fff88aec000 -     0x7fff88af0fff  libGIF.dylib (850) <D4525F87-759C-338C-B283-BB8DE815D3D5> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
      0x7fff88af1000 -     0x7fff88c0afff  com.apple.ImageIO.framework (3.2.1 - 850) <C3FFCEEB-AA0C-314B-9E94-7005EE48A403> /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
      0x7fff88e02000 -     0x7fff88e04ff7  libunc.dylib (25) <2FDC94A7-3039-3680-85F3-2164E63B464D> /usr/lib/system/libunc.dylib
      0x7fff88e05000 -     0x7fff88f10fff  libFontParser.dylib (84.6) <96C42E49-79A6-3475-B5E4-6A782599A6DA> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib
      0x7fff88f11000 -     0x7fff88f70fff  com.apple.AE (645.6 - 645.6) <44F403C1-660A-3543-AB9C-3902E02F936F> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
      0x7fff88f71000 -     0x7fff88f73fff  libquarantine.dylib (52.1) <143B726E-DF47-37A8-90AA-F059CFD1A2E4> /usr/lib/system/libquarantine.dylib
      0x7fff88f74000 -     0x7fff88f86ff7  libz.1.dylib (43) <2A1551E8-A272-3DE5-B692-955974FE1416> /usr/lib/libz.1.dylib
      0x7fff88f91000 -     0x7fff88f9efff  com.apple.AppleFSCompression (49 - 1.0) <E616053D-D3C2-3600-B8DF-A5E0D9665634> /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression
      0x7fff88f9f000 -     0x7fff8900dff7  com.apple.framework.IOKit (2.0.1 - 755.24.1) <04BFB138-8AF4-310A-8E8C-045D8A239654> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
      0x7fff8900e000 -     0x7fff8903fff7  com.apple.DictionaryServices (1.2 - 184.4) <2EC80C71-263E-3D63-B461-6351C876C50D> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
      0x7fff89040000 -     0x7fff89040fff  com.apple.Accelerate (1.8 - Accelerate 1.8) <6AD48543-0864-3D40-80CE-01F184F24B45> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
      0x7fff8915a000 -     0x7fff89168fff  libcommonCrypto.dylib (60027) <BAAFE0C9-BB86-3CA7-88C0-E3CBA98DA06F> /usr/lib/system/libcommonCrypto.dylib
      0x7fff89169000 -     0x7fff891d1fff  libvDSP.dylib (380.6) <CD4C5EEB-9E63-30C4-8103-7A5EAEA0BE60> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
      0x7fff892b6000 -     0x7fff892d8ff7  libxpc.dylib (140.43) <70BC645B-6952-3264-930C-C835010CCEF9> /usr/lib/system/libxpc.dylib
      0x7fff892e2000 -     0x7fff894ccff7  com.apple.CoreFoundation (6.8 - 744.19) <0F7403CA-2CB8-3D0A-992B-679701DF27CA> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
      0x7fff894cd000 -     0x7fff894edfff  libPng.dylib (850) <203C43BF-FAD3-3CCB-81D5-F2770E36338B> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
      0x7fff89549000 -     0x7fff89646fff  libsqlite3.dylib (138.1) <ADE9CB98-D77D-300C-A32A-556B7440769F> /usr/lib/libsqlite3.dylib
      0x7fff8995d000 -     0x7fff8995eff7  libsystem_sandbox.dylib (220.3) <B739DA63-B675-387A-AD84-412A651143C0> /usr/lib/system/libsystem_sandbox.dylib
      0x7fff8995f000 -     0x7fff899ecff7  com.apple.SearchKit (1.4.0 - 1.4.0) <54A8069C-E497-3B07-BEA7-D3BC9DB5B649> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
      0x7fff89abf000 -     0x7fff89ac6fff  com.apple.NetFS (5.0 - 4.0) <195D8EC9-72BB-3E04-A64D-E1A89B4850C1> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
      0x7fff89b42000 -     0x7fff89c44fff  libJP2.dylib (850) <2E43216C-3A5A-3693-820C-38B360698FA0> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
      0x7fff89d60000 -     0x7fff89f60fff  libicucore.A.dylib (491.11.3) <5783D305-04E8-3D17-94F7-1CEAFA975240> /usr/lib/libicucore.A.dylib
      0x7fff89f61000 -     0x7fff89f8fff7  libsystem_m.dylib (3022.6) <11B6081D-6212-3EAB-9975-BED6234BD6A5> /usr/lib/system/libsystem_m.dylib
      0x7fff89f90000 -     0x7fff8a116fff  libBLAS.dylib (1073.4) <C102C0F6-8CB6-3B49-BA6B-2EB61F0B2784> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
      0x7fff8a21e000 -     0x7fff8a2f8fff  com.apple.backup.framework (1.4.3 - 1.4.3) <6B65C44C-7777-3331-AD9D-438D10AAC777> /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup
      0x7fff8a916000 -     0x7fff8a916fff  com.apple.Accelerate.vecLib (3.8 - vecLib 3.8) <B5A18EE8-DF81-38DD-ACAF-7076B2A26225> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
      0x7fff8a917000 -     0x7fff8a966ff7  libFontRegistry.dylib (100) <F7EC0287-58E4-3ABE-A45E-B105A68EA76E> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
      0x7fff8a967000 -     0x7fff8a97bfff  com.apple.speech.synthesis.framework (4.1.12 - 4.1.12) <94EDF2AB-809C-3D15-BED5-7AD45B2A7C16> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
      0x7fff8a9a5000 -     0x7fff8aa26fff  com.apple.Metadata (10.7.0 - 707.11) <2DD25313-420D-351A-90F1-300E95C970CA> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
      0x7fff8aafb000 -     0x7fff8ab45ff7  libGLU.dylib (8.9.2) <1B5511FF-1064-3004-A245-972CE5687D37> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
      0x7fff8ab46000 -     0x7fff8ab53fff  libbz2.1.0.dylib (29) <CE9785E8-B535-3504-B392-82F0064D9AF2> /usr/lib/libbz2.1.0.dylib
      0x7fff8ab54000 -     0x7fff8ab73ff7  libresolv.9.dylib (51) <0882DC2D-A892-31FF-AD8C-0BB518C48B23> /usr/lib/libresolv.9.dylib
      0x7fff8ab86000 -     0x7fff8ab87fff  libDiagnosticMessagesClient.dylib (8) <8548E0DC-0D2F-30B6-B045-FE8A038E76D8> /usr/lib/libDiagnosticMessagesClient.dylib
      0x7fff8ab88000 -     0x7fff8abbeff7  libsystem_info.dylib (406.17) <C9BA1024-043C-3BD5-908F-AF709E05DEE4> /usr/lib/system/libsystem_info.dylib
      0x7fff8ac5d000 -     0x7fff8ac5ffff  com.apple.TrustEvaluationAgent (2.0 - 23) <A97D348B-32BF-3E52-8DF2-59BFAD21E1A3> /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent
      0x7fff8b0d6000 -     0x7fff8b30bff7  com.apple.CoreData (106.1 - 407.7) <24E0A6B4-9ECA-3D12-B26A-72B9DCF09768> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
      0x7fff8b35c000 -     0x7fff8b366fff  com.apple.speech.recognition.framework (4.1.5 - 4.1.5) <5A4B532E-3428-3F0A-8032-B0AFFF72CA3D> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
      0x7fff8b370000 -     0x7fff8b3ddff7  com.apple.datadetectorscore (4.1 - 269.3) <5775F0DB-87D6-310D-8B03-E2AD729EFB28> /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
      0x7fff8b458000 -     0x7fff8b6fcff7  com.apple.CoreImage (8.4.0 - 1.0.1) <CC6DD22B-FFC6-310B-BE13-2397A02C79EF> /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/CoreImage.framework/Versions/A/CoreImage
      0x7fff8b6fd000 -     0x7fff8b705fff  liblaunch.dylib (442.26.2) <2F71CAF8-6524-329E-AC56-C506658B4C0C> /usr/lib/system/liblaunch.dylib
      0x7fff8b706000 -     0x7fff8b734fff  com.apple.CoreServicesInternal (154.3 - 154.3) <F4E118E4-E327-3314-83D7-EA20B1717ED0> /System/Library/PrivateFrameworks/CoreServicesInternal.framework/Versions/A/CoreServicesInternal
      0x7fff8b735000 -     0x7fff8b75fff7  com.apple.CoreVideo (1.8 - 99.4) <E5082966-6D81-3973-A05A-38AA5B85F886> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
      0x7fff8b7bc000 -     0x7fff8bad3ff7  com.apple.CoreServices.CarbonCore (1037.6 - 1037.6) <1E567A52-677F-3168-979F-5FBB0818D52B> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
      0x7fff8beb0000 -     0x7fff8c2a7fff  libLAPACK.dylib (1073.4) <D632EC8B-2BA0-3853-800A-20DA00A1091C> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
      0x7fff8c2cb000 -     0x7fff8c2e8ff7  com.apple.openscripting (1.3.6 - 148.3) <C008F56A-1E01-3D4C-A9AF-97799D0FAE69> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
      0x7fff8c2e9000 -     0x7fff8c43bfff  com.apple.audio.toolbox.AudioToolbox (1.9 - 1.9) <62770C0F-5600-3EF9-A893-8A234663FFF5> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
      0x7fff8c43c000 -     0x7fff8c4bcff7  com.apple.ApplicationServices.ATS (332 - 341.1) <AFDC05E6-F842-33D9-9379-81DF26E510CA> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
      0x7fff8c4bd000 -     0x7fff8c53bff7  com.apple.securityfoundation (6.0 - 55115.4) <137E156C-B29C-3B84-95B3-669BC7C1BA7A> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
      0x7fff8c53c000 -     0x7fff8c5f9ff7  com.apple.ColorSync (4.8.0 - 4.8.0) <73BE495D-8985-3B88-A7D0-23DF0CB50304> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync
      0x7fff8c5fa000 -     0x7fff8c5feff7  com.apple.TCC (1.0 - 1) <76A86876-2280-3849-8478-450E1A8C0E01> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
      0x7fff8c602000 -     0x7fff8c64eff7  libauto.dylib (185.4) <AD5A4CE7-CB53-313C-9FAE-673303CC2D35> /usr/lib/libauto.dylib
      0x7fff8c64f000 -     0x7fff8c68eff7  com.apple.QD (3.42.1 - 285.1) <77A20C25-EBB5-341C-A05C-5D458B97AD5C> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
      0x7fff8c68f000 -     0x7fff8c69cff7  com.apple.NetAuth (4.0 - 4.0) <A4A21A2F-B26A-3DC9-95E4-DAFA43A4A2C3> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth
      0x7fff8c6ed000 -     0x7fff8d31afff  com.apple.AppKit (6.8 - 1187.39) <199962F0-B06B-3666-8FD5-5C90374BA16A> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
      0x7fff8d6d6000 -     0x7fff8d6fefff  libJPEG.dylib (850) <DC750E1E-BD07-339B-A4A6-D86BFE969F68> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
      0x7fff8d6ff000 -     0x7fff8d739ff7  com.apple.GSS (3.0 - 2.0) <970CAE00-1437-3F4E-B677-0FDB3714C08C> /System/Library/Frameworks/GSS.framework/Versions/A/GSS
      0x7fff8d813000 -     0x7fff8da80ff7  com.apple.RawCamera.bundle (4.07 - 696) <CCB97D78-309C-3CD9-B499-81192069A333> /System/Library/CoreServices/RawCamera.bundle/Contents/MacOS/RawCamera
      0x7fff8da81000 -     0x7fff8dad0ff7  libcorecrypto.dylib (106.2) <CE0C29A3-C420-339B-ADAA-52F4683233CC> /usr/lib/system/libcorecrypto.dylib
      0x7fff8dad1000 -     0x7fff8dadaff7  com.apple.CommerceCore (1.0 - 26.1) <40A129A8-4E5D-3C7A-B299-8CB203C4C65D> /System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/Frameworks/CommerceCore.framework/Versions/A/CommerceCore
      0x7fff8dd3f000 -     0x7fff8dd54ff7  libdispatch.dylib (228.23) <D26996BF-FC57-39EB-8829-F63585561E09> /usr/lib/system/libdispatch.dylib
      0x7fff8dd55000 -     0x7fff8dd58fff  libRadiance.dylib (850) <62E3F7FB-03E3-3937-A857-AF57A75EAF09> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
      0x7fff8dd8c000 -     0x7fff8dd8dff7  libdnsinfo.dylib (453.19) <14202FFB-C3CA-3FCC-94B0-14611BF8692D> /usr/lib/system/libdnsinfo.dylib
      0x7fff8e042000 -     0x7fff8e05dff7  libsystem_kernel.dylib (2050.24.15) <A9F97289-7985-31D6-AF89-151830684461> /usr/lib/system/libsystem_kernel.dylib

  External Modification Summary:
    Calls made by other processes targeting this process:
      task_for_pid: 2
      thread_create: 0
      thread_set_state: 0
    Calls made by this process:
      task_for_pid: 0
      thread_create: 0
      thread_set_state: 0
    Calls made by all processes on this machine:
      task_for_pid: 1130
      thread_create: 1
      thread_set_state: 0

  VM Region Summary:
  ReadOnly portion of Libraries: Total=150.0M resident=109.2M(73%) swapped_out_or_unallocated=40.8M(27%)
  Writable regions: Total=101.9M written=10.4M(10%) resident=65.3M(64%) swapped_out=0K(0%) unallocated=36.6M(36%)
   
  REGION TYPE                      VIRTUAL
  ===========                      =======
  CG backing stores                  21.9M
  CG image                           4176K
  CG raster data                       96K
  CG shared images                    192K
  CoreServices                       1628K
  MALLOC                             49.2M
  MALLOC guard page                    48K
  Memory tag=242                       12K
  Memory tag=251                        8K
  STACK GUARD                        56.0M
  Stack                              9820K
  VM_ALLOCATE                        16.4M
  __DATA                             11.1M
  __IMAGE                             528K
  __LINKEDIT                         52.7M
  __TEXT                             97.3M
  __UNICODE                           544K
  mapped file                        59.2M
  shared memory                       308K
  ===========                      =======
  TOTAL                             380.7M

  Model: MacBookPro10,2, BootROM MBP102.0106.B03, 2 processors, Intel Core i5, 2.5 GHz, 8 GB, SMC 2.6f57
  Graphics: Intel HD Graphics 4000, Intel HD Graphics 4000, Built-In, 768 MB
  Memory Module: BANK 0/DIMM0, 4 GB, DDR3, 1600 MHz, 0x80AD, 0x484D5434314753364D465238432D50422020
  Memory Module: BANK 1/DIMM0, 4 GB, DDR3, 1600 MHz, 0x80AD, 0x484D5434314753364D465238432D50422020
  AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x10F), Broadcom BCM43xx 1.0 (5.106.98.100.17)
  Bluetooth: Version 4.1.4f2 12041, 2 service, 11 devices, 1 incoming serial ports
  Network Service: Wi-Fi, AirPort, en0
  Serial ATA Device: APPLE SSD SM128E, 121,33 GB
  USB Device: Gaming Mouse G400, 0x046d  (Logitech Inc.), 0xc245, 0x14300000 / 1
  USB Device: hub_device, 0x8087  (Intel Corporation), 0x0024, 0x1d100000 / 2
  USB Device: hub_device, 0x0424  (SMSC), 0x2512, 0x1d180000 / 3
  USB Device: Apple Internal Keyboard / Trackpad, apple_vendor_id, 0x025a, 0x1d182000 / 5
  USB Device: BRCM20702 Hub, 0x0a5c  (Broadcom Corp.), 0x4500, 0x1d181000 / 4
  USB Device: Bluetooth USB Host Controller, apple_vendor_id, 0x828c, 0x1d181300 / 8
  USB Device: hub_device, 0x8087  (Intel Corporation), 0x0024, 0x1a100000 / 2
  USB Device: FaceTime HD Camera (Built-in), apple_vendor_id, 0x8510, 0x1a110000 / 3


tkt_uuid: 67c8e8bd7181b6b96e3e8dc8bc5493aa12e192e9
type: Bug
status: Open
subsystem: 01. Bindings
priority: 5 Medium
severity: Minor
foundin: 8.5
private_contact: e40bee9bb70e18ae53b0901318cf2dc9b532d408
resolution: None
title: DISABLEd Tkinter.Listbox still fires <<ListboxSelect>> for mouse click
comment:
  Run the script below. Clicking on the window will fire off <<ListboxSelect>> events even though the widget is disabled. Keyboard actions do not fire this event. I was bounced by the Python guys to you.

  #-- Test file --

  import Tkinter as tki

  def selection_changed(event):
    print 'Selection changed'

  root = tki.Tk()
  listbox = tki.Listbox(root, selectmode=tki.BROWSE)
  listbox.pack(side='left', fill='both', expand=True)
  listbox.bind('<<ListboxSelect>>', selection_changed)
  listbox.config(state=tki.DISABLED)
  root.mainloop()


tkt_uuid: d1d4286ddaad47daef8c187cc5596f7e34b238d2
type: Bug
status: Open
subsystem: 16. [scrollbar]
priority: 5 Medium
severity: Minor
foundin: 8.6
private_contact: df68c27e6baf9e5e5ff7eebbbbe353162a6be54c
resolution: None
title: ttk::scrollbar behaves differently than tk::scrollbar on win32
comment:
  Here's a small test-case showing the behavior of 'tk::scrollbar':

  -----
  package require Tk

  wm geometry . 300x200+50+50

  tk::listbox .listbox -yscrollcommand ".scrollbar set" -height 5
  tk::scrollbar .scrollbar -command ".listbox yview" -orient vertical

  grid .listbox -column 0 -row 0 -sticky nwes
  grid .scrollbar -column 1 -row 0 -sticky ns
  grid columnconfigure . 0 -weight 1
  grid rowconfigure . 0 -weight 1

  for {set i 0} {$i<100} {incr i} {
     .listbox insert end "Line $i of 100"
  }
  -----

  Some notes:

  - If using the left mouse button you click and hold below the scrollbar thumb, the scrollbar will move page by page until it reaches the location of the mouse cursor.

  - The background area below the thumb will change color (usually into black).

  But with the themed scrollbar (ttk::scrollbar), the behavior is different:

  - When you click and hold below the scrollbar thumb, the scrollbar will move all the way to the bottom, it won't stop to the cursor position.

  - The background area below the thumb does not change color.

  It seems like ttk::scrollbar has the same issues as e.g. GTK's scrollbar on win32, it doesn't seem to act natively.


tkt_uuid: b7445265123a5ebb88127b15f00e6436cc220788
type: Bug
status: Pending
subsystem: 88. Themed Tk (Ttk)
priority: 5 Medium
severity: Minor
foundin: 8.6 trunk
private_contact: 591ec66e585a48f215946ef7f9b0cf43417a383e
resolution: Wont Fix
title: ::ttk::spinbox doesn't initialize value of box
comment:
  [spinbox .path/to/widget -from 0 -to 100 ...] causes the created spinbox to have the value 0, but the value is empty for the analagous [::ttk::spinbox].


tkt_uuid: c597acdab39212f2b5557e69e38eb3191f4a5927
type: Bug
status: Closed
subsystem: 88. Themed Tk (Ttk)
priority: 5 Medium
severity: Important
foundin: 8.6
private_contact: df68c27e6baf9e5e5ff7eebbbbe353162a6be54c
resolution: Fixed
title: ttk::progressbar stop command doesn't work in tracing function
comment:
  Test-case:

  -----
  ttk::progressbar .progbar -variable ::var -mode indeterminate

  proc tracer {varname args} {
      upvar #0 $varname var
      puts "var value: $var"

      # Note: call has no effect
      .progbar stop
  }

  trace add variable ::var write "tracer ::var"

  .progbar start
  pack .progbar
  -----

  Note how ".progbar stop" is being called in the tracing function, but it has no effect on the progress bar, it still continues to run. Calling "progbar stop" from the outside (e.g. after ".progbar start") does work however.

  I've filed this as Important since I use a tracing function for a binding to Tk to another language.

  I'm on Windows 7 x64, using Tk 8.6.


tkt_uuid: 910f1b49554768469bcc0d6590cf0a82968d7f1b
type: Bug
status: Open
subsystem: 01. Bindings
priority: 5 Medium
severity: Minor
foundin: 8.6 trunk
private_contact: e476148cded301ffff84bcdc432536dc0c949e88
resolution: None
title: Cocoa Key{Press,Release} serial numbers for auto-generated events
comment:
  for auto-generated KeyPress or KeyRelease events, it appears that under X11,
  KeyRelease serials are matched to KeyPress serials, but under Cocoa, KeyPress
  serials are matched to KeyRelease serials, but then in a ::ttk::spinbox in
  Cocoa, no serials match so Key* serial mechanism can't be used to detect
  synthesized Key events, as it can under X11.



  #! /bin/env tclsh

  package require Tk

  canvas .c -width 200 -height 200
  ::ttk::spinbox .sp1 -from 0 -to 100 -increment 1
  pack .c .sp1

  bind all <KeyPress> +[list [namespace current]::truekeypress %W %# [namespace current]::truepress]
  bind all <KeyRelease> +[list [namespace current]::truekeyrelease %W %# [namespace current]::truepress]


  variable truepress
  array set [namespace current]::truepress [list press 0 release 0]

  proc truekeypress {w serial arrayname} {
      puts "press: $serial"
      upvar $arrayname state
      set state(press) $serial
      if {$serial ne $state(release)} {
          event generate $w <<TrueKeyPress>>
      }
  }

  proc truekeyrelease {w serial arrayname} {
      puts "release: $serial"
      upvar $arrayname state
      set state(release) $serial
      after 0 [list apply [list {w arrayname} {
          upvar $arrayname state
          if {$state(release) ne $state(press)} {
              event generate $w <<TrueKeyRelease>>
          }
      } [namespace current]] $w $arrayname]
  }


tkt_uuid: ec7fa6bb5ce9f532853666639963399e1455fe06
type: Bug
status: Open
subsystem: 02. Appearance
priority: 5 Medium
severity: Minor
foundin: 8.6
resolution: None
title: Column and Row resize cursors could use better cursors
comment:
  Here's an example tree view widget:

  -----
  package require Tk
  ttk::treeview .tree
  .tree configure -columns "right"
  .tree heading #0 -text "left"
  .tree heading 0 -text "right"
  pack .tree
  -----

  On Win7 x64, when you try to resize the columns the cursor will change into the horizontal resize cursor (the same one as the one used for the edge of the window).

  However a more appropriate cursor is the horizontal /column/ resize cursor. There's also a row resize cursor as well on Win32. They're listed here:

  http://msdn.microsoft.com/en-us/library/windows/desktop/bb545459.aspx#concepts

  They're under the "Compound mouse interactions" table in the row labeled "Resizing", they're named "Row and column resize". They're the cursors used by default for column/row resize in most apps, e.g. Windows Explorer, uTorrent, etc.


tkt_uuid: e48513468334665015dfd3aca89c2ffb9458fa9b
type: Bug
status: Open
subsystem: 99. Other
priority: 5 Medium
severity: Minor
resolution: None
title: messageBox documentation for -message likely wrong
comment:
  On this page: http://www.tcl.tk/man/tcl8.6/TkCmd/messageBox.htm

  For the -message option it says:

  -message string
      Specifies the message to display in this message box. This option is ignored on Mac OS X, where platform guidelines forbid the use of a title on this kind of dialog. 

  The OSX-specific text refers to a "title", maybe this part of the docs should have been part of the -title docs?


tkt_uuid: e9a842a3c584d6e709398529863fb8f798c83e3c
type: Patch
status: Open
subsystem: 04. Canvas Basics
priority: 5 Medium
severity: Minor
private_contact: 4fb5bbb7d15276f0d13ca60f056c19796b1b9a5b
resolution: None
title: TkCanvas events search for all objects , even they are not displayed
comment:
  All the events of TkCanvas are searching the entire linked list nextPtr/prevPtr, irrespective of whether they are displayed or not .

  This has become a major overhead for my application , which draws 3million+ objects and frequently user performs panning/zooming .

  Sol :
  while rendering objects on canvas we can create a new linked list which actually save's the objects which are displayed on screen and also rejecting objects which are less than 1pixel and some more optimizations .

  I've used nextPtr1 as a original clone for nextPtr  and prevPtr1 for prePtr .
  and got a huge improvements in canvas rendering .
  my modified TkCanvas http://www.youtube.com/watch?feature=player_embedded&v=HmAmXoTo5Uc 

  If Tk community is interested in this enhancement 
  I would like to share my code , so that it will be merged in future releases .

  Regards
  Nataraja G


tkt_uuid: 0aa5e852dc27ba9516858b6bd8d35f203bf8b7de
type: RFE
status: Open
subsystem: 57. [option]
priority: 5 Medium
severity: Important
foundin: 8.5.14 and other
private_contact: 720cbbf8ba21fd6982dfd8639b4ecf45d5cf11a3
resolution: None
title: Accept newline characters as value in Tk option files
comment:
  Tk does not honour newline characters in values specified in a resource file. Traditional X resources allow \n for this. Here is a modification for the function tkOption.c:AddFromString that supports this feature for the option value. This patch works for older Tk versions and for 8.6.X as well!

  static int
  AddFromString(
      Tcl_Interp *interp,		/* Interpreter to use for reporting results. */
      Tk_Window tkwin,		/* Token for window: options are entered for
  				 * this window's main window. */
      char *string,		/* String containing option specifiers. */
      int priority)		/* Priority level to use for options in this
  				 * string, such as TK_USER_DEFAULT_PRIO or
  				 * TK_INTERACTIVE_PRIO. Must be between 0 and
  				 * TK_MAX_PRIO. */
  {
      register char *src, *dst;
      char *name, *value;
      int lineNum;

      src = string;
      lineNum = 1;
      while (1) {

  	/*
  	 * Skip leading white space and empty lines and comment lines, and
  	 * check for the end of the spec.
  	 */

  	while ((*src == ' ') || (*src == '\t')) {
  	    src++;
  	}
  	if ((*src == '#') || (*src == '!')) {
  	    do {
  		src++;
  		if ((src[0] == '\\') && (src[1] == '\n')) {
  		    src += 2;
  		    lineNum++;
  		}
  	    } while ((*src != '\n') && (*src != 0));
  	}
  	if (*src == '\n') {
  	    src++;
  	    lineNum++;
  	    continue;
  	}
  	if (*src == '\0') {
  	    break;
  	}

  	/*
  	 * Parse off the option name, collapsing out backslash-newline
  	 * sequences of course.
  	 */

  	dst = name = src;
  	while (*src != ':') {
  	    if ((*src == '\0') || (*src == '\n')) {
  		char buf[32 + TCL_INTEGER_SPACE];

  		sprintf(buf, "missing colon on line %d", lineNum);
  		Tcl_SetResult(interp, buf, TCL_VOLATILE);
  		return TCL_ERROR;
  	    }
  	    if ((src[0] == '\\') && (src[1] == '\n')) {
  		src += 2;
  		lineNum++;
  	    } else {
  		*dst = *src;
  		dst++;
  		src++;
  	    }
  	}

  	/*
  	 * Eliminate trailing white space on the name, and null-terminate
  	 * it.
  	 */

  	while ((dst != name) && ((dst[-1] == ' ') || (dst[-1] == '\t'))) {
  	    dst--;
  	}
  	*dst = '\0';

  	/*
  	 * Skip white space between the name and the value.
  	 */

  	src++;
  	while ((*src == ' ') || (*src == '\t')) {
  	    src++;
  	}
  	if (*src == '\0') {
  	    char buf[32 + TCL_INTEGER_SPACE];

  	    sprintf(buf, "missing value on line %d", lineNum);
  	    Tcl_SetResult(interp, buf, TCL_VOLATILE);
  	    return TCL_ERROR;
  	}

  	/*
  	 * Parse off the value, squeezing out backslash-newline sequences
  	 * along the way.
  	 */

  	dst = value = src;
  	while (*src != '\n') {
  	    if (*src == '\0') {
  		char buf[32 + TCL_INTEGER_SPACE];

  		sprintf(buf, "missing newline on line %d", lineNum);
  		Tcl_SetResult(interp, buf, TCL_VOLATILE);
  		return TCL_ERROR;
  	    }
  	    if ((src[0] == '\\') && (src[1] == '\n')) {
  		src += 2;
  		lineNum++;
  /* START CHANGES */
  	    } else if ((src[0] == '\\') && (src[1] == 'n')) {
  		src += 2;
  		*dst++ = '\n';
  /* END CHANGES */
  	    } else {
  		*dst = *src;
  		dst++;
  		src++;
  	    }
  	}
  	*dst = 0;

  	/*
  	 * Enter the option into the database.
  	 */

  	Tk_AddOption(tkwin, name, value, priority);
  	src++;
  	lineNum++;
      }
      return TCL_OK;
  }


tkt_uuid: 8eb56719cff9c2e5bb76230017fd65c649526bcf
type: Bug
status: Closed
subsystem: 83. Mac OS X Build
priority: 5 Medium
severity: Important
foundin: 8.5.14
private_contact: 5312fcfb57a92ddd64553c14c04a390a9032b63f
resolution: None
title: macosx Tk compile errors/warnings due to bad merge
comment:
  Current versions of two Aqua modules, <b>macosx/tkMacOSXClipboard.c</b> and <b>macosx/tkMacOSXDraw.c</b>, get compile warnings when compiled with <b>gcc</b> and compile errors when attempting to compile with Apple <b>clang</b>.  Both errors are due to misplaced <b>return Success</b> statements.  From comparing the 8.5.14 and 8.5.15rc1 sources with the 8.6.0 and 8.6.1.rc0 sources, my guess is that the problems are due to an incorrect merge at some point of the Aqua code from 8.6 into 8.5, since the 8.6 code is correct.

  Here are the results of compiling 8.5.15rc1 on OS X 10.8.5 with the current Xcode 4.6.3 command line tools installed.  (8.5.14 results are similar.)

  <verbatim>
  $ gcc --version
  i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
  $ cd tk8.5.15/unix && ./configure --prefix=/tmp/a/root --enable-shared --enable-threads --enable-aqua && make
  [...]
  /tmp/a/tk8.5.15/unix/../macosx/tkMacOSXClipboard.c: In function ‘XSetSelectionOwner’:
  /tmp/a/tk8.5.15/unix/../macosx/tkMacOSXClipboard.c:171: warning: no return statement in function returning non-void
  /tmp/a/tk8.5.15/unix/../macosx/tkMacOSXClipboard.c: In function ‘TkMacOSXSelDeadWindow’:
  /tmp/a/tk8.5.15/unix/../macosx/tkMacOSXClipboard.c:197: warning: ‘return’ with a value, in function returning void
  [...]
  /tmp/a/tk8.5.15/unix/../macosx/tkMacOSXDraw.c: In function ‘DrawCGImage’:
  /tmp/a/tk8.5.15/unix/../macosx/tkMacOSXDraw.c:747: warning: ‘return’ with a value, in function returning void
  /tmp/a/tk8.5.15/unix/../macosx/tkMacOSXDraw.c: In function ‘TkPutImage’:
  /tmp/a/tk8.5.15/unix/../macosx/tkMacOSXDraw.c:350: warning: control reaches end of non-void function
  /tmp/a/tk8.5.15/unix/../macosx/tkMacOSXClipboard.c:171:1: warning: control reaches end of
        non-void function [-Wreturn-type]


  $ cc --version
  Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
  Target: x86_64-apple-darwin12.5.0
  Thread model: posix
  $ cd tk8.5.15/unix && ./configure --prefix=/tmp/a/root --enable-shared --enable-threads --enable-aqua CC=cc && make
  [...]
  /tmp/a/tk8.5.15/unix/../macosx/tkMacOSXClipboard.c:171:1: warning: control reaches end of
        non-void function [-Wreturn-type]
  }
  ^
  /tmp/a/tk8.5.15/unix/../macosx/tkMacOSXClipboard.c:197:5: error: void function
        'TkMacOSXSelDeadWindow' should not return a value [-Wreturn-type]
      return Success;
      ^      ~~~~~~~
  1 warning and 1 error generated.
  [...]
  tmp/a/tk8.5.15/unix/../macosx/tkMacOSXDraw.c:350:1: warning: control may reach end of
        non-void function [-Wreturn-type]
  }
  ^
  /tmp/a/tk8.5.15/unix/../macosx/tkMacOSXDraw.c:747:5: error: void function 'DrawCGImage'
        should not return a value [-Wreturn-type]
      return Success;
      ^      ~~~~~~~
  1 warning and 1 error generated.
  </verbatim>
  Note that, with the next release of Apple's Xcode development tools, expected with the upcoming OS X 10.9 (Mavericks) release, Apple will no longer ship any gcc-based compilers, just clang, so it is important that Tk builds correctly with clang.

  The attached patch fixes the problems.


tkt_uuid: 9de9e8faa694d377d58e335fab0d3fdd94d99a52
type: Bug
status: Closed
subsystem: 75. wish
priority: 5 Medium
severity: Severe
foundin: 8.6.0
private_contact: c5ad054236f64b5e8623bb587700371079b387a5
resolution: Duplicate
title: Wish crashes with ‘num matched toplevel windows does not equal num children’
comment:
  An error occurs in AlphaTk on MacOS X Intel (I'm trying to make it work again for me):

  num matched toplevel windows does not equal num children
  /usr/local/bin/wish8.6: line 2: 95412 Abort trap: 6           "$(dirname $0)/../../../Library/Frameworks/Tk.framework/Versions/8.6/Resources/Wish.app/Contents/MacOS/Wish" "$@"

  Apparently, it occurs when I change from one window to another but I cannot narrow it down when it exactly appears.

  tcl_platform(byteOrder)     = littleEndian
  tcl_platform(machine)       = x86_64
  tcl_platform(os)            = Darwin
  tcl_platform(osVersion)     = 12.5.0
  tcl_platform(pathSeparator) = :
  tcl_platform(platform)      = unix
  tcl_platform(pointerSize)   = 8
  tcl_platform(threaded)      = 1
  tcl_platform(wordSize)      = 8


tkt_uuid: b83bea349f5e2c7057060610e7dc5432e79753f4
type: Bug
status: Pending
subsystem: 23. Option Parsing
priority: 5 Medium
severity: Minor
foundin: 8.6.1
resolution: None
title: config-2.1 regression
comment:
  Starting with commit

  http://core.tcl.tk/tk/info/aaf11bdce2

  I see test config-2.1 failing:

  ==== config-2.1 Tk_DeleteOptionTable - reference counts FAILED
  ==== Contents of test case:

      set x {}
      testobjconfig chain1 .a
      testobjconfig chain2 .b
      testobjconfig chain3 .c
      deleteWindows
      testobjconfig delete chain3
      lappend x [testobjconfig info chain2] [testobjconfig info chain1]
      testobjconfig delete chain2
      lappend x [testobjconfig info chain2] [testobjconfig info chain1]

  ---- Result was:
  {1 4 -three 2 2 -one} {2 2 -one} {} {1 2 -one}
  ---- Result should have been (exact matching):
  {3 4 -three 2 2 -one} {2 2 -one} {} {2 2 -one}
  ==== config-2.1 FAILED

  The commit changed the expected result of the test
  even though the results of the test body did not
  change.


tkt_uuid: 53f7a1b5532d0e037106b9245274359d1b233c58
type: Bug
status: Closed
subsystem: 83. Mac OS X Build
priority: 5 Medium
severity: Critical
foundin: 8.5.15
private_contact: 5312fcfb57a92ddd64553c14c04a390a9032b63f
resolution: Fixed
title: Aqua Cocoa Tk multi-window apps redraw problems on OS X 10.9 Mavericks
comment:
  There appears to be refresh problems when using current Aqua (Cocoa) Tk 8.5.x or 8.6.x builds on the newly released OS X 10.9.  I first noticed the problem using Python IDLE (linked with a Tk 8.5.x) but the problem can be easily reproduced using a current Wish "Basic editable text" widget demo. 

  The following two screenshots demonstrate the problem.

  [https://www.dropbox.com/s/b517eq09x816d4h/tk85_15_mavericks_1.jpg]

  [https://www.dropbox.com/s/6xe4hptm5e53tk5/tk85_15_mavericks_2.jpg]

  Clicking back and forth between the two Tk windows using the mouse, neither the window gaining focus nor the window losing focus gets updated properly.  In the first, note the incomplete black border around the text widget: it was created by moving the mouse randomly over the border without hovering over the scroll bar on the right or without using the keyboard.  In the second, note the incompletely highlight text and the misplaced text in the bottom border of the foreground window with focus and how the border is still displayed around the text field in the background window that no longer has focus.  If the mouse is hovered over the scroll bar on the right or if the keyboard is used to enter a character, the windows are then updated properly.

  Caveats: I have been unable to reproduce the problem with the Tcl/Tk 8.5.9 shipped by Apple in OS X 10.9.  I can reproduce the problem with recent various versions of ActiveTcl 8.5.x and 8.6.x for OS X.  And I can reproduce the problem with versions of 8.5.15 and 8.6.1 built from the release tarballs.  I also discovered by accident that the problem appears to only happen when the Cocoa Tk is running in 64-bit mode (the default on 64-bit capable Macs), but not in 32-bit mode.  This can be demonstrated using the ActiveTcl wish8.5 by forcing the execution architecture:

  <verbatim>
  cd /Library/Frameworks/Tk.framework/Versions/8.5/Resources/Wish.app/Contents/MacOS
  arch -x86_64 ./Wish  # text widget demo exhibits the problem
  arch -i386 ./Wish  # no problem
  </verbatim>

  This leads me to speculate that there might be some legacy 32-bit Carbon API being used that is skipped in 64-bit mode.  Or perhaps there is simply some arch-related code bug.  It might also be useful to examine what source and patches Apple uses for the system Tk 8.5.  The 10.9 versions should eventually get published here: [http://opensource.apple.com]

  Also, note that while the problem is reproducible on 10.9 with most versions of the Python IDLE application that link with a non-Apple Cocoa Tk 8.5, it is not reproducible by clicking on the IDLE.app icon of the current python.org 2.7 binary installer, e.g. the equivalent of:

  <verbatim>open /Applications/Python\ 2.7/IDLE.app</verbatim>

  For arcane reasons, that causes Tk to always be launched in 32-bit mode (that's how I discovered the dependency).  The problem can be demonstrated by launching the same Python and IDLE via:

  <verbatim>/Library/Frameworks/Python.framework/Versions/2.7/bin/idle2.7</verbatim>

  [http://www.python.org/download/releases/2.7.5/]

  [http://www.activestate.com/activetcl/downloads]

  Current versions of Python 3.x IDLE.app launch in 64-bit mode and do show the problem with ActiveTcl 8.5 installed in /Library/Frameworks.


tkt_uuid: f214b8ad5b9a92e9476734ade445abf8cdecea21
type: Bug
status: Open
subsystem: (unused)
priority: 5 Medium
severity: Important
foundin: 8.6.1
resolution: None
title: shutdown woes
comment:
  In a "big wish" program that embeds Tk, when built against
  (thread-enabled) Tcl/Tk 8.6.1, I get a panic on exit.  No such
  trouble with (thread-disabled) Tcl/Tk 8.5.15.  Here's the stack
  trace:

  alloc: invalid block: 0xdc1a10: 50 0

  Program received signal SIGABRT, Aborted.
  0x0000003dda430265 in raise () from /lib64/libc.so.6
  (gdb) bt
  #0  0x0000003dda430265 in raise () from /lib64/libc.so.6
  #1  0x0000003dda431d10 in abort () from /lib64/libc.so.6
  #2  0x000000000045eaf9 in CustomPanic(char*, ...) ()
  #3  0x00002aaaaafc4ff7 in Tcl_PanicVA (
      format=0x2aaaab046a00 "alloc: invalid block: %p: %x %x",
      argList=0x7fffffffd070) at /home/dgp/fossil/tcl8.6.1/generic/tclPanic.c:99
  #4  0x00002aaaaafc5167 in Tcl_Panic (
      format=0x2aaaab046a00 "alloc: invalid block: %p: %x %x")
      at /home/dgp/fossil/tcl8.6.1/generic/tclPanic.c:153
  #5  0x00002aaaaafea3c9 in Ptr2Block (ptr=0xdc1a20 "")
      at /home/dgp/fossil/tcl8.6.1/generic/tclThreadAlloc.c:780
  #6  0x00002aaaaafe99db in TclpFree (ptr=0xdc1a20 "")
      at /home/dgp/fossil/tcl8.6.1/generic/tclThreadAlloc.c:406
  #7  0x00002aaaaaf88f59 in Tcl_DeleteHashEntry (entryPtr=0xdc1a20)
      at /home/dgp/fossil/tcl8.6.1/generic/tclHash.c:467
  #8  0x00002aaaaab02711 in Tk_FreeFont (tkfont=0xe3af70)
      at /home/dgp/fossil/tk8.6.1/unix/../generic/tkFont.c:1439
  #9  0x00002aaaaab027a2 in Tk_FreeFontFromObj (tkwin=0xffc4c0, objPtr=0x6fe840)
      at /home/dgp/fossil/tk8.6.1/unix/../generic/tkFont.c:1480
  #10 0x00002aaaaaaf9ed8 in FreeResources (optionPtr=0x712190, objPtr=0x6fe840,
      internalPtr=0x0, tkwin=0xffc4c0)
      at /home/dgp/fossil/tk8.6.1/unix/../generic/tkConfig.c:1639
  #11 0x00002aaaaaaf9d3b in Tk_FreeConfigOptions (
      recordPtr=0x1045690 "\300\304\377", optionTable=0x711f90, tkwin=0xffc4c0)
      at /home/dgp/fossil/tk8.6.1/unix/../generic/tkConfig.c:1568
  #12 0x00002aaaaab43324 in DestroyMenuInstance (menuPtr=0x1045690)
      at /home/dgp/fossil/tk8.6.1/unix/../generic/tkMenu.c:1235
  #13 0x00002aaaaab43464 in TkDestroyMenu (menuPtr=0x1045690)
      at /home/dgp/fossil/tk8.6.1/unix/../generic/tkMenu.c:1317
  #14 0x00002aaaaab4a1fe in TkMenuEventProc (clientData=0x1045690,
      eventPtr=0x7fffffffd4a0)
      at /home/dgp/fossil/tk8.6.1/unix/../generic/tkMenuDraw.c:762
  #15 0x00002aaaaaafe5a8 in Tk_HandleEvent (eventPtr=0x7fffffffd4a0)
      at /home/dgp/fossil/tk8.6.1/unix/../generic/tkEvent.c:1341
  #16 0x00002aaaaab2a5a9 in Tk_DestroyWindow (tkwin=0xffc4c0)
  ---Type <return> to continue, or q <return> to quit---
      at /home/dgp/fossil/tk8.6.1/unix/../generic/tkWindow.c:1433
  #17 0x00002aaaaab2a462 in Tk_DestroyWindow (tkwin=0x70c170)
      at /home/dgp/fossil/tk8.6.1/unix/../generic/tkWindow.c:1374
  #18 0x00002aaaaab2c26d in DeleteWindowsExitProc (clientData=0x716a20)
      at /home/dgp/fossil/tk8.6.1/unix/../generic/tkWindow.c:2822
  #19 0x00002aaaaaaff225 in TkFinalizeThread (clientData=0x0)
      at /home/dgp/fossil/tk8.6.1/unix/../generic/tkEvent.c:2104
  #20 0x00002aaaaaf69d85 in Tcl_FinalizeThread ()
      at /home/dgp/fossil/tcl8.6.1/generic/tclEvent.c:1296
  #21 0x00002aaaaaf69b77 in Tcl_Exit (status=0)
      at /home/dgp/fossil/tcl8.6.1/generic/tclEvent.c:986
  #22 0x00002aaaaaebc049 in Tcl_ExitObjCmd (dummy=0x0, interp=0x6c0060, objc=2,
      objv=0xa113d0) at /home/dgp/fossil/tcl8.6.1/generic/tclCmdAH.c:833


