Table Visualizer under OS X

Vance Shipley vances@REDACTED
Sun Feb 15 07:02:51 CET 2004


I have been trying out the tools under Apple's OS X
(Panther) using the Tcl/Tk Aqua package(*).  This is a
native port of the Tcl/Tk system to Apple's window
environment Aqua (i.e. no XWindows).

Most things work, and look very good too.  I couldn't
get the Table Visualizer to work though.  It kept 
crashing with:

=ERROR REPORT==== 15-Feb-2004::00:48:25 ===
Error in process <0.44.0> with exit value: {function_clause,[{lists,nthtail,[-8,[[{259,<0.34.0>},{433,<0.34.0>},{539,<0.34.0>},{611,<0.34.0>},{683,<0.34.0>},{755,<0.34.0>},{827,<0.34.0>},{899,<0.34.0>},{971,<0.34.0>},{1043,<0.34.0>}],...


Killing two birds with one stone I played with the debugger
to test that application out while using it to track down
the tv problem.  I came up with this patch which solves the
above crash on my system anyway.  I can't be sure what the
intention of the code was, whether this was an error or 
whether it is supposed to accomplish something.  It does 
however work fine for me now on Panther.  I was seeing a
configure event arrive with width & heigth each '1'.  This
eventually caused list:nthtail/2 to be called with a '-8'.
I did see a reference somewhere that on Windows you might
get two configure events, one for width and one for height
so it may have to do with this of incompatability. 


	-Vance


(*) http://www.maths.mq.edu.au/~steffen/tcltk/TclTkAqua/



*** lib/tv/src/tv_pw.erl        Sun Feb 15 00:39:59 2004
--- lib/tv/src/tv_pw.erl.orig   Sun Feb 15 00:41:15 2004
***************
*** 277,287 ****
            FinalWidth  = ?COMM_FUNC_FILE:max(W, MinAllowedWidth),
            FinalHeight = ?COMM_FUNC_FILE:max(H, MinAllowedHeight),
            ?WIN_FUNC_FILE:resize_window(WindowId, FinalWidth, FinalHeight),
            MasterPid ! #pc_win_conf{sender = self(),
                                     width  = FinalWidth, 
!                                    height = FinalHeight},
            NewWinP = WinP#window_params{window_width  = FinalWidth,
                                         window_height = FinalHeight
                                        },
            ProcVars#process_variables{window_params = NewWinP};
  
--- 277,287 ----
            FinalWidth  = ?COMM_FUNC_FILE:max(W, MinAllowedWidth),
            FinalHeight = ?COMM_FUNC_FILE:max(H, MinAllowedHeight),
            ?WIN_FUNC_FILE:resize_window(WindowId, FinalWidth, FinalHeight),
            MasterPid ! #pc_win_conf{sender = self(),
                                     width  = FinalWidth, 
!                                    height = H},
            NewWinP = WinP#window_params{window_width  = FinalWidth,
                                         window_height = FinalHeight
                                        },
            ProcVars#process_variables{window_params = NewWinP};
  




More information about the erlang-questions mailing list