[Python-checkins] python/dist/src/Mac/Modules/file _Filemodule.c,1.14,1.15 filesupport.py,1.13,1.14

jackjansen@users.sourceforge.net jackjansen@users.sourceforge.net
Sun, 26 Jan 2003 12:22:44 -0800


Update of /cvsroot/python/python/dist/src/Mac/Modules/file
In directory sc8-pr-cvs1:/tmp/cvs-serv26764

Modified Files:
	_Filemodule.c filesupport.py 
Log Message:
FSRef and EasyDialogs pathname support was pretty much broken in MacPython-OS9. Fixed.

Index: _Filemodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Modules/file/_Filemodule.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** _Filemodule.c	19 Jan 2003 22:59:52 -0000	1.14
--- _Filemodule.c	26 Jan 2003 20:22:40 -0000	1.15
***************
*** 1841,1845 ****
--- 1841,1864 ----
  	PyObject *_res = NULL;
  
+ #if TARGET_API_MAC_OSX
+ 	if (!PyArg_ParseTuple(_args, ""))
+ 		return NULL;
  	_res = FSRef_FSRefMakePath(_self, _args);
+ #else
+ 	char strbuf[1024];
+ 	OSErr err;
+ 	FSSpec fss;
+ 
+ 	if (!PyArg_ParseTuple(_args, ""))
+ 		return NULL;
+ 	if ( !PyMac_GetFSSpec((PyObject *)_self, &fss))
+ 		return NULL;
+ 	err = PyMac_GetFullPathname(&fss, strbuf, sizeof(strbuf));
+ 	if ( err ) {
+ 		PyMac_Error(err);
+ 		return NULL;
+ 	}
+ 	_res = PyString_FromString(strbuf);
+ #endif
  	return _res;
  
***************
*** 3191,3194 ****
--- 3210,3214 ----
  {
  	OSStatus err;
+ 	FSSpec fss;
  	
  	if (FSRef_Check(v)) {
***************
*** 3209,3214 ****
  #endif
  	/* Otherwise we try to go via an FSSpec */
  	if (FSSpec_Check(v)) {
! 		if ((err=FSpMakeFSRef(&((FSSpecObject *)v)->ob_itself, fsr)) == 0)
  			return 1;
  		PyMac_Error(err);
--- 3229,3239 ----
  #endif
  	/* Otherwise we try to go via an FSSpec */
+ #if TARGET_API_MAC_OSX
  	if (FSSpec_Check(v)) {
! 		fss = ((FSSpecObject *)v)->ob_itself;
! #else
! 	if (PyMac_GetFSSpec(v, &fss)) {
! #endif
! 		if ((err=FSpMakeFSRef(&fss, fsr)) == 0)
  			return 1;
  		PyMac_Error(err);

Index: filesupport.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Modules/file/filesupport.py,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** filesupport.py	19 Jan 2003 22:59:52 -0000	1.13
--- filesupport.py	26 Jan 2003 20:22:41 -0000	1.14
***************
*** 272,275 ****
--- 272,276 ----
  {
  	OSStatus err;
+ 	FSSpec fss;
  	
  	if (FSRef_Check(v)) {
***************
*** 290,295 ****
  #endif
  	/* Otherwise we try to go via an FSSpec */
  	if (FSSpec_Check(v)) {
! 		if ((err=FSpMakeFSRef(&((FSSpecObject *)v)->ob_itself, fsr)) == 0)
  			return 1;
  		PyMac_Error(err);
--- 291,301 ----
  #endif
  	/* Otherwise we try to go via an FSSpec */
+ #if TARGET_API_MAC_OSX
  	if (FSSpec_Check(v)) {
! 		fss = ((FSSpecObject *)v)->ob_itself;
! #else
! 	if (PyMac_GetFSSpec(v, &fss)) {
! #endif
! 		if ((err=FSpMakeFSRef(&fss, fsr)) == 0)
  			return 1;
  		PyMac_Error(err);
***************
*** 809,813 ****
--- 815,838 ----
  
  FSRef_as_pathname_body = """
+ #if TARGET_API_MAC_OSX
+ if (!PyArg_ParseTuple(_args, ""))
+ 	return NULL;
  _res = FSRef_FSRefMakePath(_self, _args);
+ #else
+ char strbuf[1024];
+ OSErr err;
+ FSSpec fss;
+ 
+ if (!PyArg_ParseTuple(_args, ""))
+ 	return NULL;
+ if ( !PyMac_GetFSSpec((PyObject *)_self, &fss))
+ 	return NULL;
+ err = PyMac_GetFullPathname(&fss, strbuf, sizeof(strbuf));
+ if ( err ) {
+ 	PyMac_Error(err);
+ 	return NULL;
+ }
+ _res = PyString_FromString(strbuf);
+ #endif
  return _res;
  """