ยปCore Development>Code coverage>Mac/Modules/ah/_AHmodule.c

Python code coverage for Mac/Modules/ah/_AHmodule.c

#countcontent
1n/a
2n/a/* =========================== Module _AH =========================== */
3n/a
4n/a#include "Python.h"
5n/a
6n/a
7n/a
8n/a#include "pymactoolbox.h"
9n/a
10n/a/* Macro to test whether a weak-loaded CFM function exists */
11n/a#define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\
12n/a PyErr_SetString(PyExc_NotImplementedError, \
13n/a "Not available in this shared library/OS version"); \
14n/a return NULL; \
15n/a }} while(0)
16n/a
17n/a
18n/a#include <Carbon/Carbon.h>
19n/a
20n/a
21n/astatic PyObject *Ah_Error;
22n/a
23n/astatic PyObject *Ah_AHSearch(PyObject *_self, PyObject *_args)
24n/a{
25n/a PyObject *_res = NULL;
26n/a OSStatus _err;
27n/a CFStringRef bookname;
28n/a CFStringRef query;
29n/a if (!PyArg_ParseTuple(_args, "O&O&",
30n/a CFStringRefObj_Convert, &bookname,
31n/a CFStringRefObj_Convert, &query))
32n/a return NULL;
33n/a _err = AHSearch(bookname,
34n/a query);
35n/a if (_err != noErr) return PyMac_Error(_err);
36n/a Py_INCREF(Py_None);
37n/a _res = Py_None;
38n/a return _res;
39n/a}
40n/a
41n/astatic PyObject *Ah_AHGotoMainTOC(PyObject *_self, PyObject *_args)
42n/a{
43n/a PyObject *_res = NULL;
44n/a OSStatus _err;
45n/a AHTOCType toctype;
46n/a if (!PyArg_ParseTuple(_args, "h",
47n/a &toctype))
48n/a return NULL;
49n/a _err = AHGotoMainTOC(toctype);
50n/a if (_err != noErr) return PyMac_Error(_err);
51n/a Py_INCREF(Py_None);
52n/a _res = Py_None;
53n/a return _res;
54n/a}
55n/a
56n/astatic PyObject *Ah_AHGotoPage(PyObject *_self, PyObject *_args)
57n/a{
58n/a PyObject *_res = NULL;
59n/a OSStatus _err;
60n/a CFStringRef bookname;
61n/a CFStringRef path;
62n/a CFStringRef anchor;
63n/a if (!PyArg_ParseTuple(_args, "O&O&O&",
64n/a CFStringRefObj_Convert, &bookname,
65n/a CFStringRefObj_Convert, &path,
66n/a CFStringRefObj_Convert, &anchor))
67n/a return NULL;
68n/a _err = AHGotoPage(bookname,
69n/a path,
70n/a anchor);
71n/a if (_err != noErr) return PyMac_Error(_err);
72n/a Py_INCREF(Py_None);
73n/a _res = Py_None;
74n/a return _res;
75n/a}
76n/a
77n/astatic PyObject *Ah_AHLookupAnchor(PyObject *_self, PyObject *_args)
78n/a{
79n/a PyObject *_res = NULL;
80n/a OSStatus _err;
81n/a CFStringRef bookname;
82n/a CFStringRef anchor;
83n/a if (!PyArg_ParseTuple(_args, "O&O&",
84n/a CFStringRefObj_Convert, &bookname,
85n/a CFStringRefObj_Convert, &anchor))
86n/a return NULL;
87n/a _err = AHLookupAnchor(bookname,
88n/a anchor);
89n/a if (_err != noErr) return PyMac_Error(_err);
90n/a Py_INCREF(Py_None);
91n/a _res = Py_None;
92n/a return _res;
93n/a}
94n/a
95n/astatic PyObject *Ah_AHRegisterHelpBook(PyObject *_self, PyObject *_args)
96n/a{
97n/a PyObject *_res = NULL;
98n/a OSStatus _err;
99n/a FSRef appBundleRef;
100n/a if (!PyArg_ParseTuple(_args, "O&",
101n/a PyMac_GetFSRef, &appBundleRef))
102n/a return NULL;
103n/a _err = AHRegisterHelpBook(&appBundleRef);
104n/a if (_err != noErr) return PyMac_Error(_err);
105n/a Py_INCREF(Py_None);
106n/a _res = Py_None;
107n/a return _res;
108n/a}
109n/a
110n/astatic PyMethodDef Ah_methods[] = {
111n/a {"AHSearch", (PyCFunction)Ah_AHSearch, 1,
112n/a PyDoc_STR("(CFStringRef bookname, CFStringRef query) -> None")},
113n/a {"AHGotoMainTOC", (PyCFunction)Ah_AHGotoMainTOC, 1,
114n/a PyDoc_STR("(AHTOCType toctype) -> None")},
115n/a {"AHGotoPage", (PyCFunction)Ah_AHGotoPage, 1,
116n/a PyDoc_STR("(CFStringRef bookname, CFStringRef path, CFStringRef anchor) -> None")},
117n/a {"AHLookupAnchor", (PyCFunction)Ah_AHLookupAnchor, 1,
118n/a PyDoc_STR("(CFStringRef bookname, CFStringRef anchor) -> None")},
119n/a {"AHRegisterHelpBook", (PyCFunction)Ah_AHRegisterHelpBook, 1,
120n/a PyDoc_STR("(FSRef appBundleRef) -> None")},
121n/a {NULL, NULL, 0}
122n/a};
123n/a
124n/a
125n/a
126n/a
127n/avoid init_AH(void)
128n/a{
129n/a PyObject *m;
130n/a PyObject *d;
131n/a
132n/a
133n/a
134n/a
135n/a m = Py_InitModule("_AH", Ah_methods);
136n/a d = PyModule_GetDict(m);
137n/a Ah_Error = PyMac_GetOSErrException();
138n/a if (Ah_Error == NULL ||
139n/a PyDict_SetItemString(d, "Error", Ah_Error) != 0)
140n/a return;
141n/a}
142n/a
143n/a/* ========================= End module _AH ========================= */
144n/a