[Python-checkins] CVS: python/dist/src/Include ucnhash.h,1.3,1.4
Fredrik Lundh
effbot@users.sourceforge.net
Fri, 19 Jan 2001 01:45:05 -0800
Update of /cvsroot/python/python/dist/src/Include
In directory usw-pr-cvs1:/tmp/cvs-serv31607/Include
Modified Files:
ucnhash.h
Log Message:
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...
Index: ucnhash.h
===================================================================
RCS file: /cvsroot/python/python/dist/src/Include/ucnhash.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** ucnhash.h 2000/07/07 17:45:37 1.3
--- ucnhash.h 2001/01/19 09:45:02 1.4
***************
*** 1,20 ****
! #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;
--- 1,29 ----
+ /* Unicode name database interface */
! #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 */