blob: 70fdf130694d89002d096aa503fa3e17dcd43cbe [file] [log] [blame]
Fredrik Lundh0fdb90c2001-01-19 09:45:02 +00001/* Unicode name database interface */
Martin v. Löwis4d0d4712010-12-03 20:14:31 +00002#ifndef Py_LIMITED_API
Fredrik Lundh0fdb90c2001-01-19 09:45:02 +00003#ifndef Py_UCNHASH_H
4#define Py_UCNHASH_H
5#ifdef __cplusplus
6extern "C" {
7#endif
Marc-André Lemburg808d9b12000-06-28 16:37:24 +00008
Benjamin Petersonb173f782009-05-05 22:31:58 +00009/* revised ucnhash CAPI interface (exported through a "wrapper") */
10
11#define PyUnicodeData_CAPSULE_NAME "unicodedata.ucnhash_CAPI"
Marc-André Lemburg808d9b12000-06-28 16:37:24 +000012
Fredrik Lundh0fdb90c2001-01-19 09:45:02 +000013typedef struct {
Marc-André Lemburg808d9b12000-06-28 16:37:24 +000014
Fredrik Lundh0fdb90c2001-01-19 09:45:02 +000015 /* Size of this struct */
16 int size;
17
18 /* Get name for a given character code. Returns non-zero if
Martin v. Löwis480f1bb2006-03-09 23:38:20 +000019 success, zero if not. Does not set Python exceptions.
20 If self is NULL, data come from the default version of the database.
Martin v. Löwis5bd7c022006-03-10 11:20:04 +000021 If it is not NULL, it should be a unicodedata.ucd_X_Y_Z object */
Martin v. Löwis480f1bb2006-03-09 23:38:20 +000022 int (*getname)(PyObject *self, Py_UCS4 code, char* buffer, int buflen);
Fredrik Lundh0fdb90c2001-01-19 09:45:02 +000023
24 /* Get character code for a given name. Same error handling
25 as for getname. */
Martin v. Löwis480f1bb2006-03-09 23:38:20 +000026 int (*getcode)(PyObject *self, const char* name, int namelen, Py_UCS4* code);
Fredrik Lundh0fdb90c2001-01-19 09:45:02 +000027
28} _PyUnicode_Name_CAPI;
29
30#ifdef __cplusplus
31}
32#endif
33#endif /* !Py_UCNHASH_H */
Martin v. Löwis4d0d4712010-12-03 20:14:31 +000034#endif /* !Py_LIMITED_API */