[Python-checkins] CVS: python/dist/src/Mac/Modules icgluemodule.c,1.7,1.7.6.1

Jack Jansen jackjansen@users.sourceforge.net
Tue, 26 Feb 2002 13:19:44 -0800


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

Modified Files:
      Tag: release22-maint
	icgluemodule.c 
Log Message:
Backport of 1.8:
Internet Config is now part of official Apple interfaces, so use the new
headers and libraries.

Index: icgluemodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Modules/icgluemodule.c,v
retrieving revision 1.7
retrieving revision 1.7.6.1
diff -C2 -d -r1.7 -r1.7.6.1
*** icgluemodule.c	8 Dec 2001 18:02:51 -0000	1.7
--- icgluemodule.c	26 Feb 2002 21:19:42 -0000	1.7.6.1
***************
*** 36,71 ****
  
  #ifdef WITHOUT_FRAMEWORKS
! #if !TARGET_API_MAC_OS8
! /* The Carbon headers define PRAGMA_ALIGN_SUPPORT to something illegal,
! ** because you shouldn't use it for Carbon. All good and well, but portable
! ** code still needs it. So, we undefine it here.
! */
! #undef PRAGMA_ALIGN_SUPPORTED
! #define PRAGMA_ALIGN_SUPPORTED 0
! #endif /* !TARGET_API_MAC_OS8 */
  
! #include "ICAPI.h"
  #else
  #include <Carbon/Carbon.h>
- typedef OSStatus ICError;
- /* Some fields in ICMapEntry have changed names. */
- #define file_type fileType
- #define file_creator fileCreator
- #define post_creator postCreator
- #define creator_app_name creatorAppName
- #define post_app_name postAppName
- #define MIME_type MIMEType
- #define entry_name entryName
  #endif
  
  static PyObject *ErrorObject;
  
- static PyObject *
- ici_error(ICError err)
- {
- 	PyErr_SetObject(ErrorObject, PyInt_FromLong((long)err));
- 	return NULL;
- }
- 
  /* ----------------------------------------------------- */
  
--- 36,56 ----
  
  #ifdef WITHOUT_FRAMEWORKS
! // #if !TARGET_API_MAC_OS8
! // /* The Carbon headers define PRAGMA_ALIGN_SUPPORT to something illegal,
! // ** because you shouldn't use it for Carbon. All good and well, but portable
! // ** code still needs it. So, we undefine it here.
! // */
! // #undef PRAGMA_ALIGN_SUPPORTED
! // #define PRAGMA_ALIGN_SUPPORTED 0
! // #endif /* !TARGET_API_MAC_OS8 */
  
! // #include "ICAPI.h"
! #include <InternetConfig.h>
  #else
  #include <Carbon/Carbon.h>
  #endif
  
  static PyObject *ErrorObject;
  
  /* ----------------------------------------------------- */
  
***************
*** 91,100 ****
  ici_ICFindConfigFile(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	
  	if (!PyArg_ParseTuple(args, ""))
  		return NULL;
  	if ((err=ICFindConfigFile(self->inst, 0, NULL)) != 0 )
! 		return ici_error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
--- 76,85 ----
  ici_ICFindConfigFile(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	
  	if (!PyArg_ParseTuple(args, ""))
  		return NULL;
  	if ((err=ICFindConfigFile(self->inst, 0, NULL)) != 0 )
! 		return PyMac_Error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
***************
*** 109,113 ****
  ici_ICFindUserConfigFile(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	ICDirSpec where;	
  
--- 94,98 ----
  ici_ICFindUserConfigFile(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	ICDirSpec where;	
  
***************
*** 115,119 ****
  		return NULL;
  	if ((err=ICFindUserConfigFile(self->inst, &where)) != 0 )
! 		return ici_error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
--- 100,104 ----
  		return NULL;
  	if ((err=ICFindUserConfigFile(self->inst, &where)) != 0 )
! 		return PyMac_Error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
***************
*** 128,137 ****
  ici_ICChooseConfig(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	
  	if (!PyArg_ParseTuple(args, ""))
  		return NULL;
  	if ((err=ICChooseConfig(self->inst)) != 0 )
! 		return ici_error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
--- 113,122 ----
  ici_ICChooseConfig(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	
  	if (!PyArg_ParseTuple(args, ""))
  		return NULL;
  	if ((err=ICChooseConfig(self->inst)) != 0 )
! 		return PyMac_Error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
***************
*** 145,154 ****
  ici_ICChooseNewConfig(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	
  	if (!PyArg_ParseTuple(args, ""))
  		return NULL;
  	if ((err=ICChooseNewConfig(self->inst)) != 0 )
! 		return ici_error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
--- 130,139 ----
  ici_ICChooseNewConfig(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	
  	if (!PyArg_ParseTuple(args, ""))
  		return NULL;
  	if ((err=ICChooseNewConfig(self->inst)) != 0 )
! 		return PyMac_Error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
***************
*** 164,168 ****
  ici_ICGetSeed(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	long seed;
  	
--- 149,153 ----
  ici_ICGetSeed(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	long seed;
  	
***************
*** 170,174 ****
  		return NULL;
  	if ((err=ICGetSeed(self->inst, &seed)) != 0 )
! 		return ici_error(err);
  	return Py_BuildValue("i", (int)seed);
  }
--- 155,159 ----
  		return NULL;
  	if ((err=ICGetSeed(self->inst, &seed)) != 0 )
! 		return PyMac_Error(err);
  	return Py_BuildValue("i", (int)seed);
  }
***************
*** 182,186 ****
  ici_ICBegin(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	int perm;
  	
--- 167,171 ----
  ici_ICBegin(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	int perm;
  	
***************
*** 188,192 ****
  		return NULL;
  	if ((err=ICBegin(self->inst, (ICPerm)perm)) != 0 )
! 		return ici_error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
--- 173,177 ----
  		return NULL;
  	if ((err=ICBegin(self->inst, (ICPerm)perm)) != 0 )
! 		return PyMac_Error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
***************
*** 201,205 ****
  ici_ICFindPrefHandle(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	Str255 key;
  	ICAttr attr;
--- 186,190 ----
  ici_ICFindPrefHandle(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	Str255 key;
  	ICAttr attr;
***************
*** 209,213 ****
  		return NULL;
  	if ((err=ICFindPrefHandle(self->inst, key, &attr, h)) != 0 )
! 		return ici_error(err);
  	return Py_BuildValue("i", (int)attr);
  }
--- 194,198 ----
  		return NULL;
  	if ((err=ICFindPrefHandle(self->inst, key, &attr, h)) != 0 )
! 		return PyMac_Error(err);
  	return Py_BuildValue("i", (int)attr);
  }
***************
*** 221,225 ****
  ici_ICSetPref(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	Str255 key;
  	int attr;
--- 206,210 ----
  ici_ICSetPref(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	Str255 key;
  	int attr;
***************
*** 232,236 ****
  	if ((err=ICSetPref(self->inst, key, (ICAttr)attr, (Ptr)data, 
  			(long)datalen)) != 0)
! 		return ici_error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
--- 217,221 ----
  	if ((err=ICSetPref(self->inst, key, (ICAttr)attr, (Ptr)data, 
  			(long)datalen)) != 0)
! 		return PyMac_Error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
***************
*** 245,249 ****
  ici_ICCountPref(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	long count;
  	
--- 230,234 ----
  ici_ICCountPref(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	long count;
  	
***************
*** 251,255 ****
  		return NULL;
  	if ((err=ICCountPref(self->inst, &count)) != 0 )
! 		return ici_error(err);
  	return Py_BuildValue("i", (int)count);
  }
--- 236,240 ----
  		return NULL;
  	if ((err=ICCountPref(self->inst, &count)) != 0 )
! 		return PyMac_Error(err);
  	return Py_BuildValue("i", (int)count);
  }
***************
*** 263,267 ****
  ici_ICGetIndPref(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	long num;
  	Str255 key;
--- 248,252 ----
  ici_ICGetIndPref(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	long num;
  	Str255 key;
***************
*** 270,274 ****
  		return NULL;
  	if ((err=ICGetIndPref(self->inst, num, key)) != 0 )
! 		return ici_error(err);
  	return Py_BuildValue("O&", PyMac_BuildStr255, key);
  }
--- 255,259 ----
  		return NULL;
  	if ((err=ICGetIndPref(self->inst, num, key)) != 0 )
! 		return PyMac_Error(err);
  	return Py_BuildValue("O&", PyMac_BuildStr255, key);
  }
***************
*** 282,286 ****
  ici_ICDeletePref(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	Str255 key;
  
--- 267,271 ----
  ici_ICDeletePref(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	Str255 key;
  
***************
*** 288,292 ****
  		return NULL;
  	if ((err=ICDeletePref(self->inst, key)) != 0 )
! 		return ici_error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
--- 273,277 ----
  		return NULL;
  	if ((err=ICDeletePref(self->inst, key)) != 0 )
! 		return PyMac_Error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
***************
*** 301,310 ****
  ici_ICEnd(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	
  	if (!PyArg_ParseTuple(args, ""))
  		return NULL;
  	if ((err=ICEnd(self->inst)) != 0 )
! 		return ici_error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
--- 286,295 ----
  ici_ICEnd(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	
  	if (!PyArg_ParseTuple(args, ""))
  		return NULL;
  	if ((err=ICEnd(self->inst)) != 0 )
! 		return PyMac_Error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
***************
*** 319,323 ****
  ici_ICEditPreferences(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	Str255 key;
  	
--- 304,308 ----
  ici_ICEditPreferences(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	Str255 key;
  	
***************
*** 325,329 ****
  		return NULL;
  	if ((err=ICEditPreferences(self->inst, key)) != 0 )
! 		return ici_error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
--- 310,314 ----
  		return NULL;
  	if ((err=ICEditPreferences(self->inst, key)) != 0 )
! 		return PyMac_Error(err);
  	Py_INCREF(Py_None);
  	return Py_None;
***************
*** 338,342 ****
  ici_ICParseURL(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	Str255 hint;
  	char *data;
--- 323,327 ----
  ici_ICParseURL(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	Str255 hint;
  	char *data;
***************
*** 350,354 ****
  	if ((err=ICParseURL(self->inst, hint, (Ptr)data, (long)datalen,
  				&selStart, &selEnd, h)) != 0 )
! 		return ici_error(err);
  	return Py_BuildValue("ii", (int)selStart, (int)selEnd);
  }
--- 335,339 ----
  	if ((err=ICParseURL(self->inst, hint, (Ptr)data, (long)datalen,
  				&selStart, &selEnd, h)) != 0 )
! 		return PyMac_Error(err);
  	return Py_BuildValue("ii", (int)selStart, (int)selEnd);
  }
***************
*** 362,366 ****
  ici_ICLaunchURL(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	Str255 hint;
  	char *data;
--- 347,351 ----
  ici_ICLaunchURL(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	Str255 hint;
  	char *data;
***************
*** 373,377 ****
  	if ((err=ICLaunchURL(self->inst, hint, (Ptr)data, (long)datalen,
  				&selStart, &selEnd)) != 0 )
! 		return ici_error(err);
  	return Py_BuildValue("ii", (int)selStart, (int)selEnd);
  }
--- 358,362 ----
  	if ((err=ICLaunchURL(self->inst, hint, (Ptr)data, (long)datalen,
  				&selStart, &selEnd)) != 0 )
! 		return PyMac_Error(err);
  	return Py_BuildValue("ii", (int)selStart, (int)selEnd);
  }
***************
*** 385,389 ****
  ici_ICMapFilename(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	Str255 filename;
  	ICMapEntry entry;
--- 370,374 ----
  ici_ICMapFilename(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	Str255 filename;
  	ICMapEntry entry;
***************
*** 392,406 ****
  		return NULL;
  	if ((err=ICMapFilename(self->inst, filename, &entry)) != 0 )
! 		return ici_error(err);
  	return Py_BuildValue("hO&O&O&lO&O&O&O&O&", entry.version, 
! 		PyMac_BuildOSType, entry.file_type,
! 		PyMac_BuildOSType, entry.file_creator, 
! 		PyMac_BuildOSType, entry.post_creator, 
  		entry.flags,
  		PyMac_BuildStr255, entry.extension,
! 		PyMac_BuildStr255, entry.creator_app_name,
! 		PyMac_BuildStr255, entry.post_app_name,
! 		PyMac_BuildStr255, entry.MIME_type,
! 		PyMac_BuildStr255, entry.entry_name);
  }
  
--- 377,391 ----
  		return NULL;
  	if ((err=ICMapFilename(self->inst, filename, &entry)) != 0 )
! 		return PyMac_Error(err);
  	return Py_BuildValue("hO&O&O&lO&O&O&O&O&", entry.version, 
! 		PyMac_BuildOSType, entry.fileType,
! 		PyMac_BuildOSType, entry.fileCreator, 
! 		PyMac_BuildOSType, entry.postCreator, 
  		entry.flags,
  		PyMac_BuildStr255, entry.extension,
! 		PyMac_BuildStr255, entry.creatorAppName,
! 		PyMac_BuildStr255, entry.postAppName,
! 		PyMac_BuildStr255, entry.MIMEType,
! 		PyMac_BuildStr255, entry.entryName);
  }
  
***************
*** 413,417 ****
  ici_ICMapTypeCreator(iciobject *self, PyObject *args)
  {
! 	ICError err;
  	OSType type, creator;
  	Str255 filename;
--- 398,402 ----
  ici_ICMapTypeCreator(iciobject *self, PyObject *args)
  {
! 	OSStatus err;
  	OSType type, creator;
  	Str255 filename;
***************
*** 424,438 ****
  		return NULL;
  	if ((err=ICMapTypeCreator(self->inst, type, creator, filename, &entry)) != 0 )
! 		return ici_error(err);
  	return Py_BuildValue("hO&O&O&lO&O&O&O&O&", entry.version, 
! 		PyMac_BuildOSType, entry.file_type,
! 		PyMac_BuildOSType, entry.file_creator, 
! 		PyMac_BuildOSType, entry.post_creator, 
  		entry.flags,
  		PyMac_BuildStr255, entry.extension,
! 		PyMac_BuildStr255, entry.creator_app_name,
! 		PyMac_BuildStr255, entry.post_app_name,
! 		PyMac_BuildStr255, entry.MIME_type,
! 		PyMac_BuildStr255, entry.entry_name);
  }
  
--- 409,423 ----
  		return NULL;
  	if ((err=ICMapTypeCreator(self->inst, type, creator, filename, &entry)) != 0 )
! 		return PyMac_Error(err);
  	return Py_BuildValue("hO&O&O&lO&O&O&O&O&", entry.version, 
! 		PyMac_BuildOSType, entry.fileType,
! 		PyMac_BuildOSType, entry.fileCreator, 
! 		PyMac_BuildOSType, entry.postCreator, 
  		entry.flags,
  		PyMac_BuildStr255, entry.extension,
! 		PyMac_BuildStr255, entry.creatorAppName,
! 		PyMac_BuildStr255, entry.postAppName,
! 		PyMac_BuildStr255, entry.MIMEType,
! 		PyMac_BuildStr255, entry.entryName);
  }
  
***************
*** 469,473 ****
  {
  	iciobject *self;
! 	ICError err;
  	
  	self = PyObject_NEW(iciobject, &Icitype);
--- 454,458 ----
  {
  	iciobject *self;
! 	OSStatus err;
  	
  	self = PyObject_NEW(iciobject, &Icitype);
***************
*** 475,479 ****
  		return NULL;
  	if ((err=ICStart(&self->inst, creator)) != 0 ) {
! 		(void)ici_error(err);
  		PyMem_DEL(self);
  		return NULL;
--- 460,464 ----
  		return NULL;
  	if ((err=ICStart(&self->inst, creator)) != 0 ) {
! 		(void)PyMac_Error(err);
  		PyMem_DEL(self);
  		return NULL;
***************
*** 570,575 ****
  	/* Add some symbolic constants to the module */
  	d = PyModule_GetDict(m);
! 	ErrorObject = PyString_FromString("icglue.error");
! 	PyDict_SetItemString(d, "error", ErrorObject);
  
  	/* XXXX Add constants here */
--- 555,562 ----
  	/* Add some symbolic constants to the module */
  	d = PyModule_GetDict(m);
! 	ErrorObject = PyMac_GetOSErrException();
! 	if (ErrorObject == NULL ||
! 	    PyDict_SetItemString(d, "error", ErrorObject) != 0)
! 		return;
  
  	/* XXXX Add constants here */