add QSE_XLI_PAIRXTNSIZE and qse_xli_getpairxtn()
This commit is contained in:
parent
7e98acf59f
commit
cb170d2e7a
@ -72,7 +72,8 @@ typedef const qse_char_t* (*qse_xli_errstr_t) (
|
||||
|
||||
enum qse_xli_opt_t
|
||||
{
|
||||
QSE_XLI_TRAIT
|
||||
QSE_XLI_TRAIT,
|
||||
QSE_XLI_PAIRXTNSIZE
|
||||
};
|
||||
typedef enum qse_xli_opt_t qse_xli_opt_t;
|
||||
|
||||
@ -499,6 +500,11 @@ QSE_EXPORT void qse_xli_freemem (
|
||||
void* ptr
|
||||
);
|
||||
|
||||
QSE_EXPORT void* qse_xli_getpairxtn (
|
||||
qse_xli_t* xli,
|
||||
qse_xli_pair_t* pair
|
||||
);
|
||||
|
||||
QSE_EXPORT qse_xli_pair_t* qse_xli_insertpair (
|
||||
qse_xli_t* xli,
|
||||
qse_xli_list_t* list,
|
||||
|
@ -109,6 +109,10 @@ int qse_xli_setopt (qse_xli_t* xli, qse_xli_opt_t id, const void* value)
|
||||
case QSE_XLI_TRAIT:
|
||||
xli->opt.trait = *(const int*)value;
|
||||
return 0;
|
||||
|
||||
case QSE_XLI_PAIRXTNSIZE:
|
||||
xli->opt.pair_xtnsize = *(const qse_size_t*)value;
|
||||
return 0;
|
||||
}
|
||||
|
||||
qse_xli_seterrnum (xli, QSE_XLI_EINVAL, QSE_NULL);
|
||||
@ -122,6 +126,10 @@ int qse_xli_getopt (qse_xli_t* xli, qse_xli_opt_t id, void* value)
|
||||
case QSE_XLI_TRAIT:
|
||||
*(int*)value = xli->opt.trait;
|
||||
return 0;
|
||||
|
||||
case QSE_XLI_PAIRXTNSIZE:
|
||||
*(qse_size_t*)value = xli->opt.pair_xtnsize;
|
||||
return 0;
|
||||
};
|
||||
|
||||
qse_xli_seterrnum (xli, QSE_XLI_EINVAL, QSE_NULL);
|
||||
@ -214,12 +222,12 @@ static qse_xli_pair_t* insert_pair (
|
||||
alen = alias? alias->len: 0;
|
||||
|
||||
pair = qse_xli_callocmem (xli,
|
||||
QSE_SIZEOF(*pair) +
|
||||
QSE_SIZEOF(*pair) + xli->opt.pair_xtnsize +
|
||||
((key->len + 1) * QSE_SIZEOF(*key->ptr)) +
|
||||
((alen + 1) * QSE_SIZEOF(*alias->ptr)));
|
||||
if (pair == QSE_NULL) return QSE_NULL;
|
||||
|
||||
kptr = (qse_char_t*)(pair + 1);
|
||||
kptr = (qse_char_t*)((qse_uint8_t*)(pair + 1) + xli->opt.pair_xtnsize);
|
||||
qse_strcpy (kptr, key->ptr);
|
||||
|
||||
pair->type = QSE_XLI_PAIR;
|
||||
@ -236,6 +244,11 @@ static qse_xli_pair_t* insert_pair (
|
||||
return pair;
|
||||
}
|
||||
|
||||
void* qse_xli_getpairxtn (qse_xli_t* xli, qse_xli_pair_t* pair)
|
||||
{
|
||||
return (void*)(pair + 1);
|
||||
}
|
||||
|
||||
qse_xli_pair_t* qse_xli_insertpair (
|
||||
qse_xli_t* xli, qse_xli_list_t* parent, qse_xli_atom_t* peer,
|
||||
const qse_char_t* key, const qse_char_t* alias, qse_xli_val_t* value)
|
||||
|
@ -55,6 +55,7 @@ struct qse_xli_t
|
||||
struct
|
||||
{
|
||||
int trait;
|
||||
qse_size_t pair_xtnsize;
|
||||
} opt;
|
||||
|
||||
qse_xli_ecb_t* ecb;
|
||||
|
Loading…
Reference in New Issue
Block a user