]> granicus.if.org Git - python/commitdiff
Issue #15782: Prevent compile errors of OS X Carbon modules _Fm, _Qd, and
authorNed Deily <nad@acm.org>
Thu, 10 Jan 2013 06:04:35 +0000 (22:04 -0800)
committerNed Deily <nad@acm.org>
Thu, 10 Jan 2013 06:04:35 +0000 (22:04 -0800)
_Qdoffs when compiling with an SDK of 10.7 or later.  The OS X APIs they
wrap have long been deprecated and have now been removed with 10.7.
These modules were already empty for 64-bit builds and have been removed
in Python 3.  (Original patch by Ronald Oussoren.)

Doc/library/carbon.rst
Doc/library/mac.rst
Mac/Modules/fm/_Fmmodule.c
Mac/Modules/qd/_Qdmodule.c
Mac/Modules/qdoffs/_Qdoffsmodule.c
Misc/NEWS

index 3eebd850858d8d3db3e1059373df11a278b5b97d..40b76eff5154b589df8de447eb231bcd352d3a22 100644 (file)
@@ -5,7 +5,7 @@
 Mac OS Toolbox Modules
 **********************
 
-There are a set of modules that provide interfaces to various Mac OS toolboxes.
+These are a set of modules that provide interfaces to various legacy Mac OS toolboxes.
 If applicable the module will define a number of Python objects for the various
 structures declared by the toolbox, and operations will be implemented as
 methods of the object.  Other operations will be implemented as functions in the
@@ -24,7 +24,10 @@ framework and Qt is in the QuickTime framework. The normal use pattern is ::
 
 .. note::
 
-   The Carbon modules have been removed in Python 3.
+   Most of the OS X APIs that these modules use are deprecated or removed
+   in recent versions of OS X.  Many are not available when Python is
+   executing in 64-bit mode.  The Carbon modules have been removed in
+   Python 3.  You should avoid using them in Python 2.
 
 
 :mod:`Carbon.AE` --- Apple Events
index 7ac1ca29a144d7c9a820b5281fb0208c49e5f43c..d66931c04d27f948af95e0c21c2d34bf54772543 100644 (file)
@@ -12,7 +12,10 @@ Mac-specific Python programming.
 
 .. note::
 
-   These modules are deprecated and have been removed in Python 3.x.
+   Most of the OS X APIs that these modules use are deprecated or removed
+   in recent versions of OS X.  Many are not available when Python is
+   executing in 64-bit mode.  These modules have been removed in
+   Python 3.  You should avoid using them in Python 2.
 
 
 .. toctree::
index adc47aa250cd54bdfe2ff3c5da490d9b26266834..c516f2467cfc1c61a7f5d76af40056c9074b7c94 100644 (file)
@@ -2,8 +2,9 @@
 /* =========================== Module _Fm =========================== */
 
 #include "Python.h"
+#include <Carbon/Carbon.h>
 
-#ifndef __LP64__
+#if !defined(__LP64__) && !defined(MAC_OS_X_VERSION_10_7)
 
 
 #include "pymactoolbox.h"
@@ -16,7 +17,6 @@
     }} while(0)
 
 
-#include <Carbon/Carbon.h>
 
 
 /*
@@ -347,7 +347,7 @@ static PyMethodDef Fm_methods[] = {
 void init_Fm(void)
 {
     PyObject *m;
-#ifndef __LP64__
+#if !defined(__LP64__) && !defined(MAC_OS_X_VERSION_10_7)
     PyObject *d;
 #endif  /* __LP64__ */
 
@@ -355,7 +355,7 @@ void init_Fm(void)
 
 
     m = Py_InitModule("_Fm", Fm_methods);
-#ifndef __LP64__
+#if !defined(__LP64__) && !defined(MAC_OS_X_VERSION_10_7)
     d = PyModule_GetDict(m);
     Fm_Error = PyMac_GetOSErrException();
     if (Fm_Error == NULL ||
index c7594b9a73db0db5dc1c512cae553365bfe9a335..d21f36100f770c884c08d55203a35dc342f7737d 100644 (file)
@@ -3,8 +3,9 @@
 
 #include "Python.h"
 
+#include <Carbon/Carbon.h>
 
-#ifndef __LP64__
+#if !defined(__LP64__) && !defined(MAC_OS_X_VERSION_10_7)
 
 #include "pymactoolbox.h"
 
@@ -16,7 +17,6 @@
     }} while(0)
 
 
-#include <Carbon/Carbon.h>
 
 #ifdef USE_TOOLBOX_OBJECT_GLUE
 extern PyObject *_GrafObj_New(GrafPtr);
@@ -6548,7 +6548,7 @@ static PyObject *Qd_RawBitMap(PyObject *_self, PyObject *_args)
 #endif /* __LP64__ */
 
 static PyMethodDef Qd_methods[] = {
-#ifndef __LP64__
+#if !defined(__LP64__) && !defined(MAC_OS_X_VERSION_10_7)
     {"GetPort", (PyCFunction)Qd_GetPort, 1,
      PyDoc_STR("() -> (GrafPtr port)")},
     {"GrafDevice", (PyCFunction)Qd_GrafDevice, 1,
@@ -7088,7 +7088,7 @@ static PyMethodDef Qd_methods[] = {
 };
 
 
-#ifndef __LP64__
+#if !defined(__LP64__) && !defined(MAC_OS_X_VERSION_10_7)
 
 /* Like BMObj_New, but the original bitmap data structure is copied (and
 ** released when the object is released)
@@ -7112,7 +7112,7 @@ PyObject *BMObj_NewCopied(BitMapPtr itself)
 void init_Qd(void)
 {
     PyObject *m;
-#ifndef __LP64__
+#if !defined(__LP64__) && !defined(MAC_OS_X_VERSION_10_7)
     PyObject *d;
 
 
@@ -7127,7 +7127,7 @@ void init_Qd(void)
 #endif /* __LP64__ */
 
     m = Py_InitModule("_Qd", Qd_methods);
-#ifndef __LP64__
+#if !defined(__LP64__) && !defined(MAC_OS_X_VERSION_10_7)
     d = PyModule_GetDict(m);
     Qd_Error = PyMac_GetOSErrException();
     if (Qd_Error == NULL ||
index 686eca45f709c8c71483bd4dcc5af742380e41be..e5562cb72ff4d32e6265d822ed0ab8a55cc51a57 100644 (file)
@@ -4,7 +4,8 @@
 #include "Python.h"
 
 
-#ifndef __LP64__
+#include <Carbon/Carbon.h>
+#if !defined(__LP64__) && !defined(MAC_OS_X_VERSION_10_7)
 
 #include "pymactoolbox.h"
 
@@ -16,7 +17,6 @@
     }} while(0)
 
 
-#include <Carbon/Carbon.h>
 
 #ifdef USE_TOOLBOX_OBJECT_GLUE
 extern PyObject *_GWorldObj_New(GWorldPtr);
@@ -634,7 +634,7 @@ static PyObject *Qdoffs_PutPixMapBytes(PyObject *_self, PyObject *_args)
 #endif /* __LP64__ */
 
 static PyMethodDef Qdoffs_methods[] = {
-#ifndef __LP64__
+#if !defined(__LP64__) && !defined(MAC_OS_X_VERSION_10_7)
     {"NewGWorld", (PyCFunction)Qdoffs_NewGWorld, 1,
      PyDoc_STR("(short PixelDepth, Rect boundsRect, CTabHandle cTable, GDHandle aGDevice, GWorldFlags flags) -> (GWorldPtr offscreenGWorld)")},
     {"LockPixels", (PyCFunction)Qdoffs_LockPixels, 1,
@@ -691,7 +691,7 @@ static PyMethodDef Qdoffs_methods[] = {
 void init_Qdoffs(void)
 {
     PyObject *m;
-#ifndef __LP64__
+#if !defined(__LP64__) && !defined(MAC_OS_X_VERSION_10_7)
     PyObject *d;
 
 
@@ -702,7 +702,7 @@ void init_Qdoffs(void)
 #endif /* __LP64__ */
 
     m = Py_InitModule("_Qdoffs", Qdoffs_methods);
-#ifndef __LP64__
+#if !defined(__LP64__) && !defined(MAC_OS_X_VERSION_10_7)
     d = PyModule_GetDict(m);
     Qdoffs_Error = PyMac_GetOSErrException();
     if (Qdoffs_Error == NULL ||
index 8f5a1e34df820fd4be90543db39e70c661e7fa37..7e29e5450f83a77245402426135ce5e8e8e34f8c 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -600,6 +600,12 @@ Library
 - Issue #16441: Avoid excessive memory usage working with large gzip
   files using the gzip module.
 
+- Issue #15782: Prevent compile errors of OS X Carbon modules _Fm, _Qd, and
+  _Qdoffs when compiling with an SDK of 10.7 or later.  The OS X APIs they
+  wrap have long been deprecated and have now been removed with 10.7.
+  These modules were already empty for 64-bit builds and have been removed
+  in Python 3.
+
 Extension Modules
 -----------------