diff Mac/Python/macglue.c @ 2183:62bdded5f00a legacy-trunk

modernized/rationalized, added PyMac_BuildOSType
author Guido van Rossum <guido@python.org>
date Wed, 18 Jan 1995 23:57:26 +0000
parents 1e9e74944bb5
children 4053d4cb50e0
line wrap: on
line diff
--- a/Mac/Python/macglue.c	Wed Jan 18 23:46:59 1995 +0000
+++ b/Mac/Python/macglue.c	Wed Jan 18 23:57:26 1995 +0000
@@ -63,10 +63,12 @@
 	char *msg;
 	PyObject *v;
 	
-	if (err == 0) {
+	if (err == 0 && !PyErr_Occurred()) {
 		Py_INCREF(Py_None);
 		return Py_None;
 	}
+	if (err == -1 && PyErr_Occurred())
+		return NULL;
 	msg = macstrerror(err);
 	v = Py_BuildValue("(is)", err, msg);
 	PyErr_SetObject(eobj, v);
@@ -102,7 +104,7 @@
 
 /* Convert a ResType argument */
 int
-GetOSType(PyObject *v, ResType *pr)
+PyMac_GetOSType(PyObject *v, ResType *pr)
 {
 	if (!PyString_Check(v) || PyString_Size(v) != 4) {
 		PyErr_SetString(PyExc_TypeError,
@@ -115,7 +117,7 @@
 
 /* Convert a Str255 argument */
 int
-GetStr255(PyObject *v, Str255 pbuf)
+PyMac_GetStr255(PyObject *v, Str255 pbuf)
 {
 	int len;
 	if (!PyString_Check(v) || (len = PyString_Size(v)) > 255) {
@@ -136,7 +138,7 @@
 ** this is probably sys7 dependent anyway).
 */
 int
-GetFSSpec(PyObject *v, FSSpec *fs)
+PyMac_GetFSSpec(PyObject *v, FSSpec *fs)
 {
 	Str255 path;
 	short refnum;
@@ -172,3 +174,10 @@
 {
 	return Py_BuildValue("(iis#)", fs->vRefNum, fs->parID, &fs->name[1], fs->name[0]);
 }
+
+/* Convert an OSType value to a 4-char string object */
+PyObject *
+PyMac_BuildOSType(OSType t)
+{
+	return PyString_FromStringAndSize((char *)&t, 4);
+}