1 /* ----------------------------------------------------------------------------
2  * xs_compat.h
3  * ----------------------------------------------------------------------------
4  * Mastering programmed by YAMASHINA Hio
5  *
6  * Copyright 2008 YAMASHINA Hio
7  * ----------------------------------------------------------------------------
8  * $Id$
9  * ------------------------------------------------------------------------- */
10 #ifndef UNIJP_XS_COMPAT_H
11 #define UNIJP_XS_COMPAT_H
12 
13 extern uj_conv_t* _uj_conv_new_strn(const uj_alloc_t* alloc, const char* str, uj_size_t len);
14 extern uj_conv_t* _uj_conv_clone(const uj_conv_t* conv);
15 
16 extern const uj_conv_t _uj_xs_conv_undef;
17 extern uj_size_t _uj_xs_PL_na;
18 extern void _uj_xs_SV_Buf_append_ch(uj_conv_t* conv, int ch);
19 extern void _uj_xs_SV_Buf_append_ch2(uj_conv_t* conv, int ch);
20 extern void _uj_xs_SV_Buf_append_ch3(uj_conv_t* conv, int ch);
21 extern void _uj_xs_SV_Buf_append_ch4(uj_conv_t* conv, int ch);
22 extern void _uj_xs_SV_Buf_append_mem(uj_conv_t* conv, const uj_uint8* s, int len);
23 extern void _uj_xs_SV_Buf_append_entityref(uj_conv_t* conv, int ch);
24 extern uj_conv_t* _uj_xs_SV_Buf_getSv(const uj_conv_t* conv);
25 
26 
27 #define UNICODE__JAPANESE_H__
28 
29 #ifndef EXTERN_C
30 #ifdef __cplusplus
31 #define extern "C"
32 #else
33 #define EXTERN_C
34 #endif
35 #endif
36 
37 #define STRLEN uj_size_t
38 
39 #define UJ_UINT32 uj_uint32
40 #define UJ_UINT16 uj_uint16
41 #define UJ_UINT8  uj_uint8
42 
43 #define SV uj_conv_t
44 #define SV_Buf uj_conv_t
45 #define SV_Buf_init(p_var, len) (\
46   (p_var)->alloc       = (sv_str)->alloc, \
47   (p_var)->buf         = _uj_alloc((sv_str)->alloc,len), \
48   (p_var)->buf_len     = 0, \
49   (p_var)->buf_bufsize = (len) \
50   )
51 
52 #define PL_sv_undef        (_uj_xs_conv_undef)
53 #define newSVpvn(str, len) _uj_conv_new_strn(_uj_default_alloc,str,len)
54 #define newSVsv(p_var)     _uj_conv_clone(p_var)
55 
56 #define SvPV(var,len) ((len)=(var)->buf_len,(var)->buf)
57 #define sv_len(var)   ((var)->buf_len)
58 #define SvGMAGICAL(sv) (0)
59 #define mg_get(sv)     ((void)0)
60 #define SvOK(sv)       ((sv) != &PL_sv_undef)
61 
62 #define PL_na                              _uj_xs_PL_na
63 #define SV_Buf_append_ch(p_var,ch)         _uj_xs_SV_Buf_append_ch(p_var, ch)
64 #define SV_Buf_append_ch2(p_var,ch)        _uj_xs_SV_Buf_append_ch2(p_var, ch)
65 #define SV_Buf_append_ch3(p_var,ch)        _uj_xs_SV_Buf_append_ch3(p_var, ch)
66 #define SV_Buf_append_ch4(p_var,ch)        _uj_xs_SV_Buf_append_ch4(p_var, ch)
67 #define SV_Buf_append_mem(p_var,ptr,len)   _uj_xs_SV_Buf_append_mem(p_var, ptr, len)
68 #define SV_Buf_append_entityref(p_var,ch)  _uj_xs_SV_Buf_append_entityref(p_var, ch)
69 #define SV_Buf_setLength(p_var)            ((void)0)
70 #define SV_Buf_getSv(p_var)                (*__out=*p_var,__out)
71 
72 #endif /* !defined(UNIJP_XS_COMPAT_H) */
73 /* ----------------------------------------------------------------------------
74  * End of File.
75  * ------------------------------------------------------------------------- */
76