Changeset 391 for python/trunk/Mac/Modules/ah
- Timestamp:
- Mar 19, 2014, 11:31:01 PM (11 years ago)
- Location:
- python/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
python/trunk
-
Property svn:mergeinfo
set to
/python/vendor/Python-2.7.6 merged eligible /python/vendor/current merged eligible
-
Property svn:mergeinfo
set to
-
python/trunk/Mac/Modules/ah/_AHmodule.c
r2 r391 10 10 /* Macro to test whether a weak-loaded CFM function exists */ 11 11 #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ 12 13 14 12 PyErr_SetString(PyExc_NotImplementedError, \ 13 "Not available in this shared library/OS version"); \ 14 return NULL; \ 15 15 }} while(0) 16 16 … … 23 23 static PyObject *Ah_AHSearch(PyObject *_self, PyObject *_args) 24 24 { 25 26 27 28 29 30 31 32 33 34 35 36 37 38 25 PyObject *_res = NULL; 26 OSStatus _err; 27 CFStringRef bookname; 28 CFStringRef query; 29 if (!PyArg_ParseTuple(_args, "O&O&", 30 CFStringRefObj_Convert, &bookname, 31 CFStringRefObj_Convert, &query)) 32 return NULL; 33 _err = AHSearch(bookname, 34 query); 35 if (_err != noErr) return PyMac_Error(_err); 36 Py_INCREF(Py_None); 37 _res = Py_None; 38 return _res; 39 39 } 40 40 41 41 static PyObject *Ah_AHGotoMainTOC(PyObject *_self, PyObject *_args) 42 42 { 43 44 45 46 47 48 49 50 51 52 53 43 PyObject *_res = NULL; 44 OSStatus _err; 45 AHTOCType toctype; 46 if (!PyArg_ParseTuple(_args, "h", 47 &toctype)) 48 return NULL; 49 _err = AHGotoMainTOC(toctype); 50 if (_err != noErr) return PyMac_Error(_err); 51 Py_INCREF(Py_None); 52 _res = Py_None; 53 return _res; 54 54 } 55 55 56 56 static PyObject *Ah_AHGotoPage(PyObject *_self, PyObject *_args) 57 57 { 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 58 PyObject *_res = NULL; 59 OSStatus _err; 60 CFStringRef bookname; 61 CFStringRef path; 62 CFStringRef anchor; 63 if (!PyArg_ParseTuple(_args, "O&O&O&", 64 CFStringRefObj_Convert, &bookname, 65 CFStringRefObj_Convert, &path, 66 CFStringRefObj_Convert, &anchor)) 67 return NULL; 68 _err = AHGotoPage(bookname, 69 path, 70 anchor); 71 if (_err != noErr) return PyMac_Error(_err); 72 Py_INCREF(Py_None); 73 _res = Py_None; 74 return _res; 75 75 } 76 76 77 77 static PyObject *Ah_AHLookupAnchor(PyObject *_self, PyObject *_args) 78 78 { 79 80 81 82 83 84 85 86 87 88 89 90 91 92 79 PyObject *_res = NULL; 80 OSStatus _err; 81 CFStringRef bookname; 82 CFStringRef anchor; 83 if (!PyArg_ParseTuple(_args, "O&O&", 84 CFStringRefObj_Convert, &bookname, 85 CFStringRefObj_Convert, &anchor)) 86 return NULL; 87 _err = AHLookupAnchor(bookname, 88 anchor); 89 if (_err != noErr) return PyMac_Error(_err); 90 Py_INCREF(Py_None); 91 _res = Py_None; 92 return _res; 93 93 } 94 94 95 95 static PyObject *Ah_AHRegisterHelpBook(PyObject *_self, PyObject *_args) 96 96 { 97 98 99 100 101 102 103 104 105 106 107 97 PyObject *_res = NULL; 98 OSStatus _err; 99 FSRef appBundleRef; 100 if (!PyArg_ParseTuple(_args, "O&", 101 PyMac_GetFSRef, &appBundleRef)) 102 return NULL; 103 _err = AHRegisterHelpBook(&appBundleRef); 104 if (_err != noErr) return PyMac_Error(_err); 105 Py_INCREF(Py_None); 106 _res = Py_None; 107 return _res; 108 108 } 109 109 110 110 static PyMethodDef Ah_methods[] = { 111 112 113 114 115 116 117 118 119 120 121 111 {"AHSearch", (PyCFunction)Ah_AHSearch, 1, 112 PyDoc_STR("(CFStringRef bookname, CFStringRef query) -> None")}, 113 {"AHGotoMainTOC", (PyCFunction)Ah_AHGotoMainTOC, 1, 114 PyDoc_STR("(AHTOCType toctype) -> None")}, 115 {"AHGotoPage", (PyCFunction)Ah_AHGotoPage, 1, 116 PyDoc_STR("(CFStringRef bookname, CFStringRef path, CFStringRef anchor) -> None")}, 117 {"AHLookupAnchor", (PyCFunction)Ah_AHLookupAnchor, 1, 118 PyDoc_STR("(CFStringRef bookname, CFStringRef anchor) -> None")}, 119 {"AHRegisterHelpBook", (PyCFunction)Ah_AHRegisterHelpBook, 1, 120 PyDoc_STR("(FSRef appBundleRef) -> None")}, 121 {NULL, NULL, 0} 122 122 }; 123 123 … … 127 127 void init_AH(void) 128 128 { 129 130 129 PyObject *m; 130 PyObject *d; 131 131 132 132 133 133 134 134 135 136 137 138 139 140 135 m = Py_InitModule("_AH", Ah_methods); 136 d = PyModule_GetDict(m); 137 Ah_Error = PyMac_GetOSErrException(); 138 if (Ah_Error == NULL || 139 PyDict_SetItemString(d, "Error", Ah_Error) != 0) 140 return; 141 141 } 142 142
Note:
See TracChangeset
for help on using the changeset viewer.