blob: 45362e997dfa118f30d2c5bb4406105f744ce53b [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
Serhiy Storchaka009b8112015-03-18 21:53:15 +020019 success, zero if not. Does not set Python exceptions.
Martin v. Löwis480f1bb2006-03-09 23:38:20 +000020 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 */
Ezio Melotti931b8aa2011-10-21 21:57:36 +030022 int (*getname)(PyObject *self, Py_UCS4 code, char* buffer, int buflen,
23 int with_alias_and_seq);
Fredrik Lundh0fdb90c2001-01-19 09:45:02 +000024
25 /* Get character code for a given name. Same error handling
26 as for getname. */
Ezio Melotti931b8aa2011-10-21 21:57:36 +030027 int (*getcode)(PyObject *self, const char* name, int namelen, Py_UCS4* code,
28 int with_named_seq);
Fredrik Lundh0fdb90c2001-01-19 09:45:02 +000029
30} _PyUnicode_Name_CAPI;
31
32#ifdef __cplusplus
33}
34#endif
35#endif /* !Py_UCNHASH_H */
Martin v. Löwis4d0d4712010-12-03 20:14:31 +000036#endif /* !Py_LIMITED_API */