added qse_nwad_t and related functions
This commit is contained in:
@ -188,17 +188,13 @@ qse_wcint_t qse_towctype (
|
||||
|
||||
int qse_getwctypebyname (
|
||||
const qse_wchar_t* name,
|
||||
qse_wctype_t* id
|
||||
qse_wctype_t* id
|
||||
);
|
||||
|
||||
int qse_getwctypebyxname (
|
||||
const qse_wchar_t* name,
|
||||
qse_size_t len,
|
||||
qse_wctype_t* id
|
||||
);
|
||||
|
||||
qse_wctype_t qse_getwctype (
|
||||
const qse_wchar_t* name
|
||||
qse_wctype_t* id
|
||||
);
|
||||
|
||||
int qse_getmctypebyname (
|
||||
@ -209,25 +205,19 @@ int qse_getmctypebyname (
|
||||
int qse_getmctypebyxname (
|
||||
const qse_mchar_t* name,
|
||||
qse_size_t len,
|
||||
qse_mctype_t* id
|
||||
qse_mctype_t* id
|
||||
);
|
||||
|
||||
qse_mctype_t qse_getmctype (
|
||||
const qse_mchar_t* name
|
||||
);
|
||||
|
||||
#ifdef QSE_CHAR_IS_MCHAR
|
||||
# define qse_isctype(c,type) qse_ismctype(c,type)
|
||||
# define qse_toctype(c,type) qse_ismctype(c,type)
|
||||
# define qse_getctypebyname(name,id) qse_getmctypebyname(name,id)
|
||||
# define qse_getctypebyxname(name,len,id) qse_getmctypebyxname(name,len,id)
|
||||
# define qse_getctype(name) qse_getmctype(name)
|
||||
#if defined(QSE_CHAR_IS_MCHAR)
|
||||
# define qse_isctype(c,type) qse_ismctype(c,type)
|
||||
# define qse_toctype(c,type) qse_ismctype(c,type)
|
||||
# define qse_strtoctype(name,id) qse_mbstoctype(name,id)
|
||||
# define qse_strntoctype(name,len,id) qse_mbsntoctype(name,len,id)
|
||||
#else
|
||||
# define qse_isctype(c,type) qse_iswctype(c,type)
|
||||
# define qse_toctype(c,type) qse_towctype(c,type)
|
||||
# define qse_getctypebyname(name,id) qse_getwctypebyname(name,id)
|
||||
# define qse_getctypebyxname(name,len,id) qse_getwctypebyxname(name,len,id)
|
||||
# define qse_getctype(name) qse_getwctype(name)
|
||||
# define qse_isctype(c,type) qse_iswctype(c,type)
|
||||
# define qse_toctype(c,type) qse_towctype(c,type)
|
||||
# define qse_strtoctype(name,id) qse_wcstoctype(name,id)
|
||||
# define qse_strntoctype(name,len,id) qse_wcsntoctype(name,len,id)
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -102,6 +102,50 @@ qse_size_t qse_ipad4towcs (
|
||||
# define qse_ipad4tostr(ipad,ptr,len) qse_ipad4towcs(ipad,ptr,len)
|
||||
#endif
|
||||
|
||||
int qse_mbstoipad6 (
|
||||
const qse_mchar_t* mbs,
|
||||
qse_ipad6_t* ipad
|
||||
);
|
||||
|
||||
int qse_mbsntoipad6 (
|
||||
const qse_mchar_t* mbs,
|
||||
qse_size_t len,
|
||||
qse_ipad6_t* ipad
|
||||
);
|
||||
|
||||
int qse_wcstoipad6 (
|
||||
const qse_wchar_t* wcs,
|
||||
qse_ipad6_t* ipad
|
||||
);
|
||||
|
||||
int qse_wcsntoipad6 (
|
||||
const qse_wchar_t* wcs,
|
||||
qse_size_t len,
|
||||
qse_ipad6_t* ipad
|
||||
);
|
||||
|
||||
qse_size_t qse_ipad6tombs (
|
||||
const qse_ipad6_t* ipad,
|
||||
qse_mchar_t* mbs,
|
||||
qse_size_t len
|
||||
);
|
||||
|
||||
qse_size_t qse_ipad6towcs (
|
||||
const qse_ipad6_t* ipad,
|
||||
qse_wchar_t* wcs,
|
||||
qse_size_t len
|
||||
);
|
||||
|
||||
#if defined(QSE_CHAR_IS_MCHAR)
|
||||
# define qse_strtoipad6(ptr,ipad) qse_mbstoipad6(ptr,ipad)
|
||||
# define qse_strntoipad6(ptr,len,ipad) qse_mbsntoipad6(ptr,len,ipad)
|
||||
# define qse_ipad6tostr(ipad,ptr,len) qse_ipad6tombs(ipad,ptr,len)
|
||||
#else
|
||||
# define qse_strtoipad6(ptr,ipad) qse_wcstoipad6(ptr,ipad)
|
||||
# define qse_strntoipad6(ptr,len,ipad) qse_wcsntoipad6(ptr,len,ipad)
|
||||
# define qse_ipad6tostr(ipad,ptr,len) qse_ipad6towcs(ipad,ptr,len)
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -25,28 +25,83 @@
|
||||
#include <qse/macros.h>
|
||||
#include <qse/cmn/ipad.h>
|
||||
|
||||
typedef struct qse_nwad_t qse_nwad_t;
|
||||
|
||||
struct qse_nwad_t
|
||||
{
|
||||
enum
|
||||
{
|
||||
QSE_NWAD_IP4,
|
||||
QSE_NWAD_IP6
|
||||
QSE_NWAD_IN4,
|
||||
QSE_NWAD_IN6
|
||||
} type;
|
||||
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
qse_ipad4_t addr;
|
||||
qse_uint16_t port;
|
||||
} ip4;
|
||||
qse_ipad4_t addr;
|
||||
} in4;
|
||||
|
||||
struct
|
||||
{
|
||||
qse_ipad6_t addr;
|
||||
qse_uint16_t port;
|
||||
} ip6;
|
||||
qse_ipad6_t addr;
|
||||
qse_uint32_t scope;
|
||||
} in6;
|
||||
} u;
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int qse_mbstonwad (
|
||||
const qse_mchar_t* mbs,
|
||||
qse_nwad_t* nwad
|
||||
);
|
||||
|
||||
int qse_mbsntonwad (
|
||||
const qse_mchar_t* mbs,
|
||||
qse_size_t len,
|
||||
qse_nwad_t* nwad
|
||||
);
|
||||
|
||||
int qse_wcstonwad (
|
||||
const qse_wchar_t* wcs,
|
||||
qse_nwad_t* nwad
|
||||
);
|
||||
|
||||
int qse_wcsntonwad (
|
||||
const qse_wchar_t* wcs,
|
||||
qse_size_t len,
|
||||
qse_nwad_t* nwad
|
||||
);
|
||||
|
||||
qse_size_t qse_nwadtombs (
|
||||
const qse_nwad_t* nwad,
|
||||
qse_mchar_t* mbs,
|
||||
qse_size_t len
|
||||
);
|
||||
|
||||
qse_size_t qse_nwadtowcs (
|
||||
const qse_nwad_t* nwad,
|
||||
qse_wchar_t* wcs,
|
||||
qse_size_t len
|
||||
);
|
||||
|
||||
#if defined(QSE_CHAR_IS_MCHAR)
|
||||
# define qse_strtonwad(ptr,nwad) qse_mbstonwad(ptr,nwad)
|
||||
# define qse_strntonwad(ptr,len,nwad) qse_mbsntonwad(ptr,len,nwad)
|
||||
# define qse_nwadtostr(nwad,ptr,len) qse_nwadtombs(nwad,ptr,len)
|
||||
#else
|
||||
# define qse_strtonwad(ptr,nwad) qse_wcstonwad(ptr,nwad)
|
||||
# define qse_strntonwad(ptr,len,nwad) qse_wcsntonwad(ptr,len,nwad)
|
||||
# define qse_nwadtostr(nwad,ptr,len) qse_nwadtowcs(nwad,ptr,len)
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user