summaryrefslogtreecommitdiffstats
path: root/Mac/Modules/carbonevt
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Modules/carbonevt')
-rw-r--r--Mac/Modules/carbonevt/CarbonEvtscan.py5
-rw-r--r--Mac/Modules/carbonevt/CarbonEvtsupport.py6
-rwxr-xr-xMac/Modules/carbonevt/_CarbonEvtmodule.c16
3 files changed, 18 insertions, 9 deletions
diff --git a/Mac/Modules/carbonevt/CarbonEvtscan.py b/Mac/Modules/carbonevt/CarbonEvtscan.py
index e93baf3..37faa54 100644
--- a/Mac/Modules/carbonevt/CarbonEvtscan.py
+++ b/Mac/Modules/carbonevt/CarbonEvtscan.py
@@ -107,7 +107,10 @@ class CarbonEvents_Scanner(Scanner_OSX):
# ]
def makerepairinstructions(self):
- return []
+ return [
+ ([("UInt32", 'inSize', "InMode"), ("void_ptr", 'inDataPtr', "InMode")],
+ [("MyInBuffer", 'inDataPtr', "InMode")])
+ ]
if __name__ == "__main__":
main()
diff --git a/Mac/Modules/carbonevt/CarbonEvtsupport.py b/Mac/Modules/carbonevt/CarbonEvtsupport.py
index 0ce2af8..8ed13eb 100644
--- a/Mac/Modules/carbonevt/CarbonEvtsupport.py
+++ b/Mac/Modules/carbonevt/CarbonEvtsupport.py
@@ -34,6 +34,12 @@ EventTypeSpec_ptr = OpaqueType("EventTypeSpec", "EventTypeSpec")
void_ptr = stringptr
# here are some types that are really other types
+class MyVarInputBufferType(VarInputBufferType):
+ def passInput(self, name):
+ return "%s__len__, %s__in__" % (name, name)
+
+MyInBuffer = MyVarInputBufferType('char', 'long', 'l') # (buf, len)
+
EventTime = double
EventTimeout = EventTime
EventTimerInterval = EventTime
diff --git a/Mac/Modules/carbonevt/_CarbonEvtmodule.c b/Mac/Modules/carbonevt/_CarbonEvtmodule.c
index eef1e3c..8488a2f 100755
--- a/Mac/Modules/carbonevt/_CarbonEvtmodule.c
+++ b/Mac/Modules/carbonevt/_CarbonEvtmodule.c
@@ -215,19 +215,19 @@ static PyObject *EventRef_SetEventParameter(EventRefObject *_self, PyObject *_ar
OSStatus _err;
OSType inName;
OSType inType;
- UInt32 inSize;
- char* inDataPtr;
- if (!PyArg_ParseTuple(_args, "O&O&ls",
+ char *inDataPtr__in__;
+ long inDataPtr__len__;
+ int inDataPtr__in_len__;
+ if (!PyArg_ParseTuple(_args, "O&O&s#",
PyMac_GetOSType, &inName,
PyMac_GetOSType, &inType,
- &inSize,
- &inDataPtr))
+ &inDataPtr__in__, &inDataPtr__in_len__))
return NULL;
+ inDataPtr__len__ = inDataPtr__in_len__;
_err = SetEventParameter(_self->ob_itself,
inName,
inType,
- inSize,
- inDataPtr);
+ inDataPtr__len__, inDataPtr__in__);
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
_res = Py_None;
@@ -386,7 +386,7 @@ static PyMethodDef EventRef_methods[] = {
{"ReleaseEvent", (PyCFunction)EventRef_ReleaseEvent, 1,
"() -> None"},
{"SetEventParameter", (PyCFunction)EventRef_SetEventParameter, 1,
- "(OSType inName, OSType inType, UInt32 inSize, char* inDataPtr) -> None"},
+ "(OSType inName, OSType inType, Buffer inDataPtr) -> None"},
{"GetEventClass", (PyCFunction)EventRef_GetEventClass, 1,
"() -> (UInt32 _rv)"},
{"GetEventKind", (PyCFunction)EventRef_GetEventKind, 1,