add QSE_XLI_PAIRXTNSIZE and qse_xli_getpairxtn()
This commit is contained in:
		| @ -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) | ||||
|  | ||||
| @ -54,7 +54,8 @@ struct qse_xli_t | ||||
|  | ||||
| 	struct | ||||
| 	{ | ||||
| 		int  trait;           | ||||
| 		int trait;           | ||||
| 		qse_size_t pair_xtnsize; | ||||
| 	} opt; | ||||
|  | ||||
| 	qse_xli_ecb_t* ecb; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user