1 Based on https://sourceforge.net/p/ruamel-yaml-clib/code/merge-requests/4/ with additions
2 for `input_handler` and `output_handler`.
7 cdef extern from "_ruamel_yaml.h":
10 - void memcpy(char *d, char *s, int l)
11 + void memcpy(unsigned char *d, char *s, int l)
13 int PyString_CheckExact(object o)
14 int PyUnicode_CheckExact(object o)
15 char *PyString_AS_STRING(object o)
16 int PyString_GET_SIZE(object o)
17 - object PyString_FromStringAndSize(char *v, int l)
18 + object PyString_FromStringAndSize(unsigned char *v, size_t l)
19 object PyUnicode_FromString(char *u)
20 - object PyUnicode_DecodeUTF8(char *u, int s, char *e)
21 + object PyUnicode_DecodeUTF8(unsigned char *u, size_t s, char *e)
22 object PyUnicode_AsUTF8String(object o)
26 YAML_MAPPING_START_EVENT
27 YAML_MAPPING_END_EVENT
29 - ctypedef int yaml_read_handler_t(void *data, char *buffer,
30 - int size, int *size_read) except 0
32 - ctypedef int yaml_write_handler_t(void *data, char *buffer,
34 + ctypedef int yaml_read_handler_t(void *data, unsigned char *buffer,
35 + size_t size, size_t *size_read) except 0
37 + ctypedef int yaml_write_handler_t(void *data, unsigned char *buffer,
38 + size_t size) except 0
40 ctypedef struct yaml_mark_t:
45 ctypedef struct _yaml_token_scalar_data_t:
47 + unsigned char *value
49 yaml_scalar_style_t style
50 ctypedef struct _yaml_token_version_directive_data_t:
52 ctypedef struct _yaml_event_scalar_data_t:
56 + unsigned char *value
60 --- a/_ruamel_yaml.pyx
61 +++ b/_ruamel_yaml.pyx
66 -cdef int input_handler(void *data, char *buffer, int size, int *read) except 0:
67 +cdef int input_handler(void *data, unsigned char *buffer, size_t size, size_t *read) except 0:
69 parser = <CParser>data
70 if parser.stream_cache is None:
72 self.ascend_resolver()
75 -cdef int output_handler(void *data, char *buffer, int size) except 0:
76 +cdef int output_handler(void *data, unsigned char *buffer, size_t size) except 0:
78 emitter = <CEmitter>data
79 if emitter.dump_unicode == 0: