[Python-checkins] CVS: python/dist/src/Mac/Modules/ae _AEmodule.c,1.9,1.10

Jack Jansen jackjansen@users.sourceforge.net
Sun, 24 Mar 2002 15:04:20 -0800


Update of /cvsroot/python/python/dist/src/Mac/Modules/ae
In directory usw-pr-cvs1:/tmp/cvs-serv6530/Python/Mac/Modules/ae

Modified Files:
	_AEmodule.c 
Log Message:
Weaklink most toolbox modules, improving backward compatibility. Modules will no longer fail to load if a single routine is missing on the curent OS version, in stead calling the missing routine will raise an exception.

Should finally fix 531398. 2.2.1 candidate.

Also blacklisted some constants with definitions that were not Python-compatible.

Index: _AEmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Modules/ae/_AEmodule.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** _AEmodule.c	4 Jan 2002 13:49:36 -0000	1.9
--- _AEmodule.c	24 Mar 2002 23:04:18 -0000	1.10
***************
*** 99,102 ****
--- 99,105 ----
  	DescType toType;
  	AEDesc result;
+ #ifndef AECoerceDesc
+ 	PyMac_PRECHECK(AECoerceDesc);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&",
  	                      PyMac_GetOSType, &toType))
***************
*** 116,119 ****
--- 119,125 ----
  	OSErr _err;
  	AEDesc result;
+ #ifndef AEDuplicateDesc
+ 	PyMac_PRECHECK(AEDuplicateDesc);
+ #endif
  	if (!PyArg_ParseTuple(_args, ""))
  		return NULL;
***************
*** 131,134 ****
--- 137,143 ----
  	OSErr _err;
  	long theCount;
+ #ifndef AECountItems
+ 	PyMac_PRECHECK(AECountItems);
+ #endif
  	if (!PyArg_ParseTuple(_args, ""))
  		return NULL;
***************
*** 150,153 ****
--- 159,165 ----
  	long dataPtr__len__;
  	int dataPtr__in_len__;
+ #ifndef AEPutPtr
+ 	PyMac_PRECHECK(AEPutPtr);
+ #endif
  	if (!PyArg_ParseTuple(_args, "lO&s#",
  	                      &index,
***************
*** 172,175 ****
--- 184,190 ----
  	long index;
  	AEDesc theAEDesc;
+ #ifndef AEPutDesc
+ 	PyMac_PRECHECK(AEPutDesc);
+ #endif
  	if (!PyArg_ParseTuple(_args, "lO&",
  	                      &index,
***************
*** 196,199 ****
--- 211,217 ----
  	long dataPtr__len__;
  	int dataPtr__in_len__;
+ #ifndef AEGetNthPtr
+ 	PyMac_PRECHECK(AEGetNthPtr);
+ #endif
  	if (!PyArg_ParseTuple(_args, "lO&i",
  	                      &index,
***************
*** 231,234 ****
--- 249,255 ----
  	AEKeyword theAEKeyword;
  	AEDesc result;
+ #ifndef AEGetNthDesc
+ 	PyMac_PRECHECK(AEGetNthDesc);
+ #endif
  	if (!PyArg_ParseTuple(_args, "lO&",
  	                      &index,
***************
*** 254,257 ****
--- 275,281 ----
  	DescType typeCode;
  	Size dataSize;
+ #ifndef AESizeOfNthItem
+ 	PyMac_PRECHECK(AESizeOfNthItem);
+ #endif
  	if (!PyArg_ParseTuple(_args, "l",
  	                      &index))
***************
*** 273,276 ****
--- 297,303 ----
  	OSErr _err;
  	long index;
+ #ifndef AEDeleteItem
+ 	PyMac_PRECHECK(AEDeleteItem);
+ #endif
  	if (!PyArg_ParseTuple(_args, "l",
  	                      &index))
***************
*** 293,296 ****
--- 320,326 ----
  	long dataPtr__len__;
  	int dataPtr__in_len__;
+ #ifndef AEPutParamPtr
+ 	PyMac_PRECHECK(AEPutParamPtr);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&O&s#",
  	                      PyMac_GetOSType, &theAEKeyword,
***************
*** 315,318 ****
--- 345,351 ----
  	AEKeyword theAEKeyword;
  	AEDesc theAEDesc;
+ #ifndef AEPutParamDesc
+ 	PyMac_PRECHECK(AEPutParamDesc);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&O&",
  	                      PyMac_GetOSType, &theAEKeyword,
***************
*** 338,341 ****
--- 371,377 ----
  	long dataPtr__len__;
  	int dataPtr__in_len__;
+ #ifndef AEGetParamPtr
+ 	PyMac_PRECHECK(AEGetParamPtr);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&O&i",
  	                      PyMac_GetOSType, &theAEKeyword,
***************
*** 370,373 ****
--- 406,412 ----
  	DescType desiredType;
  	AEDesc result;
+ #ifndef AEGetParamDesc
+ 	PyMac_PRECHECK(AEGetParamDesc);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&O&",
  	                      PyMac_GetOSType, &theAEKeyword,
***************
*** 391,394 ****
--- 430,436 ----
  	DescType typeCode;
  	Size dataSize;
+ #ifndef AESizeOfParam
+ 	PyMac_PRECHECK(AESizeOfParam);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&",
  	                      PyMac_GetOSType, &theAEKeyword))
***************
*** 410,413 ****
--- 452,458 ----
  	OSErr _err;
  	AEKeyword theAEKeyword;
+ #ifndef AEDeleteParam
+ 	PyMac_PRECHECK(AEDeleteParam);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&",
  	                      PyMac_GetOSType, &theAEKeyword))
***************
*** 431,434 ****
--- 476,482 ----
  	long dataPtr__len__;
  	int dataPtr__in_len__;
+ #ifndef AEGetAttributePtr
+ 	PyMac_PRECHECK(AEGetAttributePtr);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&O&i",
  	                      PyMac_GetOSType, &theAEKeyword,
***************
*** 463,466 ****
--- 511,517 ----
  	DescType desiredType;
  	AEDesc result;
+ #ifndef AEGetAttributeDesc
+ 	PyMac_PRECHECK(AEGetAttributeDesc);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&O&",
  	                      PyMac_GetOSType, &theAEKeyword,
***************
*** 484,487 ****
--- 535,541 ----
  	DescType typeCode;
  	Size dataSize;
+ #ifndef AESizeOfAttribute
+ 	PyMac_PRECHECK(AESizeOfAttribute);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&",
  	                      PyMac_GetOSType, &theAEKeyword))
***************
*** 507,510 ****
--- 561,567 ----
  	long dataPtr__len__;
  	int dataPtr__in_len__;
+ #ifndef AEPutAttributePtr
+ 	PyMac_PRECHECK(AEPutAttributePtr);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&O&s#",
  	                      PyMac_GetOSType, &theAEKeyword,
***************
*** 529,532 ****
--- 586,592 ----
  	AEKeyword theAEKeyword;
  	AEDesc theAEDesc;
+ #ifndef AEPutAttributeDesc
+ 	PyMac_PRECHECK(AEPutAttributeDesc);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&O&",
  	                      PyMac_GetOSType, &theAEKeyword,
***************
*** 548,551 ****
--- 608,614 ----
  	PyObject *_res = NULL;
  	Size _rv;
+ #ifndef AEGetDescDataSize
+ 	PyMac_PRECHECK(AEGetDescDataSize);
+ #endif
  	if (!PyArg_ParseTuple(_args, ""))
  		return NULL;
***************
*** 565,568 ****
--- 628,634 ----
  	AESendPriority sendPriority;
  	long timeOutInTicks;
+ #ifndef AESend
+ 	PyMac_PRECHECK(AESend);
+ #endif
  	if (!PyArg_ParseTuple(_args, "lhl",
  	                      &sendMode,
***************
*** 587,590 ****
--- 653,659 ----
  	PyObject *_res = NULL;
  	OSErr _err;
+ #ifndef AEResetTimer
+ 	PyMac_PRECHECK(AEResetTimer);
+ #endif
  	if (!PyArg_ParseTuple(_args, ""))
  		return NULL;
***************
*** 600,603 ****
--- 669,675 ----
  	PyObject *_res = NULL;
  	OSErr _err;
+ #ifndef AESuspendTheCurrentEvent
+ 	PyMac_PRECHECK(AESuspendTheCurrentEvent);
+ #endif
  	if (!PyArg_ParseTuple(_args, ""))
  		return NULL;
***************
*** 616,619 ****
--- 688,694 ----
  	AEEventHandlerUPP dispatcher__proc__ = upp_GenericEventHandler;
  	PyObject *dispatcher;
+ #ifndef AEResumeTheCurrentEvent
+ 	PyMac_PRECHECK(AEResumeTheCurrentEvent);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&O",
  	                      AEDesc_Convert, &reply,
***************
*** 634,637 ****
--- 709,715 ----
  	PyObject *_res = NULL;
  	OSErr _err;
+ #ifndef AEGetTheCurrentEvent
+ 	PyMac_PRECHECK(AEGetTheCurrentEvent);
+ #endif
  	if (!PyArg_ParseTuple(_args, ""))
  		return NULL;
***************
*** 647,650 ****
--- 725,731 ----
  	PyObject *_res = NULL;
  	OSErr _err;
+ #ifndef AESetTheCurrentEvent
+ 	PyMac_PRECHECK(AESetTheCurrentEvent);
+ #endif
  	if (!PyArg_ParseTuple(_args, ""))
  		return NULL;
***************
*** 662,665 ****
--- 743,749 ----
  	short callbackFlags;
  	AEDesc theToken;
+ #ifndef AEResolve
+ 	PyMac_PRECHECK(AEResolve);
+ #endif
  	if (!PyArg_ParseTuple(_args, "h",
  	                      &callbackFlags))
***************
*** 816,819 ****
--- 900,906 ----
  	DescType toType;
  	AEDesc result;
+ #ifndef AECoercePtr
+ 	PyMac_PRECHECK(AECoercePtr);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&s#O&",
  	                      PyMac_GetOSType, &typeCode,
***************
*** 841,844 ****
--- 928,934 ----
  	int dataPtr__in_len__;
  	AEDesc result;
+ #ifndef AECreateDesc
+ 	PyMac_PRECHECK(AECreateDesc);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&s#",
  	                      PyMac_GetOSType, &typeCode,
***************
*** 864,867 ****
--- 954,960 ----
  	Boolean isRecord;
  	AEDescList resultList;
+ #ifndef AECreateList
+ 	PyMac_PRECHECK(AECreateList);
+ #endif
  	if (!PyArg_ParseTuple(_args, "s#b",
  	                      &factoringPtr__in__, &factoringPtr__in_len__,
***************
*** 888,891 ****
--- 981,987 ----
  	AETransactionID transactionID;
  	AppleEvent result;
+ #ifndef AECreateAppleEvent
+ 	PyMac_PRECHECK(AECreateAppleEvent);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&O&O&hl",
  	                      PyMac_GetOSType, &theAEEventClass,
***************
*** 918,921 ****
--- 1014,1020 ----
  	int dataPtr__in_len__;
  	AEDesc theAEDesc;
+ #ifndef AEReplaceDescData
+ 	PyMac_PRECHECK(AEReplaceDescData);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&s#",
  	                      PyMac_GetOSType, &typeCode,
***************
*** 938,941 ****
--- 1037,1043 ----
  	OSErr _err;
  	EventRecord theEventRecord;
+ #ifndef AEProcessAppleEvent
+ 	PyMac_PRECHECK(AEProcessAppleEvent);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&",
  	                      PyMac_GetEventRecord, &theEventRecord))
***************
*** 953,956 ****
--- 1055,1061 ----
  	OSErr _err;
  	AEInteractAllowed level;
+ #ifndef AEGetInteractionAllowed
+ 	PyMac_PRECHECK(AEGetInteractionAllowed);
+ #endif
  	if (!PyArg_ParseTuple(_args, ""))
  		return NULL;
***************
*** 967,970 ****
--- 1072,1078 ----
  	OSErr _err;
  	AEInteractAllowed level;
+ #ifndef AESetInteractionAllowed
+ 	PyMac_PRECHECK(AESetInteractionAllowed);
+ #endif
  	if (!PyArg_ParseTuple(_args, "b",
  	                      &level))
***************
*** 982,985 ****
--- 1090,1096 ----
  	OSErr _err;
  	long timeOutInTicks;
+ #ifndef AEInteractWithUser
+ 	PyMac_PRECHECK(AEInteractWithUser);
+ #endif
  	if (!PyArg_ParseTuple(_args, "l",
  	                      &timeOutInTicks))
***************
*** 1002,1005 ****
--- 1113,1119 ----
  	AEEventHandlerUPP handler__proc__ = upp_GenericEventHandler;
  	PyObject *handler;
+ #ifndef AEInstallEventHandler
+ 	PyMac_PRECHECK(AEInstallEventHandler);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&O&O",
  	                      PyMac_GetOSType, &theAEEventClass,
***************
*** 1024,1027 ****
--- 1138,1144 ----
  	AEEventClass theAEEventClass;
  	AEEventID theAEEventID;
+ #ifndef AERemoveEventHandler
+ 	PyMac_PRECHECK(AERemoveEventHandler);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&O&",
  	                      PyMac_GetOSType, &theAEEventClass,
***************
*** 1046,1049 ****
--- 1163,1169 ----
  	AEEventHandlerUPP handler__proc__ = upp_GenericEventHandler;
  	PyObject *handler;
+ #ifndef AEGetEventHandler
+ 	PyMac_PRECHECK(AEGetEventHandler);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&O&",
  	                      PyMac_GetOSType, &theAEEventClass,
***************
*** 1066,1069 ****
--- 1186,1192 ----
  	OSErr _err;
  	AEKeyword functionClass;
+ #ifndef AEInstallSpecialHandler
+ 	PyMac_PRECHECK(AEInstallSpecialHandler);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&",
  	                      PyMac_GetOSType, &functionClass))
***************
*** 1083,1086 ****
--- 1206,1212 ----
  	OSErr _err;
  	AEKeyword functionClass;
+ #ifndef AERemoveSpecialHandler
+ 	PyMac_PRECHECK(AERemoveSpecialHandler);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&",
  	                      PyMac_GetOSType, &functionClass))
***************
*** 1101,1104 ****
--- 1227,1233 ----
  	AEKeyword keyWord;
  	long result;
+ #ifndef AEManagerInfo
+ 	PyMac_PRECHECK(AEManagerInfo);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&",
  	                      PyMac_GetOSType, &keyWord))
***************
*** 1116,1119 ****
--- 1245,1251 ----
  	PyObject *_res = NULL;
  	OSErr _err;
+ #ifndef AEObjectInit
+ 	PyMac_PRECHECK(AEObjectInit);
+ #endif
  	if (!PyArg_ParseTuple(_args, ""))
  		return NULL;
***************
*** 1130,1133 ****
--- 1262,1268 ----
  	OSErr _err;
  	AEDesc theToken;
+ #ifndef AEDisposeToken
+ 	PyMac_PRECHECK(AEDisposeToken);
+ #endif
  	if (!PyArg_ParseTuple(_args, ""))
  		return NULL;
***************
*** 1149,1152 ****
--- 1284,1290 ----
  	AEDesc keyData;
  	AEDesc token;
+ #ifndef AECallObjectAccessor
+ 	PyMac_PRECHECK(AECallObjectAccessor);
+ #endif
  	if (!PyArg_ParseTuple(_args, "O&O&O&O&O&",
  	                      PyMac_GetOSType, &desiredClass,