[Python-checkins] CVS: python/dist/src/Mac/Modules/res _Resmodule.c,1.7,1.8

Jack Jansen jackjansen@users.sourceforge.net
Tue, 01 Jan 2002 14:43:05 -0800


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

Modified Files:
	_Resmodule.c 
Log Message:
Added some support for unicode arguments.

Index: _Resmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Mac/Modules/res/_Resmodule.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** _Resmodule.c	2001/12/18 15:35:48	1.7
--- _Resmodule.c	2002/01/01 22:43:03	1.8
***************
*** 1383,1386 ****
--- 1383,1416 ----
  }
  
+ static PyObject *Res_FSCreateResFile(PyObject *_self, PyObject *_args)
+ {
+ 	PyObject *_res = NULL;
+ 	FSRef parentRef;
+ 	UniChar *nameLength__in__;
+ 	UniCharCount nameLength__len__;
+ 	int nameLength__in_len__;
+ 	FSRef newRef;
+ 	FSSpec newSpec;
+ 	if (!PyArg_ParseTuple(_args, "O&u#",
+ 	                      PyMac_GetFSRef, &parentRef,
+ 	                      &nameLength__in__, &nameLength__in_len__))
+ 		return NULL;
+ 	nameLength__len__ = nameLength__in_len__;
+ 	FSCreateResFile(&parentRef,
+ 	                nameLength__len__, nameLength__in__,
+ 	                0,
+ 	                (FSCatalogInfo *)0,
+ 	                &newRef,
+ 	                &newSpec);
+ 	{
+ 		OSErr _err = ResError();
+ 		if (_err != noErr) return PyMac_Error(_err);
+ 	}
+ 	_res = Py_BuildValue("O&O&",
+ 	                     PyMac_BuildFSRef, newRef,
+ 	                     PyMac_BuildFSSpec, newSpec);
+ 	return _res;
+ }
+ 
  static PyObject *Res_FSResourceFileAlreadyOpen(PyObject *_self, PyObject *_args)
  {
***************
*** 1407,1410 ****
--- 1437,1508 ----
  }
  
+ static PyObject *Res_FSCreateResourceFile(PyObject *_self, PyObject *_args)
+ {
+ 	PyObject *_res = NULL;
+ 	OSErr _rv;
+ 	FSRef parentRef;
+ 	UniChar *nameLength__in__;
+ 	UniCharCount nameLength__len__;
+ 	int nameLength__in_len__;
+ 	UniChar *forkNameLength__in__;
+ 	UniCharCount forkNameLength__len__;
+ 	int forkNameLength__in_len__;
+ 	FSRef newRef;
+ 	FSSpec newSpec;
+ 	if (!PyArg_ParseTuple(_args, "O&u#u#",
+ 	                      PyMac_GetFSRef, &parentRef,
+ 	                      &nameLength__in__, &nameLength__in_len__,
+ 	                      &forkNameLength__in__, &forkNameLength__in_len__))
+ 		return NULL;
+ 	nameLength__len__ = nameLength__in_len__;
+ 	forkNameLength__len__ = forkNameLength__in_len__;
+ 	_rv = FSCreateResourceFile(&parentRef,
+ 	                           nameLength__len__, nameLength__in__,
+ 	                           0,
+ 	                           (FSCatalogInfo *)0,
+ 	                           forkNameLength__len__, forkNameLength__in__,
+ 	                           &newRef,
+ 	                           &newSpec);
+ 	{
+ 		OSErr _err = ResError();
+ 		if (_err != noErr) return PyMac_Error(_err);
+ 	}
+ 	_res = Py_BuildValue("hO&O&",
+ 	                     _rv,
+ 	                     PyMac_BuildFSRef, newRef,
+ 	                     PyMac_BuildFSSpec, newSpec);
+ 	return _res;
+ }
+ 
+ static PyObject *Res_FSOpenResourceFile(PyObject *_self, PyObject *_args)
+ {
+ 	PyObject *_res = NULL;
+ 	OSErr _rv;
+ 	FSRef ref;
+ 	UniChar *forkNameLength__in__;
+ 	UniCharCount forkNameLength__len__;
+ 	int forkNameLength__in_len__;
+ 	SignedByte permissions;
+ 	SInt16 refNum;
+ 	if (!PyArg_ParseTuple(_args, "O&u#b",
+ 	                      PyMac_GetFSRef, &ref,
+ 	                      &forkNameLength__in__, &forkNameLength__in_len__,
+ 	                      &permissions))
+ 		return NULL;
+ 	forkNameLength__len__ = forkNameLength__in_len__;
+ 	_rv = FSOpenResourceFile(&ref,
+ 	                         forkNameLength__len__, forkNameLength__in__,
+ 	                         permissions,
+ 	                         &refNum);
+ 	{
+ 		OSErr _err = ResError();
+ 		if (_err != noErr) return PyMac_Error(_err);
+ 	}
+ 	_res = Py_BuildValue("hh",
+ 	                     _rv,
+ 	                     refNum);
+ 	return _res;
+ }
+ 
  static PyObject *Res_Resource(PyObject *_self, PyObject *_args)
  {
***************
*** 1570,1575 ****
--- 1668,1679 ----
  	{"FSOpenResFile", (PyCFunction)Res_FSOpenResFile, 1,
  	 "(FSRef ref, SignedByte permission) -> (short _rv)"},
+ 	{"FSCreateResFile", (PyCFunction)Res_FSCreateResFile, 1,
+ 	 "(FSRef parentRef, Buffer nameLength) -> (FSRef newRef, FSSpec newSpec)"},
  	{"FSResourceFileAlreadyOpen", (PyCFunction)Res_FSResourceFileAlreadyOpen, 1,
  	 "(FSRef resourceFileRef) -> (Boolean _rv, Boolean inChain, SInt16 refNum)"},
+ 	{"FSCreateResourceFile", (PyCFunction)Res_FSCreateResourceFile, 1,
+ 	 "(FSRef parentRef, Buffer nameLength, Buffer forkNameLength) -> (OSErr _rv, FSRef newRef, FSSpec newSpec)"},
+ 	{"FSOpenResourceFile", (PyCFunction)Res_FSOpenResourceFile, 1,
+ 	 "(FSRef ref, Buffer forkNameLength, SignedByte permissions) -> (OSErr _rv, SInt16 refNum)"},
  	{"Resource", (PyCFunction)Res_Resource, 1,
  	 "Convert a string to a resource object.\n\nThe created resource object is actually just a handle,\napply AddResource() to write it to a resource file.\nSee also the Handle() docstring.\n"},