mcberk / wrapitk

Automatically exported from code.google.com/p/wrapitk
0 stars 0 forks source link

Tcl 8.6 makes Tcl_Interp members private, patch to fix #31

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago

What steps will reproduce the problem?
1. Download and build Tcl 8.6b1
2. Build ITK with WrapITK turned on
3. Hilarity ensues, where by 'hilarity' I mean 'compiler errors'

What version of the product are you using? On what operating system?
I'm using ITK 3.18 release. On OS X 10.6

Please provide any additional information below.
To use 64-bit builds on OS X, you can't use the Carbon libraries, which are 
32-bit only.
So if you want to do ITK + WrapITK, + TCL + Native TK, you must use TK 8.6 and 
therefore TCL 8.6. 

The only visible problem with using 8.6b1 Tcl is that by default, the members 
of the Tcl_Interp structure are no longer visible by default in the public 
header.  This patch fixes the problem:

Index: Wrapping/WrapITK/Tcl/itkTclCommand.cxx
===================================================================
RCS file: /cvsroot/Insight/Insight/Wrapping/WrapITK/Tcl/itkTclCommand.cxx,v
retrieving revision 1.1
diff -c -r1.1 itkTclCommand.cxx
*** Wrapping/WrapITK/Tcl/itkTclCommand.cxx  6 Sep 2006 20:58:42 -0000   1.1
--- Wrapping/WrapITK/Tcl/itkTclCommand.cxx  9 Jun 2010 14:50:54 -0000
***************
*** 88,96 ****
--- 88,104 ----
      {
      const char* errorInfo = Tcl_GetVar(m_Interpreter, "errorInfo", 0);
      if(!errorInfo) { errorInfo = ""; }
+ #if (TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION < 6)
      itkWarningMacro("Error returned from itk/tcl callback:\n" <<
                      m_CommandString.c_str() << std::endl << errorInfo <<
                      " at line number " << m_Interpreter->errorLine);
+ #else
+     itkWarningMacro("Error returned from itk/tcl callback:\n" 
+           << m_CommandString.c_str() 
+           << std::endl << errorInfo 
+           << " at line number " 
+           << Tcl_GetErrorLine(m_Interpreter));
+ #endif
      }
  }

Original issue reported on code.google.com by chaircru...@gmail.com on 9 Jun 2010 at 3:54