summaryrefslogtreecommitdiffstats
path: root/Include/ucnhash.h
diff options
context:
space:
mode:
authorFredrik Lundh <fredrik@pythonware.com>2001-01-19 09:45:02 (GMT)
committerFredrik Lundh <fredrik@pythonware.com>2001-01-19 09:45:02 (GMT)
commit0fdb90cafe596a03a5c3005a21e8fa2a230803e5 (patch)
treeb336a6167a1df4af3cf4ed184d68f7842dd19807 /Include/ucnhash.h
parenta2bf2709b39b7848e4f887bc60289b64e2562f36 (diff)
downloadcpython-0fdb90cafe596a03a5c3005a21e8fa2a230803e5.zip
cpython-0fdb90cafe596a03a5c3005a21e8fa2a230803e5.tar.gz
cpython-0fdb90cafe596a03a5c3005a21e8fa2a230803e5.tar.bz2
refactored the unicodeobject/ucnhash interface, to hide the
implementation details inside the ucnhash module. also cleaned up the unicode copyright blurb a little; Secret Labs' internal revision history isn't that interesting...
Diffstat (limited to 'Include/ucnhash.h')
-rw-r--r--Include/ucnhash.h45
1 files changed, 27 insertions, 18 deletions
diff --git a/Include/ucnhash.h b/Include/ucnhash.h
index 7bf3f5d..a664336 100644
--- a/Include/ucnhash.h
+++ b/Include/ucnhash.h
@@ -1,20 +1,29 @@
+/* Unicode name database interface */
-#include "Python.h"
-#include <stdlib.h>
-
-/* --- C API ----------------------------------------------------*/
-/* C API for usage by other Python modules */
-typedef struct _Py_UCNHashAPI
-{
- unsigned long cKeys;
- unsigned long cchMax;
- unsigned long (*hash)(const char *key, unsigned int cch);
- const void *(*getValue)(unsigned long iKey);
-} _Py_UCNHashAPI;
-
-typedef struct
-{
- const char *pszUCN;
- Py_UCS4 value;
-} _Py_UnicodeCharacterName;
+#ifndef Py_UCNHASH_H
+#define Py_UCNHASH_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+/* revised ucnhash CAPI interface (exported through a PyCObject) */
+
+typedef struct {
+
+ /* Size of this struct */
+ int size;
+
+ /* Get name for a given character code. Returns non-zero if
+ success, zero if not. Does not set Python exceptions. */
+ int (*getname)(Py_UCS4 code, char* buffer, int buflen);
+
+ /* Get character code for a given name. Same error handling
+ as for getname. */
+ int (*getcode)(const char* name, int namelen, Py_UCS4* code);
+
+} _PyUnicode_Name_CAPI;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_UCNHASH_H */