in reply to Strange Perl/Tk error

Hi,

Tk-804.028_502 solves your problem.

-text is not a valid option to pack btw.


Cheers, Chris

Replies are listed 'Best First'.
Re^2: Strange Perl/Tk error
by ivo_ac (Acolyte) on Mar 27, 2010 at 13:37 UTC
    Hi Chris, Thanks for your help ! I downloaded and installed the Tk-804.028_502 development release and it immediately solved my problem. Thanks !!!!! Kind regards, Ivo.
      And also my thanks to all others who replied. This site is great !
Re^2: Strange Perl/Tk error
by Anonymous Monk on Apr 25, 2012 at 12:37 UTC
    Thanks for this post. I have a legacy Perl/Tk application that a client needs ported to Solaris 11 x86-64. I have perl 5.6.1 and Tk800.024, and I am getting this post's subject error message.

    I am not able to build (or probably use) Tk-804.028_502 as recommended, so I was wondering what you think about the viability of these alternatives:

    a) Is the cause of this issue relegated to one or a few C files which can be merged into Tk800.024 and then rebuilt, or

    b) Is is possible to use a SREZIC-Patch style patch? Thanks!

      The Tk Bug Tracker on SourceForge provided a very detailed post which allowed me to create a workaround for the ancient copy of Perk/Tk I have to use. Basically, X.Org added a new event, which pushed protocol constant LASTEvent from 35 to 36, and assumptions were made as to that value always being 35.

      The changes I made were as follows (colored red)to the named source files in the Tk800.024 source distro.

      ./pTk/mTk/xlib/X11/X.h
      #define MappingNotify 34
      #define GenericEvent 35
      #define LASTEvent 36 /* must be bigger than any event # */

      ./pTk/tkBind.c
      ./pTk/mTk/generic/tkBind.c
      static int flagArrayTK_LASTEVENT = {
      ...
      /* MappingNotify */ 0,
      /*CN Not used */ 0,
      ...
      };

      ./pTk/tkEvent.c
      ./pTk/mTk/generic/tkEvent.c
      static unsigned long eventMasksTK_LASTEVENT = {
      ...
      0, /* Mapping Notify */
      0, /*CN X.Org added 'GenericEvent' */
      ...
      };