]> granicus.if.org Git - python/commitdiff
Issue #16840. Turn off bignum support in tkinter with with Tcl earlier than 8.5.8
authorSerhiy Storchaka <storchaka@gmail.com>
Wed, 22 Apr 2015 07:59:32 +0000 (10:59 +0300)
committerSerhiy Storchaka <storchaka@gmail.com>
Wed, 22 Apr 2015 07:59:32 +0000 (10:59 +0300)
(tclTomMath.h was broken) and non-final Tcl 8.6.
Removed TK_VERSION_HEX.

1  2 
Lib/test/test_tcl.py
Modules/_tkinter.c
Modules/tkinter.h

index 10b767574121eac8f46df5eea818baef7c41f727,66e9d49dfeaf32f035c077a25d4fcb6e84ec1b56..add0871fa48df8861b4bf72218de4885179cd37c
@@@ -130,8 -130,12 +130,10 @@@ class TclTest(unittest.TestCase)
          self.assertRaises(TclError,tcl.unsetvar,'a')
  
      def get_integers(self):
 -        integers = (0, 1, -1, 2**31-1, -2**31)
 -        if tcl_version >= (8, 4):  # wideInt was added in Tcl 8.4
 -            integers += (2**31, -2**31-1, 2**63-1, -2**63)
 +        integers = (0, 1, -1, 2**31-1, -2**31, 2**31, -2**31-1, 2**63-1, -2**63)
-         if tcl_version >= (8, 5):  # bignum was added in Tcl 8.5
+         # bignum was added in Tcl 8.5, but its support is able only since 8.5.8
+         if (get_tk_patchlevel() >= (8, 6, 0, 'final') or
+             (8, 5, 8) <= get_tk_patchlevel() < (8, 6)):
              integers += (2**63, -2**63-1, 2**1000, -2**1000)
          return integers
  
index 3f5835363ab635f9eec84e729b8c6a219268f4ac,52025bb16f6a77f8fb9cb3dc347bdc74495ab3df..4d61bb23a1046316e5e786821632fe02e1952c37
@@@ -52,11 -58,19 +52,12 @@@ Copyright (C) 1994 Steen Lumholt
  
  #include "tkinter.h"
  
- #if TK_VERSION_HEX < 0x08040002
 -/* For Tcl 8.2 and 8.3, CONST* is not defined (except on Cygwin). */
 -#ifndef CONST84_RETURN
 -#define CONST84_RETURN
 -#undef CONST
 -#define CONST
 -#endif
 -
 -#if TK_HEX_VERSION < 0x08030201
 -#error "Tk older than 8.3.1 not supported"
++#if TK_HEX_VERSION < 0x08040200
 +#error "Tk older than 8.4 not supported"
  #endif
  
- #if TK_VERSION_HEX >= 0x08050002
+ #if TK_HEX_VERSION >= 0x08050208 && TK_HEX_VERSION < 0x08060000 || \
+     TK_HEX_VERSION >= 0x08060200
  #define HAVE_LIBTOMMAMTH
  #include <tclTomMath.h>
  #endif
index f7e50cde0c7e81f67da19d88277900c8627e00e1,3c55676c0f0ba53eac30399f8d27a560b423d073..cb5a806b0c43262a01a717b6bb9faddb83efb5d6
   *  TCL_BETA_RELEASE    1
   *  TCL_FINAL_RELEASE   2
   */
- #define TK_VERSION_HEX ((TK_MAJOR_VERSION << 24) | \
-               (TK_MINOR_VERSION << 16) | \
-               (TK_RELEASE_SERIAL << 8) | \
-               (TK_RELEASE_LEVEL << 0))
+ #define TK_HEX_VERSION ((TK_MAJOR_VERSION << 24) | \
+                         (TK_MINOR_VERSION << 16) | \
+                         (TK_RELEASE_LEVEL << 8) | \
+                         (TK_RELEASE_SERIAL << 0))
  
 -/* TK_VERSION_HEX packs fields in wrong order, not suitable for comparing of
 - * non-final releases.  Left for backward compatibility.
 - */
 -#define TK_VERSION_HEX ((TK_MAJOR_VERSION << 24) | \
 -                        (TK_MINOR_VERSION << 16) | \
 -                        (TK_RELEASE_SERIAL << 8) | \
 -                        (TK_RELEASE_LEVEL << 0))
 -
  /* Protect Tk 8.4.13 and older from a deadlock that happens when trying
   * to load tk after a failed attempt. */
- #if TK_VERSION_HEX < 0x08040e02
+ #if TK_HEX_VERSION < 0x0804020e
  #define TKINTER_PROTECT_LOADTK
  #define TKINTER_LOADTK_ERRMSG \
-       "Calling Tk_Init again after a previous call failed might deadlock"
+         "Calling Tk_Init again after a previous call failed might deadlock"
  #endif
  
  #endif /* !TKINTER_H */