mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
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...
This commit is contained in:
parent
a2bf2709b3
commit
0fdb90cafe
4 changed files with 144 additions and 208 deletions
|
@ -1,20 +1,29 @@
|
|||
/* Unicode name database interface */
|
||||
|
||||
#include "Python.h"
|
||||
#include <stdlib.h>
|
||||
#ifndef Py_UCNHASH_H
|
||||
#define Py_UCNHASH_H
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* --- 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;
|
||||
/* revised ucnhash CAPI interface (exported through a PyCObject) */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
const char *pszUCN;
|
||||
Py_UCS4 value;
|
||||
} _Py_UnicodeCharacterName;
|
||||
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 */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue